Repository Analysis

tikv/tikv

Distributed transactional key-value database, originally created to complement TiDB

2.2 Likely human-written View on GitHub
2.2
Adjusted Score
2.2
Raw Score
100%
Time Factor
2026-05-28
Last Push
16,700
Stars
Rust
Language
701,287
Lines of Code
1453
Files
891
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 83HIGH 3MEDIUM 23LOW 782

Pattern Findings

891 matches across 12 categories. Click a row to expand file-level details.

Over-Commented Block760 hits · 718 pts
SeverityFileLineSnippet
LOWCargo.toml221sysinfo = { git = "https://github.com/tikv/sysinfo", branch = "0.26-fix-cpu" }
LOWdeny.toml61 # See https://github.com/sfackler/rust-openssl/pull/2266
LOWdeny.toml81 # also upgrade the OpenSSL to v3.x which causes performance degradation.
LOWcmd/tikv-ctl/src/cmd.rs421 /// The target region
LOWcmd/tikv-ctl/src/cmd.rs561 #[structopt(short = "v")]
LOWcmd/tikv-ctl/src/cmd.rs581 /// fork-readonly-tikv is for creating a tikv-server agent based on a
LOWcmd/tikv-ctl/src/cmd.rs601 ///
LOWcmd/tikv-ctl/src/cmd.rs781 #[structopt(long)]
LOWtests/failpoints/mod.rs1// Copyright 2017 TiKV Project Authors. Licensed under Apache-2.0.
LOWtests/failpoints/cases/test_snap.rs1181 // k2 (split point)
LOWtests/failpoints/cases/test_hibernate.rs361 rx.recv_timeout(Duration::from_secs(1)).unwrap(),
LOWtests/failpoints/cases/test_conf_change.rs201 cluster.must_put(key, value);
LOWtests/failpoints/cases/test_replica_read.rs341 router.send_raft_message(read_index_msg).unwrap();
LOWtests/failpoints/cases/test_disk_snap_br.rs1// Copyright 2023 TiKV Project Authors. Licensed under Apache-2.0.
LOWtests/failpoints/cases/test_engine.rs61// note: before rocksdb/pull/347, lock is called before on_memtable_sealed.
LOWtests/failpoints/cases/test_split_region.rs581 // [k2, +∞) │ │ │ │ │ │
LOWtests/failpoints/cases/test_split_region.rs1441 fail::remove("on_apply_batch_split");
LOWtests/failpoints/cases/test_early_apply.rs101/// between restarting. However, this guarantee can be broken by
LOWtests/failpoints/cases/test_sst_ingest.rs21use test_raftstore::*;
LOWtests/failpoints/cases/test_merge.rs961
LOWtests/failpoints/cases/test_merge.rs1061 }
LOWtests/failpoints/cases/test_stale_read.rs261 assert_ne!(leader1.get_store_id(), leader1000.get_store_id());
LOWtests/failpoints/cases/test_stale_read.rs281 // Region 1000 F L F
LOWtests/integrations/raftstore/test_snap.rs281 must_get_equal(&cluster.get_engine(3), b"k11", b"v11");
LOWtests/integrations/raftstore/test_stale_peer.rs21/// - Peer B gets down. And then A adds D, E, F into the cluster.
LOWtests/integrations/raftstore/test_stale_peer.rs101 let mut cluster = new_server_cluster(0, count);
LOWtests/integrations/raftstore/test_unsafe_recovery.rs1381 assert_eq!(cluster.must_get(b"k4"), Some(b"v4".to_vec()));
LOWtests/integrations/raftstore/test_lease_read.rs21// A helper function for testing the lease reads and lease renewing.
LOWtests/integrations/raftstore/test_lease_read.rs661/// 1. Add heartbeat msg filter.
LOWtests/integrations/raftstore/test_bootstrap.rs281 let msg = PeerMsg::FlushBeforeClose { tx };
LOWtests/integrations/storage/test_titan.rs301 // L5: [delete(a_7)]
LOWtests/integrations/storage/test_storage.rs921
LOWetc/config-template.toml1## TiKV config template
LOWetc/config-template.toml21## Use abort when TiKV panic. By default TiKV will use _exit() on panic, in that case
LOWetc/config-template.toml41## this threshold, it can squeeze some internal components (e.g. evicting cached Raft entries)
LOWetc/config-template.toml61# background-read-bandwidth = "0B"
LOWetc/config-template.toml81## max log file keep days
LOWetc/config-template.toml101
LOWetc/config-template.toml121## The following configurations only take effect when `use-unified-pool` is false.
LOWetc/config-template.toml141## Size of the stack for each thread in the thread pool.
LOWetc/config-template.toml161# max-tasks-per-worker-normal = 2000
LOWetc/config-template.toml181## Listening address.
LOWetc/config-template.toml201## Size of the thread pool for the gRPC server.
LOWetc/config-template.toml221
LOWetc/config-template.toml241## By default, it will be set to 12.5% of the available memory of TiKV.
LOWetc/config-template.toml261## If handle time is larger than the threshold, it will print slow log in endpoint.
LOWetc/config-template.toml281
LOWetc/config-template.toml301
LOWetc/config-template.toml321## It is recommended to turn on shared block cache. Since only the total cache size need to be
LOWetc/config-template.toml341## Support change dynamically.
LOWetc/config-template.toml361## in one second. Internally it prefers throttling background operations over foreground
LOWetc/config-template.toml381
LOWetc/config-template.toml401## can improve TiKV performance.
LOWetc/config-template.toml421## Store min resolved ts tick interval for reporting to PD.
LOWetc/config-template.toml441# raft-log-gc-tick-interval = "3s"
LOWetc/config-template.toml461## How long the peer will be considered down and reported to PD when it hasn't been active for this
LOWetc/config-template.toml481# region-compact-min-redundant-rows = 50000
LOWetc/config-template.toml501## Use how many threads to handle log apply
LOWetc/config-template.toml521# split-region-on-table = false
LOWetc/config-template.toml541
700 more matches not shown…
Hallucination Indicators83 hits · 690 pts
SeverityFileLineSnippet
CRITICALcomponents/pd_client/src/client_v2.rs499 let env = self.raw_client.core.context.connector.env.clone();
CRITICALcomponents/raftstore/src/store/fsm/store.rs1017 self.previous_append = self.poll_ctx.raft_metrics.ready.append.get();
CRITICALcomponents/raftstore/src/store/fsm/store.rs1018 self.previous_message = self.poll_ctx.raft_metrics.ready.message.get();
CRITICALcomponents/raftstore/src/store/fsm/store.rs1019 self.previous_snapshot = self.poll_ctx.raft_metrics.ready.snapshot.get();
CRITICALcomponents/raftstore/src/store/fsm/store.rs2401 self.ctx.raft_metrics.message_dropped.stale_msg.inc();
CRITICALcomponents/raftstore/src/store/fsm/store.rs2550 self.ctx.raft_metrics.message_dropped.region_overlap.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs876 self.ctx.raft_metrics.ready.propose_delay.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs963 target_index: self.fsm.peer.raft_group.raft.raft_log.last_index(),
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1004 target_index: self.fsm.peer.raft_group.raft.raft_log.last_index(),
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1058 self.fsm.peer.raft_group.raft.raft_log.last_index()
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1096 let target_index = self.fsm.peer.raft_group.raft.raft_log.last_index();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1220 let pending_admin = self.fsm.peer.raft_group.raft.has_pending_conf()
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1790 self.fsm.peer.raft_group.raft.election_timeout() * 2
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1796 } else if self.fsm.peer.raft_group.raft.promotable()
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1811 self.fsm.peer.raft_group.raft.randomized_election_timeout()
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1845 if self.fsm.peer.raft_group.raft.r.raft_log.last_index()
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1932 self.fsm.peer.raft_group.raft.set_check_quorum(true);
CRITICALcomponents/raftstore/src/store/fsm/peer.rs1974 self.fsm.peer.raft_group.raft.set_check_quorum(false);
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2022 self.fsm.peer.raft_group.raft.set_check_quorum(true);
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2024 if self.fsm.peer.raft_group.raft.promotable() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2104 for (id, vote) in self.fsm.peer.raft_group.raft.prs().votes() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2330 self.ctx.raft_metrics.ready.has_ready_region.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2745 self.ctx.raft_metrics.propose.unsafe_read_index.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2879 self.ctx.raft_metrics.message_dropped.disk_full.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs2890 self.ctx.raft_metrics.message_dropped.non_witness.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3002 self.ctx.raft_metrics.message_dropped.stale_msg.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3177 for (peer_id, p) in self.fsm.peer.raft_group.raft.prs().iter() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3258 self.fsm.peer.raft_group.raft.ping();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3445 self.ctx.raft_metrics.message_dropped.stale_msg.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3474 None => self.ctx.raft_metrics.message_dropped.applying_snap.inc(),
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3581 self.ctx.raft_metrics.message_dropped.stale_msg.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3692 self.ctx.raft_metrics.message_dropped.region_no_peer.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3722 self.ctx.raft_metrics.message_dropped.stale_msg.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3757 self.ctx.raft_metrics.message_dropped.region_overlap.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs3820 self.ctx.raft_metrics.message_dropped.region_overlap.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs4101 None => self.ctx.raft_metrics.message_dropped.applying_snap.inc(),
CRITICALcomponents/raftstore/src/store/fsm/peer.rs4467 if cp.index >= self.fsm.peer.raft_group.raft.raft_log.first_index() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs4676 let mut pessimistic_locks = self.fsm.peer.txn_ext.pessimistic_locks.write();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5455 let mut pessimistic_locks = self.fsm.peer.txn_ext.pessimistic_locks.write();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5578 self.fsm.peer.raft_group.raft.clear_commit_group();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5579 self.fsm.peer.raft_group.raft.assign_commit_groups(gb);
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5754 let first_index = self.fsm.peer.raft_group.raft.r.raft_log.first_index();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5930 self.ctx.raft_metrics.invalid_proposal.force_leader.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5960 self.ctx.raft_metrics.invalid_proposal.not_leader.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5972 self.ctx.raft_metrics.invalid_proposal.witness.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5989 self.ctx.raft_metrics.invalid_proposal.witness.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs5996 self.ctx.raft_metrics.invalid_proposal.non_witness.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs6025 self.ctx.raft_metrics.invalid_proposal.stale_command.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs6037 self.ctx.raft_metrics.invalid_proposal.epoch_not_match.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs6286 for (peer_id, p) in self.fsm.peer.raft_group.raft.prs().iter() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs6350 self.ctx.raft_metrics.raft_log_gc_skipped.reserve_log.inc();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs6456 self.fsm.peer.request_index = self.fsm.peer.raft_group.raft.raft_log.last_index();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs7141 let mut pessimistic_locks = self.fsm.peer.txn_ext.pessimistic_locks.write();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs7152 let transferring_leader = self.fsm.peer.raft_group.raft.lead_transferee.is_some();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs7411 let mut pessimistic_locks = self.fsm.peer.txn_ext.pessimistic_locks.write();
CRITICALcomponents/raftstore/src/store/fsm/peer.rs7499 if self.fsm.peer.consistency_state.hash.is_empty() {
CRITICALcomponents/raftstore/src/store/fsm/peer.rs7527 && !self.fsm.peer.consistency_state.hash.is_empty()
CRITICALcomponents/raftstore-v2/src/operation/query/mod.rs91 self.store_ctx.raft_metrics.propose.local_read.inc();
CRITICALcomponents/server/src/server2.rs546 self.core.config.resource_metering.precision.as_millis(),
CRITICALcomponents/server/src/server2.rs560 self.core.config.resource_metering.receiver_address.clone(),
23 more matches not shown…
AI Slop Vocabulary14 hits · 40 pts
SeverityFileLineSnippet
MEDIUMetc/config-template.toml17## Enable io snoop which utilize eBPF to get accurate disk io of TiKV
MEDIUM…mponents/raftstore/src/coprocessor/split_check/keys.rs164 // if bucket checker using scan is added, to utilize the scan,
MEDIUMcomponents/raftstore/src/store/config.rs334 /// from entry cache, if they utilize memory more than
MEDIUMcomponents/raftstore/src/store/fsm/peer.rs4552 // to utilize `collect_pending_peers` in `heartbeat_pd` to avoid
MEDIUMcomponents/snap_recovery/src/data_resolver.rs191// batch) a more robust test need to figure out what is best.
MEDIUMcomponents/resolved_ts/src/resolver.rs97 // The region read progress used to utilize `resolved_ts` to serve stale read request
MEDIUMcomponents/causal_ts/src/tso.rs136/// 2. Fully utilize cached TSO when some regions require latest TSO (e.g. in
MEDIUMcomponents/tidb_query_aggr/src/lib.rs84 // However current aggregation executor cannot utilize it.
MEDIUMscripts/check-bins.py4# utilize sse4.2 extensions.
MEDIUMsrc/server/config.rs243 /// or dropped, if they utilize memory more than
MEDIUMsrc/server/gc_worker/compaction_filter.rs825 // won't utilize much CPU. So always perform GC at the bottommost level
MEDIUMsrc/storage/txn/actions/common.rs39 // Note that the scan can also utilize `last_change`. So once it finds a LOCK
MEDIUMsrc/storage/mvcc/reader/scanner/backward.rs302 // we don't need to seek any more and we can just utilize `last_version`.
MEDIUMsrc/storage/raw/store.rs24// TODO: refactor to utilize generic type `KvFormat` and eliminate matching
Decorative Section Separators7 hits · 30 pts
SeverityFileLineSnippet
MEDIUMtests/failpoints/cases/test_snap.rs1184 // ───────────────────┼──────────────────
MEDIUMtests/failpoints/cases/test_split_region.rs578 // ┌───────────┐ ┌───────────┐ ┌───────────┐
MEDIUMtests/failpoints/cases/test_split_region.rs582 // ───────────────────┼───────────┼──┼───────────┼──┼───────────┼──
MEDIUMtests/failpoints/cases/test_split_region.rs586 // └───────────┘ └───────────┘ └───────────┘
MEDIUMcomponents/backup-stream/src/metrics.rs20 // ┌─────────┐ ┌────────┐ ┌───────┐
MEDIUMcomponents/backup-stream/src/metrics.rs21 // │ RUNNING ├──────► PAUSED ├──────► ERROR │
MEDIUMcomponents/backup-stream/src/metrics.rs23 // └───────────────┴───────────────┘
Verbosity Indicators11 hits · 20 pts
SeverityFileLineSnippet
LOWtests/failpoints/cases/test_storage.rs2444 // Step 1: T1 acquires an exclusive lock.
LOWtests/failpoints/cases/test_storage.rs2447 // Step 2: T2 (legacy) tries to acquire an exclusive lock, gets blocked.
LOWtests/failpoints/cases/test_storage.rs2469 // Step 3: T3 (resumable) tries to acquire an exclusive lock, gets blocked.
LOWtests/failpoints/cases/test_storage.rs2473 // Step 4: Release T1's exclusive lock.
LOWtests/failpoints/cases/test_storage.rs2478 // Step 5: T4 acquires a shared lock before T3 resumes.
LOWtests/failpoints/cases/test_storage.rs2482 // Step 6: Remove the pause to allow delayed wake up, T3 will be woken up
LOWtests/failpoints/cases/test_storage.rs2487 // Step 7: Now T3's AcquirePessimisticLockResumed is about to execute.
LOWtests/integrations/server/raft_client.rs456 // Step 1: Send messages to establish connections for stores 1, 2, 3
LOWtests/integrations/server/raft_client.rs481 // Step 2: Add more stores (4, 5) to test dynamic store detection
LOWsrc/storage/mvcc/reader/scanner/forward.rs233 // In SI, we need to check if the lock will cause conflict.
LOWsrc/storage/mvcc/reader/scanner/forward.rs251 // key that does not have a write. In SI, we need to check if the
Cross-Language Confusion2 hits · 12 pts
SeverityFileLineSnippet
HIGHmetrics/grafana/common.py1016 # Fix grafana heatmap migration panic if options is null.
HIGHmetrics/grafana/common.py1195 "matcher": {"id": "byName", "options": "Last (not null)"},
Hyper-Verbose Identifiers7 hits · 8 pts
SeverityFileLineSnippet
LOWmetrics/grafana/common.py162 def skip_default_instance_selector(self) -> "Expr":
LOWmetrics/grafana/common.py1050def graph_panel_histogram_quantiles(
LOWmetrics/grafana/common.py1146def heatmap_panel_graph_panel_histogram_quantile_pairs(
LOWscripts/check-build-opts.py67def cargo_check_test_engines_ext(kv_engine, raft_engine):
LOWscripts/check-build-opts.py70def cargo_test_test_engines_ext(kv_engine, raft_engine):
LOWscripts/check-build-opts.py73def cargo_run_test_engines_ext(cmd, extra_args, kv_engine, raft_engine):
LOWscripts/check-bins.py95def is_openssl_vendored_enabled(features):
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippet
HIGH…tstore-v2/src/operation/command/admin/merge/prepare.rs228 /// - Target region epoch as requested is identical with the local version.
Slop Phrases2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMetc/config-template.toml278## In most cases you can use the default value. When importing data, you can set it to a larger
MEDIUMcomponents/raftstore/src/store/config.rs631 // the log commit duration is less than 1s. Feel free to adjust
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippet
LOWetc/config-template.toml299## Set it to 0 will cause no space is reserved at all. It's generally used for tests.
LOWetc/config-template.toml305## Set it to 0 will cause no space is reserved at all. It's generally used for tests.
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOWmetrics/grafana/common.py1
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOWscripts/check-bins.py27