Skip to content
Weihai Shen edited this page Nov 7, 2025 · 12 revisions

Goal

Make Mako practical and usable by others.


Redis-Compatible Client @jiyang

We aim to provide a Redis-compatible API so that users can easily adopt MakoDB without modifying existing codebases.

Status:
Basic Redis client integration works — we can issue simple GET and PUT operations to MakoDB.

Next Steps:

  1. Evaluate the throughput of basic PUT/GET operations (non-transactional) to establish performance baselines.
  2. Integrate the Redis interface with Mako’s transaction layer and expand operation support.

Refactor Mako @weihai @shuai

Progress:

  • Compile Mako as a standalone third-party library (libmako), similar to RocksDB.
  • Add a socket-based transport layer to the eRPC (DPDK) framework, removing the dependency on DPDK/RDMA for users.

Next Steps:

  • In Progress: Make interfaces easy to use for users
  • Improve robustness and long-term stability (no crashes or memory leaks)
  • Add comprehensive test coverage
  • Replace the eRPC layer with the our rrr framework.

Dynamic Sharding @santa

We want users to define custom sharding strategies for their databases.

Status:
Currently, sharding is static; both the number of shards and the key-to-shard mapping (via a hardcoded hash function) must be configured at startup.

Next Steps:

  1. Allow users to specify sharding policies dynamically

Persistent Storage @weihai @zeyu

We aim to persist data to disk so Mako can handle datasets larger than main memory.

Status:
All in-memory data are backed up to RocksDB on disk. A watermark mechanism controls visibility for clients. However, all active data still reside in memory.

In Progress: Zeyu is working on persist Raft's in-memory data into disk, and can guarantee avaialbility after crash

Next Steps:

  1. Stress-test large-scale persistence to fully utilize disk bandwidth.
  2. Design hybrid access paths that serve reads from both disk and memory.
  3. Support full database reload from disk.

Replication Layer (Raft) @Krish

Mako’s current Paxos implementation is outdated. Our Janus framework already supports modern Paxos and Raft implementations with richer features.

In Progress: Krish is integrating the latest Janus replication framework into Mako.

Clone this wiki locally