Dragonfly, a lightweight data caching and storage system that stores data in RAM in a key/value format, has been released. It is designed to accelerate the operations of highly loaded websites by caching slow requests to the DBMS and intermediate data in RAM. Dragonfly supports both Memcache and Redis protocols, allowing users to take advantage of existing client libraries and easily translate code to Dragonfly.
Performance tests demonstrate that Dragonfly outperforms Redis. With typical types of loads, it achieved 3.8 million requests per second in Amazon EC2 C6GN.16XLARGE, a 25-fold increase over Redis. Compared to Memcache in AWS-control of C6GN.16XLARGE Dragonfly, it was able to make 4.7 times more queries per second for recording and 1.77 times more requests per second for reading.
Dragonfly requires 30% less memory than Redis for storing 5 GB of data, and its BGSAVE command during snapshot creation is almost three times less than in Redis. The snapshot recording operation itself is also faster, with Dragonfly taking 30 seconds and Redis needing 42 seconds.
Dragonfly’s multiserver architecture without separation of resources allows for high performance without using mittexes and spin-blocking. The use of lightweight blocks ensures atomicity when working with several keys. Dragonfly is equipped with features such as a caching mode that automatically crowds out old data with new ones after the exhaustion of free memory, support for the binding of life, support for resetting the state of the storage to the disk in the background for subsequent recovery after restart, and an HTTP console for system control and API for the return of metrics compatible with Prometheus.
It also supports 185 Redis commands and all Memcache teams except cas (Check-And-Set). Asynchronous operations to create snapshots and predictable memory consumption are also supported.
For more information on Dragonfly, visit their website.