mrkeyoor.com_
Fri 18 Sept 03:56 UTC
Dataevaluationupdated 18 Sept 2026

tikv review

TiKV is a distributed key-value database that keeps data consistent across multiple machines and supports transactions. It is the storage layer beneath TiDB, but it can also run with its own clients when an application needs key-value access rather than SQL.

Verdict

Our run on 3 CPUs installed 822 TiKV packages in 195 seconds, then both build and tests hit 900-second caps while still compiling. Adopt it when transactional storage across machines is a hard requirement and your team can operate PD, Raft-backed data, and long native builds. For one small service or a team that only wants SQL, TiKV creates work at the wrong layer.

We ran it

Lab card: what happened when we ran tikvScreenshot of tikv (tikv.org)
Install✓ · 195s822 packages
Build✗ timed out · 900s
Tests✗ timed out · 900sran, no count parsed
Repo1551 files~678,854 lines of source · 42 MB · 1 CI workflows · Dockerfile · tests dir

Answers from our run

Does tikv build from source?

Dependencies installed in 195 seconds (822 packages), and the build failed. We cloned commit 51b411a into a clean Debian container with 3 CPUs and no project-specific setup.

Do tikv's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Who should not use tikv?

Application teams that expect SQL from the storage process itself: the README describes TiKV as a key-value database and points to TiDB for the MySQL-compatible layer.

What are the alternatives to tikv?

etcd, CockroachDB, TiDB. Our run on 3 CPUs installed 822 TiKV packages in 195 seconds, then both build and tests hit 900-second caps while still compiling.

Setup2/5Install passed, but build and tests each exceeded 900 seconds
Docs4/5Clear architecture and contributor paths, split across several sites
Community5/5Fresh pushes, active issue work, and established governance
Maturity5/5CNCF-graduated project with current maintenance releases

Discussed on

  1. hnTiKV: A High Performance Transactional Key-Value Database3 points

Who it’s for

Database platform teams that need transactional key-value storage spread across several machines.
TiDB operators who want to understand and control the storage layer under their SQL cluster.
Rust contributors prepared to work with Raft, RocksDB, gRPC, and a large native build.
Infrastructure teams that already monitor replication, disk behavior, and cluster scheduling.

Who it’s NOT for

Application teams that expect SQL from the storage process itself: the README describes TiKV as a key-value database and points to TiDB for the MySQL-compatible layer.
Small service owners who cannot operate Placement Driver: the contribution guide says PD is required even for a one-node test cluster.
Contributors who need a complete build and test loop on a modest CI runner: both steps reached our 900-second cap on 3 CPUs.
Teams whose standard deployment requires prebuilt Windows binaries: the README quick start lists only Linux and macOS on amd64 or arm64.

Setup reality

Our sandbox install succeeded in 195 seconds and pulled 822 packages. The build timed out at 900 seconds, and the test command also timed out at 900 seconds. The test log was still compiling dependencies and the tikv-server, tikv-ctl, and raft-engine-ctl targets when time ran out.

A source workspace needs the pinned nightly Rust toolchain, Make, CMake, awk, protoc, and a C++ compiler. Running TiKV needs Placement Driver even for one test node. A local cluster does not require hosted credentials, while cloud encryption paths add provider configuration.

The binary quick start covers Linux and macOS on amd64 or arm64. The contribution guide recommends raising the open-file limit above 82,920. Docker Compose starts a 3-PD and 3-TiKV development cluster from nightly images. It skips the source build and is documented for development and testing.

TiKV supplies transactional storage beneath TiDB

TiKV's 1,551-file source tree supplies the transactional storage layer beneath TiDB. Put it in a stack and you are also choosing Placement Driver, Raft groups, and an operating model built for several machines. The payoff is a key-value database with consistent distributed transactions and automatic movement of data between nodes. Direct clients can use raw or transactional key-value APIs. Teams seeking a MySQL-compatible endpoint should start their evaluation one layer higher, with TiDB.

This is a substantial codebase before a cluster starts. Our checkout contained about 678,854 lines of source in 42 MB. Rust is the primary language, with C++ components in RocksDB and gRPC. That mix explains why the contributor guide asks for more than Cargo: Make, CMake, protoc, awk, and a C++ compiler all sit on the source-build path.

Placement Driver is required even for a one-node trial

The 42 MB source checkout cannot run as a useful cluster without Placement Driver. Even a single-node test setup needs PD to record store and region metadata, check replication rules, and direct balancing. A production cluster then divides data into regions, gives each region its own Raft group, and stores replicas across nodes. That machinery is the reason to choose TiKV. It also rules out the experience of dropping one database process beside an application.

