mongodb and apache hbase: benchmarking
DESCRIPTION
TRANSCRIPT
Products comparison
AND
Technical overview
Programming language C++ Java
Language Bindings & Clients C, C++, Erlang, Haskell, Java, JavaScript, .NET (C# F#, PowerShell, etc), Perl, PHP, Python, Ruby, Scala.
Java, Jython ,Groovy DSL , Scala, REST
Protocols Mongo Wire Protocol Apache Avro, Thrift, REST
First public release and current state Feb 2009 Last release 2.0.2 14th December 2011
Jul 2010 Last release 0.92.0 23th January 2012
Technical overview
Querying Mongo Query Language Filter LanguageAtomicity Conditional +Consistency + +Isolation - +Durability + -
Secondary Indexes Indexing of embedded element, compound key
Periodic-Update Secondary Index Filter Query Dual-Write Secondary Index Summary Tables
Map/Reduce Supports Sharding + +Replication + +Revision control - +
MongoDB features
Document-orientedCapped CollectionsGreed FS IndexingMap ReduceQuery languageJSON/BSONEventually-consistence
HBase features
• Column oriented(after Google big table)• Bloom filters on per column basis• MapReduce• Secondary Indexes• HDFS based• Revision controll
MongoDB configuration example
HBase configuration
MongoDB use casesGit Hub : the social coding site, is using MongoDB for an internal reporting application.РосГос затраты: RosSpending is the first Russian public spending monitoring project..Disney: common set of tools and APIs for all games within the Interactive Media Group, using MongoDB as a common object repository to persist state information.Over 300 of companies have prodact deployments of mongoDB
HBase use casesFacebook : Real-Time messaging Over 152 billions messages monthlyAdobe: 30 nodes social services ,data and processing for internal use.Explorys: over a billion anonymized clinical recordsMozilla Socorro : Crash reporting systemPowered by about 40 companies
Benchmarking
• Enveroment: Amazon Elastic compute cloud.• Testing tool – Yahoo Cloud Service
benchmark(YCSB)
MongoDB Benchmarking.12hours of loading.95.000.000 records for 2 shards167.600.000 for 4 shards
0 2400 4800 7200 9600 12000 14400 16800 19200 21600 24000 26400 28800 31200 33600 36000 38400 40800 432000.00
2000.00
4000.00
6000.00
8000.00
10000.00
12000.00
4 shards loading
2 shards loading
50% reads 50% updates
500 1000 2000 3000 3300 50000
2000
4000
6000
8000
10000
12000
2 shards update2 shards read4 shards update4 shards read
95% reads 5% updates
500 1000 2000 3000 4000 50000
2000
4000
6000
8000
10000
12000
14000
16000
2 shards update2 shards read4 shards update4 shards read
Read only performance
500 1000 2000 3000 4000 50000
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
2 shards4 shards
Read Insert performance
200 300 4000
50000
100000
150000
200000
250000
2 shards insert2 shards read4 shards insert4 shards read
Questions
skype: google_micmailto: [email protected]: [email protected]