Skip to main content

High Performance FLASH with KeyDB and Multithreading

When we launched KeyDB back in March of last year we were really excited about the possibilities that multithreading could bring. Today with KeyDB we are continuing that vision with our new FLASH feature which achieves near RAM performance while taking advantage of the massive cost savings FLASH storage can provide. As with all KeyDB features, FLASH support continues to provide full compatibility with existing KeyDB and Redis clients.

The results have been tremendous, with FLASH support offering near RAM speeds with significant cost savings.

See below for detailed performance results and analysis.

 

Test Setup#

All benchmarks are done on an AWS m5d.2xlarge to ensure tests are easily repeatable. We initialize a KeyDB server with 200 million keys each 1KB in size for a total dataset of 190GB. The database is stored on direct attached NVME FLASH which is our recommend setup for AWS users, and KeyDB was launched with 7 threads. Extremely high loads are generated by a memtier instance with 32 threads on an m5.8xlarge.

Results#

Throughput of FLASH vs RAM Latency of FLASH vs RAM

The results show FLASH can achieve 85% the throughput of RAM, with only 0.5 ms of extra latency. For most workloads FLASH is a drop in replacement. We can see that working set size has only a slight effect on the latency and throughput achieved. This is important because as the working set increases it will be less likely a key is in the cache and more trips to disk will be required. The multithreading in KeyDB does a great job of hiding this and our worst-case latency is only 5% higher than our best case.

It’s all about hiding latency#

The key to KeyDB’s amazing FLASH performance is latency hiding. Because of KeyDB’s multithreaded architecture we are able to keep multiple requests in flight simultaneously, better exploiting the parallelism available in hardware.

Conclusions#

With KeyDB’s new FLASH feature you can achieve near RAM performance at dramatic cost savings. To demonstrate this, a machine able to fit our entire dataset in RAM would cost over $17,600 per year. That is over 5x higher than our test machine. EBS can also be used in place of direct attached storage for even more dramatic cost savings.

FLASH allows you to keep more data in KeyDB while still providing the performance you expect. To take advantage of FLASH support get KeyDB today!