View Project
Lally is a distributed in-memory key-value database, Rust and Tokio, loosely inspired by Riak and Voldermort. It prioritizes high availability, adhering to the AP (Availability and Partition Tolerance) aspects of the CAP theorem. Lally is being designed for high concurrency, extendability via hooks, and features persistent append-only file logging for reliable crash recovery.
High Performance: A highly concurrent, thread-safe, in-memory key-value database optimized to utilize all available CPU cores responsibly.
Extensible Design: Hooks-based architecture allows custom behaviors to be invoked during any key-value operation.
Crash Recovery: Supports append-only file (AOF) logging for robust crash recovery, easy backup, replay, and data restoration.
Cluster Joining: Enables seamless IP-based cluster joining through a seed node for distributed operation.
Data Replication: Achieves data replication across cluster nodes using lightweight and efficient Protocol Buffers through gossipping
Connection Pooling: Reduces overhead by pooling gRPC connections, avoiding repeated connection establishment for inter-node communication.
Quorum Flexibility: Configurable read and write quorum settings to match the size and needs of the cluster.
Flexible Configuration: YAML-based configuration that can be overridden using command-line arguments for customization.
Graceful Shutdown: Ensures proper cluster exit and resource cleanup during shutdown, maintaining cluster stability.
Comprehensive Logging: Includes extensive logging capabilities for debugging and tracing operations effectively.
User-friendly HTTP API: Offers an intuitive and straightforward HTTP API for managing the key-value store.
Read Repair Mechanism: Automatically resolves stale or outdated data during read operations to maintain consistency.
Safe and Reliable (👀): Free from unsafe code blocks
Built with