From 5a48ef72fd0c73b6f8082758010b18ba328b6eb5 Mon Sep 17 00:00:00 2001 From: Yueh-Hsuan Chiang <93241502+yhchiang-sol@users.noreply.github.com> Date: Mon, 11 Apr 2022 20:39:46 -0700 Subject: [PATCH] (LedgerStore) Skip sampling check when ROCKSDB_PERF_CONTEXT_SAMPLES_IN_1K_DEFAULT = 0 (#24221) #### Problem Currently, even if SOLANA_METRICS_ROCKSDB_PERF_SAMPLES_IN_1K == 0, we are still doing the sampling check for every RocksDB read. ``` thread_rng().gen_range(0, METRIC_SAMPLES_1K) > *ROCKSDB_PERF_CONTEXT_SAMPLES_IN_1K ``` #### Summary of Changes This PR skips the sampling check when SOLANA_METRICS_ROCKSDB_PERF_SAMPLES_IN_1K is set to 0. --- ledger/src/blockstore_db.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ledger/src/blockstore_db.rs b/ledger/src/blockstore_db.rs index aa29de561d..5a7b7ef18c 100644 --- a/ledger/src/blockstore_db.rs +++ b/ledger/src/blockstore_db.rs @@ -2295,6 +2295,9 @@ mod rocks_metrics_utils { /// /// Returns true if the PerfContext is enabled. pub fn maybe_collect_perf_context() -> bool { + if *ROCKSDB_PERF_CONTEXT_SAMPLES_IN_1K <= 0 { + return false; + } if thread_rng().gen_range(0, METRIC_SAMPLES_1K) > *ROCKSDB_PERF_CONTEXT_SAMPLES_IN_1K { return false; }