Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Overview

NoKV Logo

NoKV

High-Performance, Cloud-Native Distributed Key-Value Database

CI Coverage Go Report Card Go Reference Mentioned in Awesome DBDB.io

Go Version License DeepWiki

🚀 Quick Start    🏗️ Architecture



🔥 Why NoKV?

NoKV is designed for modern hardware and distributed workloads. It combines the best of academic research (WiscKey, W-TinyLFU) with industrial-grade engineering (Raft, Percolator).

🏎️ Extreme Performance

Lock-light commit queue and Batch WAL writing deliver write throughput that saturates NVMe SSDs.

🧠 Smart Caching

Built-in Ristretto block cache plus byte-budgeted index/bloom caches keep hot working sets close to the read path.

🌐 Distributed Consistency

Multi-Raft replication for high availability. Percolator model for cross-row ACID transactions. Snapshot Isolation by default.

🔌 Redis Compatible

Drop-in replacement for Redis. Supports the RESP protocol so you can use your existing tools and client libraries.


Benchmark methodology and result snapshots are maintained only in: ../benchmark/README.md


🏗️ Architecture

%%{init: {
  "themeVariables": { "fontSize": "20px" },
  "flowchart": { "nodeSpacing": 55, "rankSpacing": 75, "curve": "basis" }
}}%%
graph TD
    Client["Client / Redis"] -->|RESP Protocol| Gateway["Redis Gateway"]
    Gateway -->|RaftCmd| RaftStore
    
    subgraph "RaftStore (Distributed Layer)"
        RaftStore -->|Propose| RaftLog["Raft Log (WAL)"]
        RaftLog -->|Consensus| Apply["Apply Worker"]
    end
    
    subgraph "Storage Engine (LSM)"
        Apply -->|Batch Set| MemTable
        MemTable -->|Flush| SSTable["SSTables (L0-L6)"]
        SSTable -->|Compact| SSTable
        
        Apply -->|Large Value| VLog["Value Log"]
    end
    
    subgraph "Cache Layer"
        BlockCache["Block Cache (Ristretto)"] -.-> SSTable
        IndexCache["Index Cache (W-TinyLFU, byte budget)"] -.-> SSTable
    end
Loading
Built with ❤️ by feichai0017 and contributors.