The easiest evaluation path avoids compiling the 678,854-line tree. The README offers downloadable binaries and a Compose setup with 3 PD plus 3 TiKV nodes using nightly images. Those paths let you inspect status endpoints and client behavior quickly. Production still calls for decisions about disk sizing, replica placement, backup, upgrades, and failure recovery. The contribution guide also recommends an open-file limit above 82,920.

What happened when we ran it

Our sandbox installed TiKV's dependencies in 195 seconds and pulled 822 packages. Our measurement setup used commit 51b411a in an unprivileged Debian container with 3 CPUs and 12 GB of RAM. The install completed, so dependency resolution itself did not stop the trial. The next two steps did not finish within the allotted time.

The build hit its 900-second cap. The test command reached the same 900-second cap, also without completing. Its final lines were compilation progress, including zstd, tikv-server, tikv-ctl, filedescriptor, gag, and raft-engine-ctl. The log showed no test assertion or runtime crash before cutoff. We can say the commands timed out while compiling. We cannot turn that into a passed or failed test suite.

The result matters for contributor planning. A cold runner with 3 CPUs can spend at least 15 minutes on either step and still not return an answer. Faster hardware, cached artifacts, or narrower targets may change that experience, although our measurement does not quantify those paths. Budget the first development loop before assigning a small CI runner or expecting a quick local patch cycle.

Source development needs a long feedback loop

After our 900-second build timeout, TiKV's focused commands look less like conveniences and more like necessities. The project pins a nightly Rust toolchain and wraps common work in Make targets. make dev formats, builds with Clippy, and runs tests, while narrower tests can go through project scripts or nextest. The guide admits that some tests fail intermittently or do not pass on every platform, raising the bar for deciding whether a red job belongs to a patch.

Our 42 MB checkout expanded into 822 installed packages before either full compile finished. Maintainers reduce unnecessary recompilation by recommending the same environment wrapper used by the Makefile. Even with that advice, changes near RocksDB, gRPC, Raft, or server binaries involve native code and many crates. TiKV makes more sense in a team with shared caches and dedicated builders than on ad hoc laptops with short job limits.

Production ownership extends beyond Rust

A 12 GB compile sandbox says nothing about production memory needs, which must come from workload testing. Operators also need to watch PD, region placement, RocksDB, disk pressure, and client behavior during node failures. Open issue 20074 reports a scheduler on v8.5.6 continuing to return scheduler is busy after its memory quota fills. One report does not describe every deployment. It is a concrete reason to stage memory-pressure behavior with the version and workload you intend to run.

The local Compose cluster has 6 processes before an application connects, while our source test used 12 GB of RAM and still spent 900 seconds compiling. Neither figure predicts production capacity. They show why a successful quick start is only the first checkpoint. A serious evaluation needs failure drills, upgrade rehearsal, disk and memory limits, backups, and application-level transaction tests on representative hardware.

September 2026 activity shows active maintenance

GitHub recorded a push on September 18, 2026, one day after the v7.5.8 maintenance release. Against that activity, our 1,551-file snapshot captures only one moving point in the project. The repository had 16,860 stars and 1,811 combined open issues and pull requests when fetched. An issue-only search found 1,350 open issues, while 36 issues had closed in the preceding month. That is a large queue attached to visible current work.

TiKV earns consideration when the storage problem already demands consensus, transactions, and horizontal placement. The install completed in 195 seconds. Two 900-second timeouts then made source work expensive on modest hardware. Use the binary or TiUP route for evaluation, then involve the people who will own PD and failure recovery. If nobody on the team wants that job, choose a smaller store or consume TiKV through TiDB.

Alternatives

ProjectWhat it isPick it when
etcd gh↗A distributed key-value store focused on small, critical coordination data.pick this instead when service discovery, locks, or cluster metadata matter more than TiKV's transactional data layer.
CockroachDB gh↗A distributed SQL database with the relational interface in the same project.pick this instead when applications need distributed SQL without pairing a separate storage layer with TiDB.
TiDB gh↗A MySQL-compatible distributed database that uses TiKV as its main transactional storage engine.pick this instead when the application needs SQL and TiKV is an implementation layer rather than the product interface.

What people are saying

  1. [github-trending] tikv/tikv

Sources

  1. TiKV README
  2. TiKV contribution guide
  3. TiKV v7.5.8 release
  4. TiKV issue 20074: scheduler remains busy after memory quota

More data reviews

awesome-machine-learning · zenoh · fonts · cockroach · dbt · GeoLibre · the whole board →