TiKV is an open-source, distributed, and transactional key-value database designed to provide high performance, scalability, and consistency.
Built in Rust and inspired by technologies like Google’s BigTable, Spanner, and Percolator, TiKV was developed by PingCAP as a storage layer for TiDB, a MySQL-compatible HTAP database.
It is fully ACID-compliant and supports both classical key-value APIs and transactional APIs.
Key Features
- Geo-Replication: TiKV uses the Raft consensus algorithm and a Placement Driver (PD) to enable geo-replication and ensure data consistency across multiple nodes.
- Horizontal Scalability: TiKV can scale to hundreds of terabytes of data by splitting data into Regions that are automatically balanced across nodes using PD.
- Distributed Transactions: TiKV supports externally consistent distributed transactions through a two-phase commit protocol, similar to Google Spanner.
- Coprocessor Framework: Inspired by HBase, TiKV allows users to push computation to the storage layer for distributed processing.
- Integration with TiDB: TiKV works seamlessly with TiDB, enabling a hybrid transactional and analytical processing (HTAP) solution.
TiKV’s architecture is built around several key components:
- Placement Driver (PD): Acts as the cluster manager, handling tasks like load balancing, auto-sharding, and replication.
- Store: Each node contains one or more Stores backed by RocksDB instances for data storage and Raft logs.
- Region: The basic unit of data movement, each Region is replicated across multiple nodes to form a Raft group for fault tolerance.
- Raft Consensus Algorithm: Ensures consistency across replicas by electing a leader for write operations and synchronizing data changes among followers.
TiKV achieves high scalability through its multi-Raft architecture, where each Region can be split or merged dynamically based on size thresholds.
This ensures efficient resource utilization and balanced workloads across nodes. By storing Raft logs and Region data in separate RocksDB instances, TiKV optimizes I/O performance.
TiKV is ideal for applications requiring:
- Strong consistency
- Distributed ACID transactions
- High horizontal scalability
- Geo-replication
As a graduated project of the Cloud Native Computing Foundation (CNCF), TiKV is widely adopted in production environments for its reliability and robust feature set.