forked from sears/mapkeeper
-
Notifications
You must be signed in to change notification settings - Fork 4
MySQL vs. LevelDB
m1ch1 edited this page Jan 27, 2012
·
31 revisions
The goal of this benchmark is to compare MySQL and LevelDB for disk I/O bound, multiple-reader/multiple-writer workload.
- 2 x Xeon E5620 2.40GHz (HT enabled, 8 cores, 16 threads)
- Memory: 4GB
- Disk: RAID-10/2 == 4 × 300GB 15K rpm
- RAID cache: 512MB
- Disk cache: off
- RHEL Server 5.4, Linux 2.6.18-164.2.1.el5 x86_64, 64-bit
- XFS – noatime,logbufs=8,nobarrier
- MySQL Server 5.1.48 with XtraDB
- innodb_buffer_pool_size = 2G
- innodb_flush_log_at_trx_commit = 0
- innodb_flush_method = ALL_O_DIRECT
- svn revision r45
- options.write_buffer_size = 500 * 1048576; // 500MB write buffer
- options.block_cache = leveldb::NewLRUCache(1500 * 1048576); // 1.5GB cache
- options.sync = false;
- Use the same box as MySQL/LevelDB
- Record size: 4KB
- Number of records: 10 million
- Number of client threads: 100
- Read/Write ratio: 80/20
LevelDB gets higher throughput / lower latency overall, but MySQL is much more stable both in throughput and latency.
MySQL performs slightly better than LevelDB in this workload, but the difference is not very significant.
Send me email at [email protected] or post your comments here if you have any questions/suggestions.