High-Performance Distributed Transactional Key-Value Store with Geo-Replication
Mako is a high-performance distributed transactional key-value store system with geo-replication support, built on cutting-edge systems research. Mako's core design-level innovation is decoupling transaction execution from replication using a novel speculative 2PC protocol. Unlike traditional systems where transactions must wait for replication and persistence before committing, Mako allows distributed transactions to execute speculatively without blocking on cross-datacenter consensus. Transactions run at full speed locally while replication happens asynchronously in the background, achieving fault-tolerance without sacrificing performance. The system employs novel mechanisms to prevent unbounded cascading aborts when shards fail during replication, ensuring both high throughput (processing 3.66M TPC-C transactions per second with 10 shards replicated across the continent) and strong consistency guarantees. More details can be found in our OSDI'25 paper.
Prerequisites: Debian 12 or Ubuntu 24.04
# Clone with submodules
git clone --recursive https://github.com/makodb/mako.git
cd mako
# Install dependencies
bash apt_packages.sh
source install_rustc.sh
bash src/mako/update_config.sh
# Build
make -j32
# Run tests
./ci/ci.sh allResults from OSDI'25 evaluation (TPC-C benchmark on Azure):
| Configuration | Throughput |
|---|---|
| Single Shard (24 threads) | 960K TPS |
| 10 Shards Geo-Replicated | 3.66M TPS |
- Serializable Transactions - Full ACID with strongest isolation
- Geo-Replication - Multi-datacenter with configurable consistency
- Pluggable Consensus - Paxos (default) or Raft
- High-Performance Storage - Masstree in-memory index, RocksDB persistence
- Horizontal Scalability - Automatic sharding across nodes
- Advanced Networking - DPDK/RDMA support for ultra-low latency
Mako provides a familiar key-value API with distributed transactions, geo-replication, and fault tolerance. Perfect for applications that need:
- Horizontal scalability across multiple nodes
- ACID transactions spanning multiple keys or partitions
- Geographic replication for disaster recovery
Mako includes a Redis-compatible layer for:
- Strong consistency with serializable transactions
- Multi-key atomic operations with full ACID guarantees
- Geographic distribution with automatic failover
| Document | Description |
|---|---|
| Development Guide | Build system, testing, architecture |
| Transport Backends | RPC and networking options |
| CLAUDE.md | Codebase guidelines for AI assistants |
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make changes with tests
- Ensure tests pass (
./ci/ci.sh all) - Submit a pull request
MIT License - see LICENSE for details.
- Research Team: Mako research and development team
- Dependencies: Built on Janus, Masstree, RocksDB, eRPC, and other open-source projects