diff --git a/rocksdb/main.cpp b/rocksdb/main.cpp index 72a679e..6f954ff 100644 --- a/rocksdb/main.cpp +++ b/rocksdb/main.cpp @@ -184,6 +184,7 @@ int main(int argc, char *argv[]) { } handle = handles[0]; + auto *snapshot = db->GetSnapshot(); for (size_t tid = 0; tid < args.threads; ++tid) { auto *tk = &keys[tid]; wg.emplace_back([&, tid] { @@ -196,6 +197,7 @@ int main(int argc, char *argv[]) { ropt.iterate_upper_bound = &upper_bound_slice; } ropt.prefix_same_as_start = true; + ropt.snapshot = snapshot; size_t round = 0; barrier.arrive_and_wait(); @@ -262,6 +264,7 @@ int main(int argc, char *argv[]) { uint64_t ops = total_op.load(std::memory_order_relaxed) / b.elapse_sec(); fmt::println("{},{},{},{},{},{},{}", args.mode, args.threads, args.key_size, args.value_size, ratio, (uint64_t) ops, (uint64_t) b.elapse_ms()); + db->ReleaseSnapshot(snapshot); delete handle; delete db; std::filesystem::remove_all(args.path);