From dict to DashTable: How Dragonfly cuts memory overhead by 40%
Blog post from Dragonfly
Dragonfly replaces Redis’s traditional dictionary implementation with DashTable, an extendible-hashing structure designed to reduce memory overhead and avoid whole-table rehashing. Redis grows by allocating a second, larger hash table and incrementally migrating entries, which spreads latency costs but creates temporary memory spikes and requires lookups across both tables during rehashing. DashTable instead organizes entries into fixed-size segments addressed through a directory; when insertion capacity is exhausted, it splits only the affected segment and redistributes at most 840 entries, while directory expansion moves pointers rather than key-value data. Its insertion process also attempts nearby buckets, entry displacement, stash buckets, and expired-key cleanup before splitting. The post estimates DashTable’s steady-state storage at about 18.6 bytes per entry, compared with Redis’s estimated 32–48 bytes including bucket overhead and rehash effects, and reports a benchmark in which Dragonfly used roughly 4.3 GB for 100 million keys versus Redis’s 7.5 GB, a reduction of about 43%. It also notes that Redis 7.x mitigates large rehash events through multiple internal dictionaries, whereas DashTable addresses the issue through localized segment-level growth.
No tracked trend matches for this post yet.
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.