# tikv/tikv

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tikv-tikv).**

16,535 stars · 2,246 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/tikv/tikv
- Homepage: https://tikv.org
- awesome-repositories: https://awesome-repositories.com/repository/tikv-tikv.md

## Topics

`cncf` `consensus` `distributed-transactions` `hacktoberfest` `key-value` `raft` `rocksdb` `rust` `tidb` `tikv`

## Description

TiKV is a distributed transactional key-value store designed for horizontal scalability and high availability. It functions as a storage engine that maintains massive datasets across a cluster of physical nodes, ensuring that information remains accessible and consistent even when individual hardware components fail.

The system utilizes a consensus-based replication model to synchronize data across nodes, ensuring that all replicas agree on the order of operations. It manages data distribution through a sharding mechanism that partitions large datasets into smaller groups, each governed by independent consensus instances. To handle concurrent access, the engine employs multi-version concurrency control, allowing for consistent reads without blocking ongoing write operations.

The architecture supports complex distributed transactions by coordinating multi-stage voting processes to ensure that all participating nodes either commit or abort changes together. It maintains data integrity through a storage engine that organizes information into sorted files on disk to optimize performance. The cluster maintains a consistent view of its state and topology through peer-to-peer communication and centralized orchestration.

## Tags

### Data & Databases

- [Distributed Key-Value Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/specialized-storage-engines/distributed-key-value-stores.md) — Provides a horizontally scalable database engine that offers transactional consistency and low-latency storage for large-scale distributed systems. ([source](https://tikv.org/docs/latest/concepts/overview/))
- [Distributed Databases](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/distributed-databases.md) — Provides a high-availability storage architecture that manages data placement and node health to ensure reliable access across multiple physical locations.
- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Provides horizontally scalable database storage with low-latency access to massive datasets across multiple physical server nodes.
- [Storage Engines](https://awesome-repositories.com/f/data-databases/storage-engines.md) — Manages data integrity across distributed nodes by applying atomic read and write operations within a storage architecture.
- [Distributed Sharding Architectures](https://awesome-repositories.com/f/data-databases/distributed-sharding-architectures.md) — Partitions large datasets into smaller groups managed by independent consensus instances to allow horizontal scaling across a cluster of physical nodes.
- [Atomic Transaction Execution](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-integration/database-integrations/atomic-transaction-execution.md) — Ensures data consistency across distributed operations by grouping multiple read and write requests into a single atomic unit. ([source](https://tikv.org/docs/latest/concepts/overview/))
- [Transaction Management](https://awesome-repositories.com/f/data-databases/transaction-management.md) — Manages concurrent data access by keeping multiple versions of records to allow consistent reads without blocking ongoing write operations.
- [Cluster Topology Management](https://awesome-repositories.com/f/data-databases/cluster-topology-management.md) — Coordinates data distribution and node health across a network to maintain high availability and ensure information remains accessible. ([source](https://tikv.org/docs/latest/concepts/overview/))

### Networking & Communication

- [Raft Consensus Implementations](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-systems-coordination/distributed-consensus-protocols/raft-consensus-implementations.md) — Maintains data consistency across distributed nodes by using a consensus algorithm to ensure all replicas agree on the order of operations.

### Software Engineering & Architecture

- [Distributed Storage Clusters](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems/distributed-data-management/distributed-storage-clusters.md) — Maintains massive datasets across a cluster of nodes to provide scalable and low-latency storage for large-scale deployments.
- [Distributed Transaction Management](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-management.md) — Ensures data consistency across distributed operations by applying transactional guarantees to complex requests so all changes succeed or fail together.
- [Commit Protocols](https://awesome-repositories.com/f/software-engineering-architecture/commit-protocols.md) — Coordinates distributed transactions by using a multi-stage voting process to ensure all participating nodes either commit or abort changes together.

### Part of an Awesome List

- [Data Management](https://awesome-repositories.com/f/awesome-lists/data/data-management.md) — Distributed transactional key-value database engine.
- [Database Systems](https://awesome-repositories.com/f/awesome-lists/data/database-systems.md) — Distributed key-value database.
- [Rust Projects](https://awesome-repositories.com/f/awesome-lists/devtools/rust-projects.md) — Listed in the “Rust Projects” section of the Awesome For Beginners awesome list.

### DevOps & Infrastructure

- [High Availability Clusters](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters.md) — Coordinates data distribution and node health through a centralized management layer to ensure continuous service availability.
- [Cluster Membership Protocols](https://awesome-repositories.com/f/devops-infrastructure/cluster-membership-protocols.md) — Disseminates node health and topology information through peer-to-peer communication to maintain a consistent view of the cluster state.
