dragonfly
by
dragonflydb

Description: A modern replacement for Redis and Memcached

View on GitHub ↗

Summary Information

Updated 43 minutes ago
Added to GitGenius on July 10th, 2024
Created on December 11th, 2021
Open Issues & Pull Requests: 285 (+0)
Number of forks: 1,201
Total Stargazers: 30,846 (+0)
Total Subscribers: 169 (+0)

Issue Activity (beta)

Open issues: 242
New in 7 days: 3
Closed in 7 days: 4
Avg open age: 353 days
Stale 30+ days: 207
Stale 90+ days: 180

Recent activity

Opened in 7 days: 1
Closed in 7 days: 4
Comments in 7 days: 10
Events in 7 days: 14

Top labels

  • bug (1,243)
  • enhancement (357)
  • failing-test (205)
  • minor (113)
  • fuzzing (84)
  • good first issue (84)
  • help wanted (79)
  • iouring (74)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 146.0 days
90th percentile: 868.1 days
Tracked items: 1,711

Most active contributors

Detailed Description

Dragonfly is a modern in-memory data store written in C++ designed as a replacement for Redis and Memcached. It maintains full API compatibility with both Redis and Memcached, allowing users to adopt it without requiring code changes to existing applications. The project is positioned as a high-performance alternative that delivers significantly better throughput and resource efficiency compared to legacy in-memory datastores.

The repository demonstrates substantial development activity and community engagement. According to GitGenius tracking data, the project has processed 1711 issues and pull requests with a median response latency of 0.0 hours, indicating active and responsive maintenance. The most active contributors are romange with 1957 events, kostasrim with 1316 events, and vyavdoshenko with 875 events. Bug reports represent the most common issue type with 911 tracked items, followed by enhancement requests with 269 items and failing tests with 203 items. The project's contributor base overlaps with major repositories including microsoft/vscode, microsoft/typescript, and rust-lang/rust, suggesting involvement from experienced systems developers.

Performance benchmarks presented in the repository show Dragonfly's advantages over Redis and Memcached across various instance types. On an m5.xlarge instance, Dragonfly achieves 279K QPS for SET operations compared to Redis's 190K QPS, and 305K QPS for GET operations versus Redis's 220K QPS. On larger c6gn.16xlarge instances, Dragonfly demonstrates a 25X throughput increase over single-process Redis, reaching 3.8M QPS. In pipeline mode with 30 concurrent operations, Dragonfly reaches 10M QPS for SET and 15M QPS for GET operations. Against Memcached on c6gn.16xlarge, Dragonfly achieves 3844K QPS for SET operations compared to Memcached's 806K QPS, though Memcached shows lower latency in read-heavy workloads.

The implementation leverages modern architectural patterns including multi-threading and fiber-based concurrency to scale vertically with available hardware resources, contrasting with Redis's single-threaded design. Memory efficiency testing shows Dragonfly uses 30 percent less memory than Redis in idle states and avoids significant memory increases during snapshot operations, while Redis memory usage can spike to nearly 3X that of Dragonfly during background saves.

Dragonfly currently supports approximately 185 Redis commands and all Memcached commands except CAS. Configuration options include Redis-compatible parameters like port, bind address, requirepass, and maxmemory, alongside Dragonfly-specific features such as memcached_port for dual-protocol support, cache_mode for novel caching strategies, and snapshot_cron for automated backup scheduling using standard cron syntax. The project supports cluster mode in emulated form and includes admin console access with optional HTTP and RESP protocol support.

The roadmap prioritizes stabilizing basic functionality and implementing native replication with a distributed log format designed for significantly higher replication speeds. The project is classified across multiple domains including high availability, distributed database, performance optimization, transactional support, cloud-native architecture, real-time processing, and low-latency access, reflecting its comprehensive feature set and architectural ambitions.

dragonfly
by
dragonflydbdragonflydb/dragonfly

Repository Details

Fetching additional details & charts...