-
Notifications
You must be signed in to change notification settings - Fork 23
RocksDB vs TuplDB on 960 Pro
Test test compares the performance of RockDB to TuplDB, in the same fashion as the RocksDB vs TuplDB on Optane test. The difference is that a Samsung 960 Pro SSD is used instead of an Intel Optane 900P. The RocksDB configuration is the same.
- Compression type: no compression
- Compaction style: level
- Write buffer size: 64MiB
- Max write buffer number: 3
- Max background compactions: 16
- Level 0 file num compaction trigger: 8
- Level 0 slowdown writes trigger: 17
- Num levels: 4
- Max bytes for base level: 512MiB
- Max bytes for level multiplier: 8
- Block cache size: 8GiB
For both the RocksDB and TuplDB tests, 16 threads were inserting records in a random order, using an 8 byte key. RocksDB stored to the EXT4 file system, but TuplDB was configured to write to the 960 Pro drive as a block device, using direct I/O. RocksDB doesn't have an option to write directly to the block device. The TuplDB redo log does depend on a file system, and a smaller EXT4 partition was created on the 960 Pro drive for the redo logs. Before running each test, the SSD was trimmed.
- RAM: 16GB
- Storage: Samsung 960 Pro 512GB
- CPU: Ryzen 7 1700
- Kernel: 4.13.0-38
This first test shows the maximum insert rate achieved compared to the total number of records which have been inserted. The horizontal axis essentially shows time, but not in a linear fashion. The total record size is about 128 bytes, excluding any encoding overhead.
It should be clear from these results that RocksDB outperforms TuplDB for most of the test, but the TuplDB insert rate is much less erratic. Once the database reaches ~256GB in size, RockDB and TuplDB insert at the same rate.
The next test is the same except the record size is doubled, to 256 bytes. The total number of records inserted is half as much (~1.1 billion) to match the total overall database size.
RocksDB initially inserts at a faster rate, but TuplDB overtakes it as the database gets larger. It seems that the crossover occurs earlier, when the database reaches ~200GB, at which point TuplDB outperforms RocksDB. The next test doubled the record size again, and the crossover occurs even earlier, when the database is ~128GB in size.
Also see the RocksDB vs TuplDB counters test, which compares TuplDB on the 960 Pro to RocksDB on the much faster Optane drive.