{"type":"config","name":"Optimizing not_redis mixed workload throughput","metricName":"ops_per_sec","metricUnit":"","bestDirection":"higher"}
{"run":1,"commit":"4290d81","metric":6575486,"metrics":{},"status":"keep","description":"Baseline measurement of mixed workload throughput","timestamp":1775609748073,"segment":0,"confidence":null,"iterationTokens":102}
{"run":2,"commit":"442a9f1","metric":7257947,"metrics":{},"status":"keep","description":"Use FxHasher in DashMap for faster hash lookups","timestamp":1775609879993,"segment":0,"confidence":null,"iterationTokens":8065,"asi":{"hypothesis":"The default SipHash is slower; switching to FxHash will reduce hash computation overhead","result":"Improved from 6,575,486 to 7,257,947 ops/sec (+10.4%)","change_summary":"Changed DashMap to use FxBuildHasher (BuildHasherDefault<FxHasher>) instead of default RandomState/SipHash","files_modified":["src/lib.rs: StorageEngine::data field type and new() initialization"],"performance_gain_percent":10.43}}
{"run":5,"commit":"7335dba","metric":11127555,"metrics":{},"status":"keep","description":"Use atomic current_len to avoid O(num_shards) len() in set hot path","timestamp":1775610828471,"segment":0,"confidence":28.37063882829542,"iterationTokens":13136,"asi":{"hypothesis":"Calling DashMap::len() in set is expensive because it sums over shards; maintain a separate atomic counter for current length to make high_water_mark update cheap","result":"Huge improvement: from 7,418,397 to 11,127,555 ops/sec (+50.0%)","changes":["Add current_len: Arc<AtomicUsize> to StorageEngine","Increment on Vacant in set, decrement in remove","Update flush and compact to use current_len","Use atomic load for high_water_mark update"],"files_modified":["src/lib.rs: StorageEngine struct, new(), set(), remove(), flush(), maybe_compact(), compact()"],"performance_gain_percent":50}}
{"run":6,"commit":"b947ae1","metric":11315801,"metrics":{},"status":"keep","description":"Reduce DashMap shard count to 2 for lower overhead in single-threaded benchmark","timestamp":1775611017217,"segment":0,"confidence":10.535449766024099,"iterationTokens":1135,"asi":{"hypothesis":"Fewer shards reduce hash computation and lock overhead; with single-threaded workload, 2 shards is sufficient","result":"Improved from 11,127,555 to 11,315,801 ops/sec (+1.7%)","change":"Changed DashMap initialization to with_hasher_and_shard_amount(..., 2)","files_modified":["src/lib.rs: StorageEngine::new()"],"performance_gain_percent":1.69}}
