Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Real-Time Vote Platform
Benchmark
Lahav Savir, CEO
Emind Cloud Experts
Who is emind?
● Born in the cloud company
● Amazon Web Services and Google Cloud
Platform Partners and Resellers
● 7 Years...
Benchmark Background
● Requested by TV Broadcaster for a
voting platform
● Choose the best NoSQL DB for the use
case
● Pus...
Real-Time Voting API
● Save User Votes, IP, Hash
● Prevent Duplicates
● Count Total Yes/No
● Count Total Votes
Requirements of NoSQL Candidates
● Auto Sharding
● Infinite Scale
● Replication
● High Availability
● Counter Heavy
● Aero...
Simplified App Flow
success = SetNX (user_id, vote_obj)
if (success) {
incr(“total_votes”)
incr(vote.choice)
}
App Flow with channels & pipeline
success = SetNX ( user_id, vote_obj)
if (success) {
c <- vote
}
worker(c -> vote) {
push...
AWS Deployment
● Ubuntu 14.04 (Enh. Networking Enabled)
● API Backend on C4.8XLarge (golang)
● Load Generator C4.8XLarge (...
Results - Votes Per Sec
* No optimization of DBs - default presets
Cassandra
● API Req / Sec : 8.2K
● DB Ops / Sec : 19.5K
● Votes Within 60 Sec :
493,886
CouchBase
● API Req / Sec : 13.5K
● DB Ops / Sec : 30K
● Votes Within 60 Sec : 800,951
Aerospike
● API Req / Sec : 16.5K
● DB Ops / Sec : 50K
● Votes Within 60 Sec :
989,659
Redis Labs
● API Req / Sec : 44K
● DB Ops / Sec : 126K
● Votes Within 60 Sec : 2.65M
Redis Pipeline is Crucial
● App is in golang driver has good support for
pipeline
● Play with pipeline size, match your us...
● Redis wins big time ~x2.5 votes/sec
● Pipeline is crucial
● Possible enhancement
○ UDF Lua will probably get redis resul...
Talk to us: redis-conf@emind.co
Upcoming SlideShare
Loading in …5
×

Real-Time Vote Platform Benchmark

1,123 views

Published on

Benchmark Background:
- Requested by TV Broadcaster for a voting platform
- Choose the best NoSQL DB for the use case
- Push the DB to the max limit
- AWS infrastructure
Goal:
- 2M votes/sec at the best TCO
- 2M Votes = ~7M DB Ops/sec

Published in: Internet
  • Be the first to comment

Real-Time Vote Platform Benchmark

  1. 1. Real-Time Vote Platform Benchmark Lahav Savir, CEO Emind Cloud Experts
  2. 2. Who is emind? ● Born in the cloud company ● Amazon Web Services and Google Cloud Platform Partners and Resellers ● 7 Years of experience with 850+ successful cloud deployments
  3. 3. Benchmark Background ● Requested by TV Broadcaster for a voting platform ● Choose the best NoSQL DB for the use case ● Push the DB to the max limit ● AWS infrastructure ● Goal ● 2M votes/sec at the best TCO ● 2M Votes = ~7M DB Ops/sec
  4. 4. Real-Time Voting API ● Save User Votes, IP, Hash ● Prevent Duplicates ● Count Total Yes/No ● Count Total Votes
  5. 5. Requirements of NoSQL Candidates ● Auto Sharding ● Infinite Scale ● Replication ● High Availability ● Counter Heavy ● Aerospike ● Casandra ● CouchBase ● Redis - (Redis Labs)
  6. 6. Simplified App Flow success = SetNX (user_id, vote_obj) if (success) { incr(“total_votes”) incr(vote.choice) }
  7. 7. App Flow with channels & pipeline success = SetNX ( user_id, vote_obj) if (success) { c <- vote } worker(c -> vote) { push_to_queue(vote) if (queue.size() > 35) { redis.pipeline_on(queue) { incr(“total_votes”) incr(vote.choice) } } }
  8. 8. AWS Deployment ● Ubuntu 14.04 (Enh. Networking Enabled) ● API Backend on C4.8XLarge (golang) ● Load Generator C4.8XLarge (wrk) ● Databases on C4.Large ● All in same Placement Group Load generator C4.8XL API backend C4.8XL NoSQL C4.L
  9. 9. Results - Votes Per Sec * No optimization of DBs - default presets
  10. 10. Cassandra ● API Req / Sec : 8.2K ● DB Ops / Sec : 19.5K ● Votes Within 60 Sec : 493,886
  11. 11. CouchBase ● API Req / Sec : 13.5K ● DB Ops / Sec : 30K ● Votes Within 60 Sec : 800,951
  12. 12. Aerospike ● API Req / Sec : 16.5K ● DB Ops / Sec : 50K ● Votes Within 60 Sec : 989,659
  13. 13. Redis Labs ● API Req / Sec : 44K ● DB Ops / Sec : 126K ● Votes Within 60 Sec : 2.65M
  14. 14. Redis Pipeline is Crucial ● App is in golang driver has good support for pipeline ● Play with pipeline size, match your use case ○ We tried 10-100, peaked ~35
  15. 15. ● Redis wins big time ~x2.5 votes/sec ● Pipeline is crucial ● Possible enhancement ○ UDF Lua will probably get redis results even higher. Summary
  16. 16. Talk to us: redis-conf@emind.co

×