Samsung Z-SSD(TM) and ScyllaDB: Low Latency in a Persistent Database
New analysis of Samsung’s low latency Z-SSD shows major performance gains when the recently-introduced drive is integrated with the Scylla data store. In this whitepaper, Samsung has closely examined the performance of Scylla — an open-source, high-performance NoSQL data store — on Z-SSD in comparisons with in-memory based architectures. The study also looked at the cost-effectiveness of one solution over the other.
With several vertical optimizations in its embedded NAND, SSD controller and SSD memory, Z-SSD reduces read latency more than 5x compared to today’s leading NVMe SSDs.
In our tests, we used Scylla, with its well written C++ implementation, as a drop-in replacement for Cassandra. We compared the performance of Scylla when serving requests from memory and when handling them from Samsung’s Z-SSD. To this end, we have characterized system performance as well as overall throughput and latency, using the well-known Cassandra-stress tool [3]. This whitepaper reports our findings, and makes the following observations:
- Samsung Z-SSD has shrunk the performance gap between serving data from memory and having the data served from the SSD.
- When considering maximum throughput with a constraint of sub-millisecond, 95 percentile latency, and with 50% of requests served from Z-SSD, we have found that the gap between Z-SSD and an in-memory run is only 44% for a read-only workload, and only 40% for a mixed workload (75% read, 25% write).
- While Scylla provides a high performance NoSQL service, the overheads of the software stack are considerable – between 6x to 7x compared to the raw device latencies measured with FIO. Further optimizations in the software layer are expected to decrease the gap between SSDs and memory to an even more advantageous level.
Ha Dor Laor, you can tell me ;-). Looks like SycllaDB uses libaio to write/read data to an XFS filesystem. Do I have that correct? If not can you pass along a pointer to how storage is supported/done? Great results BTW ;-)....
Amazing drive, couldn't ask for a better one!
Another great piece of work from your team Bob Brennan! Can I ask how ScyllaDB servers access the NVMe Z-NAND SSD? Is it via the Linux kernel (i.e. through system calls, the block layer and the NVMe driver) or via some user-space framework?