Skip to content

History

Origin

TiKV was started in 2016 at PingCAP to complement TiDB with a distributed storage backend [4]. The repository was created on 2015-12-31. The design was built on established systems papers: Google's BigTable, Spanner, and Percolator for the data model and distributed transactions, and the Raft paper for consensus [4]. Rather than reinventing a storage engine, TiKV layers MVCC and Percolator two-phase commit on top of RocksDB, with Raft providing replication and a separate Placement Driver handling sharding and timestamp allocation.

Timeline

YearMilestone
2015Repository created (2015-12-31) [9]
2016Development started at PingCAP as the storage layer for TiDB [4]
2018Accepted into the CNCF Sandbox (2018-08-28) [3]
2019TOC votes to move TiKV to Incubating; vote announced 2019-05-21 [5] [6]
2020Graduated from CNCF (2020-09-02), the 12th project to graduate [1] [2]

How it evolved

By graduation in 2020, TiKV reported that production adoption had roughly doubled to around 1,000 companies, contributors to the core repository had grown from 78 to 226, and the project had 7 maintainers across multiple companies [1]. As part of the graduation process, CNCF funded a third-party security audit by Cure53, carried out in February and March 2020 [1].

A major architectural shift since then is Raftstore v2, also called partitioned-raft-kv, which gives each Region its own RocksDB tablet instead of sharing one instance. The two engines coexist in the codebase: EngineType::RaftKv is the original single-RocksDB design and EngineType::RaftKv2 is the partitioned variant, selected at runtime in cmd/tikv-server/src/main.rs:248. The v2 code lives in components/raftstore-v2. Because the transaction and MVCC layers talk to storage only through the Engine trait, the same transaction code runs unchanged on both.

Where it stands now

The latest stable release at the time of writing is v8.5.6 (2026-04-14), and master is in development toward 9.0.0-beta.2 [9]. Governance is documented in the tikv/community repository, with a maintainer set drawn from multiple companies including PingCAP, Zhihu, JD Cloud, and Yidian Zixun [1] [11]. The main implementation lives in tikv/tikv, while the Placement Driver is tikv/pd and the client libraries are separate repositories such as tikv/client-rust.

Sources