/plushcap/analysis/dragonfly/dragonfly-balanced-vs-unbalanced

Balanced vs Unbalanced

What's this blog post about?

Balance in life and systems is crucial as focusing on improving only one aspect can weaken the whole system. Redis, for instance, supports high throughput but its persistency mechanism struggles under high loads. The BGSAVE snapshotting process in Redis uses Linux's fork() to create a child process that accesses the parent’s memory, leading to potential memory allocation issues. KeyDB, a Redis fork, can sustain higher throughput due to its multi-threaded architecture but faces similar challenges during snapshotting. Dragonfly, another Redis fork, addresses these issues by using versioning and maintaining a monotonically increasing counter for each entry in the store. This allows it to serialize entries exactly once and avoids relying on generic memory management. The balanced approach of Dragonfly ensures its reliability, performance, and scalability.

Company
Dragonfly

Date published
Oct. 30, 2022

Author(s)
Roman Gershman

Word count
1066

Language
English

Hacker News points
None found.


By Matt Makai. 2021-2024.