Palomino Labs, Inc. palominolabs.com
Distributed Benchmarking with
BenchPress
BenchPress
• High performance benchmarking
• Distributed workers
• Flexible
• SQL databases
• NoSQL datastores
• DDOS
• Anything (no, but most things)‽
Y!CSB, The Grinder, JMeter
• Limited workload configuration
• For storage systems only (Y!CSB)
• Single host only
BenchPress Communication
• Service Discovery
• Apache ZooKeeper
• Apache Curator
BenchPress Communication
• Service Discovery
• Apache ZooKeeper
• Apache Curator
• Job Control
• Jetty
• Jersey
• Jackson
BenchPress Job Definition
MongoDBTaskFactory
MongoDBRunnable
• Submitting job
• curl -X POST -H "Content-Type: application/json"
• -d @job.json http://benchpress.foo:7000/controller/job
• Job status & completion
• curl http://benchpress.foo:7000/controller/job/<job-id>
Advanced Reporting
Advanced Reporting
See Also
• Service Discovery with Curator
http://blog.palominolabs.com/2012/08/14/using-netflix-curator-for-service-discovery/
• Apache (née Netflix) Curator
http://curator.incubator.apache.org/
• Yahoo! Cloud System Benchmark
https://github.com/brianfrankcooper/YCSB/
• Code highlighting by
http://markup.su/highlighter/
Palomino Labs, Inc. palominolabs.com
Drew Stephens
drew@palominolabs.com
@dinomite
http://www.slideshare.net/dinomite/big-data-dc-benchpress

Big Data DC - BenchPress

Editor's Notes

  • #2 Principal at Palomino Labs; software development consultancy Desktop webapps, native mobile apps, low level systems programming, and big data Also process consulting, focusing on making teams more efficient
  • #4 Limited flexibility: only do one thing Yahoo! Cloud System Benchmark Only single host
  • #5 Architecture … Curator, which Apache gobbled up from Netflix
  • #7 - quanta: total number of operations - batchSize: per-thread, number of quanta to complete before an interstitial action; more later - Content of each action: configurable key &amp; value generators
  • #8 - Creating new objects for each thread - MongoDB instance - Key &amp; value generators - quantaPerThread: total number of things to do batchSize…see Runnable
  • #10 Easy to integrate with external tools! Because JSON
  • #11 DIY statistics