diff --git a/Makefile b/Makefile index a2ae2057f..e1b976e48 100644 --- a/Makefile +++ b/Makefile @@ -561,6 +561,7 @@ $(BINDIR)/$(UNITDIR)/superblock_test: $(COMMON_TESTOBJ) $(LIBDIR)/libsplinterdb.so $(BINDIR)/$(UNITDIR)/platform_apis_test: $(UTIL_SYS) \ + $(PLATFORM_IO_SYS) \ $(COMMON_UNIT_TESTOBJ) \ $(OBJDIR)/$(TESTS_DIR)/config.o \ $(PLATFORM_SYS) diff --git a/benchmarks/branch-prefix-evaluation/README.md b/benchmarks/branch-prefix-evaluation/README.md new file mode 100644 index 000000000..40f19c2fc --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/README.md @@ -0,0 +1,166 @@ +# Branch prefix compression: final evaluation + +The final implementation has no apparent nonlexical throughput regression +above the requested 2-3% range in the measured resident B-tree workloads. +All nine estimates are within 0.9% of main, and all nominal 95% intervals have +their lower endpoint above -2.1%. This supports merging on performance grounds +under the chosen scope. It is a single-machine exploratory evaluation, not a +universal or simultaneous equivalence guarantee. + +The implementation is commit `5fc43c310099ce06d72a7f2351ee7fbd600caa86`. +The reference is main `6105c49f66a24d3006ba0464d9558b52e692e27c`, also the remote +main tip checked on 2026-10-16. The final frozen variant is +`selected-io-alignment`, built from the original candidate `b9cc3ea4` plus the +selected read changes and I/O alignment repair. Applied runtime sources match +that build except for a recorded brace-formatting correction in `btree.c`. +Subsequent merge preparation adds tests, documentation and formatter handling; +it does not change runtime code. + +The later [MSan follow-up](msan-fix/README.md) clears previously uninitialized +free space during compressed-leaf construction and corrects sanitizer tracking +for asynchronous reads. The throughput measurements below predate that fix; +they have not been rerun with the added compressed-leaf gap clearing. The +async-read change is compiled only for MSan builds. + +## Nonlexical results + +Positive values mean higher throughput. Random insertion uses a separate fixed +18-pair follow-up; the other rows use six pairs. The earlier, less precise +insertion result is retained in the evidence. No samples were discarded or +pooled between campaigns. [CSV](final-results.csv) and [JSON](final-results.json) +include absolute rates and instruction counts. + +| Operation | Throughput vs main | Nominal 95% interval | Pairs | +| --- | ---: | ---: | ---: | +| Random insert | -0.26% | [-0.84%, +0.33%] | 18 | +| Sorted insert | +0.74% | [-2.07%, +3.64%] | 6 | +| Overwrite | -0.38% | [-1.82%, +1.08%] | 6 | +| Pack from array | -0.89% | [-1.83%, +0.06%] | 6 | +| Point hit | +0.30% | [-0.88%, +1.50%] | 6 | +| Point miss | -0.31% | [-1.14%, +0.54%] | 6 | +| One-key scan | -0.70% | [-1.85%, +0.46%] | 6 | +| 10,000-key scan | +0.90% | [-0.90%, +2.73%] | 6 | +| Full 200,000-key scan | +0.40% | [-0.73%, +1.54%] | 6 | + +The selected read changes improved nonlexical 10,000-key and full scans by +4.25% and 4.93% relative to the original candidate. Compressed-key decoding and +blob-descriptor scratch are moved out of ordinary validation, allowing the +common validator to inline. Leaf search selects callback or lexical comparison +once before binary search, and message-type checking removes a redundant bound +protected by static assertions. Nonlexical keys still reference the page +directly; these paths add no decoded-key allocation. + +Residual instructions relative to main are about +1.52% for packing, ++3.47-3.64% for point queries and one-key scans, and +2.34% for long scans. +Insert/overwrite instruction counts are essentially unchanged. The remaining +instruction differences did not produce a resolved throughput regression. + +## Lexical tradeoffs and space + +Users opting into lexical ordering retain the space/CPU tradeoff. In the +read-optimization confirmation before the alignment repair, common-prefix +packing was 7.53% slower than main and 10,000-key scans were 5.49% slower. +Point hits, misses and one-key scans were respectively 2.00%, 6.20% and 4.26% +faster. These comparisons use six paired repetitions; the complete intervals +are in the archived nonlexical investigation's lexical-control table. + +The final aligned candidate's compressed full-scan control was -0.99% +[-2.74%, +0.80%] versus main. Other lexical operations were not retimed after +the alignment repair. The earlier complete on/off/main matrix is retained +separately, so its results are not attributed to the final binary. + +Common-prefix packed allocation fell from 35.129 MiB to 25.379 MiB (27.75%), +with 6,261 leaves instead of 8,696. Nonlexical packed allocation and leaf count +were identical to main: 36,835,328 bytes and 8,696 leaves. Compression adds no +new I/O operation; the header grows by two bytes. Different packing boundaries +can still affect individual queries. This resident campaign makes no new +on-disk throughput claim. + +## Scope and controls + +Measurements use one worker on CPU 2 of an Intel i7-12800H, GCC 14.2 release +builds with `-O3 -flto -march=native`, 200,000 64-byte keys, 100-byte inline +values and a 512 MiB cache. The cache size is not a whole-process memory cap. +Scratch databases use real disk, while timed phases are resident: storage I/O, +asynchronous-I/O counters and major faults remain zero. Hardware counters +report full coverage. Shared locks serialize builds and benchmark workloads. + +Writes target a mutable B-tree; point queries and scans use packed trees. +Packing reads from a prepared tuple array, excluding source-iterator tree +work, input generation/sorting, request setup and output reclamation. Scan +timing includes iterator initialization and teardown. Timed consumers +accumulate checksums; checksum comparisons and full correctness oracles run +outside timed phases. This is not a disk, concurrent, or blob-heavy performance +evaluation. + +## Correctness and format compatibility + +The read changes passed 87 release, 87 debug and 36 fault-injection test +executions. Sanitizers then exposed a preexisting asynchronous-I/O state +alignment defect, reproduced on the original candidate. The repair aligns the +opaque state buffer to `max_align_t` and checks backend alignment statically. +It passed 36 focused ASan/UBSan executions plus the cold custom-comparator +regression in release, debug and fault-injection builds. Original failure logs +and the repair evidence are preserved. LeakSanitizer was disabled; ASan and +UBSan remained enabled, without alignment suppression. + +The [persisted-version verification](version-rejection.json) adds 42 passing +executions across release, debug and ASan/UBSan: all 12 B-tree tests plus the +invalid-reference and persisted-old-version tests in each build. Version 1 is +rejected before branch-page interpretation. Clean reopen is lazy; synchronous +and asynchronous point reads and range initialization reject an affected old +branch. Recovery rejects during mount when rebuilding allocation state. +Restoring version 2 permits cold remount and correct tuple retrieval. Existing +NULL-cache tests independently prove early rejection before branch-page +access. No migration or eager whole-tree validation is introduced. + +`data_config.key_compare_is_lexical` promises exact unsigned-byte lexical order, +including shorter equal prefixes sorting first, for stored and query keys. +The default comparator opts in; applications installing a different ordering +must clear the flag. Compression is chosen per leaf with a four-byte minimum +common prefix. Uncompressed and mutable keys remain complete. + +The repository formatter checks maintained source roots, including the new +benchmark harness, and excludes immutable benchmark snapshots and generated +build trees. The full maintained-source format check passes. Hosted PR CI is +separate from these recorded local checks. + +## Evidence and reproduction + +[evidence.tar.gz](evidence.tar.gz) contains the complete, unchanged +`benchmarks/results-20261015/btree-prefix` and +`benchmarks/results-20261016/btree-nonlexical` directories: 4,425 files, +including raw samples, compiler commands, source/artifact hashes, analysis +scripts, audits, and historical failures. Its +[manifest](evidence-manifest.json) records every member's SHA256. +The later investigation contains 1,206 samples across 19 campaigns; the earlier +matrix contains 516 comparison samples plus separately recorded pilot/smoke +work. The archives retain their original dated status statements. + +[merge-validation.tar.gz](merge-validation.tar.gz) and its +[manifest](merge-validation-manifest.json) preserve both the initial test +fixture failure and the corrected, independently reviewed version test's +complete validation. [version-rejection.json](version-rejection.json) is a +direct copy of the final verification record. + +Extract into a fresh directory to avoid touching existing campaign files: + +```sh +mkdir -p /tmp/branch-prefix-evidence +tar -xzf benchmarks/branch-prefix-evaluation/evidence.tar.gz -C /tmp/branch-prefix-evidence +tar -xzf benchmarks/branch-prefix-evaluation/merge-validation.tar.gz -C /tmp/branch-prefix-evidence +``` + +The final analysis is under the extracted +`benchmarks/results-20261016/btree-nonlexical/README.md`; the complete earlier +on/off/main matrix is under `benchmarks/results-20261015/btree-prefix/README.md`. +Each includes measurement commands and provenance. Absolute build/database +paths in the records describe the measurement machine; another machine must +rebuild the frozen commits/patches and supply fresh paths. + +The maintained [B-tree harness](../btree_prefix_bench.c) supports insert, +overwrite, lookup, scan and array-fed pack operations. The +[build helper](../build_btree_prefix_bench.py) links it against verified frozen +libraries using the recorded profile metadata. The harness exposes separate +construction and read-lexical switches for controlled comparisons and rejects +lexical flags for the nonlexical comparator. diff --git a/benchmarks/branch-prefix-evaluation/evidence-manifest.json b/benchmarks/branch-prefix-evaluation/evidence-manifest.json new file mode 100644 index 000000000..925f0f094 --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/evidence-manifest.json @@ -0,0 +1,4467 @@ +{ + "archive": "evidence.tar.gz", + "archive_bytes": 12290329, + "archive_format": "POSIX pax tar, sorted repository-relative regular-file paths, gzip level 9", + "archive_sha256": "e4f66c530ae2c667004c6732bae1de2b4b2d7ca7ac4e1292d9be20d07563a579", + "deterministic_metadata": { + "gid": 0, + "gname": "", + "gzip_filename": "", + "gzip_mtime": 0, + "mode": "0755 for executable inputs; otherwise 0644", + "mtime": 0, + "uid": 0, + "uname": "" + }, + "file_count": 4425, + "files_sha256": { + "benchmarks/results-20261015/btree-prefix/FULL-SWITCH.md": "f22966d0cc2f9afe72a54438ab9f43b17c0f876b117158f923b00202bf908f94", + "benchmarks/results-20261015/btree-prefix/METHODS.md": "6159f2ec6c578f3689190354b791d40d9035e108744313bcce2cdbc0723e0389", + "benchmarks/results-20261015/btree-prefix/README.md": "1da289a43ae17823d26b6c9df3ba74e200b1a4bde3b8ad94ba0071982133d46a", + "benchmarks/results-20261015/btree-prefix/TABLES.md": "6380ee05600be88719590d958649f1ccfc1879dccca8ac09741978a29835a85c", + "benchmarks/results-20261015/btree-prefix/__pycache__/render_tables.cpython-313.pyc": "ba5e58f3cc8d4665c610d609ad274cc2fb9fafa340760bb9476a4073214c04ee", + "benchmarks/results-20261015/btree-prefix/__pycache__/runner.cpython-313.pyc": "87c5d315602513ae23988d237a99ad78a64f2f76f98522db1a20c42a329c4f25", + "benchmarks/results-20261015/btree-prefix/analysis-complete.py": "4f73510153adfac5144c33c7ae56cdca465b42c79ef59f077b2267647961bfb3", + "benchmarks/results-20261015/btree-prefix/analyze.py": "12d48d0d31a49abd3950d5bb00b56372e858b8f6b361bdb51963e164c57048d8", + "benchmarks/results-20261015/btree-prefix/archive-sha256.json": "b59578e4c1d2bbed591c25d10b2ceea8e1475e0a66099bb0e92dfddd2da471fa", + "benchmarks/results-20261015/btree-prefix/audit.json": "fb28a586650fbc333165abb11660c3ac0c43d27db380657c7a8537c6c9004afc", + "benchmarks/results-20261015/btree-prefix/audit.py": "3c33736f8f88fdb4cfd25a3605551129c47b9fc1bdaea2bc0fb321b3b797acbe", + "benchmarks/results-20261015/btree-prefix/build-failed-readonly-lock-01/btree_prefix_bench.c": "bb43b343ad4a6f66d17fc1cdd32ff72991b91d0c5bdf0c43c438bc124475ee89", + "benchmarks/results-20261015/btree-prefix/build-failed-readonly-lock-01/build_btree_prefix_bench.py": "79ae7665cf6ba3b47c210991d3267ef28d69710a5020ce9ac77d0aa71dd2fcd5", + "benchmarks/results-20261015/btree-prefix/build-failed-readonly-lock-01/failure.json": "af6ac16cb62a736cbe090404f77d507ddbf9ee36aee24c00f5a6c4546b17fe19", + "benchmarks/results-20261015/btree-prefix/build-v2/build.json": "ee8996799e96284e5343a942b83c8f29433109b34d62dd31d7cb115a4e0353dd", + "benchmarks/results-20261015/btree-prefix/build-v2/build/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261015/btree-prefix/build-v2/build/build_btree_prefix_bench.py": "44bac2ae15a0377b470dc0a9fd8b68f8549af373df378394ae2005646c8f7052", + "benchmarks/results-20261015/btree-prefix/build-v2/build/current-compile.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261015/btree-prefix/build-v2/build/main-compile.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261015/btree-prefix/build.json": "40fb32ee7423ea6de8ac24bc6209bac3ff78642575fabdc62da4085162e5c737", + "benchmarks/results-20261015/btree-prefix/build/btree_prefix_bench.c": "bb43b343ad4a6f66d17fc1cdd32ff72991b91d0c5bdf0c43c438bc124475ee89", + "benchmarks/results-20261015/btree-prefix/build/build_btree_prefix_bench.py": "44bac2ae15a0377b470dc0a9fd8b68f8549af373df378394ae2005646c8f7052", + "benchmarks/results-20261015/btree-prefix/build/current-compile.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261015/btree-prefix/build/main-compile.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261015/btree-prefix/calibrate.py": "4753198e7be457bae9beb514acafe3af3a4e38ae6ede55ceb218dba0d12285ce", + "benchmarks/results-20261015/btree-prefix/failedprotocol01.json": "ec6a3d598ed87a4ab3bc1ce6d222ac0bbcb94d072423df08bf2ba47dc0528de2", + "benchmarks/results-20261015/btree-prefix/final-source-state.json": "6a663f72c9948f70b77b92b5717311b766306e3197216f95d48e492107d3265e", + "benchmarks/results-20261015/btree-prefix/perf-ack-probe.json": "ccf917c71fe9f0137588624d2d6f8a235f82218ab4b16603c6458e1e1790a153", + "benchmarks/results-20261015/btree-prefix/perf-ack-probe.log": "c061e5e9de6d1c1b207ca45fb3573ed89cfcbda2ef7aaf10c99ae95d3735ac19", + "benchmarks/results-20261015/btree-prefix/perf-ack-probe.py": "20ef77974846faaaaca4705a73e3a83a4d53411b7556bc4353d3a74e55aa14b7", + "benchmarks/results-20261015/btree-prefix/pilot-plan.json": "49e032eea4ac596eec158f636b530fc07152a80f537b18c8a182a46512066e6f", + "benchmarks/results-20261015/btree-prefix/pilot/0001-r0-common-insert-random-main.log": "fd8390da2646d4b590c220f9df63d9b7a3a632e75b18cd5263b751fa500b5e51", + "benchmarks/results-20261015/btree-prefix/pilot/0001-r0-common-insert-random-main.stat": "e7bab5578b950293ed666cb418440979302d1e8787ef25931efd05bf2be1c5a9", + "benchmarks/results-20261015/btree-prefix/pilot/0002-r0-common-insert-random-current.log": "a11ba224189a5b20da13fde53d5f47abba7f64466c9b288e78450fb5e62ba788", + "benchmarks/results-20261015/btree-prefix/pilot/0002-r0-common-insert-random-current.stat": "51581ae2fcb35b9cff76f96614febadefaf228c39e5d65c271554721b379169e", + "benchmarks/results-20261015/btree-prefix/pilot/0003-r0-common-insert-sorted-main.log": "37affae1d5f11c50e866fab99ca78375d13a38e56660e671c06fc6eef2031c1e", + "benchmarks/results-20261015/btree-prefix/pilot/0003-r0-common-insert-sorted-main.stat": "d09b2ec6a943f8122f149798383b13da45e9c08a1b7fec991c8f61ba5148bc0b", + "benchmarks/results-20261015/btree-prefix/pilot/0004-r0-common-insert-sorted-current.log": "ccee3f8afeec7a81f625838a14c50f671c976ce0232542e4477346595084ce8c", + "benchmarks/results-20261015/btree-prefix/pilot/0004-r0-common-insert-sorted-current.stat": "ea8bde69d4482b7bebc48dce5ee21d66dd23dbdfbd14c5d0eb565ddb53a85b91", + "benchmarks/results-20261015/btree-prefix/pilot/0005-r0-common-overwrite-main.log": "9ef0a64024c308166fe6fa873b7b5f1304f377d6071f716e28a5d86808df3ae6", + "benchmarks/results-20261015/btree-prefix/pilot/0005-r0-common-overwrite-main.stat": "c61fc6c81d6eeb66ccd84b4adf7576e8ecd9ff363edf2a49d60daf32e9a4647b", + "benchmarks/results-20261015/btree-prefix/pilot/0006-r0-common-overwrite-current.log": "d78f913867089cfd7a8c7233eb5591c408e904569bfc7da69a27bc823ed51e5d", + "benchmarks/results-20261015/btree-prefix/pilot/0006-r0-common-overwrite-current.stat": "400da5783fb751654ef588a3225e83fec505d3f282fd9cead48d4d07d32e5479", + "benchmarks/results-20261015/btree-prefix/pilot/0007-r0-common-pack-main.log": "cd4621de00fc73998f10d970670b630ddd2841fb7c696f7d6086ec2bd5920e24", + "benchmarks/results-20261015/btree-prefix/pilot/0007-r0-common-pack-main.stat": "beb55132bf859f3f46ca7d1a5e1a63966bd7ff602522dc99f026bf2e5b158ec8", + "benchmarks/results-20261015/btree-prefix/pilot/0008-r0-common-pack-off.log": "c57ac595427f5f74103ca3a23819ebdb3f04b4a23acb9eb2fe191acc27770162", + "benchmarks/results-20261015/btree-prefix/pilot/0008-r0-common-pack-off.stat": "62a964c75573cdce9a3f972ac59f454228a255c64f2910871013158e55426893", + "benchmarks/results-20261015/btree-prefix/pilot/0009-r0-common-pack-on.log": "133d7eb7dd67b3feed8626e7d08bce3556835cbc7b746afc386f95438199511a", + "benchmarks/results-20261015/btree-prefix/pilot/0009-r0-common-pack-on.stat": "89f47e5583f4282c8e1cd3117435234aa925ea7292f155dd762a71d9cad91f16", + "benchmarks/results-20261015/btree-prefix/pilot/0010-r0-common-hit-main.log": "f916014f974da79fe1fefd2398b09dd847f145cb28186cf30d31468ae106d188", + "benchmarks/results-20261015/btree-prefix/pilot/0010-r0-common-hit-main.stat": "44e9247e1577cf37d636cc2b429ee94cd6541507cb2828cf54bd7150303b6b63", + "benchmarks/results-20261015/btree-prefix/pilot/0011-r0-common-hit-off.log": "26b78491b730498bb85072f7e1621f2d1fd69a4511b9e66c200e54187a9a6414", + "benchmarks/results-20261015/btree-prefix/pilot/0011-r0-common-hit-off.stat": "86d7042789404bd1088a0683b5d01037043bf5bf42d9ff6cd2b2a6756fdae112", + "benchmarks/results-20261015/btree-prefix/pilot/0012-r0-common-hit-on.log": "733db061e1c5a7436633824648058e45c7a40d1321aad941d5aec83abbd8d072", + "benchmarks/results-20261015/btree-prefix/pilot/0012-r0-common-hit-on.stat": "05446aa11363a23e4c56d46e2fb06453f22a5503fa7c675565293df5d4bd1fdc", + "benchmarks/results-20261015/btree-prefix/pilot/0013-r0-common-miss-main.log": "07091bffa21fae94e39ac5c5c9f528f3adb56c993bb91517cc6bb78dff1dd286", + "benchmarks/results-20261015/btree-prefix/pilot/0013-r0-common-miss-main.stat": "13df8c6a000db58c5160a0b4551552f61a4f7dd962d0ba30a329f09f2e9ba75f", + "benchmarks/results-20261015/btree-prefix/pilot/0014-r0-common-miss-off.log": "88ebce1731542c5127e01907fbdd440ffe2f764e2475ba1eb3f8c22c6c531ade", + "benchmarks/results-20261015/btree-prefix/pilot/0014-r0-common-miss-off.stat": "cadd8b4e6b58096b5969e17c2b6887abbbe5517c640db6ff6fb88b321d4844aa", + "benchmarks/results-20261015/btree-prefix/pilot/0015-r0-common-miss-on.log": "3d2f2ca86015cd580cce2d9ed986986482c1cc3ad38477652c388fdf6af010fc", + "benchmarks/results-20261015/btree-prefix/pilot/0015-r0-common-miss-on.stat": "45c2ee2443456da5d5bb70ca2dde5e5f5665622fba112d142f1d7de9aece22d9", + "benchmarks/results-20261015/btree-prefix/pilot/0016-r0-common-scan1-main.log": "284d5b0ae4cbbc48fd15312fcd224137313c3f922d41117d9c9afdd8964bcaa2", + "benchmarks/results-20261015/btree-prefix/pilot/0016-r0-common-scan1-main.stat": "3f43261e798ed32656b340a1475188c795921df92b574bc5c0e4c6a0ceb05d29", + "benchmarks/results-20261015/btree-prefix/pilot/0017-r0-common-scan1-off.log": "5729306dfb9d5891998c4e1db9a61f60a21e48583a28909db41bf722f55ea82a", + "benchmarks/results-20261015/btree-prefix/pilot/0017-r0-common-scan1-off.stat": "2b31f80bc8020ab2bd64a5856387cedd59cdf2af765c0ec23202cc7d24790831", + "benchmarks/results-20261015/btree-prefix/pilot/0018-r0-common-scan1-on.log": "2c8f254fe04c3a8a3bd6a8c44304176e0f74010a1c5a266212f849d2adf0e72b", + "benchmarks/results-20261015/btree-prefix/pilot/0018-r0-common-scan1-on.stat": "42105cc3d673726a2342f74ba0ca476f5ed2167d870db305d52aae6191f8863c", + "benchmarks/results-20261015/btree-prefix/pilot/0019-r0-common-scan10000-main.log": "a72cebd8ef8374eaf213af84083a3dc0e225d39a455233b21c58020dbda4fb16", + "benchmarks/results-20261015/btree-prefix/pilot/0019-r0-common-scan10000-main.stat": "cd8ee37ce0996a5be2e06ea6dec78867144a4016ebfa18de797324a063c04d5e", + "benchmarks/results-20261015/btree-prefix/pilot/0020-r0-common-scan10000-off.log": "4e5449d8cc50162269ac66f8b937c5ada2247eb5ba65ef7aaf9cd18f38b05cf1", + "benchmarks/results-20261015/btree-prefix/pilot/0020-r0-common-scan10000-off.stat": "af6433d89f66494fc5605c16eb584d5b5eab82f42d869513a4ee51826669313c", + "benchmarks/results-20261015/btree-prefix/pilot/0021-r0-common-scan10000-on.log": "555afdf533414c7120cbd3eeb3e7e32dc6f98d2060bf2bc2a4f209a4d1ee1b91", + "benchmarks/results-20261015/btree-prefix/pilot/0021-r0-common-scan10000-on.stat": "a643cf767c7c0e50b7ff3595657ee1d0b4fa2d1f2e612cd84396f8b97f7ff566", + "benchmarks/results-20261015/btree-prefix/pilot/0022-r0-common-scanfull-main.log": "2ba6dfd120b83ade582414ff651c53a051666a05ad9edb110ec869ed05f0ca7d", + "benchmarks/results-20261015/btree-prefix/pilot/0022-r0-common-scanfull-main.stat": "5939aecaf1a663f178b7f54857e86a4ef07771ffe358934f7b8d501fdf6b9487", + "benchmarks/results-20261015/btree-prefix/pilot/0023-r0-common-scanfull-off.log": "ba18a56fe28cd7af3ace6758d27fa93b71613ca4551b1f38ee74f07aebb13800", + "benchmarks/results-20261015/btree-prefix/pilot/0023-r0-common-scanfull-off.stat": "1144213c8eb79d1cfa987cb40738e09c8f3dbd6f6590dc5a0f4d5396a2510a77", + "benchmarks/results-20261015/btree-prefix/pilot/0024-r0-common-scanfull-on.log": "c38cb30f687e1dc4c2ba4125dafab097f96998bf46e31cb4e9aaecc6de821e0a", + "benchmarks/results-20261015/btree-prefix/pilot/0024-r0-common-scanfull-on.stat": "3fa311eac01b59a9824ac05e9cc6b4b9c5a0e7c06d05877a349184f83411fdc0", + "benchmarks/results-20261015/btree-prefix/pilot/0025-r0-random-insert-random-main.log": "d7ebfe59b5f704b5d5277533b144d626166c92c0a6e9e2dc1be8506f1cead299", + "benchmarks/results-20261015/btree-prefix/pilot/0025-r0-random-insert-random-main.stat": "7f80b9c392d3a93eafcd1d9c1d97e128382fb9f9404584cb0975a0fa18b31e24", + "benchmarks/results-20261015/btree-prefix/pilot/0026-r0-random-insert-random-current.log": "768194884be3c8f3e05c6e8bafe9a5e2c561403bbc46e7c5358856f2f4cb9b1b", + "benchmarks/results-20261015/btree-prefix/pilot/0026-r0-random-insert-random-current.stat": "8ce284209f4f065b474c16140e1acb72595cb4ab45f16ef194322ae847d3ecd1", + "benchmarks/results-20261015/btree-prefix/pilot/0027-r0-random-insert-sorted-main.log": "a359a355438a01c7e01ea2cf256ab8dd639629124f4a7f9a0d9e0938f27eef9e", + "benchmarks/results-20261015/btree-prefix/pilot/0027-r0-random-insert-sorted-main.stat": "71154bd587621df636b1782f9267cff3387f71e1eeec184e6cc645346c1801f7", + "benchmarks/results-20261015/btree-prefix/pilot/0028-r0-random-insert-sorted-current.log": "e4f3f66fa9205151025ba16e3680b1343309e2b9d84d5bc238d5ed1ecf4380b6", + "benchmarks/results-20261015/btree-prefix/pilot/0028-r0-random-insert-sorted-current.stat": "da04701abe11c00e71b40f7b9826b2de1f4af740486f3bea3d950c5bcd61ca0b", + "benchmarks/results-20261015/btree-prefix/pilot/0029-r0-random-overwrite-main.log": "69d77f91cbd8144d2db6fd595c337cbb5b3493caa15c7dbd623d1b18e62dec4a", + "benchmarks/results-20261015/btree-prefix/pilot/0029-r0-random-overwrite-main.stat": "529f4ddd0dd1b3de3a39e7b8515a6f674efca1e55f788422097e41813e3a1e12", + "benchmarks/results-20261015/btree-prefix/pilot/0030-r0-random-overwrite-current.log": "60b588a2984ce0f3cd0616e417017299055579483e58c0a06859141b5fea5b52", + "benchmarks/results-20261015/btree-prefix/pilot/0030-r0-random-overwrite-current.stat": "d85fed09a19337a7f9ddb74d01b729d28494ce8a22de9fef386b49e1dc75eef9", + "benchmarks/results-20261015/btree-prefix/pilot/0031-r0-random-pack-main.log": "8a4abdc9ba08b42bfca5bae6117d4b92865411e0abd0a8d02540b240d776dace", + "benchmarks/results-20261015/btree-prefix/pilot/0031-r0-random-pack-main.stat": "fa44fc263c242fa79104d13a6cea5c90d15dbfb8a35afb20eef4d45a0803b4e0", + "benchmarks/results-20261015/btree-prefix/pilot/0032-r0-random-pack-off.log": "e9e4742543fd687a59e433075193abd9fdd068c7d763e0da7ad2a3e472480077", + "benchmarks/results-20261015/btree-prefix/pilot/0032-r0-random-pack-off.stat": "d4c811ef6b479e193e04bd86a7ee7a930aa38a08bed078c02694b31b2a9e3067", + "benchmarks/results-20261015/btree-prefix/pilot/0033-r0-random-pack-on.log": "8f2e39d66ef49326f6a1587cca4652036046b66820af63c96d3fe0f2098e254a", + "benchmarks/results-20261015/btree-prefix/pilot/0033-r0-random-pack-on.stat": "6323e39acd35913950bfd920817b0269463dd482fd30a602dd82a34b5d0f5c0f", + "benchmarks/results-20261015/btree-prefix/pilot/0034-r0-random-hit-main.log": "0acceadb10425dceb77c178ab2f94b40420eb52f7008592a138867e7e4dbf745", + "benchmarks/results-20261015/btree-prefix/pilot/0034-r0-random-hit-main.stat": "73020343895043190a640eb516ceb42171ad5843f5b903c6d98199f29721a67a", + "benchmarks/results-20261015/btree-prefix/pilot/0035-r0-random-hit-off.log": "a5cf4254f317cae3bd7d0b5f96df253deb5d81dd357a5846a76ed69883b51611", + "benchmarks/results-20261015/btree-prefix/pilot/0035-r0-random-hit-off.stat": "888368950087f6ecd9cc0a9797e1975252d1af6448a98b930b96a53e271e9e66", + "benchmarks/results-20261015/btree-prefix/pilot/0036-r0-random-hit-on.log": "b5b71d4cda376b72acce5131b6ea55be50453673cfe20352677a7173cfef7099", + "benchmarks/results-20261015/btree-prefix/pilot/0036-r0-random-hit-on.stat": "310d105eb20834555c9acff780112799f0f566dbfe50a4f6858fb219d51f2008", + "benchmarks/results-20261015/btree-prefix/pilot/0037-r0-random-miss-main.log": "4784ada838a672197329b2a00fea20d6191c50dc1de49231d9e4b31c12dcb509", + "benchmarks/results-20261015/btree-prefix/pilot/0037-r0-random-miss-main.stat": "a9033267f121c179f08e9e44c2b5d839884ec02a11a5c739388139035d8b8646", + "benchmarks/results-20261015/btree-prefix/pilot/0038-r0-random-miss-off.log": "849d22ff1a8bf3acd3409b3104fe5ac34c27f4ae6d66e8c0a9f2eccfcbf04cb5", + "benchmarks/results-20261015/btree-prefix/pilot/0038-r0-random-miss-off.stat": "7ed47ed1c2c67f7de2c0561ba1e34436e653dbfcb14dddf0c57d965367b7dc1a", + "benchmarks/results-20261015/btree-prefix/pilot/0039-r0-random-miss-on.log": "afc8abab4a10fa2ed2799c880a0958af7549ca04f2490ed3576ff4603689d66a", + "benchmarks/results-20261015/btree-prefix/pilot/0039-r0-random-miss-on.stat": "a2c80dcf5b56f8cbbb569251c5b2a0ed6a846ddc7996d477a2020d7dac70588d", + "benchmarks/results-20261015/btree-prefix/pilot/0040-r0-random-scan1-main.log": "18f2de262790abb6ee18c244e0ace6b2c6fd9a76662ed4f50cb241cb67ca9519", + "benchmarks/results-20261015/btree-prefix/pilot/0040-r0-random-scan1-main.stat": "6cec82b06505a2c78d61a2aa6fa3575785ba7215667debfc0c5db398de3fc318", + "benchmarks/results-20261015/btree-prefix/pilot/0041-r0-random-scan1-off.log": "52937105ad5497cad7e51531d9a353fd932fcddf125604b358efd1f151fa19a8", + "benchmarks/results-20261015/btree-prefix/pilot/0041-r0-random-scan1-off.stat": "54fe1d327969a55b3824e348eac1d021819a0020acd863f41e0708673c4442ff", + "benchmarks/results-20261015/btree-prefix/pilot/0042-r0-random-scan1-on.log": "4587608da474f41200eb47f30160949cbba47c0cf088b8210bb88fb27103c61a", + "benchmarks/results-20261015/btree-prefix/pilot/0042-r0-random-scan1-on.stat": "9c329355a37afea14390e7e4167e6d77a224bbc09c72b86ca0a8a647dc0fe6c7", + "benchmarks/results-20261015/btree-prefix/pilot/0043-r0-random-scan10000-main.log": "d1bf26e0515e89fb0e7a4e1ff0382f2014ce4be9045e49410722d2c1704b612c", + "benchmarks/results-20261015/btree-prefix/pilot/0043-r0-random-scan10000-main.stat": "8a9a0296d900ee80bb07ed58d282ac1ff456636acae45ad0d4dd9b2e54a04b85", + "benchmarks/results-20261015/btree-prefix/pilot/0044-r0-random-scan10000-off.log": "814f95ca0545a4dd6ea0f028c6e7781d1581c39021a77e82911c8bd25ea2fd03", + "benchmarks/results-20261015/btree-prefix/pilot/0044-r0-random-scan10000-off.stat": "18c5fbe9a5b87e759e25d2998a5cf24021b66cf3d7c570f8a8e3228668d95122", + "benchmarks/results-20261015/btree-prefix/pilot/0045-r0-random-scan10000-on.log": "6ee5f129a1201aeae00d5137265e36e1584ac75323cfdae7520ff1b96a3ac91b", + "benchmarks/results-20261015/btree-prefix/pilot/0045-r0-random-scan10000-on.stat": "bbae07b6f4cd2f1b66d51475de3883c2504fce77973a40a322dd620ba4663e1f", + "benchmarks/results-20261015/btree-prefix/pilot/0046-r0-random-scanfull-main.log": "145e5d18538997bc554169a7d293c2e55b7cbd3488ea4c88f724c11186380016", + "benchmarks/results-20261015/btree-prefix/pilot/0046-r0-random-scanfull-main.stat": "4a6a0438d1bebc78e90cfc93793f0e83face4cf230906ebdd4aa1b59fcdb0c71", + "benchmarks/results-20261015/btree-prefix/pilot/0047-r0-random-scanfull-off.log": "53af02d45ab1c6581fe3d55a839e348928c40eec2a7d8c0fce4f3026cc81de52", + "benchmarks/results-20261015/btree-prefix/pilot/0047-r0-random-scanfull-off.stat": "7f7d4add71f3a347fa79ddcca8ca8c5fb3c957951a2512548c58337e47b951a3", + "benchmarks/results-20261015/btree-prefix/pilot/0048-r0-random-scanfull-on.log": "0f8d8a368b2424f19855b4a5ac7054faaf3f802cad0165237d307f240ca9f3c1", + "benchmarks/results-20261015/btree-prefix/pilot/0048-r0-random-scanfull-on.stat": "b173f990016e56efcb7509b48497f973509d081e149605b4c8c1a6b30c81f47e", + "benchmarks/results-20261015/btree-prefix/pilot/0049-r0-nonlexical-insert-random-main.log": "3d5e2d630b56e31b2588a458048d8d452e6a390dbb6111a94fb494c09be00e84", + "benchmarks/results-20261015/btree-prefix/pilot/0049-r0-nonlexical-insert-random-main.stat": "6e98048e0b4fa65c685c0d72294ad4bd43041298e125f3d9433b286594b5fcbc", + "benchmarks/results-20261015/btree-prefix/pilot/0050-r0-nonlexical-insert-random-current.log": "5d260b8fba599cb1ac6d21f18f69aa0a96f401324b8eed89bc63dc0137ec2e1f", + "benchmarks/results-20261015/btree-prefix/pilot/0050-r0-nonlexical-insert-random-current.stat": "b07d1a57227105ae3a2c01787d18116a3a2bf7d805f91576343afee7a89e4be9", + "benchmarks/results-20261015/btree-prefix/pilot/0051-r0-nonlexical-insert-sorted-main.log": "082c8cf5b9d31cf82705e22436f49d148e58b883e348702033e550a9c7711386", + "benchmarks/results-20261015/btree-prefix/pilot/0051-r0-nonlexical-insert-sorted-main.stat": "e131083bde721ab2ab2985709b572c5d7c36298a51981e842cbace6afbaa7783", + "benchmarks/results-20261015/btree-prefix/pilot/0052-r0-nonlexical-insert-sorted-current.log": "6f9d6b079970843e74b92136326ceac7588cd905f499410c0de69e9681097232", + "benchmarks/results-20261015/btree-prefix/pilot/0052-r0-nonlexical-insert-sorted-current.stat": "620e1db30976266d3271fd4dba80a5c9e3b0db32eb157998b21efc3d1d3bcbb4", + "benchmarks/results-20261015/btree-prefix/pilot/0053-r0-nonlexical-overwrite-main.log": "920768f8d88e2243ec49c85bbab9ecc1b5b5c943773269036f9fbba66547b401", + "benchmarks/results-20261015/btree-prefix/pilot/0053-r0-nonlexical-overwrite-main.stat": "15397343956750441347139fc227789233c0c6b07bd92dbf3cf1e5428a2af311", + "benchmarks/results-20261015/btree-prefix/pilot/0054-r0-nonlexical-overwrite-current.log": "264ab4ec16c6c71bdd3ce0d699ee5311a96744205ba29c5dbce59215428ca8d5", + "benchmarks/results-20261015/btree-prefix/pilot/0054-r0-nonlexical-overwrite-current.stat": "7ec48b404b40298babc667b416c2239a125701178f67efda8ad65811e8bd0bf4", + "benchmarks/results-20261015/btree-prefix/pilot/0055-r0-nonlexical-pack-main.log": "d0fb233855b24e8a27caa28a16cf902f1dad2d94c000f04199339d42e78c1170", + "benchmarks/results-20261015/btree-prefix/pilot/0055-r0-nonlexical-pack-main.stat": "96a1866a44a0113418fcd78c4981dbefa2b14b9fd98c8f647bb0f9942d78f4d6", + "benchmarks/results-20261015/btree-prefix/pilot/0056-r0-nonlexical-pack-current.log": "b9705e8aa8f6af68114e548295acf687446e7a9761c2f7cc4f639b85e6637997", + "benchmarks/results-20261015/btree-prefix/pilot/0056-r0-nonlexical-pack-current.stat": "bedb154abb6a28fa710668453748ea5d66302587ff33708a267f9c8675fb810a", + "benchmarks/results-20261015/btree-prefix/pilot/0057-r0-nonlexical-hit-main.log": "2a098e33fe9face47dbb1ae3b73270be3044136113f187e71555732e9ef9020b", + "benchmarks/results-20261015/btree-prefix/pilot/0057-r0-nonlexical-hit-main.stat": "d51e6971ba07b708eb165464db4301349ce1f2010fe26b607c72fec2e53b81c5", + "benchmarks/results-20261015/btree-prefix/pilot/0058-r0-nonlexical-hit-current.log": "32430258fb707c508c5fd0877857b2f14d7f0b23beccaee10219d05e9262390e", + "benchmarks/results-20261015/btree-prefix/pilot/0058-r0-nonlexical-hit-current.stat": "8ab5a1fbcd7d2ca62e2f38afa51e367122cf35c256139afad6b7aa04576cb4cb", + "benchmarks/results-20261015/btree-prefix/pilot/0059-r0-nonlexical-miss-main.log": "839526497b86f5a2df1a44cea772663bbc38d284b1f4d1f522e98e489672f0de", + "benchmarks/results-20261015/btree-prefix/pilot/0059-r0-nonlexical-miss-main.stat": "a4ae543a3111ca65861a42e0dc1607dd8bdd19764b3b46c1b4a1fc08f8b82360", + "benchmarks/results-20261015/btree-prefix/pilot/0060-r0-nonlexical-miss-current.log": "9cc38f398f979e173ca5d140357c63ad1453c188374a7ee95b95cc52b24bd98d", + "benchmarks/results-20261015/btree-prefix/pilot/0060-r0-nonlexical-miss-current.stat": "552d0adb0ed4862ea4f5db2b7d6e1cf16a6fe02aa6ca5555ad389a9078a9d7b0", + "benchmarks/results-20261015/btree-prefix/pilot/0061-r0-nonlexical-scan1-main.log": "f7d75cf84ac857ea70aaf9100e627ca02a948ed20edb6891cabeb3b5c235c9db", + "benchmarks/results-20261015/btree-prefix/pilot/0061-r0-nonlexical-scan1-main.stat": "d6098eac99958a7943eb4f103e5bd93fbb0309db419fd9234b4248244de12502", + "benchmarks/results-20261015/btree-prefix/pilot/0062-r0-nonlexical-scan1-current.log": "a2d42674abcea3045d20db87b3c4923b2354141345302593886f4b8f05fc40d6", + "benchmarks/results-20261015/btree-prefix/pilot/0062-r0-nonlexical-scan1-current.stat": "1783f2261310de60d42ff80f08a32cca634f93ed533473d2e2ea8fa368cc077a", + "benchmarks/results-20261015/btree-prefix/pilot/0063-r0-nonlexical-scan10000-main.log": "01157a06158c4ef2450f7a1ad6a5ece502df557d0e24e60ae1f4b3b9334d6be6", + "benchmarks/results-20261015/btree-prefix/pilot/0063-r0-nonlexical-scan10000-main.stat": "c54a62111a25363c68624b70c40fc4c30c1f1250600d5784e993ba06c5139229", + "benchmarks/results-20261015/btree-prefix/pilot/0064-r0-nonlexical-scan10000-current.log": "c9feeaeea314cfc460efa9fcba7d6c3b7d7070f8301e2eb85ccff138b3120a67", + "benchmarks/results-20261015/btree-prefix/pilot/0064-r0-nonlexical-scan10000-current.stat": "5437b03a9bb8447da6ac636bd5bdd36ef07101b96aba47ff4d46f7ec3c317a87", + "benchmarks/results-20261015/btree-prefix/pilot/0065-r0-nonlexical-scanfull-main.log": "d490b8c7371f8a0efc39c8d58c16655782037af9a49f06f9c9625d2b5ad249c1", + "benchmarks/results-20261015/btree-prefix/pilot/0065-r0-nonlexical-scanfull-main.stat": "fda8ad80fdd53e5f06a6bc3913bfa49e3d88f0a6d7b8a658236cb4064a43065a", + "benchmarks/results-20261015/btree-prefix/pilot/0066-r0-nonlexical-scanfull-current.log": "4a23418055c4ae57ca1073c40e5f49163f71bfa003b3676463e889931961ff4a", + "benchmarks/results-20261015/btree-prefix/pilot/0066-r0-nonlexical-scanfull-current.stat": "a699567260ff8710fb09ad22c1a14b37fa5fe7563535e07862d0eb7f8531b3ca", + "benchmarks/results-20261015/btree-prefix/pilot/build.json": "ee8996799e96284e5343a942b83c8f29433109b34d62dd31d7cb115a4e0353dd", + "benchmarks/results-20261015/btree-prefix/pilot/manifest.json": "f4eae124ee216ab837bf825b90ab3d570a16738f692b9869e1e4bfd3eb27aa53", + "benchmarks/results-20261015/btree-prefix/pilot/plan.json": "49e032eea4ac596eec158f636b530fc07152a80f537b18c8a182a46512066e6f", + "benchmarks/results-20261015/btree-prefix/pilot/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/pilot/summary.json": "8e321a716887b2ce421196e68d7d1db3b3fd3f606a837457ff523bbb2e22bcb9", + "benchmarks/results-20261015/btree-prefix/primary-plan.json": "b91771185453f04cb5b75feb35c1d5fa27f4481120d0ecc71da85c5a5f64249d", + "benchmarks/results-20261015/btree-prefix/primary/0001-r0-common-insert-random-main.log": "495dfc420a78f75e8e5aca3ced353c0969bd65068e2fab4ebb73df9991e2c1dd", + "benchmarks/results-20261015/btree-prefix/primary/0001-r0-common-insert-random-main.stat": "b9aafdb82cf5a7e17e902f5cc318410b595b5747bb8fae6bb8fc75fc48d32cf4", + "benchmarks/results-20261015/btree-prefix/primary/0002-r0-common-insert-random-current.log": "afcca8030eb945b1479eeb96a94d82708fe125b276257de8fdea0568c4018ed4", + "benchmarks/results-20261015/btree-prefix/primary/0002-r0-common-insert-random-current.stat": "f89dc343888a11ba3ccbae2bdee5b238ac894ffef9ecef523751d050ebd6f0e8", + "benchmarks/results-20261015/btree-prefix/primary/0003-r0-common-insert-sorted-main.log": "923bb4c67cec02758bd6a01bd0dfe985a0cb96e13f46a6f644d1f25b7b534280", + "benchmarks/results-20261015/btree-prefix/primary/0003-r0-common-insert-sorted-main.stat": "3036680c37071d51b9362d1d8c85983f8d2559419af76183cce6401c1b325931", + "benchmarks/results-20261015/btree-prefix/primary/0004-r0-common-insert-sorted-current.log": "0f49c275e6c24b5c4f242bbd9ea4dc6ffa75f715405244c326b03c5671c2fb59", + "benchmarks/results-20261015/btree-prefix/primary/0004-r0-common-insert-sorted-current.stat": "a066bcd170452b30fd2f627910504dc74a3714a3b80542c7bc2a691a61918b28", + "benchmarks/results-20261015/btree-prefix/primary/0005-r0-common-overwrite-main.log": "293f3bedffc2eea739e8e4b31774f071fbb6f4ddfab0b75f0945184e5079767d", + "benchmarks/results-20261015/btree-prefix/primary/0005-r0-common-overwrite-main.stat": "4e2505e36133477337a0194bc4cf18cc036bb1fd62a31e271ac3d7ce5aca18ed", + "benchmarks/results-20261015/btree-prefix/primary/0006-r0-common-overwrite-current.log": "65aa47d063e808cf6a453aca45203ed1b7cffbeb7b84aaa00f529f5554e6b08d", + "benchmarks/results-20261015/btree-prefix/primary/0006-r0-common-overwrite-current.stat": "51adce24b694b7435241fe6516493e5a169af23b45d191fd06e4cb256a7697fc", + "benchmarks/results-20261015/btree-prefix/primary/0007-r0-common-pack-main.log": "342e1ab16eb5ed38e75e43f2c0a18c9127d4bb76ee7eee9c59691ba74158724f", + "benchmarks/results-20261015/btree-prefix/primary/0007-r0-common-pack-main.stat": "e9918e9ae3c59ffd16d59a65449b59f3b3016ef6fa23686483a34c22c79840ff", + "benchmarks/results-20261015/btree-prefix/primary/0008-r0-common-pack-off.log": "c8a0bd8f059d416e632813c0a72e5749a9d71c51942050d49b7fecfa01c0c439", + "benchmarks/results-20261015/btree-prefix/primary/0008-r0-common-pack-off.stat": "4d4d9cf931002b3defb3065c5ea9594d6eeaa9dff293b21edd375e60acf915ae", + "benchmarks/results-20261015/btree-prefix/primary/0009-r0-common-pack-on.log": "d03103935dc277e9e170c636e1db872b8d2626ba402abab8a2219e6de4eda8dc", + "benchmarks/results-20261015/btree-prefix/primary/0009-r0-common-pack-on.stat": "2db7bc01cfc7ad1ce2265dc2f7671b0062abd8b883481355c34dd4fb9cafa426", + "benchmarks/results-20261015/btree-prefix/primary/0010-r0-common-hit-main.log": "b0032cb9f40a8517258134bdd1399d0c222ff5606ed052795e89528bc83bdd98", + "benchmarks/results-20261015/btree-prefix/primary/0010-r0-common-hit-main.stat": "5fd1613f691ac033430d7487c137fac93e51c8622802d7f0055f66e9c0373cea", + "benchmarks/results-20261015/btree-prefix/primary/0011-r0-common-hit-off.log": "2338b7bb2d0f405345e2880b2695c3c2d0995f7b59aeef4ed32384a02a96e9ca", + "benchmarks/results-20261015/btree-prefix/primary/0011-r0-common-hit-off.stat": "0f101f338e9c49481968e8d638fa551595cb586b75fa5bec9af039cfff354078", + "benchmarks/results-20261015/btree-prefix/primary/0012-r0-common-hit-on.log": "d277ca9caa87c26cdc0acbe97960249977a207166c930a3923a1e210de5b3696", + "benchmarks/results-20261015/btree-prefix/primary/0012-r0-common-hit-on.stat": "ec16f40b016858b53c9ff46312c6a149c57a9dd34546789309e49a78b5dab54f", + "benchmarks/results-20261015/btree-prefix/primary/0013-r0-common-miss-main.log": "3336ee80a41eeb036bccd54271e151b4f7a5a2fe894394883e91dee94e8cb8ee", + "benchmarks/results-20261015/btree-prefix/primary/0013-r0-common-miss-main.stat": "e060ef284bf4ca3655d022554c86f9e83f802252077a6273bb3524774904bb68", + "benchmarks/results-20261015/btree-prefix/primary/0014-r0-common-miss-off.log": "dc540d6df70759fe16d85a8523bede8fa1d531843412b537ac8821386e51dcbc", + "benchmarks/results-20261015/btree-prefix/primary/0014-r0-common-miss-off.stat": "06fa03dbf2469eb452bc478722f90309d918bbae9f82cc43b6763a8b377697bf", + "benchmarks/results-20261015/btree-prefix/primary/0015-r0-common-miss-on.log": "27d3d9a683220636b4570ab8a36700e2be6a49551212a195932f225c723634ef", + "benchmarks/results-20261015/btree-prefix/primary/0015-r0-common-miss-on.stat": "04033a22afe25965267bf8260b27dbd59caf570294be4fdd4b48941e2e1228b0", + "benchmarks/results-20261015/btree-prefix/primary/0016-r0-common-scan1-main.log": "35dd88a978a05b2f35a9543efdcd85a7a2efa051c2c3a829d3f042ec46629e2d", + "benchmarks/results-20261015/btree-prefix/primary/0016-r0-common-scan1-main.stat": "5b56c6e77a042727f106327691b4542149c4aea1608b862ca448dc2887fb29cb", + "benchmarks/results-20261015/btree-prefix/primary/0017-r0-common-scan1-off.log": "e71e5f1d29d79b23ae9e5a1efedd813914ca7f9fcf3472c5adb727cb2cc87105", + "benchmarks/results-20261015/btree-prefix/primary/0017-r0-common-scan1-off.stat": "0ceb62d13118d0819ce6754cb504b2b959e9a5e7a630252b91b91744ca97bfdb", + "benchmarks/results-20261015/btree-prefix/primary/0018-r0-common-scan1-on.log": "623710e73b0dc2ab9c273a2c7e1c471e569673f08e4d83a93aa7a2c4fc4ab924", + "benchmarks/results-20261015/btree-prefix/primary/0018-r0-common-scan1-on.stat": "23a8c42e5165759946f0e1255df4faab2f782c81fa73400dc6839ac52f7daf92", + "benchmarks/results-20261015/btree-prefix/primary/0019-r0-common-scan10000-main.log": "732df0a5c4ce035e56b04436aa1b5fa698e239146190c83ddb0f8232c7d848c6", + "benchmarks/results-20261015/btree-prefix/primary/0019-r0-common-scan10000-main.stat": "08957dd5c6924089139e98fa690eb084955d30d0d8441adf0b7dd0ae357de2ce", + "benchmarks/results-20261015/btree-prefix/primary/0020-r0-common-scan10000-off.log": "429a19226f673414cf504ccfe0a8c15c60a489933d159dd0c816955c59d1bcb3", + "benchmarks/results-20261015/btree-prefix/primary/0020-r0-common-scan10000-off.stat": "2bd7910ede4659bf1e96c1030301283f4abc2dfb0b4e7b7a1055821ed02c7133", + "benchmarks/results-20261015/btree-prefix/primary/0021-r0-common-scan10000-on.log": "a669935f63c22fcaf07052faa2aa6767e7565a6ef5fdc87dfb92a037b368a4dd", + "benchmarks/results-20261015/btree-prefix/primary/0021-r0-common-scan10000-on.stat": "25a2f50d0f6ab7352db5071282d289573c830b074df574ed4057d5bcf5f7db6b", + "benchmarks/results-20261015/btree-prefix/primary/0022-r0-common-scanfull-main.log": "60a73c615df09b3103895953ac26267ce878a3d28b5089d7b08e6b99fb33a01f", + "benchmarks/results-20261015/btree-prefix/primary/0022-r0-common-scanfull-main.stat": "5bbbb7b56bb2956e7769956454ab0d4db1b83add8c613f3ec9426b2eee183f61", + "benchmarks/results-20261015/btree-prefix/primary/0023-r0-common-scanfull-off.log": "be7e10fd0685091a53f2eaead8713e0f5898816d2713bc48cd0333a1b0cea08e", + "benchmarks/results-20261015/btree-prefix/primary/0023-r0-common-scanfull-off.stat": "f413e4b225fb6da6de1471b68e334641678c8b92c43b956b74d0f12efece72be", + "benchmarks/results-20261015/btree-prefix/primary/0024-r0-common-scanfull-on.log": "35eb47649e70eda63b2fe9f585a2ff3ba3bf841c2c86ac11658c391e85853377", + "benchmarks/results-20261015/btree-prefix/primary/0024-r0-common-scanfull-on.stat": "3810c1bc55b1c916ecd4d9e1468b101b9f54bf00214a2544da740bd58229f8da", + "benchmarks/results-20261015/btree-prefix/primary/0025-r0-random-insert-random-main.log": "b66ec3b5fba633a8fdd0882f6e047fd62958070a68cb5750cb51b2bd99eef4b7", + "benchmarks/results-20261015/btree-prefix/primary/0025-r0-random-insert-random-main.stat": "9598898be266b98fbb38a3b0c9c3cff285e2dbc212d3660e162b239020e7869e", + "benchmarks/results-20261015/btree-prefix/primary/0026-r0-random-insert-random-current.log": "430e73759d13f7a422222e6dcb3e3b63939721d8f0e5853f313e75ab7ea61f13", + "benchmarks/results-20261015/btree-prefix/primary/0026-r0-random-insert-random-current.stat": "befb8f1a250600af0f1d93d5227f473d4d1dde361deb09318f7a0db4c1965f1b", + "benchmarks/results-20261015/btree-prefix/primary/0027-r0-random-insert-sorted-main.log": "105420d34ab4c351e408dfa25ccad8129d71b95609962b700a2d1e3582b9a572", + "benchmarks/results-20261015/btree-prefix/primary/0027-r0-random-insert-sorted-main.stat": "afc287737a71e22ed803dbb5865f81e2cda38e9463139a1509216827bfd6a7ed", + "benchmarks/results-20261015/btree-prefix/primary/0028-r0-random-insert-sorted-current.log": "d822c90f6ba111698c18441f5028c44e74cefb531dfb10148d33ec0099de3843", + "benchmarks/results-20261015/btree-prefix/primary/0028-r0-random-insert-sorted-current.stat": "5e4ce2c886b3e92dfb6b2eacb980d66bb1307b058747dbf16658fa04baf22722", + "benchmarks/results-20261015/btree-prefix/primary/0029-r0-random-overwrite-main.log": "6cd4fa03322a43f790fc2ac95e07d95fc6cee95357849fffda23377e1483c887", + "benchmarks/results-20261015/btree-prefix/primary/0029-r0-random-overwrite-main.stat": "a930c11e8da808d276a13b8b51ff7fd68d495926e8e63857a4671cc3a2650f33", + "benchmarks/results-20261015/btree-prefix/primary/0030-r0-random-overwrite-current.log": "231c1660086d733836daf401f23eb10d2ce07316fbc818e37dec897561884f17", + "benchmarks/results-20261015/btree-prefix/primary/0030-r0-random-overwrite-current.stat": "cae4ff417d176b7373102e0e0943a025b229a72880f7a524735e7014506beb64", + "benchmarks/results-20261015/btree-prefix/primary/0031-r0-random-pack-main.log": "7442dd1f2948d2fa5ae053071542ef898917e9815404708ea19de45c670f96cd", + "benchmarks/results-20261015/btree-prefix/primary/0031-r0-random-pack-main.stat": "34f3ccacb4fff09fbfd43cbb4e6a342d487f0909bb36f30eae032066d308db99", + "benchmarks/results-20261015/btree-prefix/primary/0032-r0-random-pack-off.log": "9ed5eeb5d171cd5badded6af4382523ae6a706a4fd3d64183a0d079c1da97b70", + "benchmarks/results-20261015/btree-prefix/primary/0032-r0-random-pack-off.stat": "374dcfb4d4eefaf5eaef07d48c1bf91543da1c5b61c4a2410ba3ad48ad5a8916", + "benchmarks/results-20261015/btree-prefix/primary/0033-r0-random-pack-on.log": "1ce803295bfc7b068e3cb15619bf279cc2a6dd186cb911c15be5887eaaf5a43d", + "benchmarks/results-20261015/btree-prefix/primary/0033-r0-random-pack-on.stat": "bfe5e6c9fe432dadfed94e06af14a14e3e6a4fdf355d0361b66616cda65e7841", + "benchmarks/results-20261015/btree-prefix/primary/0034-r0-random-hit-main.log": "5a13d1c5d3495cd7acfae7269a6021691af74446826a3bd97afccd8ba5ebe7d6", + "benchmarks/results-20261015/btree-prefix/primary/0034-r0-random-hit-main.stat": "126995e0ca41e4834d134a8d03d1a1ab65aa012a9245077d8b761a4b98bfe247", + "benchmarks/results-20261015/btree-prefix/primary/0035-r0-random-hit-off.log": "66c471d465adbe4395af6b13bc8de46d287137842f32482cf6280cdcba6c3f5c", + "benchmarks/results-20261015/btree-prefix/primary/0035-r0-random-hit-off.stat": "6134a7c2982c2f0fb8efc463e743f551e9ea4286727233e0cfa0195efc069cbb", + "benchmarks/results-20261015/btree-prefix/primary/0036-r0-random-hit-on.log": "bca19cc3002d69780832a09460b06092c0e4ab20de84a4df11b52d17716e6712", + "benchmarks/results-20261015/btree-prefix/primary/0036-r0-random-hit-on.stat": "edaa6f5836b3165db53135612b12b204868a8561d8ccd60b38155b0f7881a03a", + "benchmarks/results-20261015/btree-prefix/primary/0037-r0-random-miss-main.log": "4fd7d200921171b347fe49f97d61a76a5e7f6e829262139027e2657855d46c0d", + "benchmarks/results-20261015/btree-prefix/primary/0037-r0-random-miss-main.stat": "26a6da2908684feae41a7f9991b7288d2334eec8780215a6d77adef0cf1d49a9", + "benchmarks/results-20261015/btree-prefix/primary/0038-r0-random-miss-off.log": "7ba3feba8b1ce9064d56eb31e399ef802c6d89d39df56e05fe360f7d1bc7b6dd", + "benchmarks/results-20261015/btree-prefix/primary/0038-r0-random-miss-off.stat": "29c4244fdfb18a779e5a80c886af5e8cf78384f636a22890056c07e13bd13dff", + "benchmarks/results-20261015/btree-prefix/primary/0039-r0-random-miss-on.log": "f6cd932bf556f2bb03a2adf46bc5d48e414f01fafcf6566f13bf0a9b0abd0c1e", + "benchmarks/results-20261015/btree-prefix/primary/0039-r0-random-miss-on.stat": "8aecd5c4a50d9504913ea43f8d6ce9d5215b276d6f9dba5f679f674cbb8a1f82", + "benchmarks/results-20261015/btree-prefix/primary/0040-r0-random-scan1-main.log": "75fdb3aed53784f79f1a646b690dbd270cf9be45ed24ca911f12d4c8ba0baf14", + "benchmarks/results-20261015/btree-prefix/primary/0040-r0-random-scan1-main.stat": "a2b838ebab36bab92ded2055feccc3e0296d5fa5f3676dabbfeb4c1927045cb6", + "benchmarks/results-20261015/btree-prefix/primary/0041-r0-random-scan1-off.log": "10374c9c145c0a791214f558bf4a2e09cd647bb9efc56b927173182c96698424", + "benchmarks/results-20261015/btree-prefix/primary/0041-r0-random-scan1-off.stat": "b92d567dadcfcb217958869863bd2f5d70ef9b6c2ca8a096cec3bf89d3fadadd", + "benchmarks/results-20261015/btree-prefix/primary/0042-r0-random-scan1-on.log": "3c0306f3060df86194005c351b9ad14a2523c8f45b76b5a0e2b2530027664b5d", + "benchmarks/results-20261015/btree-prefix/primary/0042-r0-random-scan1-on.stat": "afba69a3db9fbdd762a24e0e729d7584352488bf9cf60a073ecf90bf5adc41c0", + "benchmarks/results-20261015/btree-prefix/primary/0043-r0-random-scan10000-main.log": "3068015a941bff74eab26c7a8877e176d1d795218f25bbe0b085ebe662e50968", + "benchmarks/results-20261015/btree-prefix/primary/0043-r0-random-scan10000-main.stat": "976dbebd5d214c1377bb039ec9c5400499bb0bad158d64e497b47862710f2294", + "benchmarks/results-20261015/btree-prefix/primary/0044-r0-random-scan10000-off.log": "0b1ef27ab8cccf9c67dec2d02a95f33abc972ed20918f61685b7e90ca07b561e", + "benchmarks/results-20261015/btree-prefix/primary/0044-r0-random-scan10000-off.stat": "db9c11a6c5477b092c9968e4685998671c627e55b068180e8257d88575e1352f", + "benchmarks/results-20261015/btree-prefix/primary/0045-r0-random-scan10000-on.log": "48c622db3f003de1e77bf6d85c3a98a7e1f64e8536fb95afbac46e40c921ae75", + "benchmarks/results-20261015/btree-prefix/primary/0045-r0-random-scan10000-on.stat": "9e6e621b48b5cb7386012a388adf907fc01d275c18194cf48e99e683bb1de82c", + "benchmarks/results-20261015/btree-prefix/primary/0046-r0-random-scanfull-main.log": "c36d4639743ff7c525e3589d0981da1d0ca656f12eff775d69cdbdd1aed6284e", + "benchmarks/results-20261015/btree-prefix/primary/0046-r0-random-scanfull-main.stat": "2ee06686ba7793c31b0da8e20f1333bca017b3a0e557f530c65c359e211e3bbe", + "benchmarks/results-20261015/btree-prefix/primary/0047-r0-random-scanfull-off.log": "7f9459265a0945bb976cb2e318906ff14607a6053c3f2f3fe5bb35ba4415ff2c", + "benchmarks/results-20261015/btree-prefix/primary/0047-r0-random-scanfull-off.stat": "0f7bbcda4503de8b0de1db30ca84c4184a704d8bf186ca77e340cc0521b03ca0", + "benchmarks/results-20261015/btree-prefix/primary/0048-r0-random-scanfull-on.log": "e3db12d549cc6f254cf3508e9a9da7031ae81ae2027612fd4b0b79b5f8288032", + "benchmarks/results-20261015/btree-prefix/primary/0048-r0-random-scanfull-on.stat": "9327b3982dc0855741c8e54b3fe1f6c0da35647bc872c00fd59d5c8e1ebf8700", + "benchmarks/results-20261015/btree-prefix/primary/0049-r0-nonlexical-insert-random-main.log": "a54d41b024caa79e24f7002c3eb50b0181abd1ff18c84ccab8a56e0665f5c8f9", + "benchmarks/results-20261015/btree-prefix/primary/0049-r0-nonlexical-insert-random-main.stat": "ae25f831773909ec7cccbbdec3627eabb74331a792d6894240158005a60a32f6", + "benchmarks/results-20261015/btree-prefix/primary/0050-r0-nonlexical-insert-random-current.log": "1fc5c9ea86648bb687d9f6bb7b8d3e036f65fcf7e1e10843285024276772d63b", + "benchmarks/results-20261015/btree-prefix/primary/0050-r0-nonlexical-insert-random-current.stat": "5e22d81510a6ade6c7424c14d01c40b3ad8ff931178df995acf1ebe13616e404", + "benchmarks/results-20261015/btree-prefix/primary/0051-r0-nonlexical-insert-sorted-main.log": "a97a0fce9de09e971b6bb5c753dadf737e140ea2684b6db630c7190b0caca061", + "benchmarks/results-20261015/btree-prefix/primary/0051-r0-nonlexical-insert-sorted-main.stat": "f9ab983dce1812de1d64fdde1d959221ecf7fa6aebbf54ffb6f165f9acb3c6e6", + "benchmarks/results-20261015/btree-prefix/primary/0052-r0-nonlexical-insert-sorted-current.log": "b18bd7511054aeef578c1f93e708fe4a754ea3cb72bfcec82a84e9929cc26823", + "benchmarks/results-20261015/btree-prefix/primary/0052-r0-nonlexical-insert-sorted-current.stat": "2028696b68dabcce4a31d12a1e937e11b440353a29eaf367c27bde0893ee9599", + "benchmarks/results-20261015/btree-prefix/primary/0053-r0-nonlexical-overwrite-main.log": "268c5be865f885afc46e57c336129f1a6b64f0df48f8af0a71100fc5bfac5106", + "benchmarks/results-20261015/btree-prefix/primary/0053-r0-nonlexical-overwrite-main.stat": "223ad71822c922ef2ee813aa3dfcd31194849d36e8552559d030f4811e62c5b0", + "benchmarks/results-20261015/btree-prefix/primary/0054-r0-nonlexical-overwrite-current.log": "24d97432172aa6f2b9700242960c7c641d6680f4bec4a3511ed2431153eb4032", + "benchmarks/results-20261015/btree-prefix/primary/0054-r0-nonlexical-overwrite-current.stat": "32c62ded740d5743e05f199a33b0934b296b931e1f3e431e34fabd029b574955", + "benchmarks/results-20261015/btree-prefix/primary/0055-r0-nonlexical-pack-main.log": "0fc0af8b460a801d82d05014ce4ff508f0230928b9c34bf348156541218b6ddf", + "benchmarks/results-20261015/btree-prefix/primary/0055-r0-nonlexical-pack-main.stat": "f8ea58c538d7f7ad400e6aeb29116d6826d9355f5ebe1677eb73b3e9b0e53e36", + "benchmarks/results-20261015/btree-prefix/primary/0056-r0-nonlexical-pack-current.log": "0fcdf7b604698a0649b9605c16166243d0e1184c78092d111a073bca0c47edfe", + "benchmarks/results-20261015/btree-prefix/primary/0056-r0-nonlexical-pack-current.stat": "0dccebb84653ab30ee93f7260282e35bdaa1cbcecacda39765e942bf11d4565e", + "benchmarks/results-20261015/btree-prefix/primary/0057-r0-nonlexical-hit-main.log": "7e8ee6446e245c338c1d1495b255e57c343bbc9afa71e77184c0884bc0d6dbf6", + "benchmarks/results-20261015/btree-prefix/primary/0057-r0-nonlexical-hit-main.stat": "06165e0f612ed69cf50de4cf4e1be8fb91b861984fedd48637afd52b4640b683", + "benchmarks/results-20261015/btree-prefix/primary/0058-r0-nonlexical-hit-current.log": "254f504e05d133f7e376c7b9ca19a2321738a1ceba320936cdaab3b6aa2a09ee", + "benchmarks/results-20261015/btree-prefix/primary/0058-r0-nonlexical-hit-current.stat": "97e454dcc9652a8d7604d6b4f4c3cd2685b6d561b7c9907ba97342d8631ec351", + "benchmarks/results-20261015/btree-prefix/primary/0059-r0-nonlexical-miss-main.log": "a80e9161ab0e3239d0ad4e7c7016cf2d32a2360581ca84325fd37506c0d95539", + "benchmarks/results-20261015/btree-prefix/primary/0059-r0-nonlexical-miss-main.stat": "b8a9e40522bf2b3bd8828870da9961d690764e557a12489e871b772ea14a571c", + "benchmarks/results-20261015/btree-prefix/primary/0060-r0-nonlexical-miss-current.log": "a61edc56aae9b9180d6b5e523c52a94e2b89398018a0fec0548ae951005d6670", + "benchmarks/results-20261015/btree-prefix/primary/0060-r0-nonlexical-miss-current.stat": "7c006c7dbee33eee4427540c2a3d81416a2b5ed1168040eecfa21967c69a12d0", + "benchmarks/results-20261015/btree-prefix/primary/0061-r0-nonlexical-scan1-main.log": "89671fd538127dd61171d8ebdfb6928bc25c6b818be68bfcbcc74426a9408879", + "benchmarks/results-20261015/btree-prefix/primary/0061-r0-nonlexical-scan1-main.stat": "e12cc7bc3d3558587eb8804474ff0f72fc1de90e34b48afff8ca2ddfc63fc6b9", + "benchmarks/results-20261015/btree-prefix/primary/0062-r0-nonlexical-scan1-current.log": "a9c953a5df124705de654ad62a28581ed0cca0ef4db32f1edd77e8c012eda2b2", + "benchmarks/results-20261015/btree-prefix/primary/0062-r0-nonlexical-scan1-current.stat": "cda29b21d305999ba5285a44c73259f48177eac1968289b76f37fa9327a3420c", + "benchmarks/results-20261015/btree-prefix/primary/0063-r0-nonlexical-scan10000-main.log": "f51dff3a390254ef05a4fa540aa282986f248948a60f478bc83402f4b3b0d5b5", + "benchmarks/results-20261015/btree-prefix/primary/0063-r0-nonlexical-scan10000-main.stat": "1dea5e14d80e1df4e82da752092ce12de859ab1b0cd3d0bba7b8052022da2b0e", + "benchmarks/results-20261015/btree-prefix/primary/0064-r0-nonlexical-scan10000-current.log": "f8fd36d14e096657061f3d73b26094241d3bd8582430dbabfc940637d6e14947", + "benchmarks/results-20261015/btree-prefix/primary/0064-r0-nonlexical-scan10000-current.stat": "b94b6c184c210b08ce56c1c3e3703d5370a778cc448cad00e77f8023db1e399f", + "benchmarks/results-20261015/btree-prefix/primary/0065-r0-nonlexical-scanfull-main.log": "3f47f093fd6d67860824ecb87264da610e749144693db4ce95360d74760c6440", + "benchmarks/results-20261015/btree-prefix/primary/0065-r0-nonlexical-scanfull-main.stat": "0e0df3c61eee66915582331968fff38d59542564c4c4521f7a870d26e2ae9547", + "benchmarks/results-20261015/btree-prefix/primary/0066-r0-nonlexical-scanfull-current.log": "56437acc2fadb4b2679f9a1361b902c4d0ee753807a145b3d1ab926bb31a1548", + "benchmarks/results-20261015/btree-prefix/primary/0066-r0-nonlexical-scanfull-current.stat": "e4169e791dc41a91de3d325d8a43f787eafa986cd67c7a6f8d38b0a5b41eda24", + "benchmarks/results-20261015/btree-prefix/primary/0067-r1-common-insert-sorted-current.log": "eea4421d5ffe729afbfc41e2a13e9a39ff742341cff4a3870510bf7e4819fc0c", + "benchmarks/results-20261015/btree-prefix/primary/0067-r1-common-insert-sorted-current.stat": "170ca3614a28ac0416f0838783bb8cffce59295b01ddefda38e54219b2540bd0", + "benchmarks/results-20261015/btree-prefix/primary/0068-r1-common-insert-sorted-main.log": "bbeecb22a35dbffa1bb2fa4ac288649b0d621eb9de2e05ee048fda067b9ce3d3", + "benchmarks/results-20261015/btree-prefix/primary/0068-r1-common-insert-sorted-main.stat": "98c3bf77f83afa703daebcaa5c66fd512aa330fdd858712749ca34393b15712c", + "benchmarks/results-20261015/btree-prefix/primary/0069-r1-common-overwrite-current.log": "bd8fc727a8733fb9d9a80b8b454dcee286ae1957f8c7958c23095330070898ce", + "benchmarks/results-20261015/btree-prefix/primary/0069-r1-common-overwrite-current.stat": "ea56bbb8f49b2f00279ebca0d01b389c681b27f7e3fd36d6dc14ce5b6bf84c38", + "benchmarks/results-20261015/btree-prefix/primary/0070-r1-common-overwrite-main.log": "ec68661dddd4e572e7e46ae76e7d41374a6d4d04a27edf82156364be4f231fd8", + "benchmarks/results-20261015/btree-prefix/primary/0070-r1-common-overwrite-main.stat": "bc7b0b7de865dbbf4ae78bb6d32110de665a0efc1c442dffe20d05385422038c", + "benchmarks/results-20261015/btree-prefix/primary/0071-r1-common-pack-main.log": "652355b6669c486ea6fba579961d76254a5b5eb7af7085f146e9ea0c0541750e", + "benchmarks/results-20261015/btree-prefix/primary/0071-r1-common-pack-main.stat": "ea4c013ceda3653a97aa191486ad4647b3dd9d121445bfaaaabb7ce5316e2d38", + "benchmarks/results-20261015/btree-prefix/primary/0072-r1-common-pack-on.log": "1ed83e9947f211b9eb2559a01ed6a5e2583442c6ff48ed5dd1ddf9684340f8cb", + "benchmarks/results-20261015/btree-prefix/primary/0072-r1-common-pack-on.stat": "3d9f6b3d799b1dd7e9b30fea61292cd7f609002b1aafce8d514f98299b3638e4", + "benchmarks/results-20261015/btree-prefix/primary/0073-r1-common-pack-off.log": "afdd7567c4a1ca9606b4394a773a9fadbdcb2c42685a6d2a1ee4fb037f63b842", + "benchmarks/results-20261015/btree-prefix/primary/0073-r1-common-pack-off.stat": "0ae62b51cff4db8fc2c44b13832297f69c646f05146181ab984fe1e08814173b", + "benchmarks/results-20261015/btree-prefix/primary/0074-r1-common-hit-main.log": "949202fb5c6d90515c10189c22b2440942e575ab306128a6041e495772d38f6b", + "benchmarks/results-20261015/btree-prefix/primary/0074-r1-common-hit-main.stat": "78f087e49c2f15e47866f39606fa6fdbcf20c106f4343eca7606fa87649b1e29", + "benchmarks/results-20261015/btree-prefix/primary/0075-r1-common-hit-on.log": "5d695847fde09dc306fc0544ac70dc47c6ac0d2beed81356326d08094625bbb6", + "benchmarks/results-20261015/btree-prefix/primary/0075-r1-common-hit-on.stat": "d0e38a972e723c13a26dc457256c6f33d0c21b4bcce43232b979368b96b62d54", + "benchmarks/results-20261015/btree-prefix/primary/0076-r1-common-hit-off.log": "dc3a618718fb54d66cb8599fae85887f0e6e57a5ae5681ecc4ed2f66a5a18ee6", + "benchmarks/results-20261015/btree-prefix/primary/0076-r1-common-hit-off.stat": "2f2a62aa4cf07305535c149f23d8fe8f76cdc6d1c04f9da00e8c732775f2cd55", + "benchmarks/results-20261015/btree-prefix/primary/0077-r1-common-miss-main.log": "6bd12547bda269bfb8cd8f609d170191504a8006b65eabb48ec2ab7f0cf92ac1", + "benchmarks/results-20261015/btree-prefix/primary/0077-r1-common-miss-main.stat": "112ff290499630540fdb1126cf62eedfe4fba20c2899b8d5df0e8c17c8e22a5d", + "benchmarks/results-20261015/btree-prefix/primary/0078-r1-common-miss-on.log": "2592e7563061aeecbb36fa109871dbe424ec7a149c12b10f4c61818b618413aa", + "benchmarks/results-20261015/btree-prefix/primary/0078-r1-common-miss-on.stat": "e8e165c00f3178a3e9e9e65db19c3630981cb925faeb1eed773062ca645a7d13", + "benchmarks/results-20261015/btree-prefix/primary/0079-r1-common-miss-off.log": "cbd103269072e66be9e9d0ab361dc3586c9e6c45c1cf59fcf90b9f3da29098b6", + "benchmarks/results-20261015/btree-prefix/primary/0079-r1-common-miss-off.stat": "19afa2b9753c3deead8127bb6cec5ddc40e0ddad52ecc72b9723f5492eb71f7a", + "benchmarks/results-20261015/btree-prefix/primary/0080-r1-common-scan1-main.log": "e5a04dcc8391c2f9c81d812a731f2195bbc0d5dcbde33dbd83b893c1e879fc2b", + "benchmarks/results-20261015/btree-prefix/primary/0080-r1-common-scan1-main.stat": "240943bb10fb6a836287278782d698fdfe07b752458615bbbdc9e8c046efb63c", + "benchmarks/results-20261015/btree-prefix/primary/0081-r1-common-scan1-on.log": "1faa748ee70c763918f98e4bcd9a7c29fcc3c4e66c7f9e1c3162fa8ac9b87ff4", + "benchmarks/results-20261015/btree-prefix/primary/0081-r1-common-scan1-on.stat": "e4001f395010778d80c2c15e5716c1d9b553d69f1a3d0ef29bac5636a78dbddf", + "benchmarks/results-20261015/btree-prefix/primary/0082-r1-common-scan1-off.log": "0fd409dc04a9fe487f99d31c9ddb4bf250399ac48e937ac2f05cf99188f8fc48", + "benchmarks/results-20261015/btree-prefix/primary/0082-r1-common-scan1-off.stat": "387f2bd2fc56eb88c84cce889778ea1b535e8d6d19f6948d754fc3a9ba55b1b4", + "benchmarks/results-20261015/btree-prefix/primary/0083-r1-common-scan10000-main.log": "f32978382e7ef53095e90189136df32f735b57488b5bb39ed389fc33ef3c8014", + "benchmarks/results-20261015/btree-prefix/primary/0083-r1-common-scan10000-main.stat": "7b49fd89b6086a0edf157d2adae4e68e6aada282e0bfc9ff4060ab07c017809d", + "benchmarks/results-20261015/btree-prefix/primary/0084-r1-common-scan10000-on.log": "5b3a67e644ab4b5b6d3032b0b4b21d95929198f3d5c35469907b711aebe71ffb", + "benchmarks/results-20261015/btree-prefix/primary/0084-r1-common-scan10000-on.stat": "f504ddcaaf6efd193aa73e31ee888f5171ff02b3b5d937cec4f479df44ea3b6b", + "benchmarks/results-20261015/btree-prefix/primary/0085-r1-common-scan10000-off.log": "c3ae7e69e3edc39fbe0b732194d5a691b55ae709b036919a9fcf1c5679133311", + "benchmarks/results-20261015/btree-prefix/primary/0085-r1-common-scan10000-off.stat": "efe9adcd150fd2601c9c80a87f20518a706d7e0ae56f7a552da6fabd969a6150", + "benchmarks/results-20261015/btree-prefix/primary/0086-r1-common-scanfull-main.log": "48e68090c56cda026726cbf42dd34baaf7fee4d7c8079a81ee258340bacde4b8", + "benchmarks/results-20261015/btree-prefix/primary/0086-r1-common-scanfull-main.stat": "f99364c38140f0fa25e31f70d552eab29cd119b6dfed0cdeaeb45a31d67e0a31", + "benchmarks/results-20261015/btree-prefix/primary/0087-r1-common-scanfull-on.log": "5215d58ee7019846076d67133a097076d11b5b364a6f34b22a7743ca23996883", + "benchmarks/results-20261015/btree-prefix/primary/0087-r1-common-scanfull-on.stat": "48ace1daf3140393728c3f72b72c4e0883da3bfe201b746ffa27a22b7ee415ea", + "benchmarks/results-20261015/btree-prefix/primary/0088-r1-common-scanfull-off.log": "3585f752fd9e61ac6290fa691bb8b2f983e1caf5c5fe063d1e38e924d58197a8", + "benchmarks/results-20261015/btree-prefix/primary/0088-r1-common-scanfull-off.stat": "f75aa211c0bec806e2f5994e2f9de4a64eb0b0be6650a0a6fc37a1aa3343c03c", + "benchmarks/results-20261015/btree-prefix/primary/0089-r1-random-insert-random-current.log": "c7adc7a9216ac89c685dc6ee85e7e742c322d5b591719c542b0ca56d5c6ec421", + "benchmarks/results-20261015/btree-prefix/primary/0089-r1-random-insert-random-current.stat": "68794703cd11a37cff43bd573ea7c519c3ab3ce54cdaf9f6e5c06edcb5723434", + "benchmarks/results-20261015/btree-prefix/primary/0090-r1-random-insert-random-main.log": "4b24a2dfd912786b606a254f07809d2be0a29ad4752bc6394704313460aa12af", + "benchmarks/results-20261015/btree-prefix/primary/0090-r1-random-insert-random-main.stat": "8f4de85ee00f4f6f3e16cc48bec265a7f91a3d3d855c26eb10cb81d4163b86c7", + "benchmarks/results-20261015/btree-prefix/primary/0091-r1-random-insert-sorted-current.log": "cb8c5967e081584cc8e68dcf8a702a2cf1b1a996bc06d3a9920204599304f0ac", + "benchmarks/results-20261015/btree-prefix/primary/0091-r1-random-insert-sorted-current.stat": "e77d9c946ded005f9a27b4304f4f6c2b1d5f78571ee5fdfa41897b881a10e734", + "benchmarks/results-20261015/btree-prefix/primary/0092-r1-random-insert-sorted-main.log": "befba85e277111f54e227cfa849b2f438f5e6de0138043fad68b3bd3e56c192b", + "benchmarks/results-20261015/btree-prefix/primary/0092-r1-random-insert-sorted-main.stat": "9f06e06295b1790c46c01a686255ffe83850a42e7f3790fd511f0a926c3ca46c", + "benchmarks/results-20261015/btree-prefix/primary/0093-r1-random-overwrite-current.log": "e9541e00d0112f8310d09eccfd5b6555336cf89628bb63560cea928d3fe0fbae", + "benchmarks/results-20261015/btree-prefix/primary/0093-r1-random-overwrite-current.stat": "cfc9b43a83c437c3cfd7c7eb7e1874089338d1d2c95737c9e532ceb9eb68574c", + "benchmarks/results-20261015/btree-prefix/primary/0094-r1-random-overwrite-main.log": "bab07a04c28d08fe57161bd039385066ea26dcd1a2dc5ff403dac9b6cb42c553", + "benchmarks/results-20261015/btree-prefix/primary/0094-r1-random-overwrite-main.stat": "260091c6c4e4b6fe8d377d958dece134fa89466752e236627e704a66f9a4d1a8", + "benchmarks/results-20261015/btree-prefix/primary/0095-r1-random-pack-main.log": "1f0076cbabadb6f9ba12635a166c1a3ba306bc81c75d549cdaadcd5a6bcc10dc", + "benchmarks/results-20261015/btree-prefix/primary/0095-r1-random-pack-main.stat": "2cf13695f4e68c62738afbe5f1d69ad17b483013c868aae599015fae055e0e7d", + "benchmarks/results-20261015/btree-prefix/primary/0096-r1-random-pack-on.log": "3a9a7ca37bbdae2f933f2faf5050d0df51ea85bc2678f72d91aca0ba450b4216", + "benchmarks/results-20261015/btree-prefix/primary/0096-r1-random-pack-on.stat": "90fe5014ed3d8facdbf54e43dd46756d65e21f1382104aee0a53074f4d605be1", + "benchmarks/results-20261015/btree-prefix/primary/0097-r1-random-pack-off.log": "fa5bd30996978e9c542638620a1a2f3c9ce25ff9c75f59f3f379b93dda5b0cc8", + "benchmarks/results-20261015/btree-prefix/primary/0097-r1-random-pack-off.stat": "d98cc03c1bfb4f7bd1ff0d220474976fd6234ff5e924f3f6479ece0c93b0543d", + "benchmarks/results-20261015/btree-prefix/primary/0098-r1-random-hit-main.log": "b0e18f080f5d539874a0ce9a6a32b33539ec30cc3fcd759d11bdbecf0ec076e4", + "benchmarks/results-20261015/btree-prefix/primary/0098-r1-random-hit-main.stat": "9460414681a00b2e256dbc6dd24f322b4d175704392c1b188331a92f4129469a", + "benchmarks/results-20261015/btree-prefix/primary/0099-r1-random-hit-on.log": "ae4767336d306ea1b4b64b34597675e357b14cb7af1f285a05420b9365514c5b", + "benchmarks/results-20261015/btree-prefix/primary/0099-r1-random-hit-on.stat": "2bb45dc7ea84c9e170b30d872fa99a40dff12ee7061819476392407595c10e2f", + "benchmarks/results-20261015/btree-prefix/primary/0100-r1-random-hit-off.log": "d12e2d14efbf7251557e14ee333f00c7bf78443883ccc01b254ae9cbfca69b80", + "benchmarks/results-20261015/btree-prefix/primary/0100-r1-random-hit-off.stat": "95ba42d726bdcf696446397c05b1a7bfbbc3bebdd1bbf225a60b0098c4a86820", + "benchmarks/results-20261015/btree-prefix/primary/0101-r1-random-miss-main.log": "7460261e0118b61ec2096760ff8012f954cbf1d68b0a50e85b051465a7de7849", + "benchmarks/results-20261015/btree-prefix/primary/0101-r1-random-miss-main.stat": "fccc66d1b212467dfaa1e6c36f4d9b4c03bf04cc7a4d98f8ad66cdac7e9f44be", + "benchmarks/results-20261015/btree-prefix/primary/0102-r1-random-miss-on.log": "79d4d9d67eab038b43e7270e5a3f9f5cbaa1b9493db0f7a7a86e31235c42961d", + "benchmarks/results-20261015/btree-prefix/primary/0102-r1-random-miss-on.stat": "0d706538fd8ae191fc0b1b636240678151081630aa7a10efe0c16bb642a838f2", + "benchmarks/results-20261015/btree-prefix/primary/0103-r1-random-miss-off.log": "17e87e27dcc7cfdd9bef7d7426e9201982b77dd60b2dc0b43c8f954acdc90469", + "benchmarks/results-20261015/btree-prefix/primary/0103-r1-random-miss-off.stat": "a1b794b82b74487320bec84309f59f5798e47a57fe64876855357bd3aea1f64e", + "benchmarks/results-20261015/btree-prefix/primary/0104-r1-random-scan1-main.log": "f6646a1dab3b214d9c5f771bf5b3243412f1bd191684d6ee1e5e32b813e17c3b", + "benchmarks/results-20261015/btree-prefix/primary/0104-r1-random-scan1-main.stat": "816b2c1b8753bcfa46929cd5fad9adef3a98e7a3afdcbf82f4b7cbded03447eb", + "benchmarks/results-20261015/btree-prefix/primary/0105-r1-random-scan1-on.log": "19fc20792c81e892a4a9729acb3f153244bb640f4c04b6149995944b81cce424", + "benchmarks/results-20261015/btree-prefix/primary/0105-r1-random-scan1-on.stat": "bed74b97ea50b702d3eb77fdd0cfbe0e120d85e728e9acf11bb9b9e264b72ad4", + "benchmarks/results-20261015/btree-prefix/primary/0106-r1-random-scan1-off.log": "f312744abb13de90224dbcab4c2ea8f4c8527c204ee1f307e8f08e9d85804439", + "benchmarks/results-20261015/btree-prefix/primary/0106-r1-random-scan1-off.stat": "fa4ac2914b942f902e79719ababf5ef5a3750c26a0664c0dd41bd13291089927", + "benchmarks/results-20261015/btree-prefix/primary/0107-r1-random-scan10000-main.log": "55d47ee4d6ea23d547c2b9e0ae5164f6bdab017ac94253e42d9bf1340e02a5b3", + "benchmarks/results-20261015/btree-prefix/primary/0107-r1-random-scan10000-main.stat": "31f358c52034eb8d6bc7869e7818101c436c6ceedb46b31f5459c281fcc9c449", + "benchmarks/results-20261015/btree-prefix/primary/0108-r1-random-scan10000-on.log": "9096e3459cd2cf23ecd6834810be29e6207b91d2eb8a699d2a57ca8c005d6023", + "benchmarks/results-20261015/btree-prefix/primary/0108-r1-random-scan10000-on.stat": "fb34037f5fe2b93262bf21e69f12518e5b2bae34dfc7a83a70d0e35c9024e961", + "benchmarks/results-20261015/btree-prefix/primary/0109-r1-random-scan10000-off.log": "b6f985c73b06db32491e872f08b19eaedf8923a0f3be5054a4879f8a6ea2f846", + "benchmarks/results-20261015/btree-prefix/primary/0109-r1-random-scan10000-off.stat": "b94bfc6504858828ab2955ee0ced7e9cbef7097aa34dbf9c6252a390447741ab", + "benchmarks/results-20261015/btree-prefix/primary/0110-r1-random-scanfull-main.log": "10e5a019ae4db74fa1e20ae65d349d88ccf4e55dddc439e0887a34e69392884b", + "benchmarks/results-20261015/btree-prefix/primary/0110-r1-random-scanfull-main.stat": "538607900bbf2bcb2ad02386213749b008cae1b957788289498e74500b15404c", + "benchmarks/results-20261015/btree-prefix/primary/0111-r1-random-scanfull-on.log": "63f2eeaf5a44bd18e5830d1253b45fb79ecc4db00a0028f8c9e2a5740776f966", + "benchmarks/results-20261015/btree-prefix/primary/0111-r1-random-scanfull-on.stat": "96c368edfa6ec2fa7cdb3ead721ed21384de00178af698fbb8fb9929d9bbac22", + "benchmarks/results-20261015/btree-prefix/primary/0112-r1-random-scanfull-off.log": "bda641bfbaa1a6abca9705f2e1605bca1e31c5ddc4889e0fa01e2dd92e6ff430", + "benchmarks/results-20261015/btree-prefix/primary/0112-r1-random-scanfull-off.stat": "083408c90b9cbd0913b10f4f0b19110d01a37475b154c5234c608e62f6b014cf", + "benchmarks/results-20261015/btree-prefix/primary/0113-r1-nonlexical-insert-random-current.log": "8ee3a51cb29b7d9b35f2481072cdc5969ea997c56b6fd87cc1c349f8eefbb4a6", + "benchmarks/results-20261015/btree-prefix/primary/0113-r1-nonlexical-insert-random-current.stat": "56e7bd63c0d1b7d19170c300dd27c00a44892fe4f6ed01f82aa648e73bc21d98", + "benchmarks/results-20261015/btree-prefix/primary/0114-r1-nonlexical-insert-random-main.log": "0f40dc770c2a1ec9121d6440a3657921144e0cbc98b1718f17013436f68675f6", + "benchmarks/results-20261015/btree-prefix/primary/0114-r1-nonlexical-insert-random-main.stat": "67f1b689adccbb6580c207c9b7d025d9569d64452196fbcdffc9d476fed77373", + "benchmarks/results-20261015/btree-prefix/primary/0115-r1-nonlexical-insert-sorted-current.log": "aa7f08ff79a96cb62716bcdda211b61aec66872a4187fad7ee8e7f6c08391d6d", + "benchmarks/results-20261015/btree-prefix/primary/0115-r1-nonlexical-insert-sorted-current.stat": "8f11c660fa293543303bddf8dff6a29231707756ddccb45dec7f8732166da608", + "benchmarks/results-20261015/btree-prefix/primary/0116-r1-nonlexical-insert-sorted-main.log": "3149aa37d86eebbcf3a11dbc19410aacc31aed2a66b8e869f0d6d2c686a0690f", + "benchmarks/results-20261015/btree-prefix/primary/0116-r1-nonlexical-insert-sorted-main.stat": "ab9ad8a74bfb9bcfeb254455073d85037a45a57f45b469001f0ac07340e24286", + "benchmarks/results-20261015/btree-prefix/primary/0117-r1-nonlexical-overwrite-current.log": "b0441f4e55421b92413df605a7fd3edbf4ce3f3b67c31fd0432c36693cd28b96", + "benchmarks/results-20261015/btree-prefix/primary/0117-r1-nonlexical-overwrite-current.stat": "2b073a186390440b5f2e322f274959187a60bed1f4aafc9675ef7dbebca831f6", + "benchmarks/results-20261015/btree-prefix/primary/0118-r1-nonlexical-overwrite-main.log": "b4584d5436bbdf8038396811f835defd8cdb28968b165f7dd3b8a49dbc421d52", + "benchmarks/results-20261015/btree-prefix/primary/0118-r1-nonlexical-overwrite-main.stat": "af4222df3b2754a369ecf3bfdc185ad388d2005cab6935ac7ddd0c9659ca9076", + "benchmarks/results-20261015/btree-prefix/primary/0119-r1-nonlexical-pack-current.log": "f2c8e4e26c9380613660cd465ae494cf59c9dfe7f0899fd6f11290dd2231f6db", + "benchmarks/results-20261015/btree-prefix/primary/0119-r1-nonlexical-pack-current.stat": "76042e3c3079e1c604ecdd29f1ec10bd65ab5275bef2203111f087ce13ada777", + "benchmarks/results-20261015/btree-prefix/primary/0120-r1-nonlexical-pack-main.log": "55284633fac61e5befceb61d9ae0c6d2166becf4128e123e60e459851006c064", + "benchmarks/results-20261015/btree-prefix/primary/0120-r1-nonlexical-pack-main.stat": "c20b1e06d582d4df7f0a1fd4011ebfaaf4d7e404944bf0062a6aeca6fde343e4", + "benchmarks/results-20261015/btree-prefix/primary/0121-r1-nonlexical-hit-current.log": "d72cdd349d53f26c43c9f8a384d83541b938e7a42d616335c6594319c56ed5c6", + "benchmarks/results-20261015/btree-prefix/primary/0121-r1-nonlexical-hit-current.stat": "b5731d5fed8a202d4332d686b0ca4faaffbd6537ac4a6b404a4b885bf182c7a4", + "benchmarks/results-20261015/btree-prefix/primary/0122-r1-nonlexical-hit-main.log": "dc7cfd89b3a6d2c20544e14a051cb15ffe8a5f568a1b2e91fb5fa119a647c216", + "benchmarks/results-20261015/btree-prefix/primary/0122-r1-nonlexical-hit-main.stat": "2213f54ac230987ded04de7bbc0769e43137f78f2b67bb51c9fb48b1715f6577", + "benchmarks/results-20261015/btree-prefix/primary/0123-r1-nonlexical-miss-current.log": "d56fcc3276fcba1a5156e15d3bfa5d0a683b08606493c7a7fa4509c7962154a0", + "benchmarks/results-20261015/btree-prefix/primary/0123-r1-nonlexical-miss-current.stat": "ae237ac2fe2072191d9947960e1465b5dc6b00bab0099bc5f26e6de9529ccb9c", + "benchmarks/results-20261015/btree-prefix/primary/0124-r1-nonlexical-miss-main.log": "ffd830bec98edbfb1bf1b272382cf1995d6ad764cd7fb689c3fd8b5e36f9abf7", + "benchmarks/results-20261015/btree-prefix/primary/0124-r1-nonlexical-miss-main.stat": "957411aaedf1a880f05dba302d6cf675bcac5a001899622182ed51580aa89c39", + "benchmarks/results-20261015/btree-prefix/primary/0125-r1-nonlexical-scan1-current.log": "5a45aba0bac1a7d7398914f408e20c07f3f3eb33bd0619b109c7bf74323e0c45", + "benchmarks/results-20261015/btree-prefix/primary/0125-r1-nonlexical-scan1-current.stat": "f3ff4953e8680144c71dae80ba7b191cdbb008323569a28680fc794d526eb9b5", + "benchmarks/results-20261015/btree-prefix/primary/0126-r1-nonlexical-scan1-main.log": "97dfc84cb1ddb57f1fd5cc33581e52fb34fa854b69f2d452483d491a1a2a4d13", + "benchmarks/results-20261015/btree-prefix/primary/0126-r1-nonlexical-scan1-main.stat": "287983abce3d23bef38372d2d1cf36a7356aeb790d2bb26835e14ee5d92ac61a", + "benchmarks/results-20261015/btree-prefix/primary/0127-r1-nonlexical-scan10000-current.log": "00aaf0d3aaf94457ab8a6b05b6b23b333f6f0915d84e2b47ae6480457d5817cb", + "benchmarks/results-20261015/btree-prefix/primary/0127-r1-nonlexical-scan10000-current.stat": "100ea976a0af3af917b2181efa5e7629d6b45d1301cc75e641af9e0bc4dfdf66", + "benchmarks/results-20261015/btree-prefix/primary/0128-r1-nonlexical-scan10000-main.log": "e46fc8dd2722ab790724c12cfcbaaf1bb9fd74b26457ed1ca336550b20d9b13c", + "benchmarks/results-20261015/btree-prefix/primary/0128-r1-nonlexical-scan10000-main.stat": "5de2999358a525b5c890792f90e389a21808af77f14c055b374f6765a5db27b7", + "benchmarks/results-20261015/btree-prefix/primary/0129-r1-nonlexical-scanfull-current.log": "508da250cfb7d4cdfec0048b9aec426f6c8543a300be7eceb292bff193342046", + "benchmarks/results-20261015/btree-prefix/primary/0129-r1-nonlexical-scanfull-current.stat": "2dfcfb2f4be6022a613469f4e49fd20988929a150e739c8fb824dcf5038db4be", + "benchmarks/results-20261015/btree-prefix/primary/0130-r1-nonlexical-scanfull-main.log": "28b0b9bd4a86740b385f1aee4233443c40a366991ac72a8775cd463a1a2acca8", + "benchmarks/results-20261015/btree-prefix/primary/0130-r1-nonlexical-scanfull-main.stat": "c38c07ece5b2cfb32178e882f55211425d24e0490142eb2bdb3c1e789fa12ceb", + "benchmarks/results-20261015/btree-prefix/primary/0131-r1-common-insert-random-current.log": "623b5d8a0693ebb1e89d610d6491d09995d68e48027eb33514d14e2ecbbea51c", + "benchmarks/results-20261015/btree-prefix/primary/0131-r1-common-insert-random-current.stat": "a5dfec8b83c15694d3cb599924ba30b67c233a670e43d91d2efc17dbfe3ed55d", + "benchmarks/results-20261015/btree-prefix/primary/0132-r1-common-insert-random-main.log": "f9399c5df8161ac27170fdda8a4514183c66573d9ef0ea993a9f48a9e86399e6", + "benchmarks/results-20261015/btree-prefix/primary/0132-r1-common-insert-random-main.stat": "fdffcbf6973bba4ccf74f0ecb258da155717275b95cb72f10f65a0c2d2793f8d", + "benchmarks/results-20261015/btree-prefix/primary/0133-r2-common-overwrite-main.log": "4f99d2a158430fc97c01b5905ccb14110d0c20d6bab1a3c63d33173a3c8f276c", + "benchmarks/results-20261015/btree-prefix/primary/0133-r2-common-overwrite-main.stat": "2371ef5b7ed35888e0da3cd6b018eda08196ef8eba946816d35b6954ff7f4688", + "benchmarks/results-20261015/btree-prefix/primary/0134-r2-common-overwrite-current.log": "34ea3e99253b9ee423c308199d7948dbf7fac0da54901e71048542cbd4cf8055", + "benchmarks/results-20261015/btree-prefix/primary/0134-r2-common-overwrite-current.stat": "2de74e10ce5d39fcba5d38c86545a7ca5e019b3fb669ef59e988df53e6995630", + "benchmarks/results-20261015/btree-prefix/primary/0135-r2-common-pack-off.log": "d11677cd40f8f184c2c6f4d2e9e0f91947b38355a1ba83e63c10b95156b07222", + "benchmarks/results-20261015/btree-prefix/primary/0135-r2-common-pack-off.stat": "1934eab5979eaa361e52a6d2fa3b1c4e96156586982f03bb2e3b31d58a30a205", + "benchmarks/results-20261015/btree-prefix/primary/0136-r2-common-pack-main.log": "c091d6ddc2710db0e559428cf8bfe0fdc244ce731e81015a5bf9022da00950c2", + "benchmarks/results-20261015/btree-prefix/primary/0136-r2-common-pack-main.stat": "11fd4d6b3245098784082c332f37d95838263bc5e2ef8eda89a7b02311ea1e8a", + "benchmarks/results-20261015/btree-prefix/primary/0137-r2-common-pack-on.log": "f3992d64ef35fcfbdeb875073e86005f381c14ebf0cc3c45f68ae2b55f352ff7", + "benchmarks/results-20261015/btree-prefix/primary/0137-r2-common-pack-on.stat": "e4cf312eacf4de26f3d925ecc559000bc8c27f99df4518e257675fcb309194d1", + "benchmarks/results-20261015/btree-prefix/primary/0138-r2-common-hit-off.log": "fd8b8b7b67ab99d51d5f6530288a0471feafaee45a7252868eaf90f605cbc7c1", + "benchmarks/results-20261015/btree-prefix/primary/0138-r2-common-hit-off.stat": "25e76e888a6cd3412676442baf710c03be68eca5e84ce8d5c4e153ab1e73ffd3", + "benchmarks/results-20261015/btree-prefix/primary/0139-r2-common-hit-main.log": "59589e8f04f9e879dae50a5f303111776683aa67f3f60c12f81f7a7a5cdf7ea4", + "benchmarks/results-20261015/btree-prefix/primary/0139-r2-common-hit-main.stat": "47a90753893d2390fbff6146ce898c29d1a9fb78e28c66414e7289acbd42d1f9", + "benchmarks/results-20261015/btree-prefix/primary/0140-r2-common-hit-on.log": "0fdf33b111d56d56a10a3ad4a65fa208381e68ad1349166a7cfbd9d9f18fca13", + "benchmarks/results-20261015/btree-prefix/primary/0140-r2-common-hit-on.stat": "f0a9762654e40a39eaa924a0232ea7d1c49f2ba9260767642edf3b30e81535ff", + "benchmarks/results-20261015/btree-prefix/primary/0141-r2-common-miss-off.log": "40f9be91757fcea99e502066b47d627d083d21ce501f6939bf855569a5a50f38", + "benchmarks/results-20261015/btree-prefix/primary/0141-r2-common-miss-off.stat": "15492a7588f6c3e3f3d9dfa1bd0882b88934928dcf7e4e1d9c567beba2c50836", + "benchmarks/results-20261015/btree-prefix/primary/0142-r2-common-miss-main.log": "ca8a31bcf6c558395855615c796a0a8d43f688d06d342599d8e87008e333953d", + "benchmarks/results-20261015/btree-prefix/primary/0142-r2-common-miss-main.stat": "96fb0ac435078ba84ed764d30984518570a3f39ac1bc7066165a003b54fb451a", + "benchmarks/results-20261015/btree-prefix/primary/0143-r2-common-miss-on.log": "948ea8ddc4da416bb2a4bcc9269da934dbc20a1b3d1176366afde7e7f8d447dc", + "benchmarks/results-20261015/btree-prefix/primary/0143-r2-common-miss-on.stat": "258ffc2a2bcdd2d44a95efc885737fa01b29a20eda179fd3aed30455f4f4c982", + "benchmarks/results-20261015/btree-prefix/primary/0144-r2-common-scan1-off.log": "b8f78a1f4f6ec06cc3eba7c232f495d3de2601c1326a16d21f6c641818e33efa", + "benchmarks/results-20261015/btree-prefix/primary/0144-r2-common-scan1-off.stat": "ba4940f62de940406a16408b78108aa3c722cafd11e4fc539681eb19e7fa5bae", + "benchmarks/results-20261015/btree-prefix/primary/0145-r2-common-scan1-main.log": "1b3e9d26d50d623b462836864c481a57d638ea2f21438709dd95a738825130ba", + "benchmarks/results-20261015/btree-prefix/primary/0145-r2-common-scan1-main.stat": "40fcd6aabdaed65b387facf995df06389f879df6dac5c21dda208db503a74b5d", + "benchmarks/results-20261015/btree-prefix/primary/0146-r2-common-scan1-on.log": "6f446fc29a658f2da7b6ee3774eda3e72d5b491c5c48e83ca56f9b5623415504", + "benchmarks/results-20261015/btree-prefix/primary/0146-r2-common-scan1-on.stat": "37c88c6de2eb3a73ca4b287c5f512555703eb1b189fc2e0c574a5eeccfce69cf", + "benchmarks/results-20261015/btree-prefix/primary/0147-r2-common-scan10000-off.log": "b4d666658f72afc6eb9e1db44d3e884c0bdd21c62660e2913700305a5afdb9fc", + "benchmarks/results-20261015/btree-prefix/primary/0147-r2-common-scan10000-off.stat": "af8164101305b8ccc59adfd8bddd0fcfac661ddf3aaae3af99c27a1b678efec0", + "benchmarks/results-20261015/btree-prefix/primary/0148-r2-common-scan10000-main.log": "c1410bb543e5c247ce9712ab52312c90c07ac1f3d26cbf1a64d147e90505e6c1", + "benchmarks/results-20261015/btree-prefix/primary/0148-r2-common-scan10000-main.stat": "9e3b096ae463a093b4e2c02a0d7af71e155ebf34d84bce1dbadb3a003e847125", + "benchmarks/results-20261015/btree-prefix/primary/0149-r2-common-scan10000-on.log": "5444425a566ff11246e657afb1af1d1b30d26c28167f26034cad73a6c2122b20", + "benchmarks/results-20261015/btree-prefix/primary/0149-r2-common-scan10000-on.stat": "7f04918d7abfc988fb7b0cdc55160824a650c6fc3f25a1ae7f1a78344752071b", + "benchmarks/results-20261015/btree-prefix/primary/0150-r2-common-scanfull-off.log": "819ae179ff33e1f6b931d150dea0e2b19ba1609e3a1cbb768a224edd03c1e405", + "benchmarks/results-20261015/btree-prefix/primary/0150-r2-common-scanfull-off.stat": "e2c32ab8d804a04e8195a952970102f677ebf773284e47cc96146f7ce0ebfd49", + "benchmarks/results-20261015/btree-prefix/primary/0151-r2-common-scanfull-main.log": "e2834f542c24b963bc178ddcdf9226912087e32b1c6f58fbf78fdf452dbd4b54", + "benchmarks/results-20261015/btree-prefix/primary/0151-r2-common-scanfull-main.stat": "602b7c463d65b289ad53773344470b5a0f2a2ae6b00bcc32402192f5ef803bcf", + "benchmarks/results-20261015/btree-prefix/primary/0152-r2-common-scanfull-on.log": "b92325a4cab1dc544a852ee86ed8502414a48f4f5dac58ce9167ba0aae0f72bf", + "benchmarks/results-20261015/btree-prefix/primary/0152-r2-common-scanfull-on.stat": "23c5db6ae13f2522860d59a97d20bb26ddb0e58d34a1f3fbac6a1d36527a1c6d", + "benchmarks/results-20261015/btree-prefix/primary/0153-r2-random-insert-random-main.log": "632c8d4dd9fbc4786551e429a37d6a0baa4836d70445f3a2a199730cd733f5a5", + "benchmarks/results-20261015/btree-prefix/primary/0153-r2-random-insert-random-main.stat": "194e145d6564a88a7696e47b478c4449b958a77f5dbcecfe1eb9f6974fe50795", + "benchmarks/results-20261015/btree-prefix/primary/0154-r2-random-insert-random-current.log": "69a0de3b99a48211f5168a62d0680e2e39075d81425b46597342f6a4c0ae9216", + "benchmarks/results-20261015/btree-prefix/primary/0154-r2-random-insert-random-current.stat": "a7f39fd4738cd01b26f2c28906e4c4fde4669034679e22006adb1d3e4b6d434a", + "benchmarks/results-20261015/btree-prefix/primary/0155-r2-random-insert-sorted-main.log": "bf73ee5b6c1cdfb6c6169fede51d39e606431897dd4debf6118fab8c5a6773ef", + "benchmarks/results-20261015/btree-prefix/primary/0155-r2-random-insert-sorted-main.stat": "47a219914e3059735d25f59a5115876d7896f68aa53499a69f26bfd1255f560d", + "benchmarks/results-20261015/btree-prefix/primary/0156-r2-random-insert-sorted-current.log": "ed8ee674be40ece0e0480a55e26dbcd6524b9962ed58b3c94c5b65241a3748b5", + "benchmarks/results-20261015/btree-prefix/primary/0156-r2-random-insert-sorted-current.stat": "13ff14bce3b0e6f9841349bc288482a132619127cef6e818d4d981697277b162", + "benchmarks/results-20261015/btree-prefix/primary/0157-r2-random-overwrite-main.log": "7cfbf038ffa00c14c8e45986586a156ef2d252fe24d27e6cf99d74f189b4ed7b", + "benchmarks/results-20261015/btree-prefix/primary/0157-r2-random-overwrite-main.stat": "21ef9dba75488aa0ede4dda69a0c217f1f4e37dc4dd6f1056c1bdac62daca4c6", + "benchmarks/results-20261015/btree-prefix/primary/0158-r2-random-overwrite-current.log": "8e1154ce2fbe16b1692da11715640718a77872109a545820a09e8983be0fd196", + "benchmarks/results-20261015/btree-prefix/primary/0158-r2-random-overwrite-current.stat": "14b027b4a08cbed908e5d8112df5f731051e9ca09af60b7964398c4721eadfd2", + "benchmarks/results-20261015/btree-prefix/primary/0159-r2-random-pack-off.log": "7ce5393575d5deaebdb9a01b676498ff25011a9c1f9ceec22b7b912017a4a1a1", + "benchmarks/results-20261015/btree-prefix/primary/0159-r2-random-pack-off.stat": "b0f726f8d8a4652ceace834cc733276aee00c0d08a441bd7a6b0dbb80a150559", + "benchmarks/results-20261015/btree-prefix/primary/0160-r2-random-pack-main.log": "5e5acf9622ba0826971a3369c0557b04372cbc6256b6c29221c7db33b8df3678", + "benchmarks/results-20261015/btree-prefix/primary/0160-r2-random-pack-main.stat": "27e9bf21a68cd74ff351ac8c5a4d5249ef05ec2adcee6dd5edb7b4b992f3f426", + "benchmarks/results-20261015/btree-prefix/primary/0161-r2-random-pack-on.log": "407776796b81279d48ca276285949f59a9f8daaf301d9f1ce27e53b7f9d89328", + "benchmarks/results-20261015/btree-prefix/primary/0161-r2-random-pack-on.stat": "cc984cf91cf755cf9ba253e9f46673673cf828c52b42029c676125ef626cf58e", + "benchmarks/results-20261015/btree-prefix/primary/0162-r2-random-hit-off.log": "15fd828f7ca2569cb311d83217e63cae004a6fab5600107c6085f00407488c49", + "benchmarks/results-20261015/btree-prefix/primary/0162-r2-random-hit-off.stat": "f09c37fe66cb6418a05c3d96fc5bc97c1f5caa1ef1de62d626660ff1767429c4", + "benchmarks/results-20261015/btree-prefix/primary/0163-r2-random-hit-main.log": "78be9901266541813f395db6c4f5148f5f02e6a0c6e7a8c65d90ca51b3a4cb8c", + "benchmarks/results-20261015/btree-prefix/primary/0163-r2-random-hit-main.stat": "88d19df4ba6703379b9c07f71dfd46b395f577663c72ddd9a5b6cbb02d55f8b0", + "benchmarks/results-20261015/btree-prefix/primary/0164-r2-random-hit-on.log": "bb8c275e46e653734b9382053c72399cd39cfe57a6fca81d9f3e82124f4b0c05", + "benchmarks/results-20261015/btree-prefix/primary/0164-r2-random-hit-on.stat": "1b39ae5af60ba97e4c809204442c87147e86f50fed7e629715ba00600585d09b", + "benchmarks/results-20261015/btree-prefix/primary/0165-r2-random-miss-off.log": "15b5224ce59262741184957735f05f225a8b650eeea03611634c2057e7b43f9f", + "benchmarks/results-20261015/btree-prefix/primary/0165-r2-random-miss-off.stat": "e31f8d12bc47843241cf64385c7be2c514e2e1dbd3cc178d1cb7a9201cd99477", + "benchmarks/results-20261015/btree-prefix/primary/0166-r2-random-miss-main.log": "696b7503e3887df4f29eb5c12af7d9d353397e545ead489f43925740a7f78135", + "benchmarks/results-20261015/btree-prefix/primary/0166-r2-random-miss-main.stat": "85520652e83e34f7d26ea6c6c132f66eb26115440af83fd3eefa9d04e0407f08", + "benchmarks/results-20261015/btree-prefix/primary/0167-r2-random-miss-on.log": "8b926e9ae3b6539515768ca6cbc2f4db7948f51c909de68b1cd287e2a473e629", + "benchmarks/results-20261015/btree-prefix/primary/0167-r2-random-miss-on.stat": "190249f00925e9fa97896418be250003572da2ddc05ee42c5d611da1f9b456bd", + "benchmarks/results-20261015/btree-prefix/primary/0168-r2-random-scan1-off.log": "347b9ee02e21176a82a0b98c794c62730e191b4ab6f41331ad8e9492c9c90264", + "benchmarks/results-20261015/btree-prefix/primary/0168-r2-random-scan1-off.stat": "e71556ff0bc5aa1bb3cd1482a747c0a656140f0f2633e7af28b4e8144565bd21", + "benchmarks/results-20261015/btree-prefix/primary/0169-r2-random-scan1-main.log": "218964172655f4e2c373f434ee3fa972cde61ba1274f35e77231d996999f7ef9", + "benchmarks/results-20261015/btree-prefix/primary/0169-r2-random-scan1-main.stat": "1fbfb0129c6b7d085173debef94b6cebe95d68e3e0cb31457340c7cb715aa284", + "benchmarks/results-20261015/btree-prefix/primary/0170-r2-random-scan1-on.log": "c529b49631241e2a2f06aaa889485bbf6a1c5601afc8c52e7e510895c9231403", + "benchmarks/results-20261015/btree-prefix/primary/0170-r2-random-scan1-on.stat": "172e4461f89b3944d28897ba8bd5894693b8e55038f6d9ea261aad42890dfb72", + "benchmarks/results-20261015/btree-prefix/primary/0171-r2-random-scan10000-off.log": "84f8ead7c2156c40a6addb490a8eb12545ab96d08fd225783232e4f3ecf70d53", + "benchmarks/results-20261015/btree-prefix/primary/0171-r2-random-scan10000-off.stat": "e815efb9a65d8ac4f80e2720bb95152cab1357c479456768de56f90fe7de512e", + "benchmarks/results-20261015/btree-prefix/primary/0172-r2-random-scan10000-main.log": "d1c20f75baaa605e49615804adc7a4a3db66393c2e960d81529c68f15e01284c", + "benchmarks/results-20261015/btree-prefix/primary/0172-r2-random-scan10000-main.stat": "f125bb8f74bc8a1dced02dc0b52166ea94f2698de1ba3404657d343e9246c213", + "benchmarks/results-20261015/btree-prefix/primary/0173-r2-random-scan10000-on.log": "ccacd9cf6a2dd665938d420054f7bdb32debc765bab52bb6888dd9df11396cc2", + "benchmarks/results-20261015/btree-prefix/primary/0173-r2-random-scan10000-on.stat": "5719f329ed94397ac7884ec5f1030c0ac89d3b8f0cb0f33c62d3bb8d07d91396", + "benchmarks/results-20261015/btree-prefix/primary/0174-r2-random-scanfull-off.log": "d32ef13f7da13e13b236ef526791e95d83dd16e7772b1beecac02d14ad92a248", + "benchmarks/results-20261015/btree-prefix/primary/0174-r2-random-scanfull-off.stat": "645e3740d243408d5c1f4422db38577f8f7598cf1d1423e01f6ce9b7b75524b7", + "benchmarks/results-20261015/btree-prefix/primary/0175-r2-random-scanfull-main.log": "bcf41e598f4b78d324b407dae31defca3e4b59a99d152e5af1e9c8e17e751136", + "benchmarks/results-20261015/btree-prefix/primary/0175-r2-random-scanfull-main.stat": "20b76db204ed799bdc679f94049cb655605ba9fe350e107437ab8240d65347e5", + "benchmarks/results-20261015/btree-prefix/primary/0176-r2-random-scanfull-on.log": "acecce12413759f6184eaa30d8590321e83d49e3035b0f6206d6ed20e8ef4e73", + "benchmarks/results-20261015/btree-prefix/primary/0176-r2-random-scanfull-on.stat": "7aaa2f5569242a6445e7de3d144dec7d8d29d6b87a6f5afdbc81a07b17c1c75e", + "benchmarks/results-20261015/btree-prefix/primary/0177-r2-nonlexical-insert-random-main.log": "79d8077402a0443bed56d5c71e66f4be1969d46aaa42af0d5843e2c4d51ace73", + "benchmarks/results-20261015/btree-prefix/primary/0177-r2-nonlexical-insert-random-main.stat": "96c6dc228441908a4c5c5193473f4faafc2f8833c3f68e1fc46f1c30d6972889", + "benchmarks/results-20261015/btree-prefix/primary/0178-r2-nonlexical-insert-random-current.log": "36058ee98cabcdca14b478f2b10c79e88e834f285a29d840d3f8d9c14f1ac5fa", + "benchmarks/results-20261015/btree-prefix/primary/0178-r2-nonlexical-insert-random-current.stat": "190549fc5dacc473c09ec67c312377be74ba4dd03aa9392650f14c990cc7bbd4", + "benchmarks/results-20261015/btree-prefix/primary/0179-r2-nonlexical-insert-sorted-main.log": "350be768a50d79c88990e1a8bd45d0f2bb7a8cda8ca13514a1ea861f90084747", + "benchmarks/results-20261015/btree-prefix/primary/0179-r2-nonlexical-insert-sorted-main.stat": "a3e898739d6816009f543a01e813f93df25d8d677b6e211693798e7ab0a2ee28", + "benchmarks/results-20261015/btree-prefix/primary/0180-r2-nonlexical-insert-sorted-current.log": "e4b72dca40343fedd7c22acd69a684387a0243d7d91140b53b236144c33c8b1a", + "benchmarks/results-20261015/btree-prefix/primary/0180-r2-nonlexical-insert-sorted-current.stat": "199328b8c9dc45894cc09e598c2d085c0ebb5ba59967934dae2b3ea4be8e2ce9", + "benchmarks/results-20261015/btree-prefix/primary/0181-r2-nonlexical-overwrite-main.log": "daba699ff6e0d4b95a14080716c38d6e1e26a0e6286850486fba6db1e5aceec5", + "benchmarks/results-20261015/btree-prefix/primary/0181-r2-nonlexical-overwrite-main.stat": "223c803885e7d285cb3094e58ea6d2e811ba37ebf76c0b3ded00e44f61a64f22", + "benchmarks/results-20261015/btree-prefix/primary/0182-r2-nonlexical-overwrite-current.log": "2755d50c6de55797b23b3db7788f4414bb862fe9a30dd75bb7c8ae6587a48e0d", + "benchmarks/results-20261015/btree-prefix/primary/0182-r2-nonlexical-overwrite-current.stat": "e5852ccf391b43859edd4172b587860b8226ea3be3c77b3c1fc20a2aa7c0159e", + "benchmarks/results-20261015/btree-prefix/primary/0183-r2-nonlexical-pack-main.log": "b3073f3fc2a9f35618da8a7c8f2916bf457a8e0878e54c38c648e81369f4a536", + "benchmarks/results-20261015/btree-prefix/primary/0183-r2-nonlexical-pack-main.stat": "fafcbbc7766700b3754557047901db53407667f47d9123cb29524824fea4205e", + "benchmarks/results-20261015/btree-prefix/primary/0184-r2-nonlexical-pack-current.log": "356059052ccc6ba9cf87e3aaf20a8b3e6f6d6275a34d2bb68174225a01288b70", + "benchmarks/results-20261015/btree-prefix/primary/0184-r2-nonlexical-pack-current.stat": "400d0576ac57a57f8985852620cd818cba6e5a1f7fa64b1ec25e5a9a77c5dd85", + "benchmarks/results-20261015/btree-prefix/primary/0185-r2-nonlexical-hit-main.log": "038dab100da820a38f28c302f2d0b88e260dd528212a5cc5931466776e568d29", + "benchmarks/results-20261015/btree-prefix/primary/0185-r2-nonlexical-hit-main.stat": "c8cfa16eb04bfb5dbf4f56f2df4b65e6207166a5f0dde72dce097d4c3628df92", + "benchmarks/results-20261015/btree-prefix/primary/0186-r2-nonlexical-hit-current.log": "589eaf0dedb5aca8087b1c677be045bcec42933fc18716e9f72ae38aa90292a2", + "benchmarks/results-20261015/btree-prefix/primary/0186-r2-nonlexical-hit-current.stat": "ce82fbfc515df3122710fb4d40c60f415afa1f7c40b25866c9e76956309d8057", + "benchmarks/results-20261015/btree-prefix/primary/0187-r2-nonlexical-miss-main.log": "372db4de957f6d53e741ceb8219da58ec5eb6909fee6dc93b200da3d34797919", + "benchmarks/results-20261015/btree-prefix/primary/0187-r2-nonlexical-miss-main.stat": "01ea0587432b0bce11cd5c699e856e5c5523cfa54692bc9e94100dacb489b404", + "benchmarks/results-20261015/btree-prefix/primary/0188-r2-nonlexical-miss-current.log": "d107909eaef2177af7453d285f5b48b16bd952cd72c36b14ce0aa547d0e2ef62", + "benchmarks/results-20261015/btree-prefix/primary/0188-r2-nonlexical-miss-current.stat": "6049a04e1092d5bc67b8cf0a835d68d43fc922a04d9f50deecd31bbebae5dec0", + "benchmarks/results-20261015/btree-prefix/primary/0189-r2-nonlexical-scan1-main.log": "10cd8ca8985656ab71fd2d50eabf12dc217635011f06e6ddd25c4cea5c67743c", + "benchmarks/results-20261015/btree-prefix/primary/0189-r2-nonlexical-scan1-main.stat": "c481eaafcd971bac291620db13e96fae6864b18eb3747ba73c75cc35f3b26fed", + "benchmarks/results-20261015/btree-prefix/primary/0190-r2-nonlexical-scan1-current.log": "909db3fde4730c78c41b7202507261ca6919ef642aaa58984594bffe59e88d1a", + "benchmarks/results-20261015/btree-prefix/primary/0190-r2-nonlexical-scan1-current.stat": "1d5e7deb21213795ac14f841f6fedb9c3e36f1ea181e6a0915832f8a0ba20288", + "benchmarks/results-20261015/btree-prefix/primary/0191-r2-nonlexical-scan10000-main.log": "a1b18dc2ea127b7c7b87b405c5d71adf096349c6f69c742e7dae30995c9a9553", + "benchmarks/results-20261015/btree-prefix/primary/0191-r2-nonlexical-scan10000-main.stat": "e376e2cd4ef1cb52f5dae5d7739f81f5b1abd3b1c8151a3d1ac86a85f6cbebb4", + "benchmarks/results-20261015/btree-prefix/primary/0192-r2-nonlexical-scan10000-current.log": "6404237f7635361ab96300b76716645c8221894e4f4273e99e30b3dfeac214b9", + "benchmarks/results-20261015/btree-prefix/primary/0192-r2-nonlexical-scan10000-current.stat": "1c1310fe04b1299c4e4fc9b14848ecf413b4160dc9f32b15ae9e55a7eefb7fc3", + "benchmarks/results-20261015/btree-prefix/primary/0193-r2-nonlexical-scanfull-main.log": "9a6fa88058d7a20073539fb5f8490787068369dfe32addd4c6a7053b50991c7a", + "benchmarks/results-20261015/btree-prefix/primary/0193-r2-nonlexical-scanfull-main.stat": "1ac4f625b30a8a24cbc603f80b1e3c832baed62c4973a63d90f1c83444410c9a", + "benchmarks/results-20261015/btree-prefix/primary/0194-r2-nonlexical-scanfull-current.log": "f3d4c76ec87e770bc87ce1019343bc2694eaa26524f37b78bc52482d91520c23", + "benchmarks/results-20261015/btree-prefix/primary/0194-r2-nonlexical-scanfull-current.stat": "0e77fdd45b970ac4efdb1d0354dec34be0061f9878a5b4365df769b21114b055", + "benchmarks/results-20261015/btree-prefix/primary/0195-r2-common-insert-random-main.log": "558122dda9eb9f393ccdeca6806ccd42b2cbde993e4eb78d320ef0e2e2aaf927", + "benchmarks/results-20261015/btree-prefix/primary/0195-r2-common-insert-random-main.stat": "d651a1bfd0849d337c50e184cdf7026816f16fd08100c02446c50532c678908a", + "benchmarks/results-20261015/btree-prefix/primary/0196-r2-common-insert-random-current.log": "3584e4f4e5294aa87967910446ffc4564241a488da897c5c6e33cf8b3bd4428d", + "benchmarks/results-20261015/btree-prefix/primary/0196-r2-common-insert-random-current.stat": "cf3132481fd5fdf4b7e734bfd0604fde8a219fa5536e7f4a6df0087b859ba97d", + "benchmarks/results-20261015/btree-prefix/primary/0197-r2-common-insert-sorted-main.log": "0c7db012a79b3edc236174dffaed1db53d5adf7c0d2d2ffe400621739cabf35a", + "benchmarks/results-20261015/btree-prefix/primary/0197-r2-common-insert-sorted-main.stat": "583c045c286d1ce3f9b2e2c9fe1764eb31b557c39fa546917acbdec406759f60", + "benchmarks/results-20261015/btree-prefix/primary/0198-r2-common-insert-sorted-current.log": "3f40555577906b62d43588f13904584bde2b3da3add4d616dd80db2a5e8f334d", + "benchmarks/results-20261015/btree-prefix/primary/0198-r2-common-insert-sorted-current.stat": "15b8d300889e2a983070273c03a91b35e2d8f56691fd575720bbba1115a78d1f", + "benchmarks/results-20261015/btree-prefix/primary/0199-r3-common-pack-off.log": "02b1c2071882baa747374ebd7a4914ff8b632e79f46cf25d467c451542caad39", + "benchmarks/results-20261015/btree-prefix/primary/0199-r3-common-pack-off.stat": "88f2c260ec78da852b88e0f4d49e89326b97085ad9d08fa9c255df878c9c082d", + "benchmarks/results-20261015/btree-prefix/primary/0200-r3-common-pack-on.log": "795ee891fb9902a52df869a4f792f7990fba2c3ccee1e32a3e062dade27a9e01", + "benchmarks/results-20261015/btree-prefix/primary/0200-r3-common-pack-on.stat": "04ce494d545da9d012f8cb25909c1c8a4e453cc2eabcb34681254ea9465e6bd1", + "benchmarks/results-20261015/btree-prefix/primary/0201-r3-common-pack-main.log": "d0a18405c815dd9a79867da324a6e9a1c8c494376550da2fb663507c8c7b83e6", + "benchmarks/results-20261015/btree-prefix/primary/0201-r3-common-pack-main.stat": "a74107b0cb0011d726d18e2a58c0c07fc77ea1767618533b762192b393d2be09", + "benchmarks/results-20261015/btree-prefix/primary/0202-r3-common-hit-off.log": "7ee7e04eff001a175e1f7e0d77bb13196e52d56aa6f53a5aeab2bd7bf842fe8b", + "benchmarks/results-20261015/btree-prefix/primary/0202-r3-common-hit-off.stat": "d7014e39b67e0adb60612fc7f507a724d61558719a9e5ddedd65c7dafa9f42f0", + "benchmarks/results-20261015/btree-prefix/primary/0203-r3-common-hit-on.log": "6c6bda36fcc4b3826ac1d435064427885a33556d5d9fb1ae09cccbe2b2831d38", + "benchmarks/results-20261015/btree-prefix/primary/0203-r3-common-hit-on.stat": "65eaa58106b3b63aea48dc46c9d4ed67b33b8490f332754b49fa81100d960f2b", + "benchmarks/results-20261015/btree-prefix/primary/0204-r3-common-hit-main.log": "210e3ee4b68f8881fe5b79b78acf13ab4c6716fe179ca2610fb52c07d69bd56e", + "benchmarks/results-20261015/btree-prefix/primary/0204-r3-common-hit-main.stat": "1d97524d3c41faf1eefeac4d52ce24ca8d3715051736f254b5263e49cc9760ed", + "benchmarks/results-20261015/btree-prefix/primary/0205-r3-common-miss-off.log": "9b43f22c0540e2bce99efac360fff73d09c0b39a699edb28eb2cfae2f58257bd", + "benchmarks/results-20261015/btree-prefix/primary/0205-r3-common-miss-off.stat": "e1cdfe83448b7def3241e7d0ebe690af6f6f716508307eca5333e42e0f431581", + "benchmarks/results-20261015/btree-prefix/primary/0206-r3-common-miss-on.log": "ab54aee544d41dbe065474e8eb3ab728cab7dc6dfe0c21a0276a4c4a9424c918", + "benchmarks/results-20261015/btree-prefix/primary/0206-r3-common-miss-on.stat": "5617f573184a8b7c1ff6ad0804156dcae4c5374ccb2dfaa278be513596b6ed53", + "benchmarks/results-20261015/btree-prefix/primary/0207-r3-common-miss-main.log": "84db2b070a0681d94cedd14c6d6093994c4df345a9869cac95cb58e8bac21455", + "benchmarks/results-20261015/btree-prefix/primary/0207-r3-common-miss-main.stat": "7d864889faddc517fd72f7444337189c5164b7ac9255770c987d14c31affd947", + "benchmarks/results-20261015/btree-prefix/primary/0208-r3-common-scan1-off.log": "34fb1324c488dd05ade358483fef59b80666fb15245e89695c8280bf62e40337", + "benchmarks/results-20261015/btree-prefix/primary/0208-r3-common-scan1-off.stat": "83f55d4dc47cc984a2d18a6e0d2e538959fbe0a58178b2a830c78fe28dc0efff", + "benchmarks/results-20261015/btree-prefix/primary/0209-r3-common-scan1-on.log": "bd989c904ac359a427e939850a7b7e4245e0769f41ee6a859112ba6de672aaa4", + "benchmarks/results-20261015/btree-prefix/primary/0209-r3-common-scan1-on.stat": "bf6f9eed38e92fcf85d6bcdf4d1b8aead65e4666ea616ccd7ed4f60b0810c3bc", + "benchmarks/results-20261015/btree-prefix/primary/0210-r3-common-scan1-main.log": "c7e2be99c4827c52c86292c44eec315024e82ea0021793bfd40c7be1315172dd", + "benchmarks/results-20261015/btree-prefix/primary/0210-r3-common-scan1-main.stat": "cc9190aa8ab9e8306445aecabf7c5940fdb35852bc5a5de5ca0f4309f820c06a", + "benchmarks/results-20261015/btree-prefix/primary/0211-r3-common-scan10000-off.log": "1b73e31b88b35f88a63296c5f82f0f077622d209f6180dfe81a1147fc08886d7", + "benchmarks/results-20261015/btree-prefix/primary/0211-r3-common-scan10000-off.stat": "2a14ec83babd6311d9c87b6d4cc3e86b33291e927627e6acbab3742b12d967f1", + "benchmarks/results-20261015/btree-prefix/primary/0212-r3-common-scan10000-on.log": "0722ac2bdff0d0eeb270623e9bfae4a08cf2b3d7e964e9bc09c31220aa06b681", + "benchmarks/results-20261015/btree-prefix/primary/0212-r3-common-scan10000-on.stat": "2081b92ffd26d537b040ec41f25761f83d1ef5a21fcd9ea40b3c6c67942e3668", + "benchmarks/results-20261015/btree-prefix/primary/0213-r3-common-scan10000-main.log": "f722c6c93f7bc0baedab2f5081cafcc177fe70ef26219d7b712aefc908c061cc", + "benchmarks/results-20261015/btree-prefix/primary/0213-r3-common-scan10000-main.stat": "ed48b2d162b36f3895513338a6aa53fba4c9eff9189c8aee6c6f735e60ad902c", + "benchmarks/results-20261015/btree-prefix/primary/0214-r3-common-scanfull-off.log": "f0c6b4b5402b0638f4d88edca569a94663baa620e640609dc21d772588fd695a", + "benchmarks/results-20261015/btree-prefix/primary/0214-r3-common-scanfull-off.stat": "b8bce0292795cd02baa3bb2e3385499b4e4b6f5cba0776ea6d5ffa8e6da8c124", + "benchmarks/results-20261015/btree-prefix/primary/0215-r3-common-scanfull-on.log": "55871f2914584a4a4b678b4bf58f1b444dc9262c3355ffbe4f9ad9edd3df412f", + "benchmarks/results-20261015/btree-prefix/primary/0215-r3-common-scanfull-on.stat": "0853e0e18ff5f7fb5e69ee250cbfc4310b33f1da2e7fb0e7a7038ac8fc376900", + "benchmarks/results-20261015/btree-prefix/primary/0216-r3-common-scanfull-main.log": "a170d2857afd550125fbdedd585fc7750cfc479ba58f83887629de04e7aa2991", + "benchmarks/results-20261015/btree-prefix/primary/0216-r3-common-scanfull-main.stat": "87b041dc2e6e28b9bd20beb845ce8d0fe8bac2df9303d3b25c8905ab476f6885", + "benchmarks/results-20261015/btree-prefix/primary/0217-r3-random-insert-random-current.log": "101cd550a5002636a09da3ca539c39511bb72cf2944edf25e0c4e804294de5d5", + "benchmarks/results-20261015/btree-prefix/primary/0217-r3-random-insert-random-current.stat": "518d017a935524aae1eafefa9ef218f01a2503bd3812359bdd4b95470bd77ee0", + "benchmarks/results-20261015/btree-prefix/primary/0218-r3-random-insert-random-main.log": "44730a937ebeae389f5b7a179041cb79610b6852a583f1bdbf3afa84cb08b6d8", + "benchmarks/results-20261015/btree-prefix/primary/0218-r3-random-insert-random-main.stat": "da3a5ed1b674282c2876d49b4a24510513bf4d59d40f11783acd1feaf774179a", + "benchmarks/results-20261015/btree-prefix/primary/0219-r3-random-insert-sorted-current.log": "184e89b1a54d8fb6e73126b9ce46ee8f28e0b6b4a2145bae4c88021a93778d7a", + "benchmarks/results-20261015/btree-prefix/primary/0219-r3-random-insert-sorted-current.stat": "3c022034c930274caa2fde3dfba574a8d9286fcc98a7a056cd8555937aa01f99", + "benchmarks/results-20261015/btree-prefix/primary/0220-r3-random-insert-sorted-main.log": "ade431523e44c99cb6cd36100bc1793b450c6eaac827e56c2873adfacacc8e4b", + "benchmarks/results-20261015/btree-prefix/primary/0220-r3-random-insert-sorted-main.stat": "ae02c10d3cfdac589f021344aa9a23eb005ecdc055bb76bed408a9552a873d7d", + "benchmarks/results-20261015/btree-prefix/primary/0221-r3-random-overwrite-current.log": "2a22e9bd9d82cc167910e4565ffdedfa30eb32780ef4d732450ae109aaa2294a", + "benchmarks/results-20261015/btree-prefix/primary/0221-r3-random-overwrite-current.stat": "a6f95baa9fbe982bd9e59eac2441d2ebce7194b1401a916f3ca7f9e16a80bc15", + "benchmarks/results-20261015/btree-prefix/primary/0222-r3-random-overwrite-main.log": "aca30a38365b3d2412772aade0b04af159b016f805584e60a478819a4edfaa50", + "benchmarks/results-20261015/btree-prefix/primary/0222-r3-random-overwrite-main.stat": "ec09fab15db7e21a57e2cbf81be6c7c87e1ecc4b1f105ed491b791c543d251a6", + "benchmarks/results-20261015/btree-prefix/primary/0223-r3-random-pack-off.log": "13e72177891cb179a3cffadc60eda3a9a40f6d8b6cf329cf6540af156f7ed892", + "benchmarks/results-20261015/btree-prefix/primary/0223-r3-random-pack-off.stat": "edbdb562da16f9661207d4d3d3c692a0a95e5b50942daa3fc88d623fef286c62", + "benchmarks/results-20261015/btree-prefix/primary/0224-r3-random-pack-on.log": "b10af9abcc01ef6b1f663c9f9e8002abdfc3b1eda81114c76e2b9317d6c61565", + "benchmarks/results-20261015/btree-prefix/primary/0224-r3-random-pack-on.stat": "41f8ef3cfc0d1e35a9b8a9f47605d0eb351cfc13e938f0a332f0c675e3c776d6", + "benchmarks/results-20261015/btree-prefix/primary/0225-r3-random-pack-main.log": "311f1e82c5554bbc11829e8acbe16f4ca717be683da57a7b1f170e0779313158", + "benchmarks/results-20261015/btree-prefix/primary/0225-r3-random-pack-main.stat": "ff0fa1c8f213cfde14ccc60c6c110a6357bc7ad0908d6ceb9ba2a1e6fa4cacf3", + "benchmarks/results-20261015/btree-prefix/primary/0226-r3-random-hit-off.log": "3a9a4f5b29acb570b9dd6f7fcaafbf28f72511d3498b8885c995e86b3b6b642c", + "benchmarks/results-20261015/btree-prefix/primary/0226-r3-random-hit-off.stat": "81535702dd4cf1718fd140ed5213cb0636fcc89dbde67e2dd2646ae3af137a3c", + "benchmarks/results-20261015/btree-prefix/primary/0227-r3-random-hit-on.log": "a7b93fa9d33903741d6a7c5d2bd35fcdfcd19fe98e3a8d977cce96e4e8f5cfdd", + "benchmarks/results-20261015/btree-prefix/primary/0227-r3-random-hit-on.stat": "7fc85e3bb6ad38763f0e23a0efd2c9d4959178840c8b1bc246d0799a6f410f19", + "benchmarks/results-20261015/btree-prefix/primary/0228-r3-random-hit-main.log": "8eaf622c3346bc20e81885108739e5f3fa5f67060c0673a28504c915a7b83ea3", + "benchmarks/results-20261015/btree-prefix/primary/0228-r3-random-hit-main.stat": "a7ab69a42b105ed01528a395905a150a9d8e49daf7dfc2c36ae83e526c86bd19", + "benchmarks/results-20261015/btree-prefix/primary/0229-r3-random-miss-off.log": "9d9d58beaa6db17d62fbf5fc806d01b89eec891928b068554996f1413d8b82d8", + "benchmarks/results-20261015/btree-prefix/primary/0229-r3-random-miss-off.stat": "79465d084e9bba9f1e68f0b0b77a2767a656632569fea5016c775030306cc02b", + "benchmarks/results-20261015/btree-prefix/primary/0230-r3-random-miss-on.log": "ddb929aee07326a149659d29792c161d6bcee321e6a6a9b88cbc41e7443adfe1", + "benchmarks/results-20261015/btree-prefix/primary/0230-r3-random-miss-on.stat": "01ad88a2f4aade20d1f8f9428c57e7064131f9cc3c0c6e34ebf486245a1abb6c", + "benchmarks/results-20261015/btree-prefix/primary/0231-r3-random-miss-main.log": "df273feebf27c1006d80928e55e2bcc05fa3173a75d39514b0edecfdbbef5786", + "benchmarks/results-20261015/btree-prefix/primary/0231-r3-random-miss-main.stat": "c019d9b52d8d65b5a49d46fdcb2e8612c9bdd2123b7980b3f640a075d68c5466", + "benchmarks/results-20261015/btree-prefix/primary/0232-r3-random-scan1-off.log": "34f65a4404f3de2e82b37d446b6241b1cdf888d6460e80bda50893371e6088b7", + "benchmarks/results-20261015/btree-prefix/primary/0232-r3-random-scan1-off.stat": "10452a3ed97d29672f9f02e81977199d2a01ff8e8b010f6c3ad2339c995680c4", + "benchmarks/results-20261015/btree-prefix/primary/0233-r3-random-scan1-on.log": "6b5f9bf2c903e858c003d51f38d80a4f418262132de4bd4b8a47cce079ff1ba0", + "benchmarks/results-20261015/btree-prefix/primary/0233-r3-random-scan1-on.stat": "dfba765bb2bb4f7c31f0edd4320942be4cdd4981d1a8d99c2593edfed98bab6b", + "benchmarks/results-20261015/btree-prefix/primary/0234-r3-random-scan1-main.log": "7f122aa456a382bee5dd156d49d0e9866dd7ef4f2a6994a8e132e429856b921d", + "benchmarks/results-20261015/btree-prefix/primary/0234-r3-random-scan1-main.stat": "784aa9080cefe9460c5d53277d4c3855dbeee5db7b811bc19fd94d9414238e47", + "benchmarks/results-20261015/btree-prefix/primary/0235-r3-random-scan10000-off.log": "f1ca97a7a7fc6fdb5e6e41ba411916590d574e1208a97d59b9a1b19ea0e5b4ca", + "benchmarks/results-20261015/btree-prefix/primary/0235-r3-random-scan10000-off.stat": "a371c1abd4e3b78bb94b325d1d787bdb3b31ac5a606af91e05f39dc10a6fbcd3", + "benchmarks/results-20261015/btree-prefix/primary/0236-r3-random-scan10000-on.log": "5fcdd7713fd806282f52ebceca2df44c0fde7d7b0eed8c49b939088c8bbba134", + "benchmarks/results-20261015/btree-prefix/primary/0236-r3-random-scan10000-on.stat": "6fee3d296fb15fc6fea8d7fca634614f279b978c8f83ff295eb103a29f207818", + "benchmarks/results-20261015/btree-prefix/primary/0237-r3-random-scan10000-main.log": "49dc22c3a6a0170ccc594906070843c166f973dfe8d8cba9018951c3d010397e", + "benchmarks/results-20261015/btree-prefix/primary/0237-r3-random-scan10000-main.stat": "1d1d32875e88f9de86c1f9ce29ce48a5082b17ad8921b5bf0ca02e5d2671695d", + "benchmarks/results-20261015/btree-prefix/primary/0238-r3-random-scanfull-off.log": "dc6f62594f90d3d7dadf306f4a9ad8538d3bb654290c58c24f65032cfa7885d2", + "benchmarks/results-20261015/btree-prefix/primary/0238-r3-random-scanfull-off.stat": "44d9b61104e11a1decf8e25e648ce1a5b7759fc8b2cac91afa81eebd40d2db6e", + "benchmarks/results-20261015/btree-prefix/primary/0239-r3-random-scanfull-on.log": "e4bc89812cdfd9888aa872809b097f9b4ebb933c95bd912fecf86cc959e1d0a9", + "benchmarks/results-20261015/btree-prefix/primary/0239-r3-random-scanfull-on.stat": "89ba2db02e34a1b9783fff0f2b2788da4fc21ef3edda44447da8c49193edeb90", + "benchmarks/results-20261015/btree-prefix/primary/0240-r3-random-scanfull-main.log": "1c935fcb94b842ed1f014c006ada83a91ba91f9095d07c48d67bb1f887273e84", + "benchmarks/results-20261015/btree-prefix/primary/0240-r3-random-scanfull-main.stat": "7bcec5e504e64ce1d7dbf42dd04937e6fa24c98cc072d7d80e45d6485d712a43", + "benchmarks/results-20261015/btree-prefix/primary/0241-r3-nonlexical-insert-random-current.log": "0f572ec63cf56e9d688db4f2e03dff79cdc4020a95365c1a0bf6cd09d861eeed", + "benchmarks/results-20261015/btree-prefix/primary/0241-r3-nonlexical-insert-random-current.stat": "683fa860f142045c6f9680cfa45aeb781f74cfaa51be41488c90bd0bf4b97680", + "benchmarks/results-20261015/btree-prefix/primary/0242-r3-nonlexical-insert-random-main.log": "03679208cd65a53c90e90799d156c7c0ae594aeb6f2564bca1c63519b5d82453", + "benchmarks/results-20261015/btree-prefix/primary/0242-r3-nonlexical-insert-random-main.stat": "e56f9fcd2c05e6bf1e425376032e898e8d482f7d61544762c0f471bbd70b42b3", + "benchmarks/results-20261015/btree-prefix/primary/0243-r3-nonlexical-insert-sorted-current.log": "6cebd6731651a6a5440af258d607ebe2bf7fa9e42d15f8bd9f78eb9d7ef888d7", + "benchmarks/results-20261015/btree-prefix/primary/0243-r3-nonlexical-insert-sorted-current.stat": "5c2c0820c6ccdc754c69829f268ac313d304da8c619b4c8db5fb64f8e91ba99f", + "benchmarks/results-20261015/btree-prefix/primary/0244-r3-nonlexical-insert-sorted-main.log": "e4d7b531146bc214ce79dca671e6c3d51ea37c350b9a410ccadc07008e10a521", + "benchmarks/results-20261015/btree-prefix/primary/0244-r3-nonlexical-insert-sorted-main.stat": "c827ca0f59262253576a720bf64b2931d94bce0451b41b9a0a0aa782d518f903", + "benchmarks/results-20261015/btree-prefix/primary/0245-r3-nonlexical-overwrite-current.log": "ad4362236f73ee7b6627daa2c68deef9431b78d62254a7ea2dccfc6713995b72", + "benchmarks/results-20261015/btree-prefix/primary/0245-r3-nonlexical-overwrite-current.stat": "f02324d335112b78dfe900ff78705689a811c7b3f6362d597277a61eeaebc8f0", + "benchmarks/results-20261015/btree-prefix/primary/0246-r3-nonlexical-overwrite-main.log": "15c0418be5dd6502f5cd104b7267a5241a8abb82711a58f3118ac1595bfd310b", + "benchmarks/results-20261015/btree-prefix/primary/0246-r3-nonlexical-overwrite-main.stat": "11ca6eeb22b42c17f8eec0b2edb81587726d0003cb3649f46c1ff6ad5cd78d94", + "benchmarks/results-20261015/btree-prefix/primary/0247-r3-nonlexical-pack-current.log": "bfeee20567a7a6438ab0917a25d312824eb691c2b28437299f08a66ae8dbf4c0", + "benchmarks/results-20261015/btree-prefix/primary/0247-r3-nonlexical-pack-current.stat": "b6dbd2b81ac96ef737430cc9e62d04b83dc49687f08bc2f2e7f5e0e31f9d1a55", + "benchmarks/results-20261015/btree-prefix/primary/0248-r3-nonlexical-pack-main.log": "2d5f29dbd4d1b3495c67a98d3459f7f8f270bc22f72a64d983cdd5492b2b8923", + "benchmarks/results-20261015/btree-prefix/primary/0248-r3-nonlexical-pack-main.stat": "84814ccac5c7b6bda14b0173f602ab8c2e39b6fb41cc709945382f45396c0bde", + "benchmarks/results-20261015/btree-prefix/primary/0249-r3-nonlexical-hit-current.log": "cc1eb53419ffa6d7c5a57406c88d71481cfc8dfa1509b01e675632bd8b09a88e", + "benchmarks/results-20261015/btree-prefix/primary/0249-r3-nonlexical-hit-current.stat": "37ee988b80336ba1345d3885ab07ff4acd5f7079b0448345b7887ef002f70f13", + "benchmarks/results-20261015/btree-prefix/primary/0250-r3-nonlexical-hit-main.log": "aae2a9891f960cfc29021fbce87847216caacc78170e989e96137eb39570b673", + "benchmarks/results-20261015/btree-prefix/primary/0250-r3-nonlexical-hit-main.stat": "05a9d6e40069628f612747d91cc605ce6294303065371ce2d2cc37101f43651c", + "benchmarks/results-20261015/btree-prefix/primary/0251-r3-nonlexical-miss-current.log": "22d8455c0ec54d2a4d9e35ed0df0069c8913a168823f00cae8feead1ff2c70e2", + "benchmarks/results-20261015/btree-prefix/primary/0251-r3-nonlexical-miss-current.stat": "00bb3129de27568a3d60b68b758287940a5e5a1031ed54b0d7d6935a29987b63", + "benchmarks/results-20261015/btree-prefix/primary/0252-r3-nonlexical-miss-main.log": "27a6ece30eb8819653b40b2e10cf3fbd0bb1cf1a53c3e6dc696926d5e3929a0a", + "benchmarks/results-20261015/btree-prefix/primary/0252-r3-nonlexical-miss-main.stat": "c9d26813a144c67150c95f4c479de9cdc9c15b8cbb9e4c7587b0a0be34028666", + "benchmarks/results-20261015/btree-prefix/primary/0253-r3-nonlexical-scan1-current.log": "277c64bf103f14cfc0388d55ebc4db44d9938e6c27592814c992bfb8769dfa3f", + "benchmarks/results-20261015/btree-prefix/primary/0253-r3-nonlexical-scan1-current.stat": "371498b55c46883bbbc01c024a85cd8282a2569ce883b018ee993bd890214a5f", + "benchmarks/results-20261015/btree-prefix/primary/0254-r3-nonlexical-scan1-main.log": "e61400f80778053579ddb52824755b51e16518efa6256e0656749802da39497c", + "benchmarks/results-20261015/btree-prefix/primary/0254-r3-nonlexical-scan1-main.stat": "36754b66027ff477e85339a67337f039b6898b557d932ecfe4680360bb8976a0", + "benchmarks/results-20261015/btree-prefix/primary/0255-r3-nonlexical-scan10000-current.log": "26bc01367336879c7acaef580b9b4d63bcf47c6331b12ca6665668b392fc73ad", + "benchmarks/results-20261015/btree-prefix/primary/0255-r3-nonlexical-scan10000-current.stat": "47211a6870f0bebded5452ee3a9336b3ecbbcd2fde48a08c5676bcb742cf20a4", + "benchmarks/results-20261015/btree-prefix/primary/0256-r3-nonlexical-scan10000-main.log": "526d2b9751415395c35b7fb13e40f57de5b51a422da7d228f376571ef06a6e5a", + "benchmarks/results-20261015/btree-prefix/primary/0256-r3-nonlexical-scan10000-main.stat": "2683472d9283464a265f861299945b75f3a1643fed534de430ceb1541f3fc2d8", + "benchmarks/results-20261015/btree-prefix/primary/0257-r3-nonlexical-scanfull-current.log": "d90a87b8265b09bfbc6ebe3f324851f7a0b798345a9417201cf935766a883c88", + "benchmarks/results-20261015/btree-prefix/primary/0257-r3-nonlexical-scanfull-current.stat": "3a4c4b121c273ca7a4bf1993a1e4dda0b718eaff56ed4b7c689c7c8f33ceee35", + "benchmarks/results-20261015/btree-prefix/primary/0258-r3-nonlexical-scanfull-main.log": "d138086793a38d7d4c9b8e384132e4ba295b3e8b29ac9f0f7af45329f11cf501", + "benchmarks/results-20261015/btree-prefix/primary/0258-r3-nonlexical-scanfull-main.stat": "d78aaaadff8feb4302ca5262a29052d1a29dfc0842d2767c154b6e40e379d45c", + "benchmarks/results-20261015/btree-prefix/primary/0259-r3-common-insert-random-current.log": "a52162513caf20bcd1ecd308b6ff3c8597f607941ed7efcc075192326c0ddfb8", + "benchmarks/results-20261015/btree-prefix/primary/0259-r3-common-insert-random-current.stat": "41c9d6018101d8df8a2bd9d1c6ca5865bbcd5d959126ff58b4b55f07f6ef82cd", + "benchmarks/results-20261015/btree-prefix/primary/0260-r3-common-insert-random-main.log": "00fa4e8145f3fe47567f5a495d5db6e713d38ddacf7dd39a14ff40a6563e3998", + "benchmarks/results-20261015/btree-prefix/primary/0260-r3-common-insert-random-main.stat": "e41ca7e4365b0c7255adc53ad6667c720445f833f41d25fdd6b662c89803c7f9", + "benchmarks/results-20261015/btree-prefix/primary/0261-r3-common-insert-sorted-current.log": "a82b244e177b8754f42508d24696298b92ed535fdef74710230cb883ad70808b", + "benchmarks/results-20261015/btree-prefix/primary/0261-r3-common-insert-sorted-current.stat": "c2ff7d50a76664e7041598619b9c87c200e2c7e6e7a956d01ec33fedffdf37bf", + "benchmarks/results-20261015/btree-prefix/primary/0262-r3-common-insert-sorted-main.log": "9a98991a797a8a4ab9e6d48b6be1f8b85339add2311c04472ab47f987867daa7", + "benchmarks/results-20261015/btree-prefix/primary/0262-r3-common-insert-sorted-main.stat": "b45f08eee78aa309c89b6f677c12e4397020ceafdcdf1c9e51ae6c3c3c6a3b32", + "benchmarks/results-20261015/btree-prefix/primary/0263-r3-common-overwrite-current.log": "f5df51c76a73a5731e2beac60c3d612c1ca505a29af14dae14b4962435fb5eb8", + "benchmarks/results-20261015/btree-prefix/primary/0263-r3-common-overwrite-current.stat": "c60fc57ca1975c9aa4fddd4ed548dae4a1d06e37fb4f9038cf2e5b259019c5da", + "benchmarks/results-20261015/btree-prefix/primary/0264-r3-common-overwrite-main.log": "2b463c390c25e4a81ba21d8d499224f762de8d4eef5c051d8e04f43b7428dd62", + "benchmarks/results-20261015/btree-prefix/primary/0264-r3-common-overwrite-main.stat": "81223feab714bb99c7b334f89d74fb67bfeb6ceaf3ac5866f92d995033f390c2", + "benchmarks/results-20261015/btree-prefix/primary/0265-r4-common-hit-on.log": "a0c3e4beda00c8ade62b14f944dcd1c4b98ede44331a05640de7fd94e27c7c13", + "benchmarks/results-20261015/btree-prefix/primary/0265-r4-common-hit-on.stat": "69b29cbe86b705830e64d87e64e9e682697884d229a141290c1ece354b4a166c", + "benchmarks/results-20261015/btree-prefix/primary/0266-r4-common-hit-main.log": "7a08a355c133dbab9b8a837c815cfb9e563b2959e2da0bea6798d602b080884e", + "benchmarks/results-20261015/btree-prefix/primary/0266-r4-common-hit-main.stat": "f6cf0f58da47dba82beaa123fd5ce3efc42ad340293d5fa3a59d581f9e2dee69", + "benchmarks/results-20261015/btree-prefix/primary/0267-r4-common-hit-off.log": "02b1b68eeec4471b6b493fd6ccfd9f880f91f88b5a9dec149b9d9312ce5c363d", + "benchmarks/results-20261015/btree-prefix/primary/0267-r4-common-hit-off.stat": "8923936332ac29d0c3c730eeefea23da878f2501c6aaf20dd06e8a4ff80e1bca", + "benchmarks/results-20261015/btree-prefix/primary/0268-r4-common-miss-on.log": "12a6548b72797bb94bbed76800d55a8a5967942f1952c1dbff682d9b30b78259", + "benchmarks/results-20261015/btree-prefix/primary/0268-r4-common-miss-on.stat": "3a603712716f57d35f231fe4100edba8fe0a64b5510c947aad7aa360dba98cba", + "benchmarks/results-20261015/btree-prefix/primary/0269-r4-common-miss-main.log": "f6a514e2f8f8d7590a1b7d3f0131ecf9a66d0726dcccef94b3b20945cf69c299", + "benchmarks/results-20261015/btree-prefix/primary/0269-r4-common-miss-main.stat": "ca504d19d0d13dccbe14f3b6b33a057edf697d32514bb2c268db5eaf1ff665c2", + "benchmarks/results-20261015/btree-prefix/primary/0270-r4-common-miss-off.log": "cdd4af7dccd49c065129ba475ba7f0b712588255c8cb124efd141b7dd932f5f7", + "benchmarks/results-20261015/btree-prefix/primary/0270-r4-common-miss-off.stat": "a2d5573a1b83015220e810d116549b48e2752818a755299f15e596b395beb305", + "benchmarks/results-20261015/btree-prefix/primary/0271-r4-common-scan1-on.log": "3d4c948b9c40ed42cb9291a554d5e153c5be3f68e47fd71faaf3c1376c4453ba", + "benchmarks/results-20261015/btree-prefix/primary/0271-r4-common-scan1-on.stat": "35e5c41e4ae8ace173a71557980224ce763dcf9290d78052a54eb82d9ddca9c4", + "benchmarks/results-20261015/btree-prefix/primary/0272-r4-common-scan1-main.log": "a41ffad96f6f9533a7f7151ff8a34ac7259a0016ab59a4cfda570677d9765f16", + "benchmarks/results-20261015/btree-prefix/primary/0272-r4-common-scan1-main.stat": "123215558b7c7f0ea26f691a789786bd8c3d5fb527d19b94bf198842d6dd8b06", + "benchmarks/results-20261015/btree-prefix/primary/0273-r4-common-scan1-off.log": "b09b1caf22f686d15b7077d6cc673345c7ad17bd1937159959ab96fb74f06802", + "benchmarks/results-20261015/btree-prefix/primary/0273-r4-common-scan1-off.stat": "dba725f4805dfa8564b0fc6b5a491caaa5639840238f67c3d775949a056b33b9", + "benchmarks/results-20261015/btree-prefix/primary/0274-r4-common-scan10000-on.log": "5da38006a7ae3016a7a624b12cb1b0c3f3c7f6045ebc8161b957fe713430179c", + "benchmarks/results-20261015/btree-prefix/primary/0274-r4-common-scan10000-on.stat": "1bba94b11e6f29c9b485096cc79b55b309f596614b20fe15bc6dbb340a8d85c0", + "benchmarks/results-20261015/btree-prefix/primary/0275-r4-common-scan10000-main.log": "be35f76e4d483c5ee999d32227260ec3eee8c23fd3be42a26d10ff67c3708bed", + "benchmarks/results-20261015/btree-prefix/primary/0275-r4-common-scan10000-main.stat": "5bed8e3ffdf857315c7f307ebb40857e8914fda7f07911564d18064948f6310c", + "benchmarks/results-20261015/btree-prefix/primary/0276-r4-common-scan10000-off.log": "356ec6ea211de93bd1f6e6d473d56b4a6a8b28a2e9d454889217c8fa8a902827", + "benchmarks/results-20261015/btree-prefix/primary/0276-r4-common-scan10000-off.stat": "4abe59bae39be1af5f603eb44e6608692fa5533d0f85406dce24137b2e81a581", + "benchmarks/results-20261015/btree-prefix/primary/0277-r4-common-scanfull-on.log": "b96099b0e7d3211198f93c152dd00890729155156d1a0f0ebe66ff71daa87c92", + "benchmarks/results-20261015/btree-prefix/primary/0277-r4-common-scanfull-on.stat": "024252628435c8249b5d8dd420eeb4afcee56e87dd3a5bbed25bfc348413828f", + "benchmarks/results-20261015/btree-prefix/primary/0278-r4-common-scanfull-main.log": "60e81ac3d6bccf01d09970da9a4c438f439a95b779c214a39320937ab9d76b2c", + "benchmarks/results-20261015/btree-prefix/primary/0278-r4-common-scanfull-main.stat": "052b2023239aaed6f639dc93804b23a2784dfc01094b9aff79a35406801aa0bb", + "benchmarks/results-20261015/btree-prefix/primary/0279-r4-common-scanfull-off.log": "1f595f444af5b179443a5d5baefc68b01c4890364cfc2c7c13f0e5f0b2b6dbe0", + "benchmarks/results-20261015/btree-prefix/primary/0279-r4-common-scanfull-off.stat": "add78634f98c40f3c3dc450f729c0d55144d2802c69393ad7ae782b5afe634b5", + "benchmarks/results-20261015/btree-prefix/primary/0280-r4-random-insert-random-main.log": "02e8fbeb08c13e7ed4e772668f01937a5f851ff497e0752c90716e91c333e0c2", + "benchmarks/results-20261015/btree-prefix/primary/0280-r4-random-insert-random-main.stat": "039bb1d5bef912d0f1a2e2526f95022c69e2e178094345f53d71d492621dc924", + "benchmarks/results-20261015/btree-prefix/primary/0281-r4-random-insert-random-current.log": "ffdf8aa1bd64db810c70e33e52ab88e80896d8c6b1f0df1e0ece437b949d75dd", + "benchmarks/results-20261015/btree-prefix/primary/0281-r4-random-insert-random-current.stat": "fd6186217fefc412bb05628e2e9c80e8a88a51c929bc317314ee5e0270801de5", + "benchmarks/results-20261015/btree-prefix/primary/0282-r4-random-insert-sorted-main.log": "58991cf705f616e9696e50ab320a28d963ea3caf314f91554a19861670eb083c", + "benchmarks/results-20261015/btree-prefix/primary/0282-r4-random-insert-sorted-main.stat": "45f960034fc9bdc9a70ec0e4866be14cf1a5cd028b0307beedb79e707e685e4a", + "benchmarks/results-20261015/btree-prefix/primary/0283-r4-random-insert-sorted-current.log": "068aa858486a9a4fcb6e18fee171dda8f8a176f6d50f266d157f9b224eb2b8e6", + "benchmarks/results-20261015/btree-prefix/primary/0283-r4-random-insert-sorted-current.stat": "54ec165a4e79801ede8ba553d8ebea26677d673037364d153cc9c0e6322fb9ff", + "benchmarks/results-20261015/btree-prefix/primary/0284-r4-random-overwrite-main.log": "6e7df0d8ce0857e5f402f898ef82bb30bb215b950a8034dbbc49e071e11a6dae", + "benchmarks/results-20261015/btree-prefix/primary/0284-r4-random-overwrite-main.stat": "e1530699c7666628faa19dca1c59eec8682e0c2a6429d98ebfed315b57f203ae", + "benchmarks/results-20261015/btree-prefix/primary/0285-r4-random-overwrite-current.log": "cf702eb024f39ad273f4e80f47dc9d0a0c801f787d0bea5ba6f68a8db4cb1060", + "benchmarks/results-20261015/btree-prefix/primary/0285-r4-random-overwrite-current.stat": "4d979c1d1e46bbdf512f0d696c29d18101866323b64489afab76b7ab64146bbb", + "benchmarks/results-20261015/btree-prefix/primary/0286-r4-random-pack-on.log": "a33925a3829c771845b8358118734a9ab79146e087115f6a06f12211c889c531", + "benchmarks/results-20261015/btree-prefix/primary/0286-r4-random-pack-on.stat": "a339d1a39e7533e76cafb5cbe7ab1528276402c98a556d33d0dca9e1b4339238", + "benchmarks/results-20261015/btree-prefix/primary/0287-r4-random-pack-main.log": "71aca15ff1fc79a7561566d27bce287001280ef2af1c2ecca13e6d57149f9ec8", + "benchmarks/results-20261015/btree-prefix/primary/0287-r4-random-pack-main.stat": "e0b56390fe76b83b810344c1dca3739769c2deef6170b48c690f775321b89573", + "benchmarks/results-20261015/btree-prefix/primary/0288-r4-random-pack-off.log": "6458440a54c1d1d08c34d74ac9c3182d0cd1012f252d1a16023c1012fa497b84", + "benchmarks/results-20261015/btree-prefix/primary/0288-r4-random-pack-off.stat": "7a7c045757c44bf0c3e6e129a3d3bd72e737045db9b43720f39005017e99b014", + "benchmarks/results-20261015/btree-prefix/primary/0289-r4-random-hit-on.log": "80d03acdbe1a2ec2327d354b108198cf413418fbc9d710ff393bd52d29431145", + "benchmarks/results-20261015/btree-prefix/primary/0289-r4-random-hit-on.stat": "091b233eef58ae368861cfa465d62ffebe46dce7b24e4c32ef7f12a2810e2f76", + "benchmarks/results-20261015/btree-prefix/primary/0290-r4-random-hit-main.log": "fc5e142c409634ac6028a70f08f18ef9120415db5b12307ca67ba6947e3923ba", + "benchmarks/results-20261015/btree-prefix/primary/0290-r4-random-hit-main.stat": "c3487933d12d9470133a2e595283da574a21e80d91d78da33fd0c76fd9f9e1ad", + "benchmarks/results-20261015/btree-prefix/primary/0291-r4-random-hit-off.log": "bc537d3dc85c302f16ce10287ed96b1e21139700e5b044700d79c8745294df7b", + "benchmarks/results-20261015/btree-prefix/primary/0291-r4-random-hit-off.stat": "4d1b90976dea66e9d398568596aabd9d94f772e405fb960d9638981fd5be2e44", + "benchmarks/results-20261015/btree-prefix/primary/0292-r4-random-miss-on.log": "e305d727438ee450a6f0e8fc545c4fbe0a238493de3c4ae746e8d3f920f26b01", + "benchmarks/results-20261015/btree-prefix/primary/0292-r4-random-miss-on.stat": "b62ed3c91ca8bb9f1112818f27aedab329e0b2650a502589bfcbe1944406d808", + "benchmarks/results-20261015/btree-prefix/primary/0293-r4-random-miss-main.log": "024e8a08e788c1cd40f20089498b5dd7e3951919b6ca3b572c063417f7e57352", + "benchmarks/results-20261015/btree-prefix/primary/0293-r4-random-miss-main.stat": "77f1321a08cd47a34535bfdbffdbd1fd71acf53d2ec32bede99b278101fc467e", + "benchmarks/results-20261015/btree-prefix/primary/0294-r4-random-miss-off.log": "015c3196e45a330fd76a9a815311b967b995a0ebc0a5a1e0efb5b1c8e45c55da", + "benchmarks/results-20261015/btree-prefix/primary/0294-r4-random-miss-off.stat": "bde45a9d7bd6b1b3a58608900e97bbf8658a295b24e2ad4334a2a69bada71b16", + "benchmarks/results-20261015/btree-prefix/primary/0295-r4-random-scan1-on.log": "f86e58d1f7f1ceb4ec8af48feaa535907aa6485482ab8353d506fe9b62dbc694", + "benchmarks/results-20261015/btree-prefix/primary/0295-r4-random-scan1-on.stat": "ec75660517f3a59dc87b42ec412a47c3c347d2ecbd36e4e487b886faadf00a9b", + "benchmarks/results-20261015/btree-prefix/primary/0296-r4-random-scan1-main.log": "5cd72e17bf3ab61908bf5d7235b76100d5725ec26be401c001e09831156a6cd4", + "benchmarks/results-20261015/btree-prefix/primary/0296-r4-random-scan1-main.stat": "ee3b16f58aa1bee729ebb2e800c74227c4c402c3b2040481c64694d7718c6fae", + "benchmarks/results-20261015/btree-prefix/primary/0297-r4-random-scan1-off.log": "4bca1f0683e6319db7955b9e788e26a8e394ce2bc8c5e4bfe9d98d144ec1ab38", + "benchmarks/results-20261015/btree-prefix/primary/0297-r4-random-scan1-off.stat": "ae6cca1abe4adc932962e8c3bf0468e84f08ab55ce8f40530da7949953a6fefa", + "benchmarks/results-20261015/btree-prefix/primary/0298-r4-random-scan10000-on.log": "4b0e696408dfa129d3c231445e4d62c1cc11336a150de6fa61e135bb787ede5c", + "benchmarks/results-20261015/btree-prefix/primary/0298-r4-random-scan10000-on.stat": "a7ef02343a1f288cb90cea8a847a7c3335edf8442b48b30a0eb8c1f07962ca85", + "benchmarks/results-20261015/btree-prefix/primary/0299-r4-random-scan10000-main.log": "ad63e6ac528a49e91b5dc449a27313dce8cd809767c56123b2a092c0b6f996d9", + "benchmarks/results-20261015/btree-prefix/primary/0299-r4-random-scan10000-main.stat": "12f7748b6b8d7f9df896d5546319b15172e271741b8b02fa74cab2e0cddb5ec8", + "benchmarks/results-20261015/btree-prefix/primary/0300-r4-random-scan10000-off.log": "1198e4991622e64a51ed6900a32bef0099cd8309d149ef26f2fabb829c5e6393", + "benchmarks/results-20261015/btree-prefix/primary/0300-r4-random-scan10000-off.stat": "0d10e40c464e4690efa8e47acac4d75c990eb1b02250387fed32552a2c5decf4", + "benchmarks/results-20261015/btree-prefix/primary/0301-r4-random-scanfull-on.log": "ea0e6af5bd3a91fdd8c2abb2f3e4796a8b05c75f828344ca7007fb2b5c83ca63", + "benchmarks/results-20261015/btree-prefix/primary/0301-r4-random-scanfull-on.stat": "7038b5a270b59741d698162a410ee1bf255498a74cf020ad37e2f34437e541b4", + "benchmarks/results-20261015/btree-prefix/primary/0302-r4-random-scanfull-main.log": "4527f362fe5739b90a49f0bdb803d84276831144a7388788334d48af71916aa0", + "benchmarks/results-20261015/btree-prefix/primary/0302-r4-random-scanfull-main.stat": "89237f36f2330fa9417ec5e11cf7b04417bd51671888c37cdb3a084dc8bbc5ba", + "benchmarks/results-20261015/btree-prefix/primary/0303-r4-random-scanfull-off.log": "8331e968042246da6c11a2298553439047f4c9e44e0eae8d2c8c0edfdc2b6f2a", + "benchmarks/results-20261015/btree-prefix/primary/0303-r4-random-scanfull-off.stat": "db8020ce97563064f0b85ea96df768bb3f8cd62c7b1ac220f27163607d4a1096", + "benchmarks/results-20261015/btree-prefix/primary/0304-r4-nonlexical-insert-random-main.log": "310de3a726bcad13c24490b660d3d4b84f27fe5722e54359bb61ffa33ecc6072", + "benchmarks/results-20261015/btree-prefix/primary/0304-r4-nonlexical-insert-random-main.stat": "fe0a158450ae2c01363d12b12a7ef37df2754235b8c246b3391c5600e1f48648", + "benchmarks/results-20261015/btree-prefix/primary/0305-r4-nonlexical-insert-random-current.log": "15a20fccb0d6d88e8d2cc7353fe7bbffec0fd93999ea7a07661a0297ffbb18bf", + "benchmarks/results-20261015/btree-prefix/primary/0305-r4-nonlexical-insert-random-current.stat": "f98ad6d6d1a155b1012629cb06fc23e094f8b57b87223a8f91b8f629cb1779fb", + "benchmarks/results-20261015/btree-prefix/primary/0306-r4-nonlexical-insert-sorted-main.log": "a8b734001894a1b13c719aa8052c172304880789c24e9cdb0fd98c633b8bf403", + "benchmarks/results-20261015/btree-prefix/primary/0306-r4-nonlexical-insert-sorted-main.stat": "d00595ec8527e8fdf63fe8b614ac02a1486206d9370dd3ea7cffe3132d9c006c", + "benchmarks/results-20261015/btree-prefix/primary/0307-r4-nonlexical-insert-sorted-current.log": "5f649f70c20631714ff5ee59d985c07e8c2368c392d6c5b791d9e94225a537c9", + "benchmarks/results-20261015/btree-prefix/primary/0307-r4-nonlexical-insert-sorted-current.stat": "dd04e66a6db066128d9b1c6a281688590c58cbdca5718d584ee901cf48513d13", + "benchmarks/results-20261015/btree-prefix/primary/0308-r4-nonlexical-overwrite-main.log": "348f2b751924ffe3f5cd0601ce217b72ffaf982709ce3e373bcd5700b9b18e79", + "benchmarks/results-20261015/btree-prefix/primary/0308-r4-nonlexical-overwrite-main.stat": "753a6ceeb346132bdb713d517535f2a1a4eea3dc0c9ab274e93e8f5a01ebdeb1", + "benchmarks/results-20261015/btree-prefix/primary/0309-r4-nonlexical-overwrite-current.log": "0ab626a18f5554a7894e861df31504993f4e48fd5577e4f5a8165bab618a361b", + "benchmarks/results-20261015/btree-prefix/primary/0309-r4-nonlexical-overwrite-current.stat": "578892f76548f498aaf147f73de8be25cbe4fac46a22f0eba3179c6a663dde28", + "benchmarks/results-20261015/btree-prefix/primary/0310-r4-nonlexical-pack-main.log": "bf41b445a85f470bad029879245aa7d810ed978862ee45fb14120057baa86683", + "benchmarks/results-20261015/btree-prefix/primary/0310-r4-nonlexical-pack-main.stat": "7d0a557198a2bd4f88552e30d7f9ef753fef55e90c8a7ad3f8cdf5b9ccbd0155", + "benchmarks/results-20261015/btree-prefix/primary/0311-r4-nonlexical-pack-current.log": "d6350339219f057b1721b4a0a2629905e82c4428240fd8e8c4af4be3cbeef5c7", + "benchmarks/results-20261015/btree-prefix/primary/0311-r4-nonlexical-pack-current.stat": "ec96bd571c99a5d5c771596b0e3210acf930f193b7bbae0df30240a9ccf3bbf4", + "benchmarks/results-20261015/btree-prefix/primary/0312-r4-nonlexical-hit-main.log": "64bb7377799f5f279d6462485e94d896d68c59ca42808eb9232fc3264da36a68", + "benchmarks/results-20261015/btree-prefix/primary/0312-r4-nonlexical-hit-main.stat": "8e7a80b1574ca71d538442a0db4ae4ee97cea04cd05c499055d5e2d979505210", + "benchmarks/results-20261015/btree-prefix/primary/0313-r4-nonlexical-hit-current.log": "5f658038fe93671d978f6c2f1ca74612b87dc96d4184249fa6d4f3dd2a0573cc", + "benchmarks/results-20261015/btree-prefix/primary/0313-r4-nonlexical-hit-current.stat": "17e5e285147416923503c0e807e2210f8a512fc1acc0f7ead4c8c5b90a514680", + "benchmarks/results-20261015/btree-prefix/primary/0314-r4-nonlexical-miss-main.log": "959b1ace5b7270ec1c2b6a7311cbf5d14590fd9f243c9e4a2041f28447db024e", + "benchmarks/results-20261015/btree-prefix/primary/0314-r4-nonlexical-miss-main.stat": "01ffdc5bb304f704d44bcb75425e3cf49caf5f873a67c1da9dad16a028504cd3", + "benchmarks/results-20261015/btree-prefix/primary/0315-r4-nonlexical-miss-current.log": "83d483468d9c34cd12a3c08fa313ee82965d8b556885c198c524183ed7d8ceb0", + "benchmarks/results-20261015/btree-prefix/primary/0315-r4-nonlexical-miss-current.stat": "d3505b0ba440d297aeed0aa98ee69a046cd1c93e4a84b10b246347558376d0bf", + "benchmarks/results-20261015/btree-prefix/primary/0316-r4-nonlexical-scan1-main.log": "90cb746100f8ea74334099697a132dbd7b678d06207e7238e35ba5ef7ffde879", + "benchmarks/results-20261015/btree-prefix/primary/0316-r4-nonlexical-scan1-main.stat": "55bf483c61f983069aef20174650d83b339af39c5dd9898b8f5cdb64d48416f3", + "benchmarks/results-20261015/btree-prefix/primary/0317-r4-nonlexical-scan1-current.log": "a768f1eead17ae2bb59a2b8d2c4c5a32183119ac1e163cbf68562c9befff4f91", + "benchmarks/results-20261015/btree-prefix/primary/0317-r4-nonlexical-scan1-current.stat": "9cb95ecf7339bb227a5743951f220e36c9e6bcc8aa71a6f5eb1650dc0933943a", + "benchmarks/results-20261015/btree-prefix/primary/0318-r4-nonlexical-scan10000-main.log": "9a09e089bf5dfc563b5b486bb8ce91e9fd408d3b970f8a5cab4230b99caa5c84", + "benchmarks/results-20261015/btree-prefix/primary/0318-r4-nonlexical-scan10000-main.stat": "64b5836b316c15cc4fe2c4d0e7ca75be9c388f94463297dcd51211b8de65b625", + "benchmarks/results-20261015/btree-prefix/primary/0319-r4-nonlexical-scan10000-current.log": "a5d43b80cde159d32fcca3d20b4078c0bc0cf511ad8cf3c91744bdbabd74fc4e", + "benchmarks/results-20261015/btree-prefix/primary/0319-r4-nonlexical-scan10000-current.stat": "27cea7ae15ebeb2e7e4458ae526b6bd6484b90bcbf42ff078ff7a8cae28820a2", + "benchmarks/results-20261015/btree-prefix/primary/0320-r4-nonlexical-scanfull-main.log": "413f5bae908d68bd597276acecfd8067f84df6fb5dba686d060feedff72afe3d", + "benchmarks/results-20261015/btree-prefix/primary/0320-r4-nonlexical-scanfull-main.stat": "622b02fa84c1b05024588943a46a53ef67982b3b76b1c6c4876cb9ea12f4f39d", + "benchmarks/results-20261015/btree-prefix/primary/0321-r4-nonlexical-scanfull-current.log": "26401d106e33df1725034b072eddd5eccc970aa04addc9be8c86dbca4604a78f", + "benchmarks/results-20261015/btree-prefix/primary/0321-r4-nonlexical-scanfull-current.stat": "b44f662c99e26c3aff087f9980dcdaad8f2de00b02090e9245ba9aaabbe8262f", + "benchmarks/results-20261015/btree-prefix/primary/0322-r4-common-insert-random-main.log": "3e7171f4fc50dd87888330122a96fc5ac00ea37f38c770574948a08220d48644", + "benchmarks/results-20261015/btree-prefix/primary/0322-r4-common-insert-random-main.stat": "74d93f2cad00049b26fe8fe4dc2052b4e77d8fb73458c8d63c7a68c6aac22aff", + "benchmarks/results-20261015/btree-prefix/primary/0323-r4-common-insert-random-current.log": "45f6a8f226b2e54df35267616abd8d244a43b97f6914d5b81cb1a409a91d6026", + "benchmarks/results-20261015/btree-prefix/primary/0323-r4-common-insert-random-current.stat": "ce4e8e302a1a82a5a8e543a16319963c7ed96d702d6d996bf64f1f4b4b91fff8", + "benchmarks/results-20261015/btree-prefix/primary/0324-r4-common-insert-sorted-main.log": "1910b1f8e770071e29e1faea1c89cf879d33702e3807457248d935c982450826", + "benchmarks/results-20261015/btree-prefix/primary/0324-r4-common-insert-sorted-main.stat": "e6ddc10a7e614f64b0b9ebb0933f27115467fd7586751d578cdb720ea2c7c3a7", + "benchmarks/results-20261015/btree-prefix/primary/0325-r4-common-insert-sorted-current.log": "a446d32ff5e8681d11788e29906976256d6068558c0e227f44d84741fde713c2", + "benchmarks/results-20261015/btree-prefix/primary/0325-r4-common-insert-sorted-current.stat": "21001d79c27780b361383a1de7d54840dcbc9c61f3924d63cbcd68f26af40268", + "benchmarks/results-20261015/btree-prefix/primary/0326-r4-common-overwrite-main.log": "0e15d553275afe1eb775f6f03fe6eab88d1a59321d0588b2bffb96ca136c81a4", + "benchmarks/results-20261015/btree-prefix/primary/0326-r4-common-overwrite-main.stat": "2fb3bfb80f4613f6b2f8bb32c09c04d6d186874c9abaa70169fb75ee571e5dae", + "benchmarks/results-20261015/btree-prefix/primary/0327-r4-common-overwrite-current.log": "a7a482fa3d185df1b058c46902976b19783d8b2d08f45b8cf4d42e98173aaae7", + "benchmarks/results-20261015/btree-prefix/primary/0327-r4-common-overwrite-current.stat": "d486e9057ca790769561a166d9c0630030a1361e927475f5b5ec241962c23f9e", + "benchmarks/results-20261015/btree-prefix/primary/0328-r4-common-pack-on.log": "c5e493ae21c26050b42d1f72bfc61b09295346a428b1f9b1a8643e9b935d8579", + "benchmarks/results-20261015/btree-prefix/primary/0328-r4-common-pack-on.stat": "4607e7bcca72199b9c5cd948a91ab5ff8240f0864f479657ceb34df2024b6bde", + "benchmarks/results-20261015/btree-prefix/primary/0329-r4-common-pack-main.log": "2616946c8952bd708679ce4912698a7cdc826afdbcdb8cd66c551fd341be93f1", + "benchmarks/results-20261015/btree-prefix/primary/0329-r4-common-pack-main.stat": "fbee14e51aa2a583c45e5fa0de98bc5976c1e7bc8b2396e3af9ef1720eb2c312", + "benchmarks/results-20261015/btree-prefix/primary/0330-r4-common-pack-off.log": "e6929d5a42ab79c7f58c8d4a4005c816035a36866d3e13ba876fea6148aa3623", + "benchmarks/results-20261015/btree-prefix/primary/0330-r4-common-pack-off.stat": "f0104187b65d7e468356164b8809995a0d22ec8d9b28f0f07d15d7a0456e4a66", + "benchmarks/results-20261015/btree-prefix/primary/0331-r5-common-miss-on.log": "a65521483583abb3d4034f40754bf3bbe6223a250480bc15936e8cfd88c09fe7", + "benchmarks/results-20261015/btree-prefix/primary/0331-r5-common-miss-on.stat": "ed87f37d5ff9258caae92a3bffda71dedf6945a75f0d3bdeebf579c49cf8c358", + "benchmarks/results-20261015/btree-prefix/primary/0332-r5-common-miss-off.log": "e86b1863fdf84034eb950504cddcb8464758187b5fd5e9bdea37b9d0fd9c5a83", + "benchmarks/results-20261015/btree-prefix/primary/0332-r5-common-miss-off.stat": "d4b6cb086dedd05c64772f5a95fe82b15e89aac20e5016e09439508e20abb08e", + "benchmarks/results-20261015/btree-prefix/primary/0333-r5-common-miss-main.log": "8c5bd0d91d44f0b3d1463b0c407cdf97ca97983de4fbd7225b7acd911a09ba25", + "benchmarks/results-20261015/btree-prefix/primary/0333-r5-common-miss-main.stat": "3caed5240383eecaab55519f610a47ca6c9a18a8125a750d1ad929055e1fb2a4", + "benchmarks/results-20261015/btree-prefix/primary/0334-r5-common-scan1-on.log": "3b4121c30c197094f283192d3c345c019cf07838197e069d8a3c4327495629b3", + "benchmarks/results-20261015/btree-prefix/primary/0334-r5-common-scan1-on.stat": "65d8016cf217ecd204b4854f523c32bcce8998896abfbf0d8f6c470433f26e28", + "benchmarks/results-20261015/btree-prefix/primary/0335-r5-common-scan1-off.log": "c876ab7cb934d30db0ef97fb61c5491c01ddb2b6cb716b23bc06e04c3e2725ed", + "benchmarks/results-20261015/btree-prefix/primary/0335-r5-common-scan1-off.stat": "84c6636cfe41916ba0f367819ba6bb544f633ab70e4cfb949fc107ade21e582f", + "benchmarks/results-20261015/btree-prefix/primary/0336-r5-common-scan1-main.log": "6c207dba04ff7fc0c7ba0901e5717bf310349eaa6ab000eb11f070b50edb57bf", + "benchmarks/results-20261015/btree-prefix/primary/0336-r5-common-scan1-main.stat": "95db213b764e4b011e07ec7a3beb10ec06e7a49fb72de633f7c2a935f3b55277", + "benchmarks/results-20261015/btree-prefix/primary/0337-r5-common-scan10000-on.log": "25d4ef111408532bee6c3965ca1c5e502d6e4f63411a3cc3e9c4a9c51cb7168f", + "benchmarks/results-20261015/btree-prefix/primary/0337-r5-common-scan10000-on.stat": "baa94d882f698cfdb337e3f146cb6ea73aef5d7044f501b0e5ea63cc2b45e1f0", + "benchmarks/results-20261015/btree-prefix/primary/0338-r5-common-scan10000-off.log": "3827fceba324fbc47aab6fa8f3d96c5071ef8520e03c751237caf0f67c4d71af", + "benchmarks/results-20261015/btree-prefix/primary/0338-r5-common-scan10000-off.stat": "2e1d6ef947d027d0a358904107ec1df74d525d378bacf8d96bf060e3d6b892ce", + "benchmarks/results-20261015/btree-prefix/primary/0339-r5-common-scan10000-main.log": "ca6530b6771e5a6db5884d06ce1c3b5af3b285b79a50da8321b584c6181c1287", + "benchmarks/results-20261015/btree-prefix/primary/0339-r5-common-scan10000-main.stat": "ae9ef25ef1da3403917061f5e7a3057ad47f750360e30d5001d97eab12e0b291", + "benchmarks/results-20261015/btree-prefix/primary/0340-r5-common-scanfull-on.log": "d44c4653109b5ecb121a9cf21353ce267ba0ba92b2a4db55ebd80d2a5f9ed754", + "benchmarks/results-20261015/btree-prefix/primary/0340-r5-common-scanfull-on.stat": "b9feacb22443133cac7fd25c5cf26da264742ba83a7825b1508eefef0e91d74c", + "benchmarks/results-20261015/btree-prefix/primary/0341-r5-common-scanfull-off.log": "848c0ddaa4aa4d0560b3cd72ce7d2aa216b6308afec701e0fe5bf77d00729e3e", + "benchmarks/results-20261015/btree-prefix/primary/0341-r5-common-scanfull-off.stat": "bbddd7720012521b4c719c21f652e55432a68b9183f403925a0aa66e6417caa1", + "benchmarks/results-20261015/btree-prefix/primary/0342-r5-common-scanfull-main.log": "41c3d40cc96da56b75cefc2bc8235d4b2f84983c548e14eaf51d2a329e2c17cb", + "benchmarks/results-20261015/btree-prefix/primary/0342-r5-common-scanfull-main.stat": "c651f6585f2a6f664628592e8f30400b3723e773537f460796d764759653c582", + "benchmarks/results-20261015/btree-prefix/primary/0343-r5-random-insert-random-current.log": "7a9bed37283c3f33fb0bd16ceb7f94924119e5bbcaaa7d88a6b020e19d902a23", + "benchmarks/results-20261015/btree-prefix/primary/0343-r5-random-insert-random-current.stat": "dfab779b7f5cb1d7e7bbad27fce814cf2f934ed621ed88dcae52c037928a4c42", + "benchmarks/results-20261015/btree-prefix/primary/0344-r5-random-insert-random-main.log": "a8e074f04a84bd5d1422674098031ca8f479cf67b82c0e67cda193d7589a5ef9", + "benchmarks/results-20261015/btree-prefix/primary/0344-r5-random-insert-random-main.stat": "122dcd26725fa5b6a16d52355a3c4bdc8b726caf1e37b511c5b0636975c42875", + "benchmarks/results-20261015/btree-prefix/primary/0345-r5-random-insert-sorted-current.log": "a54305cf113d8a2a6921fa3dca5fa84ff0b0d538caaff8f45e38e017f2cebb79", + "benchmarks/results-20261015/btree-prefix/primary/0345-r5-random-insert-sorted-current.stat": "77c2d81c63ba8e85b746176d429ddaf976b814c568c7789042360a53e2e4c1ea", + "benchmarks/results-20261015/btree-prefix/primary/0346-r5-random-insert-sorted-main.log": "70efecc08305d2adf34ad8187df9df7e1e772ca72b1cecf602ff3bcb44a3f66c", + "benchmarks/results-20261015/btree-prefix/primary/0346-r5-random-insert-sorted-main.stat": "42fd4622e1d5362648bb8ae6a517b19af1f376ffbd77637a011a9f2c3557a059", + "benchmarks/results-20261015/btree-prefix/primary/0347-r5-random-overwrite-current.log": "25bcec162022204d7348f7ec62df5172ce24aced72a20ab78a085a748f856e6d", + "benchmarks/results-20261015/btree-prefix/primary/0347-r5-random-overwrite-current.stat": "0483ebc3f1094670515608a0c42d21e300d2b779c3109cf713f3bce2a969a413", + "benchmarks/results-20261015/btree-prefix/primary/0348-r5-random-overwrite-main.log": "18ac1388629120945e9a77ed89ba5043faff0fd8553fb8a9d89e1f2ac93f17a3", + "benchmarks/results-20261015/btree-prefix/primary/0348-r5-random-overwrite-main.stat": "1d8576f156168306ade4e8532ebd6f653c35062c11c60d5e0252af50c6de3ef9", + "benchmarks/results-20261015/btree-prefix/primary/0349-r5-random-pack-on.log": "e8fedd351834742441abaa977b009c90617eb93151385ab61a957159fd632254", + "benchmarks/results-20261015/btree-prefix/primary/0349-r5-random-pack-on.stat": "573cb4a6c7987064f452c007e3fb3a8623bc59ce842905e45e5c45083e63ca2e", + "benchmarks/results-20261015/btree-prefix/primary/0350-r5-random-pack-off.log": "7cc989f1ad3910b2ca5e189a720622aa9ab522cdbbf6257dc0df430cf1d965a1", + "benchmarks/results-20261015/btree-prefix/primary/0350-r5-random-pack-off.stat": "166e2472a4721270ad1e782a557038d6d01f6adaee22c1b75a10f6b6c8c033be", + "benchmarks/results-20261015/btree-prefix/primary/0351-r5-random-pack-main.log": "f19ec173b144986039e6cd28da48dfdee58309debf6e81fb62e234372a5c6268", + "benchmarks/results-20261015/btree-prefix/primary/0351-r5-random-pack-main.stat": "7d747d5109fd5067e66c7c0d3962aed9bca4b59ef4f34bb387767126b0832775", + "benchmarks/results-20261015/btree-prefix/primary/0352-r5-random-hit-on.log": "e2656d1c57e02b30caf5e2c55bf54c6d41292347afabec87b4566c774ff83fb7", + "benchmarks/results-20261015/btree-prefix/primary/0352-r5-random-hit-on.stat": "9ada00d434cfa13b55f9f02f2821a024be791b68ad5bca427dcde9c258202fed", + "benchmarks/results-20261015/btree-prefix/primary/0353-r5-random-hit-off.log": "f4902610ba3f8cba2a372d9e3ec2cbb7f01899ad0525fbc161d53978b96b5876", + "benchmarks/results-20261015/btree-prefix/primary/0353-r5-random-hit-off.stat": "c85e839e4f75b76462cd4aae7b545a13229a545b0c2dec92193a5e7d9596ecab", + "benchmarks/results-20261015/btree-prefix/primary/0354-r5-random-hit-main.log": "c6483de9833d08d0949919ab792aaeba29d9ab08873428cfd23af8ae12573a55", + "benchmarks/results-20261015/btree-prefix/primary/0354-r5-random-hit-main.stat": "bf26c0796dc0d2387ed75d097b188bacdb956038906480638788aa13516c93b0", + "benchmarks/results-20261015/btree-prefix/primary/0355-r5-random-miss-on.log": "6feb32ffb137fbd87d585d5e9f1caa12d651364c3c844aca0a759fc684095635", + "benchmarks/results-20261015/btree-prefix/primary/0355-r5-random-miss-on.stat": "432622683aa16cd30020bced6e9c7db489f25162fbb190647bf68ec52d291df6", + "benchmarks/results-20261015/btree-prefix/primary/0356-r5-random-miss-off.log": "4d27992c4d05b1dfb858953c01201149e857d79f857354e22bbbf42807066126", + "benchmarks/results-20261015/btree-prefix/primary/0356-r5-random-miss-off.stat": "4bc58352b54577959b0f9fa2ebe499810da2242e6efe2c6db478098f9de85b90", + "benchmarks/results-20261015/btree-prefix/primary/0357-r5-random-miss-main.log": "96bcdfe7e16819afd1a25461de7a349ba4242b0e9f71cb657c9e9a7a75465abb", + "benchmarks/results-20261015/btree-prefix/primary/0357-r5-random-miss-main.stat": "30140a36367ad945b097cd4a61e1d17fa6af05a44c1c096ee4f090777ebdf668", + "benchmarks/results-20261015/btree-prefix/primary/0358-r5-random-scan1-on.log": "184c9f5999a859ebd1d3ccbff9d08dc6863a96db8b7d50de832f2f8b837dbb94", + "benchmarks/results-20261015/btree-prefix/primary/0358-r5-random-scan1-on.stat": "12a00a58284eb04f83a118b658e47c37e85814ce52459f395bd74329f2b38d76", + "benchmarks/results-20261015/btree-prefix/primary/0359-r5-random-scan1-off.log": "dae1d945265fe34e1fed2a86469949e0e56d1c873a457ed4f8a50dd2416c7b77", + "benchmarks/results-20261015/btree-prefix/primary/0359-r5-random-scan1-off.stat": "88509ac2ddaf137082a62bd53aaad36bbbcb328a1c270cd4ad40c982382cf9c4", + "benchmarks/results-20261015/btree-prefix/primary/0360-r5-random-scan1-main.log": "96fc5639bece42fe10973cdeb0cc2f3cdc40f87c25c4199d681072b3638a5e5b", + "benchmarks/results-20261015/btree-prefix/primary/0360-r5-random-scan1-main.stat": "fd98032c2d6371693a1f04cb8a0d200bffeeeb30a5f1e1f20399f5f38ae4aa49", + "benchmarks/results-20261015/btree-prefix/primary/0361-r5-random-scan10000-on.log": "5ccedbc69a74ef57f8bcb2e0d10e65528177e21f16c9fff5e770e848daee39da", + "benchmarks/results-20261015/btree-prefix/primary/0361-r5-random-scan10000-on.stat": "a888c33d898769d7555787211f924a0d1060d87831ff1a31144345c821913028", + "benchmarks/results-20261015/btree-prefix/primary/0362-r5-random-scan10000-off.log": "8e4d39141f722783a7185eb1126ec721a169a6bb08eff637b9cb24934cccb98e", + "benchmarks/results-20261015/btree-prefix/primary/0362-r5-random-scan10000-off.stat": "cd768ca4814e5f45668a29ca10a21af7022336bbdae701c30ff1689cacd013f8", + "benchmarks/results-20261015/btree-prefix/primary/0363-r5-random-scan10000-main.log": "a5117c0c4db3ef80481713e82fd2e886623245708b663c3404d1481578f8f088", + "benchmarks/results-20261015/btree-prefix/primary/0363-r5-random-scan10000-main.stat": "9176cd5e67fab5c86e1ecbecba5016f366652df702375774115372ff956fb68c", + "benchmarks/results-20261015/btree-prefix/primary/0364-r5-random-scanfull-on.log": "b80afe33eac10fb396a7392778c9685404429424b47841c8ece935bc29093f6a", + "benchmarks/results-20261015/btree-prefix/primary/0364-r5-random-scanfull-on.stat": "32ff8c6716576914f57cebfe2469541af13e2ae68c86f102e5bd796ed7c5e851", + "benchmarks/results-20261015/btree-prefix/primary/0365-r5-random-scanfull-off.log": "2ad315996b87733c953792be1cb7eff23af6e39dece5b9be05b19b36bc1cccfe", + "benchmarks/results-20261015/btree-prefix/primary/0365-r5-random-scanfull-off.stat": "80003a4c18be888f89e3ae322839257fcb82bbc824adf361677bc1a1896db1ca", + "benchmarks/results-20261015/btree-prefix/primary/0366-r5-random-scanfull-main.log": "1396c2ba15714f94809f5afe881dab25246b589b327eba499fb7f095e13c3d18", + "benchmarks/results-20261015/btree-prefix/primary/0366-r5-random-scanfull-main.stat": "a5019d653e01112b6b43ba2a53b158afb643d746c01914a9ddd93c7f4760b237", + "benchmarks/results-20261015/btree-prefix/primary/0367-r5-nonlexical-insert-random-current.log": "0564e4ac975ac1dd876d179e4d4f2217c10a894dc43d9a83f97e93cc8b154f53", + "benchmarks/results-20261015/btree-prefix/primary/0367-r5-nonlexical-insert-random-current.stat": "2ae9f93792e1a24d997bc17eeb3b8dfe2121481b9364ab773c27c003007cb10d", + "benchmarks/results-20261015/btree-prefix/primary/0368-r5-nonlexical-insert-random-main.log": "93e78ad169e65ee3c46eab06a56424814cdd65cb7b29b62ae12699e905bced35", + "benchmarks/results-20261015/btree-prefix/primary/0368-r5-nonlexical-insert-random-main.stat": "80abc98964e695243c094e0f4b9c0aa2b6fb4c8c760f381d7564a58dd311cc62", + "benchmarks/results-20261015/btree-prefix/primary/0369-r5-nonlexical-insert-sorted-current.log": "f05a4b5d378eb4931407413b73d7f4c6825d5627dc9c2101a0b97922419113df", + "benchmarks/results-20261015/btree-prefix/primary/0369-r5-nonlexical-insert-sorted-current.stat": "e2f3972a808a633e34da3a2203295f3de72541116f35808b028da8407cf60686", + "benchmarks/results-20261015/btree-prefix/primary/0370-r5-nonlexical-insert-sorted-main.log": "abf9743c3a9c8b81cb1c90673fb0f2101fac6be1502a37d181d03f88dff96f2b", + "benchmarks/results-20261015/btree-prefix/primary/0370-r5-nonlexical-insert-sorted-main.stat": "ea90d601063f231ec617c1d409ce50e70397b3d6525dd422c199af3e08e54dcc", + "benchmarks/results-20261015/btree-prefix/primary/0371-r5-nonlexical-overwrite-current.log": "8deb74a9376192eb55e0c87a1845b8fa3421f407ce6f32ec56b93c3104123abd", + "benchmarks/results-20261015/btree-prefix/primary/0371-r5-nonlexical-overwrite-current.stat": "57f397345afb3d8453e2036665f69f17ddfee985bc6a8acaa800a113a06b4699", + "benchmarks/results-20261015/btree-prefix/primary/0372-r5-nonlexical-overwrite-main.log": "c25b7969f779b4b9033ae2f1e7ec62a891fda90b29ba77c0fcde4fce1655e6de", + "benchmarks/results-20261015/btree-prefix/primary/0372-r5-nonlexical-overwrite-main.stat": "0a4620de2ab771a764e97f7fdc4418fda10f72325a1e8c4c70e8b3f81511f2a5", + "benchmarks/results-20261015/btree-prefix/primary/0373-r5-nonlexical-pack-current.log": "207b7b6d244b78135393d2be5c4130c9b3b1a634f16f5e4ae976b470a1663e2c", + "benchmarks/results-20261015/btree-prefix/primary/0373-r5-nonlexical-pack-current.stat": "49dcaee124c560e3b84a6fe4275f276e3be3b9fd78ef7ff86809673d04032030", + "benchmarks/results-20261015/btree-prefix/primary/0374-r5-nonlexical-pack-main.log": "d79198c13a5cdd4b7afce1e2386cbec8db9049428ac175b8d981003d472494fe", + "benchmarks/results-20261015/btree-prefix/primary/0374-r5-nonlexical-pack-main.stat": "cb520d3c1c8f590b651b28203960ead10f02fa78ad11d4c222b0eaa0957bba80", + "benchmarks/results-20261015/btree-prefix/primary/0375-r5-nonlexical-hit-current.log": "1a3d3ce9d6fdcb5b71596748c292369cc1ae042c4c0410fdba5345d5349f28d4", + "benchmarks/results-20261015/btree-prefix/primary/0375-r5-nonlexical-hit-current.stat": "517522031790d01d360cc6579edcff35711b4c51f27d0feff2d5bf8b3b761d07", + "benchmarks/results-20261015/btree-prefix/primary/0376-r5-nonlexical-hit-main.log": "22d1051d23f52351a3b032592316f6a37dc405a2cf470d0d4c3a9051e71b2b51", + "benchmarks/results-20261015/btree-prefix/primary/0376-r5-nonlexical-hit-main.stat": "f3f38c57dc02480c7a9292e57077efdfd6d10b953663bb99373a634d8502285f", + "benchmarks/results-20261015/btree-prefix/primary/0377-r5-nonlexical-miss-current.log": "dcc8ad6f8838666aee9c4a5014f3364f7fb947030c72d6273e245e0ab5a3c989", + "benchmarks/results-20261015/btree-prefix/primary/0377-r5-nonlexical-miss-current.stat": "a157a6313075625df5e16550e90fa2ed634f9f0b0b95d569be746bb182dca29d", + "benchmarks/results-20261015/btree-prefix/primary/0378-r5-nonlexical-miss-main.log": "42f7ba10b35f71359478822e55b448c502f4a593d90c3297cf120364677809af", + "benchmarks/results-20261015/btree-prefix/primary/0378-r5-nonlexical-miss-main.stat": "c3d1b3ee8cfe198724cd3a555701945dde773f8ebe8eb9e35ee8a3ed59d09dc3", + "benchmarks/results-20261015/btree-prefix/primary/0379-r5-nonlexical-scan1-current.log": "65f0786ae0880c5ca3bc6be9116be7c0e93107d0cedbf5f1401e1d90945a7df7", + "benchmarks/results-20261015/btree-prefix/primary/0379-r5-nonlexical-scan1-current.stat": "e50cce02faf9c73798abf9e05435d994e1a1adfa8b1987a532e0de615e8e500a", + "benchmarks/results-20261015/btree-prefix/primary/0380-r5-nonlexical-scan1-main.log": "de7d83f2a0f2539bdf877d9e675a0fe0f1ff7ec96b05cc36b3c10a322a636b53", + "benchmarks/results-20261015/btree-prefix/primary/0380-r5-nonlexical-scan1-main.stat": "3dbcd26c0088f95dcf7ba524abe88cec4e8c63182074081f2928872b13341158", + "benchmarks/results-20261015/btree-prefix/primary/0381-r5-nonlexical-scan10000-current.log": "6d9b92605bae0e7610db56386426b689b0c39c65fc75f680f44eb9c2120c4220", + "benchmarks/results-20261015/btree-prefix/primary/0381-r5-nonlexical-scan10000-current.stat": "7f2c67c5f4893ee33ed4af49b1761acd8a098f0965d4559f4b27a27e6681a619", + "benchmarks/results-20261015/btree-prefix/primary/0382-r5-nonlexical-scan10000-main.log": "9835d40f981926dc2339260489f0365f36cfd76bc63cba4a2a56d5b99507dee9", + "benchmarks/results-20261015/btree-prefix/primary/0382-r5-nonlexical-scan10000-main.stat": "f96682a285104a2d7aea078911061f5af2fd0a2ddccc002dc5812aeb90df2bb2", + "benchmarks/results-20261015/btree-prefix/primary/0383-r5-nonlexical-scanfull-current.log": "6f6f4feff89ae3768a7399c51093e906616a99ba0fb3b58e3dc904e8a8e02a7f", + "benchmarks/results-20261015/btree-prefix/primary/0383-r5-nonlexical-scanfull-current.stat": "b4afafe07b873d1843bee5e5135116063dc2760a6123fa4ceac9fe1d959c78e5", + "benchmarks/results-20261015/btree-prefix/primary/0384-r5-nonlexical-scanfull-main.log": "2195ebb10afd530f7a34c4d1d945466f03950775871b7002ab8ba974578ccae9", + "benchmarks/results-20261015/btree-prefix/primary/0384-r5-nonlexical-scanfull-main.stat": "dfe793868eff43be687eb78aa68cd9d064323e4959cb9d40dd2cad29c76d8e39", + "benchmarks/results-20261015/btree-prefix/primary/0385-r5-common-insert-random-current.log": "03334df98f10ab99bc366c3aac3e95d9a55f12f1730ca00b4a028bfd406106f2", + "benchmarks/results-20261015/btree-prefix/primary/0385-r5-common-insert-random-current.stat": "7d9ff64005feae5f58d55fb20e99d8dbf5a72e8919392723cf2ddb3c798281e3", + "benchmarks/results-20261015/btree-prefix/primary/0386-r5-common-insert-random-main.log": "cf148238b368938332ba8d4aafe619c0248cc3e25597def6c81d3adc86490669", + "benchmarks/results-20261015/btree-prefix/primary/0386-r5-common-insert-random-main.stat": "519319936adf6d940c590e500b7e50fa702dc253132c73cbd454341dbdc6737d", + "benchmarks/results-20261015/btree-prefix/primary/0387-r5-common-insert-sorted-current.log": "1d116d6bc2617128aa134893f6896cc8ee282e5889b7ee768d6d7073b5302843", + "benchmarks/results-20261015/btree-prefix/primary/0387-r5-common-insert-sorted-current.stat": "20502766fef1cbd62d7c021349c11204760219ac08cfa3555822a36ac55863a8", + "benchmarks/results-20261015/btree-prefix/primary/0388-r5-common-insert-sorted-main.log": "f2f4cf1fe30b76831d1bb00bf561dd0b22e47bbde38ee4b040f300533a475143", + "benchmarks/results-20261015/btree-prefix/primary/0388-r5-common-insert-sorted-main.stat": "4c2031cc4dec76213a43606a2ea53af893f9fbffb9f50ebb58f5d9896a0a4482", + "benchmarks/results-20261015/btree-prefix/primary/0389-r5-common-overwrite-current.log": "9974ee135f3f50c49b342aeeedd01f7853fee334ee2b33156771b9db365c374d", + "benchmarks/results-20261015/btree-prefix/primary/0389-r5-common-overwrite-current.stat": "f1dc1d27e13c58a3127d0fbecf6e3dff71a7aa33cbe701c283a17135e66c2d6a", + "benchmarks/results-20261015/btree-prefix/primary/0390-r5-common-overwrite-main.log": "3596a2df7452e38aca3ef5446906cad0d6822194e900a60360c3da7635483604", + "benchmarks/results-20261015/btree-prefix/primary/0390-r5-common-overwrite-main.stat": "718190b7193c096eccf5682865666c092c909571661312f3cbc01ad63e0c4a41", + "benchmarks/results-20261015/btree-prefix/primary/0391-r5-common-pack-on.log": "517c473708ca50b31f69ff87649fc4853cb683893ebbd0792987c57258fe7c1c", + "benchmarks/results-20261015/btree-prefix/primary/0391-r5-common-pack-on.stat": "9c9e204b2bed333d21990644d3a0173f247a1ae1a363a66af08f2a0d76a82d23", + "benchmarks/results-20261015/btree-prefix/primary/0392-r5-common-pack-off.log": "29aadb037259d81de3e78ef99b49c3709fa97a12cd282adc2d0529c4a55480dd", + "benchmarks/results-20261015/btree-prefix/primary/0392-r5-common-pack-off.stat": "a77af634a125fbb095732e141dd22ec8bff3f160d64b70fcb5286ef97301b229", + "benchmarks/results-20261015/btree-prefix/primary/0393-r5-common-pack-main.log": "81c7da09957ca2d6edec6c8a146f44f1f743bf9de9193493418306e08167f3d2", + "benchmarks/results-20261015/btree-prefix/primary/0393-r5-common-pack-main.stat": "18b32f22b9d3700ea8a36c719727b4bfbce99a6e6b21c8150ebcbb3caa5a471b", + "benchmarks/results-20261015/btree-prefix/primary/0394-r5-common-hit-on.log": "c5056d44f643b2659cb251bf9e1dd080e0c79eda82aa79d49d4f4e6795119751", + "benchmarks/results-20261015/btree-prefix/primary/0394-r5-common-hit-on.stat": "1a4cc38f92fdf127c6c7c0bb7145f9e0d704bfc66b1a68138593383cbecbdea7", + "benchmarks/results-20261015/btree-prefix/primary/0395-r5-common-hit-off.log": "a490f33b3aca6a88a1afa6f7eb84f1bb019bde79c82bd738c17534a7586324f7", + "benchmarks/results-20261015/btree-prefix/primary/0395-r5-common-hit-off.stat": "86db4df27ef521b98e0417c8d18c4115bec9eb8541c6592036951680e960fec2", + "benchmarks/results-20261015/btree-prefix/primary/0396-r5-common-hit-main.log": "8e7950a636ea532fbb0ab965814ee97d4546349b90ca7f7abfe54c5a2118319e", + "benchmarks/results-20261015/btree-prefix/primary/0396-r5-common-hit-main.stat": "8251da95041416332e961d8667bf2590c1c9979dc5f5ad8147aaa2dc5b17db66", + "benchmarks/results-20261015/btree-prefix/primary/build.json": "ee8996799e96284e5343a942b83c8f29433109b34d62dd31d7cb115a4e0353dd", + "benchmarks/results-20261015/btree-prefix/primary/manifest.json": "cdd1b109ca2624245fcf07821ed3eb1cc2e078e6c5dc06e238599808f51b0b4b", + "benchmarks/results-20261015/btree-prefix/primary/plan.json": "b91771185453f04cb5b75feb35c1d5fa27f4481120d0ecc71da85c5a5f64249d", + "benchmarks/results-20261015/btree-prefix/primary/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/primary/summary.json": "40aa0a7a973c563892494a1886bb398be301588d85632bf90de544ee0b5f8dfd", + "benchmarks/results-20261015/btree-prefix/proposals/README.md": "42b0aa044d1757c6bb49053b9bc39b25a396f1d5623b836f0f3fe6d5636c07f4", + "benchmarks/results-20261015/btree-prefix/proposals/lazy-pivot-buffer.patch": "b906fe918268f1cdaad4fecaae44d61ff243818917460c40b449c6830b77b921", + "benchmarks/results-20261015/btree-prefix/proposals/manifest.json": "5e69e55ba93a7499f7bd7994292f4cd8228fd05dc4a79d581b8b4a1b39608cb4", + "benchmarks/results-20261015/btree-prefix/proposals/prefix-before-scratch.patch": "cac8513cd318b63ff167dee1dbaf5ce0aea92e4d2a10203656628d0c640154ff", + "benchmarks/results-20261015/btree-prefix/proposals/rare-blob-scratch.patch": "bc69deab462c9202f486a2e75a4f7dcb2c55ff7c8ca122dc37f41182ce9a389d", + "benchmarks/results-20261015/btree-prefix/render_switch.py": "74e4b90c13033457b812e33bb32d8172e4c35a6794746afb352a6fe32d951744", + "benchmarks/results-20261015/btree-prefix/render_tables.py": "d4f2b2510947217b324933d57b0ad979469363f85c5d869ae9095fd03b7c29b0", + "benchmarks/results-20261015/btree-prefix/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0001-r0-common-insert-random-main.log": "f94bf6abbaa0aaf608db0f4216f82222e4558d24e400be4aac97e7eef156c4db", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0002-r0-common-insert-random-current.log": "298ebe74e2decbc904a90fd9e34e9bff53f065e3968f05268ef93ecc1c45812b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0003-r0-common-insert-sorted-main.log": "6047be72cf9d3d2ea2f49a46b1b565d707356485e38782794f11a0ae14e1ffbf", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0004-r0-common-insert-sorted-current.log": "90a5828ddcbac9960a0ddced1337588a15ec840429ab434986ca312e23da63b0", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0005-r0-common-overwrite-main.log": "7e6f4d511a7c29c244c540e78a881574209c5838d899c56e5f93fb71031487cc", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0006-r0-common-overwrite-current.log": "63808894dcd9da52cc8f559792bb54f7155a29a1e49eafbc44b55c85230c19dc", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0007-r0-common-pack-main.log": "ef3df88ee5dbe7336df8e4f85b6a9c267d003a42f190e175dcfb560cad7c8940", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0008-r0-common-pack-off.log": "bda1afc8842a549893d6fb8bcdbba9d1bfb8a60e39376765d93f54536a3f5170", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0009-r0-common-pack-on.log": "b9dfd57daf6656ff93a18cd5137919e2083770f8c840e3bc2cececd4d7529507", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0010-r0-common-hit-main.log": "f31615e55b842f6ec9f806b19bde3ba8790c846679581270b6a90f013cc1f120", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0011-r0-common-hit-off.log": "ca6f724e0d792ade8bd26874cea9f37d3c406c2f561438bc63470f25eff48176", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0012-r0-common-hit-on.log": "28cc7457af392b83a6207f6aa201d9ba298c4df232176f026ebc2a2793bab846", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0013-r0-common-miss-main.log": "411cd84799f4cee0db92bf7cc7b93c8837871b0c516c455a685620df005a5b75", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0014-r0-common-miss-off.log": "c3ccf1fb6cc0f873584a7b15d92cb8a24c418ab72ec2a65dcd34d2b974eb6056", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0015-r0-common-miss-on.log": "38c938993748206ad6e2d759e46b1b38e36577662e06615a1602a77cfcfce017", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0016-r0-common-scan1-main.log": "db220a3a50c81a506b003917cf98ead27f4feb23065e256160e184ad808ec8cc", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0017-r0-common-scan1-off.log": "feecb32cca4b84c57cf9e56b71351b094fcb860b03879e832cbe350fc1867670", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0018-r0-common-scan1-on.log": "a9c170506c749cd3d3bac8eb1656743e4e0af824d5dafe71a21a7f68994255e2", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0019-r0-common-scan10000-main.log": "0bb0c01d8447cab2da9d1910873801ef28bee9b99975e68795f3d994c24cf536", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0020-r0-common-scan10000-off.log": "e2b739dbb1d06418e2fdbff272334d48c145ea0a9d25d763bc66b5ac9f122eb7", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0021-r0-common-scan10000-on.log": "c71dbda4eb7c4d09a0cdf8a119bd05fc51c37155b1467efaffae8135ab4d75a4", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0022-r0-common-scanfull-main.log": "76d0eddda16da7bd667e6d7ff37f7bcbb014fd40dbfc81e0a65aed88b776f829", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0023-r0-common-scanfull-off.log": "3bddf106e3547878dc5377d2f117457db4f462108a842f9cc9f577d0cfefde81", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0024-r0-common-scanfull-on.log": "75810d69057b19704b8b34c8fd8b68473613057b144b4ef8c9897ad53866d7d6", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0025-r0-random-insert-random-main.log": "17a70e80cb2e6ba24142ecef7df2129258e281fc58b0dafd1b146a189c3b2e55", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0026-r0-random-insert-random-current.log": "882a6bc5e2dc633b8ef31bfcd1fa997e7fe8f39f87fc4e6163f72d1b3a3c856b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0027-r0-random-insert-sorted-main.log": "ff59a5180d9f6cbf2169457123eb1f5741e482bfb8f4808e08968eb43af09425", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0028-r0-random-insert-sorted-current.log": "a982ead9a5e2c115a21fd377b5e4a1b7d44f7ba8738d1f9e0c4faec8f223558b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0029-r0-random-overwrite-main.log": "878abb1ac4d294354abfaaaf27af531a4862ee7ce8474e2d1eff8291933a8010", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0030-r0-random-overwrite-current.log": "c4b9196e7f5dbe7fedab3e9787a0fe9564dba5b9f3e76e6459cd96ecfd15cc60", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0031-r0-random-pack-main.log": "5b0a138b1416fedbf9eceebf81ca222041b527a70ede38bb76a6c06241a2b1b8", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0032-r0-random-pack-off.log": "c257749c8b40d36351c39202144fd12104acd5d7482af4a72bee396502095a0b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0033-r0-random-pack-on.log": "9d57dda23e539a2e1a92d3a0f5b09dd1cbebfae3c9b5e2de2b11f4499482fff1", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0034-r0-random-hit-main.log": "a7589ac41e782e62d5c016657b7b5bcfac645db1fceeb5fddab09b5749cff4be", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0035-r0-random-hit-off.log": "eda41508e92de9d1922dfb50a8f81cb77e7578b8a24b8abcc826784cd6ff1257", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0036-r0-random-hit-on.log": "cf04ad9f32685b86ffb883e13bac1f287a44a5e4e30954e2563b75bc2fe2c05c", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0037-r0-random-miss-main.log": "68d94c36f98f72c3736558d77ba714f98f2e458041d1c3eb3650a0992a2fbcfd", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0038-r0-random-miss-off.log": "92d44c5b568971d1e5baab8b6ffceed48677612acfc657b5caa6c402df591c8e", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0039-r0-random-miss-on.log": "ea96f532cf1046e328d9204d5f0763782260ecb29eae825d8b5d64046d9fbb94", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0040-r0-random-scan1-main.log": "daa21129d6694fea31aced6b196b06d8aba4d1e1c0720a2c2340529bb11747ac", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0041-r0-random-scan1-off.log": "25f72852aa27b9f0eaacd97ccabd93d3e5af3a23e19888b52ce463663e4722e3", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0042-r0-random-scan1-on.log": "ab02df9f8f6d9623eb542fe18eb8de286a8926a493a9c0f6028185e38e7c8f3d", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0043-r0-random-scan10000-main.log": "682764fde3dbd234e82a4c2badf898f647df7f4c2d8e78fbd7c0cfadba6c7ebe", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0044-r0-random-scan10000-off.log": "81484405fe5015cff8cba41fba11bddc4233e8d1faaf861435c0d38666cac8aa", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0045-r0-random-scan10000-on.log": "5057b2995158766123793561ca1109f28183973603fc5fe7853ecc72eb366e51", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0046-r0-random-scanfull-main.log": "374758fe0e2da25795ccc323758406cbf0994c58562e0279cababd0eb4208df9", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0047-r0-random-scanfull-off.log": "1f7fb621a80146c582f29508eca074184b9afcdf038f327fae25d8142ad8b37f", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0048-r0-random-scanfull-on.log": "9a7f59f5a9e6e2836c39a8bfddb64c11261bd1525e42bb0ec74c2b0933c6da8f", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0049-r0-nonlexical-insert-random-main.log": "b1b3b8cbbdaf9630e6dd71c77a1f0cd8137964c0c320068221c22a2ce3d1af3e", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0050-r0-nonlexical-insert-random-current.log": "4294998c7b2ab5ae0d4674496c38fd369f194c34f2d0a353bd1a023e2cdf048a", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0051-r0-nonlexical-insert-sorted-main.log": "40c327e8a4031bca410b14114cfcf94f86b730b87730c457e268bd6e2f908a83", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0052-r0-nonlexical-insert-sorted-current.log": "3dcd3b114272ed27b4603518d1cff5f29e0cfb6cfb2ecc407ff254fbb69c76c7", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0053-r0-nonlexical-overwrite-main.log": "6d294bc8a8a21f3042c97c1ae4e8f473ccd4685ccdde4f96b5c1d7cc4257a7c0", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0054-r0-nonlexical-overwrite-current.log": "a03075f167d314fd850138e4c10a97b09f663994ef3f973c6373308c9f1fca1c", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0055-r0-nonlexical-pack-main.log": "97ae1e68de6475efa4cf1dbe90ed4f1989533b0da72e191bad7197cc5333b35b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0056-r0-nonlexical-pack-current.log": "f68d609baa46014c7eb9ac6e3b4940e217b9b3fdfc37cf5300b19d0a071cdcac", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0057-r0-nonlexical-hit-main.log": "145dab04d07264647ac0679c0f5a0518dba6d83c3e72a22c9564ebe2a9d7d7af", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0058-r0-nonlexical-hit-current.log": "a2609f173033ea9fb77c0ce4aa78d1c54b9fc0b1238cd0108ed3d9de92f00f7a", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0059-r0-nonlexical-miss-main.log": "d487d8120889f615292ce6450a8b0419c7ef75fc0bc433a7f1e6e6f288537f75", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0060-r0-nonlexical-miss-current.log": "357c9e3f08da260f200ecb3b9f2d00007900f9a12168d796628db0f552dfe59b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0061-r0-nonlexical-scan1-main.log": "8809e2e21b6d47a8c036e9e086478083de3aba1f762fa18de673b6506b31936c", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0062-r0-nonlexical-scan1-current.log": "0c08f9183ad132de360a8f6676ea28509211c9eb83d5e289c27c94d0fc2f51fe", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0063-r0-nonlexical-scan10000-main.log": "8837400446434bf9c33626956c8101ac77bab54cf2084262f8e3b003b09e160b", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0064-r0-nonlexical-scan10000-current.log": "2a12ff27e61ee48c7f2cce238aec54bc58f8c4d41f60c71dd65eac5f8b613275", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0065-r0-nonlexical-scanfull-main.log": "da9d88efc2899d2a231f842c51e83c525339aa2602d7e3d62ec79a9121dd5578", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0066-r0-nonlexical-scanfull-current.log": "f890251f42a718f5dab290a1e16e8dff98fdfd7f6c6c3cdec600a33c2ecc0b7d", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/0067-r0-common-insert-on-on.log": "5cf2a2c8777f7d45a76fffe504cc7f2551464af77b2a74cf9c7a7acb0ea05692", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/build.json": "40fb32ee7423ea6de8ac24bc6209bac3ff78642575fabdc62da4085162e5c737", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/manifest.json": "5a3b54bc387bdee44724849d6557388776693aeb06566140685ec7dc8f08e910", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/plan.json": "3433e161f17f4724dbcb21c986f16e5b8c2491234aabb532918c32b131189a1e", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/smoke-no-perf/summary.json": "219ca3cc5d5eb07b5942523c14317917cacdfada44f949f90bb2cab288a631aa", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0001-r0-common-insert-random-main.log": "dd8c234a4b847507b42682b4879bdedcaab797c3c7764bc29173f0e3d7f64694", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0001-r0-common-insert-random-main.stat": "f25142f93e65844d8390358ed2ca6764aa7f4ab1eb342093da83d30603bc23a5", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0002-r0-common-insert-random-current.log": "834f822aaf1a153b3633e8ace3a58cc66401a1d6d64a4844f942cf124b3c61b7", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0002-r0-common-insert-random-current.stat": "aba286bc4b4fbb5c9b193ed3fc4ea2224f4f34db033a192fc11b97d596c5ef5a", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0003-r0-common-insert-sorted-main.log": "450962c0d1fb548aedadd0c2e3af4638e89e3f201c003e2968b964ce748e1376", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0003-r0-common-insert-sorted-main.stat": "cd3965e0b2a357736f78e7cefd837c06a6595263fcb448210fe4312ccbd0211c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0004-r0-common-insert-sorted-current.log": "352474fd4c78a516ae637f8974be8b613d2cd4ba45b82a1e2f7e189f803116af", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0004-r0-common-insert-sorted-current.stat": "594a9b91734ee148e451c9d4aaa2564c653930b9e07a6f26a8d1138a2eed84d3", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0005-r0-common-overwrite-main.log": "b4fa7bb36399a58c5fcb406c5db4d95debd2fa44834c53e24330dedaaa7c4c90", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0005-r0-common-overwrite-main.stat": "8a3e8c94bbd04b0d2602eaf00f24a4e1d9fd6ebd268bc82e7235749e03343798", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0006-r0-common-overwrite-current.log": "aa5cee9e2c645d30ecc4f029378cec550849a25f6e532d1564ba5d97c4d1d3fe", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0006-r0-common-overwrite-current.stat": "5d2a9b0d4e3b1619c85af1b09cab49b9fc07809c6b6ec682ec131a75a2125e12", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0007-r0-common-pack-main.log": "2e94bff88527055202236388dee3cc3e275d23685cec5d1a3af491fcb02caca8", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0007-r0-common-pack-main.stat": "a04c9900b6fed33f564568ff1b23db7ff0a17183ec8040bb1cd2eaaf76df900e", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0008-r0-common-pack-off.log": "fbace3d86760558e039f7a3152fd8acfbc5b2729f7e47c8213c35d468bb374d3", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0008-r0-common-pack-off.stat": "0eaa871beaf28b493925d382d439001185f9bd594cbfcd8db7c15bda5641b909", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0009-r0-common-pack-on.log": "ae70e4ff7aff5d95170f742b4a39ba420880cb7c220c6c76112cf326456ecf79", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0009-r0-common-pack-on.stat": "6c2f36edf6ad26f4f036ec8b07e551b80dceda88c3e389c10aea7572283b8ed6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0010-r0-common-hit-main.log": "e34cb82b08b7ae9906c33a04d303c8886893965e85660e67fc5c3dd52e48b847", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0010-r0-common-hit-main.stat": "f559fbea5f8c3e78de0c3ba45ba8341c33e299ae0e6eaa34f8ff3e1b435987e6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0011-r0-common-hit-off.log": "8453380fb0bc8d1d29d6d35a2b795da8b16547bbeaf601cac63b6b05df080245", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0011-r0-common-hit-off.stat": "73be70e4cb9efaf9fc622d1712b3e6aaacc4d345b1fc85d2374783d00bc10f97", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0012-r0-common-hit-on.log": "9479d280a4abfb520c55ecc2ae8d9d08acbcbc01262cf7cc7bc1e6f178e984c0", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0012-r0-common-hit-on.stat": "2df38d3947c12eb8a5c794700a2b00bbcaab5d91633615138672b04ae9ba84eb", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0013-r0-common-miss-main.log": "1b2b156db2abcdf472810a02785ecc91028df394e49a1bb19517bdd15cea9432", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0013-r0-common-miss-main.stat": "862faca137b0fffc6e3c832fb0b7f4963e9a258bb39b0d5bd3277d803e0060bb", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0014-r0-common-miss-off.log": "cfba5fec9fa81115baa375853e35cb1c79387f979e1caa08b8085922a001ce43", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0014-r0-common-miss-off.stat": "385961f70a3d3b741fbbcf4c56aa9b4a048b1f00fc13ba5622112ba1f596e3c9", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0015-r0-common-miss-on.log": "ecc7597e6a1cb2a84e146ec5ccdbd42396bc6eac3b324a8b727416361faf4634", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0015-r0-common-miss-on.stat": "ee92d549b44d6c6c4dc1865420acb82374af2771257d427fd4e6d04dc87b31b0", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0016-r0-common-scan1-main.log": "964ca42ed2ab1facba1ecf937bfc258a61aad71a082479f583f89ee8b2a4c441", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0016-r0-common-scan1-main.stat": "99f546e0981a8ecbe54cacfff5982d559962919d16321ab061587d9f25dd68c1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0017-r0-common-scan1-off.log": "b78ccdb3c147b0d5b88d8e720e07226cdb932b1736a5c63d65f9c7e6c509b081", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0017-r0-common-scan1-off.stat": "c2c52f37b6f676abf8c579d505c76a8e7a515d16eb14bd77adaea6a2e633b79a", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0018-r0-common-scan1-on.log": "e0aae317ccfb2e6ddfad0db373afb20858cf93c4834ce50565d049601f318bb6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0018-r0-common-scan1-on.stat": "4cb82d48660bd499827b9cf0fe289074bf04a9630975883784ded677a63c7520", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0019-r0-common-scan10000-main.log": "9b81260354df71cb05537041c38afdee8ea65f4806274aa67ec7507b05e1a381", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0019-r0-common-scan10000-main.stat": "b4ac1baefabaa5be8f8d3d8091493ea5c2df0d0e11d952d804c102d5582c09fc", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0020-r0-common-scan10000-off.log": "7cb207a163580b541680c47baf96eca84fa736f6458a1c2f5fd1c3fb76850c4d", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0020-r0-common-scan10000-off.stat": "79a3ae3daed99ce91a93dcd200e47ea15b2b957593d1eb434cc68dd5418d604f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0021-r0-common-scan10000-on.log": "52a07beb18c180ee28a2ac0199d1323a57931d206cb5fc82f4b4cbf205c73090", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0021-r0-common-scan10000-on.stat": "819479d2f21e1f37192969cf1482bd9bc791af318339af9f49d9e9a0685dacfb", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0022-r0-common-scanfull-main.log": "727fc6b19e3942338d97d4fec203d5688d73800c7f28aca88b661829e82f9eb2", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0022-r0-common-scanfull-main.stat": "49808926db9e247d2a7e68e528c76af1a6e9a3a2748498965502cc0d41c2e907", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0023-r0-common-scanfull-off.log": "32e475f76a074e4a293fd182207e8d8c5479ae162fcd36cebb2a27f5cd8db72c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0023-r0-common-scanfull-off.stat": "324d7af0ee9a2f0a470f287f43de29dcc8dae06e239b9cf9802d530b6010bf1b", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0024-r0-common-scanfull-on.log": "5080a761cc31b9ba0577f1a47180362beaf1d1965d10366dfed51903c1f7b58b", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0024-r0-common-scanfull-on.stat": "04df31d3a5e274e548b20cf47fa63880f23bc48d7a06310cd2b3d258e27439c2", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0025-r0-random-insert-random-main.log": "b276306bb4af6748688f1f203066ae595ff4be0637d28df8dbe7b2684966429a", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0025-r0-random-insert-random-main.stat": "89190c583f21dd664c5ab62cdccdbfcb79e470ab0ad1dd56a881ffcacadbd868", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0026-r0-random-insert-random-current.log": "4f9abd801c0403222abf575f780cbc9b2ee360876961fcea8cee764e68d48e84", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0026-r0-random-insert-random-current.stat": "3a903baeafb50bb57d0c7056d5acb59e9aaaea81df27fd1ceca12abff785c5e3", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0027-r0-random-insert-sorted-main.log": "dbff1d8b5f8deeeb7e8996bd8305b1c3b5bc45330d0018cadabb2444b2dfa5e2", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0027-r0-random-insert-sorted-main.stat": "4246493ef0534d195ad9e8dbe8bf8e076ea08686429605e41265925a1a06b66a", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0028-r0-random-insert-sorted-current.log": "33dd3f1708384a91ac43258d4e0ef2c09a0214a1eebf7996bff2556e769a23f8", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0028-r0-random-insert-sorted-current.stat": "e27ef50d7763969cc6d8229f944b9fc6ae585703ccaba7cace62a64ce671619c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0029-r0-random-overwrite-main.log": "484c7a04aff0f05cba4d5440abcd5adeffbb535ffaf8ae179f95ff9023f6d034", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0029-r0-random-overwrite-main.stat": "a9f2da6e5721bcd842790225c53b7010c06288a33bf1444227463612ba6335ff", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0030-r0-random-overwrite-current.log": "0f55529921b8666f880740f5390c2928edc5253672ce347c44c78a212ac6e043", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0030-r0-random-overwrite-current.stat": "11371bca3ebbce5063eb06ad94de18892852d00b73ec6efe235b1b777cc9f114", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0031-r0-random-pack-main.log": "df1ada87bb006674c2881f7633d247a38bc1deb515cf514fd1d848a60c92f1d0", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0031-r0-random-pack-main.stat": "25223b63c41e81abecfab6817be03b4190b612605cfce3012292defa7db00f7d", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0032-r0-random-pack-off.log": "cfeaa1b2d921f5b1d611daa27b7c8c9d29daaed56795aacb2fc6af2f8138a869", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0032-r0-random-pack-off.stat": "2fe57383e405d77311f9d9c482750cafa00c311b482ab45d5745502e0bf8cc7e", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0033-r0-random-pack-on.log": "2091cdd25a3068590f6ea848911becc5f20fbad77f3c9645e8855e054098b510", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0033-r0-random-pack-on.stat": "a105c561107f6c2fbbbfc6baf672020b39b01f20fa94413a30b37a968bac0dad", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0034-r0-random-hit-main.log": "73be139a12b70d4965c384c57f9eadcf7eeb1219b9ff5172f8b844d406687075", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0034-r0-random-hit-main.stat": "611d8ad22d2015c3082706407afccea1669d5171272a6eee003946bf3998143f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0035-r0-random-hit-off.log": "2c4aeb56e2480443ab01d016366bc49a8b649ccf337c6bb40b1be4dee2a411ba", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0035-r0-random-hit-off.stat": "165bab11f535525295b42f27fce3d533cd9fb9c00d4ff2c9212b33ac5283ca1c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0036-r0-random-hit-on.log": "4fde9b1658031f4930060de7a693a9e9b280927f91ad231c686d6b829c052b7e", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0036-r0-random-hit-on.stat": "26f1cda47980d225f4c10edc31093ca87c75d0a6f3ea856993611cb31ca1e662", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0037-r0-random-miss-main.log": "da867875f01342e88efd7d5becca2539462d93f440ee43aa8c09a0bc3c96a33f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0037-r0-random-miss-main.stat": "043ba13d2c17a1de8519a452bd612f585fecb67b75b27a6ace60aa43dc1ffff7", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0038-r0-random-miss-off.log": "55be3669988307b25d6d5faa0d25c999011e051867b02b37f36bb1015b6bab66", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0038-r0-random-miss-off.stat": "354930463d123ba4f04a793f47ad4d87d2fd19fb41fcd1a99d0bfee92c475435", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0039-r0-random-miss-on.log": "0a7900d2700242f1368d886bae69596eb8de6ac467c5451f14314b19acf04a29", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0039-r0-random-miss-on.stat": "f303f5a950c5bef54528e83953afbbad279ded4b53394ac8aee47ab5859471d6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0040-r0-random-scan1-main.log": "d743ccb82f7ebfbb746807fc3ec0c3ed1d90ae8453de9d6591ab0baabd8f6eca", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0040-r0-random-scan1-main.stat": "93f5ce2cb3a34c4da463d03701afcdf46d782c7be20f79f2439591e66ad0af4a", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0041-r0-random-scan1-off.log": "aca0c71fa819744337689a6e8c06f0e335c19c4a321240b2aa4b5e20fcf09c7f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0041-r0-random-scan1-off.stat": "b12f986e343a4a4aac1d365c6e2ce54b63c4f6c50ee2c2154a98b64185023b28", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0042-r0-random-scan1-on.log": "b2884a73b56b2f524050ca946dc611a1633d3bc71e06042c890fe90271ab3ee2", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0042-r0-random-scan1-on.stat": "691364f63f737821e09da40a49ccbe49fd2395bcea49644e2c9bfc7a0dac649b", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0043-r0-random-scan10000-main.log": "4a33b1db301feb4cc32c9904d435f7e24bb9649887376b59ef59d13d544088e4", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0043-r0-random-scan10000-main.stat": "9483773176cc88ed02b35670c531b9b2335042600e87f23d99ffbbb6a0a94c4f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0044-r0-random-scan10000-off.log": "51fdb7c6ce6d33ebe6252a5a09709ff8bb340f57348d7b6f6d429e642f7c2dbe", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0044-r0-random-scan10000-off.stat": "fa7b5730d5e6e298ebe659553d793bc0bad79eee67095722f5bfa806933bff05", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0045-r0-random-scan10000-on.log": "16dd53345968c30c90ae0914f3cfe12a1dda73890b705db131bce44c34174c5d", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0045-r0-random-scan10000-on.stat": "26255dc261536fbf23657fe57d9b4731840d2fa0cbbbc77f172d00cc7b9e6cb2", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0046-r0-random-scanfull-main.log": "5618f96fcc6e1a44d089fc4802aeaa5eb001fc7d4c4ca71dee4188f494570cf7", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0046-r0-random-scanfull-main.stat": "e6e38a8f5b0097daf58c84790181c4a44887469ca72992c7bda1a89ae6635376", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0047-r0-random-scanfull-off.log": "4d29286c41dfe74c6fffa1a1aa51b11692e020785d9422f080d99cc9566bbef1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0047-r0-random-scanfull-off.stat": "1c9b64de941e7f546f9dc2fd7d5c70cdada3a22d2fb1740f75ac94e73cbe13c6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0048-r0-random-scanfull-on.log": "df788b8db9ed3455d794b9608e030e249d36d3b04021cc3af1aefec9df250d73", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0048-r0-random-scanfull-on.stat": "75ea56ff6168d53a035ed11668198064d9d6fad2dbbb4d42ac3059e361e21613", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0049-r0-nonlexical-insert-random-main.log": "ae02d0606ca28ee776b7c75a8dbb1ff27870cd407799a5cc14bd0629210843f1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0049-r0-nonlexical-insert-random-main.stat": "5cb3b88fcc282229e6ed69fa3d3d03e14a92d4b76781bd18acc7997731b615b6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0050-r0-nonlexical-insert-random-current.log": "98ff37b6d30a1c4f36087f719d7a5d4f8e66ef7233266078b538055db8e28984", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0050-r0-nonlexical-insert-random-current.stat": "59233cc00e95df363f4c6930ad56c4d6e60c8cf97c4faadb3d2e166ee46f6241", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0051-r0-nonlexical-insert-sorted-main.log": "e5badfc32949cc260fb496ffe2c598623e12efe648470717d2fe8719cd5da22c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0051-r0-nonlexical-insert-sorted-main.stat": "9c5774d44bb1704775eec59c987b6918906edc83850a8dba80284ec2c693b9c1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0052-r0-nonlexical-insert-sorted-current.log": "a92cce42461f6087e092ea714615f558f7822eaed1f5f405cf309202cf92e0cb", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0052-r0-nonlexical-insert-sorted-current.stat": "83e945f0c3d7dcb3d5d8734ff800a90d1a6715915b77e1fcd5f49be9cbb4d1cb", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0053-r0-nonlexical-overwrite-main.log": "ebbdc0cc81938352541b162b59d7106da90279a1b62ecfed986fc81b9e2755b6", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0053-r0-nonlexical-overwrite-main.stat": "d0c53782ab60376116c468d79c8fe05bb4672b1cb8db15f8c713516ea98ed610", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0054-r0-nonlexical-overwrite-current.log": "184985a279bbd1f88c90b6f6cc8063145c5c4d681dbf45b03cba3235e4e03e00", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0054-r0-nonlexical-overwrite-current.stat": "4a54e32bb4ba4926f56ec318bc648764e82e1126891b563e9d100a49d27725c4", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0055-r0-nonlexical-pack-main.log": "2daddf6e367b8a1c05a0811156d046ff729ffe3d523d106b3cc37c561de29ae4", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0055-r0-nonlexical-pack-main.stat": "4dd592dc82a71dbd3fbcc7f4f3d8c49652c9a3cc3470cc9b1f41138df2afc8d5", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0056-r0-nonlexical-pack-current.log": "a2bcb782ac5b654ccda08206972d51609387d9e2194763975eb4f2e1c6dc47d3", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0056-r0-nonlexical-pack-current.stat": "a4d1be2f2450dff88736380ce75c722afc480633d56ed35272b96fe430f881f4", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0057-r0-nonlexical-hit-main.log": "631154579bebbdf1c60186370dae4c472a4e0f86563d7daf1eefd3702ba21711", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0057-r0-nonlexical-hit-main.stat": "bd4d3343c38517e34f6536aeaf5eee7bf35eca430843d603c5d59db8ff016be1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0058-r0-nonlexical-hit-current.log": "69a834de9a207264ed92daa9b715944672f6ab3261b63c47824883e3661e077d", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0058-r0-nonlexical-hit-current.stat": "d4057d089a2929de50a6236995bd0a8b2171bb2ed3fe3a9aa70da3e2dc88dba7", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0059-r0-nonlexical-miss-main.log": "7a20bcf4d178929e525c65348c03cc3b02104e6754ce521f3e3e68440780d397", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0059-r0-nonlexical-miss-main.stat": "3faeee0266871c37a7514f071a637ab0ee5efe6658128fcec62dcc3e2085bd3f", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0060-r0-nonlexical-miss-current.log": "0329ab1e921cfad4fe756d4bd0d7ae0e2a4d6ec7afdb1d3feb420fa037907792", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0060-r0-nonlexical-miss-current.stat": "a3ee161bdd9a52a75adbf07247541107ee2248efe7edd5b6e8cca8eadd949136", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0061-r0-nonlexical-scan1-main.log": "5bc40fba47c6fcdb54bb78b50f942de68ed04bab12e7f3645b91c7631228cbf5", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0061-r0-nonlexical-scan1-main.stat": "5347e02d78135cf7dee19adc2e2773fc6b7ea8f0893928b7d1129df42db94d62", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0062-r0-nonlexical-scan1-current.log": "f3c0bb1cd97b48c1b01f71021cea3ce6b848da5a3433feddc2f3ffa7eeef0123", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0062-r0-nonlexical-scan1-current.stat": "a6e664bab2575502cdc593030948598ec4949759ae178edb39288cac4e1a6a4c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0063-r0-nonlexical-scan10000-main.log": "a093b88d35ed4010a97f6615bbb6d767a0532591fc910a99209db996b38cde84", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0063-r0-nonlexical-scan10000-main.stat": "cec03d40e9169ad0f7a91003d5f5ed4a6ec1f4950e28dd0cc97d77b73079e3a9", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0064-r0-nonlexical-scan10000-current.log": "8813519e1f0492fdd5f0ab8b2e78e0eff1b9cc8639396d7a5e5152f40d3f6fcd", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0064-r0-nonlexical-scan10000-current.stat": "a2ff751dcf9c95b0234bebf018879c7b084afa5782c0f16a56b61513bc3ffdd4", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0065-r0-nonlexical-scanfull-main.log": "bb010f476c286c4621f0e4148555d210d49f271cb280661e212677c3ca374456", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0065-r0-nonlexical-scanfull-main.stat": "05711af3c21270c63c90304bbb8abf268bb8303abb5bd0c65f6c2060ecb4bc04", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0066-r0-nonlexical-scanfull-current.log": "78400f493277070dc3842915aaaa718379a9ef69bf6c5402a5c7bd401796c9ab", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0066-r0-nonlexical-scanfull-current.stat": "529e79a3757a63f0083d20acef733b17724f74e4812a64593944749f82619bed", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0067-r0-common-insert-on-on.log": "68b6d27e4cbe5211801b6d90e2383b65a687749ede2e8ff84afd510fe311f26c", + "benchmarks/results-20261015/btree-prefix/smoke-perf/0067-r0-common-insert-on-on.stat": "29e033cebdfb1b64c8d5b7d5cef01184280e8bd8d5d52bc6d5e8968b785c2208", + "benchmarks/results-20261015/btree-prefix/smoke-perf/build.json": "ee8996799e96284e5343a942b83c8f29433109b34d62dd31d7cb115a4e0353dd", + "benchmarks/results-20261015/btree-prefix/smoke-perf/manifest.json": "cba8682e7668ebc62e2229c7053c470466076daa2c1a29acc7a5dc68b8c88523", + "benchmarks/results-20261015/btree-prefix/smoke-perf/plan.json": "3433e161f17f4724dbcb21c986f16e5b8c2491234aabb532918c32b131189a1e", + "benchmarks/results-20261015/btree-prefix/smoke-perf/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/smoke-perf/summary.json": "672c115162d094314dd4453631003917b076e6baeaf15d40069232a0e3ee0ee9", + "benchmarks/results-20261015/btree-prefix/smoke-plan.json": "3433e161f17f4724dbcb21c986f16e5b8c2491234aabb532918c32b131189a1e", + "benchmarks/results-20261015/btree-prefix/smoke/0001-r0-common-insert-random-main.log": "ec29b79581628e7eeb0ae2e2be9e73406ea1395442a1d13a2999fd687bb58c9b", + "benchmarks/results-20261015/btree-prefix/smoke/0001-r0-common-insert-random-main.stat": "177f837237c6fff6217df266ac3a2294a2c8ef19ac0f9777a206c69a147647cc", + "benchmarks/results-20261015/btree-prefix/smoke/build.json": "40fb32ee7423ea6de8ac24bc6209bac3ff78642575fabdc62da4085162e5c737", + "benchmarks/results-20261015/btree-prefix/smoke/manifest.json": "578821a740eb160a2c2f581289c701a53b7af25a4f2369c69aebc6b8abd6781b", + "benchmarks/results-20261015/btree-prefix/smoke/plan.json": "3433e161f17f4724dbcb21c986f16e5b8c2491234aabb532918c32b131189a1e", + "benchmarks/results-20261015/btree-prefix/smoke/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/supplemental-plan.json": "aa35fa827ca07309c13bd0ac5e907eaa588c7466c4bbae4a8638dc689e949737", + "benchmarks/results-20261015/btree-prefix/supplemental/0001-r0-common-hit-callback.log": "3ee31aa0252e48eeeccac5e9bd2d24373debc4a73533894711e67c8c6844d9c0", + "benchmarks/results-20261015/btree-prefix/supplemental/0001-r0-common-hit-callback.stat": "8eb9c26c0797af66b178dac90f3ab8838f53eb83869595389bfcdba4ba88b90d", + "benchmarks/results-20261015/btree-prefix/supplemental/0002-r0-common-hit-on.log": "19dfd1e6bad85379387144925a4605480a2569dd4ef3df3bb511eefc57bd3a7f", + "benchmarks/results-20261015/btree-prefix/supplemental/0002-r0-common-hit-on.stat": "f64347c0e22efc9798923bd26fb3485a128fd73b272754c033a0dad668b2d285", + "benchmarks/results-20261015/btree-prefix/supplemental/0003-r0-common-miss-callback.log": "69696944601525aced0f57cb21d6c9539a4cc7172aa5255ac1aaf394ea06f477", + "benchmarks/results-20261015/btree-prefix/supplemental/0003-r0-common-miss-callback.stat": "1b4537003b338b2fc361e38933d00841fc650852747c3c8a7052930d0c4f4750", + "benchmarks/results-20261015/btree-prefix/supplemental/0004-r0-common-miss-on.log": "71259cf21dd659bde57146441798c5b1edcdc2ea88b73f7745a0a397954223d1", + "benchmarks/results-20261015/btree-prefix/supplemental/0004-r0-common-miss-on.stat": "28176a2a7e13ec6fe91f749776dcfd45fd39db9a3e8bf16f32aa044bc1052322", + "benchmarks/results-20261015/btree-prefix/supplemental/0005-r0-common-scan1-callback.log": "bfbb465b651c6024819595d74715efe4bad9c93c4224c1d51d49d9e8dd26df7b", + "benchmarks/results-20261015/btree-prefix/supplemental/0005-r0-common-scan1-callback.stat": "1c5ac97f26dc51625cf13c3866a81884c8ec1150883fb3c2d623fc01b0b212a3", + "benchmarks/results-20261015/btree-prefix/supplemental/0006-r0-common-scan1-on.log": "167ac70a7171e4226f5212e85ae67a027e82f307b66ed632ccf3078e9e35e760", + "benchmarks/results-20261015/btree-prefix/supplemental/0006-r0-common-scan1-on.stat": "b2e20da36f364d260669ad6dbeeeb88f28055c55159c2cb2ed88a8672fac0cda", + "benchmarks/results-20261015/btree-prefix/supplemental/0007-r0-common-scan10000-callback.log": "bd3814f9854e4389b60453b5bbfb7d206834b851995c782a2857b9782c1eac31", + "benchmarks/results-20261015/btree-prefix/supplemental/0007-r0-common-scan10000-callback.stat": "cb8a679cc499ed9d2bff0a962a882f8adb6e2c7767fac7b2721dffca97860dcd", + "benchmarks/results-20261015/btree-prefix/supplemental/0008-r0-common-scan10000-on.log": "dce7e1bbdb4b5e50eccaad0dcd32011c41ad49588610073c565d7c402475655c", + "benchmarks/results-20261015/btree-prefix/supplemental/0008-r0-common-scan10000-on.stat": "5ea3c5b1083a0af144e1f643c27e356f211603ce2efd907f359dee8fbcfbadd6", + "benchmarks/results-20261015/btree-prefix/supplemental/0009-r0-common-scanfull-callback.log": "03b8ec54f400d9cc5cbb7bc3ecb3a34d78d7ba8980789cc59639bbfad0bc3d74", + "benchmarks/results-20261015/btree-prefix/supplemental/0009-r0-common-scanfull-callback.stat": "1423e3921d242da8ad7a6836d33045f26b9ff882e42b8651bde89a8b0cdb0d9d", + "benchmarks/results-20261015/btree-prefix/supplemental/0010-r0-common-scanfull-on.log": "99c278a1cfb0936d29a62b9917a6890aba80788f7f7a8ed0352d55de1cd2895e", + "benchmarks/results-20261015/btree-prefix/supplemental/0010-r0-common-scanfull-on.stat": "c2ff5e04e15673fa45e4cd0fee868a1fe9b9fe3247ae166bd2c8640300b10cb8", + "benchmarks/results-20261015/btree-prefix/supplemental/0011-r0-random-hit-callback.log": "6aff850db090141f04cdbedbeaf93ff0716fec588dc88af8f4d8de4ae06ea2dd", + "benchmarks/results-20261015/btree-prefix/supplemental/0011-r0-random-hit-callback.stat": "c4e0b086736eaa76df01f0a9246fb0a92091c8c375413241b422674efcd02e57", + "benchmarks/results-20261015/btree-prefix/supplemental/0012-r0-random-hit-on.log": "faede7f79c7a35d61d7c64928cd09c35bb9e97e811b7cd0db71f84e2f86936ba", + "benchmarks/results-20261015/btree-prefix/supplemental/0012-r0-random-hit-on.stat": "7a21aa309fc28dea15a4ec116645bd89566279f54387f39c26d27b90f05a30ab", + "benchmarks/results-20261015/btree-prefix/supplemental/0013-r0-random-miss-callback.log": "a62b2a575c0cdd9f41559bee9399c18a3a51f4037886e5b50f2c57469a983dec", + "benchmarks/results-20261015/btree-prefix/supplemental/0013-r0-random-miss-callback.stat": "f2d53809e6e982b875fe31c1100bfaffa88557eafa57cf7d376dec113c827c28", + "benchmarks/results-20261015/btree-prefix/supplemental/0014-r0-random-miss-on.log": "48a5b5487e8526e897a668261c54274ffbbfb0c7776c0dfb3f64cc49b74fd193", + "benchmarks/results-20261015/btree-prefix/supplemental/0014-r0-random-miss-on.stat": "f42aea999da083d625266524e5a57d9db2b309b340ec13b88e2a849f99001fba", + "benchmarks/results-20261015/btree-prefix/supplemental/0015-r0-random-scan1-callback.log": "e77ff43d2c9adeac4ac44fa03a57234cf5913ada5266d810e7e49db60ebbdd45", + "benchmarks/results-20261015/btree-prefix/supplemental/0015-r0-random-scan1-callback.stat": "4d8933b0f9c7db85dba29118d9bf1e93ce71a46f075defc9b3a4e0304c642a2a", + "benchmarks/results-20261015/btree-prefix/supplemental/0016-r0-random-scan1-on.log": "8f133f276a2e12003c2ba8ce8f1b5f98b234a6a97e952558b250e36f61b19409", + "benchmarks/results-20261015/btree-prefix/supplemental/0016-r0-random-scan1-on.stat": "0f704110b30feed933156228005f66fdb7b15535b27b0d0000fab47372175ad1", + "benchmarks/results-20261015/btree-prefix/supplemental/0017-r0-random-scan10000-callback.log": "b4dbce455012b4f6a8d2a547a5c78d36feb050d3456350594557c4e39da6f342", + "benchmarks/results-20261015/btree-prefix/supplemental/0017-r0-random-scan10000-callback.stat": "8bb122e5ad13aa920da0426c7822c97f556a23dcff10eadeca93d72e0365fe97", + "benchmarks/results-20261015/btree-prefix/supplemental/0018-r0-random-scan10000-on.log": "b359521542cbd9976d682af1f264c281e4bdd51bef121111d5d35a4442ba182f", + "benchmarks/results-20261015/btree-prefix/supplemental/0018-r0-random-scan10000-on.stat": "1f8df8ec3bd1211d77e939adce855036ad0892fda2b6c57e257f052fecef3569", + "benchmarks/results-20261015/btree-prefix/supplemental/0019-r0-random-scanfull-callback.log": "00d5f692c69dd77d60908aedd5833daa8d4c30b06a6b9776178d64e272a0f360", + "benchmarks/results-20261015/btree-prefix/supplemental/0019-r0-random-scanfull-callback.stat": "55c9d12ce67b3b1a72a64aa019a8ec3552960f32b63162e16ba3490c7f5b706a", + "benchmarks/results-20261015/btree-prefix/supplemental/0020-r0-random-scanfull-on.log": "2583bb7df05e7d75e42afdad7834f483bc18b15a73d787046d2572e8822cd7c4", + "benchmarks/results-20261015/btree-prefix/supplemental/0020-r0-random-scanfull-on.stat": "6db90cc36a9f848e48e93d7550dd77817962ba0aee3e93be51b82a8276cb44d3", + "benchmarks/results-20261015/btree-prefix/supplemental/0021-r1-common-miss-on.log": "d2a552633ec809059595b9ebae323a95f978c8264500cedd9348efb18fa503da", + "benchmarks/results-20261015/btree-prefix/supplemental/0021-r1-common-miss-on.stat": "69c38462130c0e0ed487620c8851536ac548f8c76180b686d3ff0312c93284d2", + "benchmarks/results-20261015/btree-prefix/supplemental/0022-r1-common-miss-callback.log": "409e6aacbe5cc646d99f715d1c2deb76fb28cf078cb1b2050a62dc623e709370", + "benchmarks/results-20261015/btree-prefix/supplemental/0022-r1-common-miss-callback.stat": "e58452d0f2683965b5d6618a6631142a373149bf21f968493922b3de70e91035", + "benchmarks/results-20261015/btree-prefix/supplemental/0023-r1-common-scan1-on.log": "cd1ca9edca1de2c5be446e67cc960fa9f43c42ca57b618bbc9ccda8adf105cd8", + "benchmarks/results-20261015/btree-prefix/supplemental/0023-r1-common-scan1-on.stat": "fed2c868b88543281b632ce707247442cb51d724bb7ca06e482d28f0bfde74ee", + "benchmarks/results-20261015/btree-prefix/supplemental/0024-r1-common-scan1-callback.log": "fc3a5241669d9013dcc39fac259ace387856e7aabdab5be0f6796dfcd8cbb06b", + "benchmarks/results-20261015/btree-prefix/supplemental/0024-r1-common-scan1-callback.stat": "05151f820afee45bba20d935cae2fb2f7cbcfde86f93db49b55b8f5c4ba92258", + "benchmarks/results-20261015/btree-prefix/supplemental/0025-r1-common-scan10000-on.log": "33709ac64be245e2119695aa9fd6a87b36b252942cbc89832cf574c5df5bbda4", + "benchmarks/results-20261015/btree-prefix/supplemental/0025-r1-common-scan10000-on.stat": "e44b3018d751084212e2ff9c5cc120ae7f8ccbb65ed2f991992430a796aa59c0", + "benchmarks/results-20261015/btree-prefix/supplemental/0026-r1-common-scan10000-callback.log": "a0a106f0734a4686a22d671d9253c0fd5350d4d5b8b8773ca5785c2d2da04e1e", + "benchmarks/results-20261015/btree-prefix/supplemental/0026-r1-common-scan10000-callback.stat": "82d19a0f6a787e207a8174c555a90e52b072cd9b4a98e071552008b8d050c9bd", + "benchmarks/results-20261015/btree-prefix/supplemental/0027-r1-common-scanfull-on.log": "89d27bacc7abc422cf68491d1f4df724f0884cd172a7edfe0e1171400d3667e0", + "benchmarks/results-20261015/btree-prefix/supplemental/0027-r1-common-scanfull-on.stat": "4a5949fa5dede53bfd26b6ce07d3ddc0cde837e7a0933441dc2ac19cbe645fd0", + "benchmarks/results-20261015/btree-prefix/supplemental/0028-r1-common-scanfull-callback.log": "d3c04a357478025d2de91e21b4a80567f5751201794eea6a97f9ad213a8cea05", + "benchmarks/results-20261015/btree-prefix/supplemental/0028-r1-common-scanfull-callback.stat": "149d6476393d4b36413425f731d41a02469b206869740b52dbc77baeaa81ca6f", + "benchmarks/results-20261015/btree-prefix/supplemental/0029-r1-random-hit-on.log": "6c5ef52d35f998ffc9adb9631527af9a1632c1815e6e4582d42ba0542be1a785", + "benchmarks/results-20261015/btree-prefix/supplemental/0029-r1-random-hit-on.stat": "23ff6e7fa604bcf3131fe8b83652ba2c2387e82dd4cbc9843abb4586fd95547a", + "benchmarks/results-20261015/btree-prefix/supplemental/0030-r1-random-hit-callback.log": "bb1d7d182584708dd48fb8809d56a34b2c2a6c2829888aeab2ea5e1fd8b8c8d1", + "benchmarks/results-20261015/btree-prefix/supplemental/0030-r1-random-hit-callback.stat": "8c2c9defff253f7b08adf328ddee00043678a194397fba45886f3f986cfeeb5b", + "benchmarks/results-20261015/btree-prefix/supplemental/0031-r1-random-miss-on.log": "64c59e0b009561655b0ce69e175c16e3d225fe6f709c6f8bf36746313b8ed5d0", + "benchmarks/results-20261015/btree-prefix/supplemental/0031-r1-random-miss-on.stat": "7563f5cb6665b24256f45193bdd6b42bb51bdb8560369b88cc33a07da9fbaea9", + "benchmarks/results-20261015/btree-prefix/supplemental/0032-r1-random-miss-callback.log": "6455444c845bf4bef248777408e00c08cea3661ddbb66994b0af0234ae432078", + "benchmarks/results-20261015/btree-prefix/supplemental/0032-r1-random-miss-callback.stat": "4d6ea15e46a6bb521d0c3b163cfd07999c045c65e953977fa5eb7819db858ddb", + "benchmarks/results-20261015/btree-prefix/supplemental/0033-r1-random-scan1-on.log": "9f44ac1aa868ea982594ac0d38977c46ea0e3c88d78e694de1dbf8855d013891", + "benchmarks/results-20261015/btree-prefix/supplemental/0033-r1-random-scan1-on.stat": "88ecc19605fbb30688849c7e1277efe7e909f115b24d4aeea17defb323a8f8d4", + "benchmarks/results-20261015/btree-prefix/supplemental/0034-r1-random-scan1-callback.log": "a2ed79040dc434f624f613b10529264c064db2498ad91e9df05abf7cfb56b28b", + "benchmarks/results-20261015/btree-prefix/supplemental/0034-r1-random-scan1-callback.stat": "45d17714112ef779b32ed44cbe0f37bda2cb5706406834402b163ac43f96b43b", + "benchmarks/results-20261015/btree-prefix/supplemental/0035-r1-random-scan10000-on.log": "d8b4abbf07eee98b0d6b89021b451268c5136ee78306c3a79ef080d3ccd3e40f", + "benchmarks/results-20261015/btree-prefix/supplemental/0035-r1-random-scan10000-on.stat": "a39bb019ca325e21f14de134bc3e6a99d230621a0417bba9d43512b6d28a40b9", + "benchmarks/results-20261015/btree-prefix/supplemental/0036-r1-random-scan10000-callback.log": "a564be52cafd4aa5dab7d682cfceee1964ec89af326b35879d8a97a2313d6be1", + "benchmarks/results-20261015/btree-prefix/supplemental/0036-r1-random-scan10000-callback.stat": "ae8f52d101423794788d2a44aa85e41861adddc28ab6d135173dc071eeb51f72", + "benchmarks/results-20261015/btree-prefix/supplemental/0037-r1-random-scanfull-on.log": "915128639a11587ef2d97393778b3ef7d6091d28a9522468b6f6434867b10c15", + "benchmarks/results-20261015/btree-prefix/supplemental/0037-r1-random-scanfull-on.stat": "700f52313e42d6c916d531fc24ac3ddb371d381cb6153f258a852aca945b9f43", + "benchmarks/results-20261015/btree-prefix/supplemental/0038-r1-random-scanfull-callback.log": "e2456094a871e13c319c5fdc04d4f07efe1ba7778ae417ca65c628a355f46146", + "benchmarks/results-20261015/btree-prefix/supplemental/0038-r1-random-scanfull-callback.stat": "54c8c1273918bc6a9908ee2d2343b80fa33c2ccd547464c61a702619db511d39", + "benchmarks/results-20261015/btree-prefix/supplemental/0039-r1-common-hit-on.log": "af930d37cdb13ea7428fc079574200dacbe0567387a27810cf03513f3da92ca1", + "benchmarks/results-20261015/btree-prefix/supplemental/0039-r1-common-hit-on.stat": "d54be434edef4d008130d806e0bcf570ca4f8087462b3791ab31d52241c8ff16", + "benchmarks/results-20261015/btree-prefix/supplemental/0040-r1-common-hit-callback.log": "bcd2ef42e3adc6652d78fa32b25ebd1203e3546ed350598d815104ad3827c026", + "benchmarks/results-20261015/btree-prefix/supplemental/0040-r1-common-hit-callback.stat": "b783726302379e84c798f6dde63ba2cd7b5a5cffe43ee17bd99a532efcf10d15", + "benchmarks/results-20261015/btree-prefix/supplemental/0041-r2-common-scan1-callback.log": "8e5fb8400b5b542fe5344570ccd90f1e47c48b0161d2484547311ea4af2be8bf", + "benchmarks/results-20261015/btree-prefix/supplemental/0041-r2-common-scan1-callback.stat": "df727320562b30ed4fdb34404d0255c2c9c733d77e83d70a8d950f56cdab5e41", + "benchmarks/results-20261015/btree-prefix/supplemental/0042-r2-common-scan1-on.log": "ce30c2ca8831a7dab8c6dfdf03f5117026fbad7db7516c7f63a1a5e7368acc3b", + "benchmarks/results-20261015/btree-prefix/supplemental/0042-r2-common-scan1-on.stat": "95fb63695cc03046e257998cf4867cafa59da41daf509b07e3624d014f84cd50", + "benchmarks/results-20261015/btree-prefix/supplemental/0043-r2-common-scan10000-callback.log": "79bbb19e44ff51b43535fed817b05aaacb4a49546f94a39c533e6e0544fe2fa6", + "benchmarks/results-20261015/btree-prefix/supplemental/0043-r2-common-scan10000-callback.stat": "f766dc6575d2faabf4dcda9cc9ef998b1227121d01cd74fc633ff1f56daf90cb", + "benchmarks/results-20261015/btree-prefix/supplemental/0044-r2-common-scan10000-on.log": "ce0f1df1dd661847fc9f5965bcdc4f89bb96d13c130b475b4bc16d685acab538", + "benchmarks/results-20261015/btree-prefix/supplemental/0044-r2-common-scan10000-on.stat": "dc922aad126b74cc74af8198d23a1554e0e94dbbbf3b723c932a594920db1dd3", + "benchmarks/results-20261015/btree-prefix/supplemental/0045-r2-common-scanfull-callback.log": "8f1b53fe328cf9677be0eea8f5a77edce18d740fd7c3357889ca28791230a3bc", + "benchmarks/results-20261015/btree-prefix/supplemental/0045-r2-common-scanfull-callback.stat": "3e67ea6a33e3a0cfaa9a6fd7263635c53099e6301d2d3cbf45c56cd22355167a", + "benchmarks/results-20261015/btree-prefix/supplemental/0046-r2-common-scanfull-on.log": "c16717db9e2f73ae6c0ddcec08a0b2c74f11599a49033ffab54442dc91454070", + "benchmarks/results-20261015/btree-prefix/supplemental/0046-r2-common-scanfull-on.stat": "d01aaa847c4865556a5f477dcc283b4f3db731b6e7c5a7fd24d1a1d244218bd2", + "benchmarks/results-20261015/btree-prefix/supplemental/0047-r2-random-hit-callback.log": "03d154415ed9f3ef87c5f52f7c7c3eb4e8dfc277dd5835811929b0ee30683104", + "benchmarks/results-20261015/btree-prefix/supplemental/0047-r2-random-hit-callback.stat": "5600089b1861e2f0488bf1b3ede37bd3784727d80ed8efff53fd7f3655fef1d8", + "benchmarks/results-20261015/btree-prefix/supplemental/0048-r2-random-hit-on.log": "13cddcd2d108aff82b346e0b004780d2cdf80239ac9b35b107b336a254422905", + "benchmarks/results-20261015/btree-prefix/supplemental/0048-r2-random-hit-on.stat": "6083c3c0e6e090486074736bb856e91e1ebdd1c7379d3f5d8cfa9400009f008d", + "benchmarks/results-20261015/btree-prefix/supplemental/0049-r2-random-miss-callback.log": "0cdf8ba28b5bf2297bde5116c51fe780aaff16bf0cf5e4fc10f20cabf41009a9", + "benchmarks/results-20261015/btree-prefix/supplemental/0049-r2-random-miss-callback.stat": "651bc654490991b10016e478f6a3bb4430cbfd8e3ba1fd4ec48f3861e349e2e4", + "benchmarks/results-20261015/btree-prefix/supplemental/0050-r2-random-miss-on.log": "4ef39dae52ef8717bfe91ccabf4cb6238cd33615e3215e1b0693044bcb89f345", + "benchmarks/results-20261015/btree-prefix/supplemental/0050-r2-random-miss-on.stat": "66463f541805b7f98f93a625d5639369a09dccccc95198c38ec575b00578bd61", + "benchmarks/results-20261015/btree-prefix/supplemental/0051-r2-random-scan1-callback.log": "33f8b927f0ac58a1aae6fdb7052ee68bf8a2e6c554bc08b923841a69d889d3f9", + "benchmarks/results-20261015/btree-prefix/supplemental/0051-r2-random-scan1-callback.stat": "fcbaf4db04cd201d98d398a393837df92a0afe4264fe71e404c22b3ab3bdfab2", + "benchmarks/results-20261015/btree-prefix/supplemental/0052-r2-random-scan1-on.log": "b519e5d8daf5a0399c65e24b0a0ee36e8968d2a5aac05881429ac164259b46d3", + "benchmarks/results-20261015/btree-prefix/supplemental/0052-r2-random-scan1-on.stat": "727c5fe1539f9347a78ad720f5a688e222f1266ce459280fbd34d54d7efc4a8f", + "benchmarks/results-20261015/btree-prefix/supplemental/0053-r2-random-scan10000-callback.log": "ce037169dbc40cd4d6c0e4ea8cbcd5f1ae2b27ee188b98bd36c61878e7491f0d", + "benchmarks/results-20261015/btree-prefix/supplemental/0053-r2-random-scan10000-callback.stat": "e9c433b2374020287fd333f6fcba604f575cde25d739beb78aa32f5831653bcd", + "benchmarks/results-20261015/btree-prefix/supplemental/0054-r2-random-scan10000-on.log": "73ce461fc78467bff13c13f32f7811d829ea93a5e8be50d56a12999b93673669", + "benchmarks/results-20261015/btree-prefix/supplemental/0054-r2-random-scan10000-on.stat": "b3653789c38c02981bbfaf05e9c11e9d4e721c25bc25a872818580cd23d7b919", + "benchmarks/results-20261015/btree-prefix/supplemental/0055-r2-random-scanfull-callback.log": "aeaeff5e3e887733c635a0179f24472335c210a376d428662b1f608c55dca46d", + "benchmarks/results-20261015/btree-prefix/supplemental/0055-r2-random-scanfull-callback.stat": "ef26f71e7929cab3c796b2ea05d6f220715eba74992c9f941e0383394f93211c", + "benchmarks/results-20261015/btree-prefix/supplemental/0056-r2-random-scanfull-on.log": "7c0e765bd95916ffb19910495245c3f9c922c2db97a0c3eabcafe677f1e0f5ec", + "benchmarks/results-20261015/btree-prefix/supplemental/0056-r2-random-scanfull-on.stat": "a60349b2c43538ee00dfd67af5c26d78730c665895f3cd59bc98557d80e7b242", + "benchmarks/results-20261015/btree-prefix/supplemental/0057-r2-common-hit-callback.log": "5d4c89bad2a99526ade5e54b392a1f22475a94788645479ac9bba1171b2fb382", + "benchmarks/results-20261015/btree-prefix/supplemental/0057-r2-common-hit-callback.stat": "de65b5840d962191d84eb27d5ba5a212907020d14174d0395c1194ebcf017bde", + "benchmarks/results-20261015/btree-prefix/supplemental/0058-r2-common-hit-on.log": "1d9ca7756b01ef1b9b9c2b214f048f885919699e6ba4a091fd04bfe7b67430fe", + "benchmarks/results-20261015/btree-prefix/supplemental/0058-r2-common-hit-on.stat": "4377e0906ee42b91db91760c7c77a1410cb9c2b68093e388a30c7c942970f057", + "benchmarks/results-20261015/btree-prefix/supplemental/0059-r2-common-miss-callback.log": "e0d66ee96f8beb332c2b26be3fb196a4355dea75a0bb97dec6622a5760cc48e2", + "benchmarks/results-20261015/btree-prefix/supplemental/0059-r2-common-miss-callback.stat": "8108cbdf53f9aae9cb0847c26b5bfd276f54b8a80b2daff6f67a98fff477593c", + "benchmarks/results-20261015/btree-prefix/supplemental/0060-r2-common-miss-on.log": "0ab0a520a17a65fb37ecd8f4074c53c9d495c1f044cd92a97d6f87516d19c2de", + "benchmarks/results-20261015/btree-prefix/supplemental/0060-r2-common-miss-on.stat": "7ca87f8e2ad0f38fab16dfd03fce8ff20f767f5b8da69d484ad3bec375d636da", + "benchmarks/results-20261015/btree-prefix/supplemental/0061-r3-common-scan10000-on.log": "504a6262014f740f2534fec9d1d538ed0fdfae85aa4857a0cc254ef4003c089c", + "benchmarks/results-20261015/btree-prefix/supplemental/0061-r3-common-scan10000-on.stat": "410ece45c9754265b7af364477d1c091057707fc76fa96fe061476015c1e8337", + "benchmarks/results-20261015/btree-prefix/supplemental/0062-r3-common-scan10000-callback.log": "32c2ede64162337013fd0b92d2698b7f492be5da014cf14b7d800fee035ee3ec", + "benchmarks/results-20261015/btree-prefix/supplemental/0062-r3-common-scan10000-callback.stat": "24dd74117f2c6bd1a506389aa3c48e5bda51295ed1d30af51ee0cda67996042b", + "benchmarks/results-20261015/btree-prefix/supplemental/0063-r3-common-scanfull-on.log": "6ca3dad1e199a3fb26d6ea0aaf598311f1229043b00d61aae9815a9c7c940627", + "benchmarks/results-20261015/btree-prefix/supplemental/0063-r3-common-scanfull-on.stat": "531149a73a1dd9f4233a5d8d9e97f0cc006dc5fb57649bb917b5c74b0fc1cbd2", + "benchmarks/results-20261015/btree-prefix/supplemental/0064-r3-common-scanfull-callback.log": "8f0704405692bbb47c4c6f6e510977e1d3f9e898ee5801a3052e652d8dbe1064", + "benchmarks/results-20261015/btree-prefix/supplemental/0064-r3-common-scanfull-callback.stat": "f75ae3e5f73df04c572d3209b9a4ef4a00cee65370f2504d48035988d08179b7", + "benchmarks/results-20261015/btree-prefix/supplemental/0065-r3-random-hit-on.log": "ffd6427618ec0ebb80f7a39b71e161f434748061591b0f516f18a8583108d6ec", + "benchmarks/results-20261015/btree-prefix/supplemental/0065-r3-random-hit-on.stat": "22cae6e80722d35ef0ca153c69424b65b8c6fa232d5261852fb394f244b3ac14", + "benchmarks/results-20261015/btree-prefix/supplemental/0066-r3-random-hit-callback.log": "315844308cc6fb42431d86b9d7dff01f4f61b2fe03cfbc31b1a23cfc6d9c004c", + "benchmarks/results-20261015/btree-prefix/supplemental/0066-r3-random-hit-callback.stat": "c95c06240e4b51685100ad73cf70df8acac980e60c3f123a7f418ac49c7448a2", + "benchmarks/results-20261015/btree-prefix/supplemental/0067-r3-random-miss-on.log": "688faf0147122f2ee84896c73f50da4d7ab1a417de73c9d5a61035f65401e64b", + "benchmarks/results-20261015/btree-prefix/supplemental/0067-r3-random-miss-on.stat": "84c29d5ffe9ea536e8bf92f0256c11563bf21561ea1f50b86497ac87442fc871", + "benchmarks/results-20261015/btree-prefix/supplemental/0068-r3-random-miss-callback.log": "8d50f33b5dc8021c8bcce284d1a964a384b47e8f5c2a013824489f2af6c3115b", + "benchmarks/results-20261015/btree-prefix/supplemental/0068-r3-random-miss-callback.stat": "305fb3f256e5338ff069fdeed46f1ca660a337914d0198ca03fdd55b1d08de54", + "benchmarks/results-20261015/btree-prefix/supplemental/0069-r3-random-scan1-on.log": "506163c709b37525c0650b610249f36507ef94ada3c7634f68a2af86e9d3d733", + "benchmarks/results-20261015/btree-prefix/supplemental/0069-r3-random-scan1-on.stat": "2aab891b36377664bc3c88bd594606e7971a7681b38915741c387bb84b5191ff", + "benchmarks/results-20261015/btree-prefix/supplemental/0070-r3-random-scan1-callback.log": "9dfddc7cba94e60cb1c18b6926db726543657a061b540b201b8c4d85adae9d1f", + "benchmarks/results-20261015/btree-prefix/supplemental/0070-r3-random-scan1-callback.stat": "29a50e997e73914162ad84be0b899eed5dc3dcc871547a80d3c9ac1c0a57290a", + "benchmarks/results-20261015/btree-prefix/supplemental/0071-r3-random-scan10000-on.log": "cde5e188190dd818e894c75165699d1f578d14158bc911de3aee592376b53c1c", + "benchmarks/results-20261015/btree-prefix/supplemental/0071-r3-random-scan10000-on.stat": "27273a86709ba7712775a83a2d6f51d01c14d1ba768f002a0038e345e1d069b2", + "benchmarks/results-20261015/btree-prefix/supplemental/0072-r3-random-scan10000-callback.log": "36534c65065dd18a9042bfeccef7a744bfb13b228903499d67629d40aa8c8ba9", + "benchmarks/results-20261015/btree-prefix/supplemental/0072-r3-random-scan10000-callback.stat": "4d26a5bd475877e97d3c5e78d2e2b1bcf9738799f4712495e25536aa84879749", + "benchmarks/results-20261015/btree-prefix/supplemental/0073-r3-random-scanfull-on.log": "86be6558615159dd403b176096469b30f0b52ba245b7f8abe36de65a75aa8d53", + "benchmarks/results-20261015/btree-prefix/supplemental/0073-r3-random-scanfull-on.stat": "31f6e8d96afdb8e89e4c36ad641f7aab143bdb2b99830f651a9860c7b7f87264", + "benchmarks/results-20261015/btree-prefix/supplemental/0074-r3-random-scanfull-callback.log": "97af20c37dcce26f649402bfe75fe1010ed8d991f8946c7d471d5508cf62c3e4", + "benchmarks/results-20261015/btree-prefix/supplemental/0074-r3-random-scanfull-callback.stat": "b7a94e27f555871429464f5a43252b3fc05c4d141f8ec6d6a99fa08fc45e3c1f", + "benchmarks/results-20261015/btree-prefix/supplemental/0075-r3-common-hit-on.log": "3237c76e741d559ad91b8316d76174ab51489a5a6d2d783fa35363ea680252e1", + "benchmarks/results-20261015/btree-prefix/supplemental/0075-r3-common-hit-on.stat": "fc5996f1f5dd9e483bd1b5ad4e9440f83eff2f726c9aca7062862c0bb0c27944", + "benchmarks/results-20261015/btree-prefix/supplemental/0076-r3-common-hit-callback.log": "4206266e4ab94e265f4843c8d0b56cd65ed30e1c533e024d42c3b57898831559", + "benchmarks/results-20261015/btree-prefix/supplemental/0076-r3-common-hit-callback.stat": "08373d7fc141ed2f441320be916f6ee659301099de18de629b91e32b4607cf06", + "benchmarks/results-20261015/btree-prefix/supplemental/0077-r3-common-miss-on.log": "bd54d021e997fa180aa80a0d6728aa6c969b659184ead4a75017d0e92c211753", + "benchmarks/results-20261015/btree-prefix/supplemental/0077-r3-common-miss-on.stat": "f5812da71c6cb008d18a42f93426c79d436e9e756ecc3d92b490173ed2559fa8", + "benchmarks/results-20261015/btree-prefix/supplemental/0078-r3-common-miss-callback.log": "e53b0e3452945972bd200e52139fdf038de80bc9f6577e67db8d43f1318fa2dc", + "benchmarks/results-20261015/btree-prefix/supplemental/0078-r3-common-miss-callback.stat": "5b606988ec26e8ac3ed17208798b2dae93bd4ec6008e51435ef50e553708e080", + "benchmarks/results-20261015/btree-prefix/supplemental/0079-r3-common-scan1-on.log": "8efd13a3c426cef78ffe64a27ae9a0e2271825548188dc329e29b283698cb16f", + "benchmarks/results-20261015/btree-prefix/supplemental/0079-r3-common-scan1-on.stat": "9dfcdec65abe29eb44d226d71ce4d0e4ecaf036b79449c06c9b017e5f6b5454e", + "benchmarks/results-20261015/btree-prefix/supplemental/0080-r3-common-scan1-callback.log": "cab4bbce1c5e09fa5054868896cef8e005f81a8f627b2eae09d842b4223a0f04", + "benchmarks/results-20261015/btree-prefix/supplemental/0080-r3-common-scan1-callback.stat": "4862de8180aefee6801432a89515dae68672f22748b6fabac90574373270a7eb", + "benchmarks/results-20261015/btree-prefix/supplemental/0081-r4-common-scanfull-callback.log": "7f5fd60b507a6a6db3f7e7b652a28314cd7fc11099857429a5e2e976f55f8df8", + "benchmarks/results-20261015/btree-prefix/supplemental/0081-r4-common-scanfull-callback.stat": "fde0f2301b2ff2515710bc8096bbfd11df5958fa161f91bcd0c78bd7c345c477", + "benchmarks/results-20261015/btree-prefix/supplemental/0082-r4-common-scanfull-on.log": "700014992b99a6b4f5987a784fdd6d875a2f31e2e0d446516f0dece87e49f988", + "benchmarks/results-20261015/btree-prefix/supplemental/0082-r4-common-scanfull-on.stat": "13c129cc4daed942f5f486a02aeb66568451db410b743684910c41b3e4d0d798", + "benchmarks/results-20261015/btree-prefix/supplemental/0083-r4-random-hit-callback.log": "42ee2916826af291da9bf68d98db865bafd2507737e4aeb7df28bea308c80604", + "benchmarks/results-20261015/btree-prefix/supplemental/0083-r4-random-hit-callback.stat": "7aff932080a3b003d40f0c81e9b276e82f92e3e114d45472e0af064d82daec79", + "benchmarks/results-20261015/btree-prefix/supplemental/0084-r4-random-hit-on.log": "e9dc2085d2e6df6b3db4da2baa0e537a85701913b15e903e2e7c130102b2ed46", + "benchmarks/results-20261015/btree-prefix/supplemental/0084-r4-random-hit-on.stat": "b4f451c769527a2cce52a8f94b629c07754e9619b52187104136005696cd8e23", + "benchmarks/results-20261015/btree-prefix/supplemental/0085-r4-random-miss-callback.log": "2a6ac168b6e82fba2f29217affa90ead954f2ff2981847da5b849ec7a42f24ce", + "benchmarks/results-20261015/btree-prefix/supplemental/0085-r4-random-miss-callback.stat": "7b3450ac8363f0604c008be4ec75946bf7f76cfc38cffa05f5f7657b7f0cb1c7", + "benchmarks/results-20261015/btree-prefix/supplemental/0086-r4-random-miss-on.log": "b994a7665f286769739f164c0737678cd8178ac4b44b3b2e64262dc4487b7bd4", + "benchmarks/results-20261015/btree-prefix/supplemental/0086-r4-random-miss-on.stat": "3ced61c84055652c0b925f77abd17d80c426b4499202b983ad4bb40313435696", + "benchmarks/results-20261015/btree-prefix/supplemental/0087-r4-random-scan1-callback.log": "58a4786b0c798e3c89db61548260e7ba78e4e8c75a4c2d5229ed3cd35ce29f04", + "benchmarks/results-20261015/btree-prefix/supplemental/0087-r4-random-scan1-callback.stat": "4aa8d8b74117ab3dafacc62c999941a26b07857c2ed5a2f97be8c1e8bb72cb10", + "benchmarks/results-20261015/btree-prefix/supplemental/0088-r4-random-scan1-on.log": "dd3c30fcf5b388af0fc7b039315395099f38096249c7552a0448b7a4f12eccc2", + "benchmarks/results-20261015/btree-prefix/supplemental/0088-r4-random-scan1-on.stat": "4709fea590e830648b4e6a75db0cb251439366e60e8fcb41c574f403d3ef0ce5", + "benchmarks/results-20261015/btree-prefix/supplemental/0089-r4-random-scan10000-callback.log": "18f73dfb935931cc10913dfce05fc378685d90b903e6aa251216c28de377d29f", + "benchmarks/results-20261015/btree-prefix/supplemental/0089-r4-random-scan10000-callback.stat": "fe78a43c42f1cbd1ffcae3904524a918d59f9966262d6a5632eebb6a3ea289b6", + "benchmarks/results-20261015/btree-prefix/supplemental/0090-r4-random-scan10000-on.log": "0c0588087185e1e8a357f220440ff184840700255f69ee603b29fba1870c1485", + "benchmarks/results-20261015/btree-prefix/supplemental/0090-r4-random-scan10000-on.stat": "f3857ed9251fa22dd5110fe370e138e1a85d7dc4a3958a7dec180c3da83e8f6f", + "benchmarks/results-20261015/btree-prefix/supplemental/0091-r4-random-scanfull-callback.log": "5dfcfaab4ec0061fa7bf13efe0c8a93e2809a3639c9f851cfbc84441495f70c4", + "benchmarks/results-20261015/btree-prefix/supplemental/0091-r4-random-scanfull-callback.stat": "37878c53725e4498bd6023cc69a992cb6abadd0ac5d496b74fe8935b510124c4", + "benchmarks/results-20261015/btree-prefix/supplemental/0092-r4-random-scanfull-on.log": "b479e2220b88bed3cb3e9e00d5fdb351501563a8e3857e9356f5eb22348d8828", + "benchmarks/results-20261015/btree-prefix/supplemental/0092-r4-random-scanfull-on.stat": "f4452dfbfa719d643307c447b79dc609ebfe43d9d79de90ad6e9e826e6c88592", + "benchmarks/results-20261015/btree-prefix/supplemental/0093-r4-common-hit-callback.log": "2a618f72b3251815fa71e516263322163c2b6e08cbee7e3152f0044509174a63", + "benchmarks/results-20261015/btree-prefix/supplemental/0093-r4-common-hit-callback.stat": "2689a0e1c8734a12c9c8283e4d19db24b1487879ad12a10779c30428e76c7400", + "benchmarks/results-20261015/btree-prefix/supplemental/0094-r4-common-hit-on.log": "77c16ed0776540df18acf1845a2dacab259fdb6b77d3bbaa7658c30a4c9da137", + "benchmarks/results-20261015/btree-prefix/supplemental/0094-r4-common-hit-on.stat": "108aa089500d4b26627fa92faa6262213e317d6373890ab6debb167b34adfa89", + "benchmarks/results-20261015/btree-prefix/supplemental/0095-r4-common-miss-callback.log": "ffc00e7ce621202de6c41b76e1545eef9113bfbac2e5434c78677ec426e55351", + "benchmarks/results-20261015/btree-prefix/supplemental/0095-r4-common-miss-callback.stat": "ee3c824579197fd93e9ec93e8c7ded80724ac146993b67ac0afb231aa0de8368", + "benchmarks/results-20261015/btree-prefix/supplemental/0096-r4-common-miss-on.log": "b6d7f1d314de2caf4cd3fc313bd38a495e9a503285f04363ddd7c70cf57f5c73", + "benchmarks/results-20261015/btree-prefix/supplemental/0096-r4-common-miss-on.stat": "8dc1679620d15d282b252ae44b85278ec942c26d7002d9ae4bbd3b038128f580", + "benchmarks/results-20261015/btree-prefix/supplemental/0097-r4-common-scan1-callback.log": "0184a9334cab266011e23fa3e630e259f750808d2389771edf016105d869dd3d", + "benchmarks/results-20261015/btree-prefix/supplemental/0097-r4-common-scan1-callback.stat": "eef2b4f57d3b59a2dc2361ac830e8bbd65b4e4cb4cb9a02d1e291d6283addf7c", + "benchmarks/results-20261015/btree-prefix/supplemental/0098-r4-common-scan1-on.log": "982bc0575640c2a686572d93e02fd3e1b88ff8c86c2d0a40c147ec9dfb80e36b", + "benchmarks/results-20261015/btree-prefix/supplemental/0098-r4-common-scan1-on.stat": "115f793dc2995c39cb8182f42aa5704d94eee8602da1b0da1a80664fe39c1644", + "benchmarks/results-20261015/btree-prefix/supplemental/0099-r4-common-scan10000-callback.log": "25b128f84ea53cfd21bd7af203486922a53fff3b4eb3229f0c1dd7014165c83f", + "benchmarks/results-20261015/btree-prefix/supplemental/0099-r4-common-scan10000-callback.stat": "b9076549e14693ec70db6d8c2f80dcd2c3712f5f1cd2a0fff84640add08c27c6", + "benchmarks/results-20261015/btree-prefix/supplemental/0100-r4-common-scan10000-on.log": "6f158d34f3eb1c0e4a336c41324534d1dd311547a6aff271bf321db11aeadb05", + "benchmarks/results-20261015/btree-prefix/supplemental/0100-r4-common-scan10000-on.stat": "ca66a182347a082a5d60d313bee4a77f4a58adf6ed76e78e4eb49c1507843b00", + "benchmarks/results-20261015/btree-prefix/supplemental/0101-r5-random-hit-on.log": "ece75eb1e6b6f046fcf8b02cf4037beea0655344f01ab8854b927fead2d6d7b3", + "benchmarks/results-20261015/btree-prefix/supplemental/0101-r5-random-hit-on.stat": "86e82a1b0ee95ebdd67123ceb8e25c146ac7ea9a24b8f68b7bd4c4039e3a05ae", + "benchmarks/results-20261015/btree-prefix/supplemental/0102-r5-random-hit-callback.log": "50f28b5d491af7039d882e9acf8f10a74aa8456c25ce65b116d848bf672a1d05", + "benchmarks/results-20261015/btree-prefix/supplemental/0102-r5-random-hit-callback.stat": "791c6b7f61c68c335fed241d3301fa7adaed1ec33c101f9fa6e8d0600c5cbd85", + "benchmarks/results-20261015/btree-prefix/supplemental/0103-r5-random-miss-on.log": "814c2dd098d9be87193e17d2b19ca2c12790d364e52c6e2d426625ebe66d435f", + "benchmarks/results-20261015/btree-prefix/supplemental/0103-r5-random-miss-on.stat": "85c7e9e1306d42941c2b974277135c3536726f0d3c01af8b5a2ac310b41a6ee6", + "benchmarks/results-20261015/btree-prefix/supplemental/0104-r5-random-miss-callback.log": "464f0d0936bc49f90160a5b5bf077ccfd8420c9b56a7913a87e33381a119b47b", + "benchmarks/results-20261015/btree-prefix/supplemental/0104-r5-random-miss-callback.stat": "e1e1f80a0e2eab244d50721f27aefcb185ec5d00d93115659ae8176a15a3ca9b", + "benchmarks/results-20261015/btree-prefix/supplemental/0105-r5-random-scan1-on.log": "a50127bb44dfb22ebf04e11f5f86f6b31cd5fcd5334ca59d1b125294ddbe2e71", + "benchmarks/results-20261015/btree-prefix/supplemental/0105-r5-random-scan1-on.stat": "050518965a172196f0344828bf41cf1daadd70374aabe7709a18405bd28c3763", + "benchmarks/results-20261015/btree-prefix/supplemental/0106-r5-random-scan1-callback.log": "78b19beb49355e50b1addf8dedaf3ee10a8a383d5c204ec39afd462165192a28", + "benchmarks/results-20261015/btree-prefix/supplemental/0106-r5-random-scan1-callback.stat": "8d10ee419a919d08024ec57564dcec28f80ddd2d135f74704d8f9ab700c894e5", + "benchmarks/results-20261015/btree-prefix/supplemental/0107-r5-random-scan10000-on.log": "7ff1ad18939a3a293516375d94b2494ade2eb67b3cbc591f55e9c65bbbfca4cf", + "benchmarks/results-20261015/btree-prefix/supplemental/0107-r5-random-scan10000-on.stat": "ec5e2d372614de189bcab40458f6b9e461ecb00034b2f2eb1e2743f2c8b32740", + "benchmarks/results-20261015/btree-prefix/supplemental/0108-r5-random-scan10000-callback.log": "4aa2fa9b88c05116b7c28b3eefd6b7f1c3c991f01629b814532e92d6acdcceb9", + "benchmarks/results-20261015/btree-prefix/supplemental/0108-r5-random-scan10000-callback.stat": "150aca988fce8ea987e65511e8231dd0ef6a6d71f9eca69eddd03840d0cbc25b", + "benchmarks/results-20261015/btree-prefix/supplemental/0109-r5-random-scanfull-on.log": "294f191ed18c01a1d511c55d096993956e9b1d4802f179bbb8aa877188b2905f", + "benchmarks/results-20261015/btree-prefix/supplemental/0109-r5-random-scanfull-on.stat": "f348b1d09d377c8317092b423197350de3477f8a47d91b397e28ccd7ed5a558c", + "benchmarks/results-20261015/btree-prefix/supplemental/0110-r5-random-scanfull-callback.log": "d2e393dbc3af449911df00de878d04115d4b7899a2f3d38b3237f31fc9286e63", + "benchmarks/results-20261015/btree-prefix/supplemental/0110-r5-random-scanfull-callback.stat": "577a03cbba39978d841bd721bff1be6863fdecb9b71762af24bad5433b74c9a8", + "benchmarks/results-20261015/btree-prefix/supplemental/0111-r5-common-hit-on.log": "ff76c59ec36c5c2b7d3d68d10f37676b52618269d298dd6132b441365e8ba3db", + "benchmarks/results-20261015/btree-prefix/supplemental/0111-r5-common-hit-on.stat": "d40154751f2ce2cd5a839516c322674de01e756ffa3f729d87640d5de86006d1", + "benchmarks/results-20261015/btree-prefix/supplemental/0112-r5-common-hit-callback.log": "aefd89f6334b8fbc7e87d75102f5d0065d40128f38909e8ba75d6c5db7f8399f", + "benchmarks/results-20261015/btree-prefix/supplemental/0112-r5-common-hit-callback.stat": "be6a41dddb4b143af86a50d1c74d58192cb50557c2b7126037380c199a7dafd6", + "benchmarks/results-20261015/btree-prefix/supplemental/0113-r5-common-miss-on.log": "836058575be7e9c0c6dea3d818145cda773994494c3f22788b2ec9a6c52cf10b", + "benchmarks/results-20261015/btree-prefix/supplemental/0113-r5-common-miss-on.stat": "ad0b6f435b708404275e7685f3aeea6352eb941ef1f04744252e92a394dec8bb", + "benchmarks/results-20261015/btree-prefix/supplemental/0114-r5-common-miss-callback.log": "da5b7dcf5576ae9f0d2b414085438282f7f2a3ab465d79005760a81b1e9870be", + "benchmarks/results-20261015/btree-prefix/supplemental/0114-r5-common-miss-callback.stat": "292db9de5787dde0e1d9facb308d16b3133ce211e8db97c8b03c803262162acc", + "benchmarks/results-20261015/btree-prefix/supplemental/0115-r5-common-scan1-on.log": "a2b37682c282796921988fae6b6f89c42b4d34074ba6aac496155b16ccfe6fc3", + "benchmarks/results-20261015/btree-prefix/supplemental/0115-r5-common-scan1-on.stat": "c9e1e2b01cec78e958fffeab4f4793afb3f29693c20e7dfcc8eb7c875990d7b0", + "benchmarks/results-20261015/btree-prefix/supplemental/0116-r5-common-scan1-callback.log": "d4e3e09e3e2cf8fa34501a401c5f854f9ac72f59fff142c1ee9dbed8d840ef22", + "benchmarks/results-20261015/btree-prefix/supplemental/0116-r5-common-scan1-callback.stat": "7b181ca813ee585b62cb79ba2dd652593eccc9c16b91087355a03666e7c6b6ee", + "benchmarks/results-20261015/btree-prefix/supplemental/0117-r5-common-scan10000-on.log": "c6d267872dd804467ae252cabc8e5bc9dd2be44982f2f24b618a86a86c78f72e", + "benchmarks/results-20261015/btree-prefix/supplemental/0117-r5-common-scan10000-on.stat": "4ca209e9e3e57161cff2a9ed47599951158a003c115c4508140421d0c778c2ee", + "benchmarks/results-20261015/btree-prefix/supplemental/0118-r5-common-scan10000-callback.log": "9a2469b5e50a5dfaa2a7a463002293415e39d4de2e21c3c1116c021094c28b56", + "benchmarks/results-20261015/btree-prefix/supplemental/0118-r5-common-scan10000-callback.stat": "6d9d33c4ea45596c0d2c4888ffb01c5c6b89dd293b75236d6ff3d241953e44f1", + "benchmarks/results-20261015/btree-prefix/supplemental/0119-r5-common-scanfull-on.log": "2d371a4f8ee960c0ab6414cda99120dec128e5facc971bdf6993e242f9f219e2", + "benchmarks/results-20261015/btree-prefix/supplemental/0119-r5-common-scanfull-on.stat": "a11f6944d88a70e220b6326602cbff4c20c89f413047606ddd7b9869f322561c", + "benchmarks/results-20261015/btree-prefix/supplemental/0120-r5-common-scanfull-callback.log": "1681261ce55c2149e2c51754d949e56565a09b7788a04964bad04a2cbfc11f0e", + "benchmarks/results-20261015/btree-prefix/supplemental/0120-r5-common-scanfull-callback.stat": "225043b282cf06933cf9e4c3ef4e2915d14623d29de227527eedd9ccba73e382", + "benchmarks/results-20261015/btree-prefix/supplemental/build.json": "ee8996799e96284e5343a942b83c8f29433109b34d62dd31d7cb115a4e0353dd", + "benchmarks/results-20261015/btree-prefix/supplemental/manifest.json": "9cdfcfd1379425f9c3ddbccb3055105a7963074cb5a386cfd06c78dfb2b27852", + "benchmarks/results-20261015/btree-prefix/supplemental/plan.json": "aa35fa827ca07309c13bd0ac5e907eaa588c7466c4bbae4a8638dc689e949737", + "benchmarks/results-20261015/btree-prefix/supplemental/runner.py": "4d6f3ad634afc1a1035ed3b77ca73fa5a304e4fc69a287bb7d2b47347617e3c1", + "benchmarks/results-20261015/btree-prefix/supplemental/summary.json": "7bb27c251b833fda225005f83464b3583e5f2e11080a8ef8c4e0c563058a2a84", + "benchmarks/results-20261016/btree-nonlexical/README.md": "fde7781fe6fc3c4f45ee517adc26aa3a9e69e95efcf89b065ec310a8bbc1221b", + "benchmarks/results-20261016/btree-nonlexical/__pycache__/review_focused18.cpython-313.pyc": "9804e63ec78220a22e9cdd83cf4e48dc6ebf9b90c3df3cf175cf61b1fabb4aa6", + "benchmarks/results-20261016/btree-nonlexical/__pycache__/runner.cpython-313.pyc": "1ad6f813b3679848475b5b6d310a1ddacacf633eeff9fef9b8601904c709f961", + "benchmarks/results-20261016/btree-nonlexical/__pycache__/validate_selected.cpython-313.pyc": "f3e3ebdd41045f30e667f4759316880e5878b64680b0702054bee75de682ff0f", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/README.md": "994db9caabe7907c270dc1416fb07cb4ef13aede4a05b5011bd6a15cb29c486f", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/aligned-layout.txt": "82f1a58465cc9cdc1ebba88a46e090e8174930b3c196cab64ca4c55d908cf018", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/async-io-alignment-from-selected.patch": "0902a4601b2200f73ebfe92337c0d4ced059ee82fae4a7ae26b32cbcc3ed05f4", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/baseline-layout.txt": "2387078c0d2a8863a8b6ab9d3a42aebe278b73669b10f8ca6201016629199b91", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-runtime-sources.json": "3f630b5d586210fa170ea014992ac304c918bd91e521374ec074dfe2cd5321f2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/debug-build-files.json": "f5b4d4119648be137f1a0b605805b9a974d01f1039d38598ae8cedacf0f73cea", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/debug-build.log": "201c7d62af7bea1574f787f7b3cc8eb2afeefdceed484af3d862d320f3e45cce", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/debug-splinterdb_quick-test_immutable_branch_custom_comparator.log": "b6c259947ae51c2273aadb382b50e44cc87a2c33d2722e6b17b8122eeea8e531", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/fault-build-files.json": "030230260a04937708d7d9316ee702440cb1f31296fb141062fae8f0caf76767", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/fault-build.log": "771528c1205754d9dc1b6314492215a4b1898a94f5b250a01b70ed47700cb325", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/fault-splinterdb_quick-test_immutable_branch_custom_comparator.log": "2be123137dc91701e48d6d33e89ad9eb065356b762c228c708496eef51a47299", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/invocation.json": "4edb7544084a44443ca3274897e458136125a5c69497127c3eac5cce7a7c86a0", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/parent-sources-after.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/parent-sources-before.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/parent-timed-after.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/parent-timed-before.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/release-build-files.json": "c5ec465095913b7b25b4b31c2d9773708bc908ccb0875172417cc19d568bdd98", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/release-build.log": "ff9c68f180fdf59b0799342dac221bdd018ddab398a030b0e8398aac82ea9db4", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/release-splinterdb_quick-test_immutable_branch_custom_comparator.log": "0360ee5f90ab47f7d9d3f073821daf43149c150093a774ccac806e9b88390abd", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/repair-sources-after.json": "3f630b5d586210fa170ea014992ac304c918bd91e521374ec074dfe2cd5321f2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/results.json": "3d807ec5729919b5f21a1d7292f94d426fe21fc72f447fb33a5b51726c9046c8", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/run_repair.py": "5f7683a23d01f609b7ecbda7acbff90b7d9dad40e9ba485664190e3aba4a83f5", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizer-capability-build.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizer-capability-run.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree.log": "60f0317c167fc429ffceb57738e6c160fbbf6908f4914b3dba224ce514444f05", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree_stress-copied_iterator_bounds.log": "6188bdcb87a63dde1376da49b1980a14f316bad2fbc96c0455b477728529b9f2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree_stress-copied_iterator_prefetch.log": "2dfb1044a78aa464958cf9e40df94c2e5bf45a079d53439952928284e1e97ece", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree_stress-copied_iterator_split_on_release.log": "0e6adbd13d6eafc7fddf4d30a8aed52ffd6a01f5cdb788f66560c78d43721757", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree_stress-count_in_range_returns_lookup_error.log": "d93068c642b2c2da235bbffcdcb276b702370ed9aa6acd868cee77208a150684", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-btree_stress-iterator_endpoint_error_is_returned_by_init.log": "9737a05d5304481bf66364625a69f9ef9b1a9e724b91163c570e527cde5712d1", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-build-files.json": "9b627713f160678ec3ec46016393d60bf54a2cce403c459844eff609cec13108", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-build.log": "9e1dcefc51d9df8507431bc024c8990cd372af4c1d4a858bff01e7605995dcd0", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_blob_checksums.log": "aee6b8b22013c35149026bab75ef77820b07cc6757d74091a941a4de167774af", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_blob_descriptor_sizes.log": "6418f80fb950aa5d20464f59620009a7f805040fb24ce775a7eb3d62513a174a", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_btree_pack_abort_releases_reserved_extents.log": "0a9a73ca057c56d8beeb16d6aa624e51a1c0d67530681889ca1b109e477948a9", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_btree_pack_rejects_counter_overflow.log": "b43e95c3415d3a29ac21086af8fa23bbbc8ef8a36a09f8cdf18c3bffe4a60c78", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_cache_read_errors_reach_core_operations.log": "3270970e82294fb7db0644c997430cbf04799c48e6e5335eff9d5e0b106f04f6", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_invalid_branch_reference_rejected.log": "bcfc037e7a88f2b42840e725c9720567ee4454511b71f460db37407e77e8254d", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_malformed_trunk_child_height.log": "cf8f344555ede7706754c30a3b6899ff931910546d8ccc7886f88352ff7b7d4e", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_malformed_trunk_pivot_bundle.log": "9a18a943502cff78e3d28eeefa6c25f7b906618d87fde5ee1737c0e64f67d21d", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinter-test_malformed_trunk_pivot_stats.log": "51451b6624e8966fabc72d07e502189698afa031250c87a033f8ab7558225fe1", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_bounded_iterator_start_normalization.log": "7e744ae5d37c88bdbf3fa517830222b52729801bb4eb2b30d83cd3a2a4cf01ce", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_branch_prefix_malformed_leaf_entries.log": "86a890a4b92162805121ad832deb4742f0def5db1ba981536f57b94ffcaa0471", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_branch_prefix_minimum.log": "1668270b50a63267a2ea1e6cf68c5ecce153543857754d8718ac062fe1e3f750", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_branch_prefix_roundtrip.log": "8ca175ed267d84340ca468e74c87000549ff611a3aa839c62ec30d18ab48c719", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_branch_prefix_variable_iterator.log": "45aff94c296e5e88c78c483c7e0687ad2095700a4a0a03dc285e2c99827b005c", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_immutable_branch_custom_comparator.log": "9750211fa5fc5a630b6bdac179c7fc5d4da1524e4be438a7a077e53b15cbf9ba", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_iterator_custom_comparator.log": "19a644daf1bc5519bf09c0bcd1c061441e219c4b94553664d735c0e661c328dc", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_iterator_prev_and_next.log": "685565352427f76eda289f2d9772ce859a364c675dcb8f1884ff787e1fb9a0e2", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_range_init_error_cleanup_preserves_branches.log": "0e019e29666ccbf2a8355b925ce6bcabd78b7388627ae097b5ed84c6e4264882", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sanitizers-splinterdb_quick-test_value_size_gt_max_value_size.log": "596ff4e9384ed5e750048a9a9d83bfd3736c807bd5924b41e59fa4f6af52d9e0", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/selected-read-tests-v1.patch": "bf964decfeda41d5b12eb686eff5ea1da498c99c7681e65beeb8ef5135c4c9c3", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sha256.json": "14ff1c6a89ccf0391d830a30c810060eb7c320321804421eb7c2eab40a261dd9", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sources-after.json": "d77aacc9bd7aeb274cd6e1c82f66f924b9796799249efecef69d762e54e01d78", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/sources-before.json": "d77aacc9bd7aeb274cd6e1c82f66f924b9796799249efecef69d762e54e01d78", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/storage.json": "9f9eff2f7c13cbfd9a4dec159309e298e8a277dc9df91409039648bb2dade37c", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/summary.json": "aca14c89d573bd5c9346a58ee83d3f35a0598e9f09ae1262c1d02e6f1568eb53", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/test-overlay-apply.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/test-overlay-check.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/repair-validation/validate_selected.py": "0acf4b32497bbedb06b3f36cb7999f49c82b23510527b076d77ded913fe1b2e3", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/resolution.json": "0c4fe6d62356c2baa9736ae42239e10f05f2251e09c8641934923c1bbaf6fc5b", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/run_repair.py": "5f7683a23d01f609b7ecbda7acbff90b7d9dad40e9ba485664190e3aba4a83f5", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/selected-io-alignment.json": "c71c268ef025f6f43fcc1ea030128b72a14742ff1bab89ae9f7d46565c2d160c", + "benchmarks/results-20261016/btree-nonlexical/alignment-diagnosis/selected-io-alignment.patch": "978146f6016019a94866b6d0fdabb8d43738f4f86704ed372c7d6e9a7808c400", + "benchmarks/results-20261016/btree-nonlexical/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/application.json": "72c5dffbbe3d90651f5b4e144f4d11bb1e9c004fcc33272dfe253a806c87a9f3", + "benchmarks/results-20261016/btree-nonlexical/audit-campaigns-final.json": "1be4cc5747f3eb3e6af4508676714eb62e699b821476ca4e6c572521c6816de0", + "benchmarks/results-20261016/btree-nonlexical/audit-final.json": "4d8c3afc19b9257dadfcab1d41e7f647a7d429f5d294c440c89dc5aa87df619b", + "benchmarks/results-20261016/btree-nonlexical/audit-v2-from-v1.patch": "097407a0722d76e838f27dc159f7c1645b43d1d8874b0155b83881e24a1a714e", + "benchmarks/results-20261016/btree-nonlexical/audit.py": "2d7946e1a337f6506144d5592816c7cd4615de50d4838b9a17e8b27560540132", + "benchmarks/results-20261016/btree-nonlexical/audit_final.py": "aeee41e89c04bfacd211be0d2e2f42dd9b9fab6e1c5d2fbf42f65d11aa6a273f", + "benchmarks/results-20261016/btree-nonlexical/audit_v2.py": "a0781b7c45ce9e0c7dc474fe34462105dbf8496486aaa79ec10d3aa63eda6fe4", + "benchmarks/results-20261016/btree-nonlexical/build.json": "c6e8058d572fa4e60a6d39bb6a2d0b0e268f52464b5b65866240b93d25e88b75", + "benchmarks/results-20261016/btree-nonlexical/build_variants.py": "0f6539ddb8743187e9c8c8234406e6c320b9e04d0b96f76e366262c9dc107253", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/build.json": "2732f40cb8d6c3a959eee50aea5991e49cbfec4c6fdeafc3d781595500742133", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/build_variants.py": "e2fb995dcb4192a70beb35d3b9873caebd7e9ecdaaaae21294989eb09c63cae2", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/invocation.json": "b169d515a711a0ad36a2483aac4f89dedfcae2b0703360cf1e1e1201da15f725", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/sources-after.json": "284b89ab97ff7cbd60bf0a76fc943ff00418cde4f6bd51357d7384bedd6cbe54", + "benchmarks/results-20261016/btree-nonlexical/builds/callback-search/sources-before.json": "284b89ab97ff7cbd60bf0a76fc943ff00418cde4f6bd51357d7384bedd6cbe54", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/build.json": "fff48d6d6da48559a232e45361347591d80662d99776d8421f9199a626b2ef4e", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/build_variants.py": "0f6539ddb8743187e9c8c8234406e6c320b9e04d0b96f76e366262c9dc107253", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/invocation.json": "e94a6e67dba7527cc59bd65b85ac1fbd775aaf6025ffb098205eca1b3d611889", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/sources-after.json": "3a555b0094741a06b18d4234a6ccd8fe5fa9b88dff31f8a91efb52959288b427", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-blob-v1/sources-before.json": "3a555b0094741a06b18d4234a6ccd8fe5fa9b88dff31f8a91efb52959288b427", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/build.json": "c68ba200043b3481602480addec3dcd97c9253f525dce66da34b188722cd540d", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/build_variants.py": "0f6539ddb8743187e9c8c8234406e6c320b9e04d0b96f76e366262c9dc107253", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/invocation.json": "bbfc11125b362904bf1a2f7102a5b907894666e51fba32c8ef1ae007ca639734", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/sources-after.json": "f710e734e1c213c4521ee655e142ffd8422b348028edec9cddd76d5ed5e37442", + "benchmarks/results-20261016/btree-nonlexical/builds/combined-read-v1/sources-before.json": "f710e734e1c213c4521ee655e142ffd8422b348028edec9cddd76d5ed5e37442", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/build.json": "a79ad32c1a684cd7d8d52468931c1d9816e9867ab91d2fa502d446fd52df1731", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/build_variants.py": "e2fb995dcb4192a70beb35d3b9873caebd7e9ecdaaaae21294989eb09c63cae2", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/invocation.json": "a56c493a2b22652c99e56ddd95d6ee4a7cd364a2bac63ca89adc5d6bcda713a2", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/sources-after.json": "748f03b677ab2c5b640ca31ec3c22244770d1be6c50e4ed0d5d2d2b0c7750bb1", + "benchmarks/results-20261016/btree-nonlexical/builds/decode-outline/sources-before.json": "748f03b677ab2c5b640ca31ec3c22244770d1be6c50e4ed0d5d2d2b0c7750bb1", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/build.json": "a17d276fa5afeb7e857af84abd878bfee516a119a2ce51350d6bf2f550d235ed", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/build_variants.py": "e2fb995dcb4192a70beb35d3b9873caebd7e9ecdaaaae21294989eb09c63cae2", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/invocation.json": "9f74793084f5df12d7d0e96ce5fc001511728727231a63b4e721cb24b2577333", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/sources-after.json": "1f05be0f0f8937970fac38490f1d18771c114b43a8f4e00752d2d8d233013607", + "benchmarks/results-20261016/btree-nonlexical/builds/lazy-pivot/sources-before.json": "1f05be0f0f8937970fac38490f1d18771c114b43a8f4e00752d2d8d233013607", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/build.json": "30cc4cc09a68ad7105c85e3e413535509f0092c319d967d5a6083ed5ea99e50b", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/build_variants.py": "0f6539ddb8743187e9c8c8234406e6c320b9e04d0b96f76e366262c9dc107253", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/invocation.json": "593a109d3e2e8d99e02f148e61d84c8628fd9ef3b6556139c10499ea1d516516", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/sources-after.json": "36675465d77c83d3157a26521e4f0f9f01d90697fb80277ceee6f11f3463f565", + "benchmarks/results-20261016/btree-nonlexical/builds/message-type/sources-before.json": "36675465d77c83d3157a26521e4f0f9f01d90697fb80277ceee6f11f3463f565", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/build.json": "1e9e0bf16dc43184c2b43183c2b52400ac852789c4f8390547d7d511ced0bceb", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/build_variants.py": "e2fb995dcb4192a70beb35d3b9873caebd7e9ecdaaaae21294989eb09c63cae2", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/invocation.json": "cbf4b05040a51d07595e3d64673476abadf75aa8963413d90d4a7e35dc9585c7", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/sources-after.json": "4721fd74b0aa7ae358fc5d8f581c954acddc7a13623fe2ca817374f41dee7875", + "benchmarks/results-20261016/btree-nonlexical/builds/prefix-scratch/sources-before.json": "4721fd74b0aa7ae358fc5d8f581c954acddc7a13623fe2ca817374f41dee7875", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/build.json": "7e9e6358c93d860f9ccd8599f6d6f75ce88a0f1bdd3ed8ab22713d8b34a56892", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/build_variants.py": "e2fb995dcb4192a70beb35d3b9873caebd7e9ecdaaaae21294989eb09c63cae2", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/invocation.json": "be181ceb14668c47a1bd237cc1110ad1d19adc1604da0d09b26e0a97966eb647", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/sources-after.json": "db4c09932701468c9a3bbc6c9d8f4b0d535a4a17b501e8364c58fd00213ea40b", + "benchmarks/results-20261016/btree-nonlexical/builds/rare-blob/sources-before.json": "db4c09932701468c9a3bbc6c9d8f4b0d535a4a17b501e8364c58fd00213ea40b", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/build.json": "c566b777e07339544b9edab277ba00873ca7696abc480de03b39538c39660e82", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/build_variants.py": "0f6539ddb8743187e9c8c8234406e6c320b9e04d0b96f76e366262c9dc107253", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/invocation.json": "f00aad1897c135a28b37e400829ebc93dae3c2730e6de0a346c721de140248f2", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/link.log": "6566bd93435841d5bbd9d23b3a83d554d15e781431635d97ef151473b05bad8f", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/make.log": "e375583b62f45dabf1ff4dc66796b3a0da0c8930dc7816b0a94a2074c309e173", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/sources-after.json": "cede7431ee63190262e4e805fb5b2087c0f155109cac43e34964f27ac60f7075", + "benchmarks/results-20261016/btree-nonlexical/builds/selected-io-alignment/sources-before.json": "cede7431ee63190262e4e805fb5b2087c0f155109cac43e34964f27ac60f7075", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-plan.json": "95cac0484e689704245bd1ee03807865c7c528cf736ad3e157111c948aea5303", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert-plan.json": "3bd559fc637e3832ca1859de7f4e803150f8d08d398349fe263634111f650848", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0001-r0-nonlexical-insert-random-main.log": "8fa976591003266ec5c8926fbb7c48b5d34d500204479cca0982afdc17003097", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0001-r0-nonlexical-insert-random-main.stat": "d7b673a54f47a70c0b8626ffbffa9750ce1072090e40e45c7301c71c46b65c1c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0002-r0-nonlexical-insert-random-selected-aligned.log": "0a3f8ebedd24fa8c36be585a2a51cb8913bad861af95c5a234d54e488769e7ec", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0002-r0-nonlexical-insert-random-selected-aligned.stat": "abcbeace5e80db8dbf09fc965468cef58b68204fff22f3783be9be82ef1c4d82", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0003-r1-nonlexical-insert-random-selected-aligned.log": "af1567ba3db1699d964d26d2fc07a86f21f31fc3b5dd567db1253d3a83bba84f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0003-r1-nonlexical-insert-random-selected-aligned.stat": "04fccaa37fbcbd0715d713d59a0142d5ced5b5c80d493f6f9632e3c37fb7b09b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0004-r1-nonlexical-insert-random-main.log": "c3cb4fb825f5f9d6e6fd1a0b4515b9373ec343f7c28ae8408bdb5b909e70ff27", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0004-r1-nonlexical-insert-random-main.stat": "8828d42645df8f6d3643c28d32485509b68b787bbea6693162734811969a614a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0005-r2-nonlexical-insert-random-main.log": "eba6e4ef96dfa85b2160f7020139a2a81deb3e4caf04f547fb77a201775ac813", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0005-r2-nonlexical-insert-random-main.stat": "057d7be75a60dcfffd23f8c1e849b8cfb7e96ffcfad9d14a5cd6cdda8a74819a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0006-r2-nonlexical-insert-random-selected-aligned.log": "8dc540a3b8955a0663fcff09edc4b956a883f842561d171853e2ae904207d95b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0006-r2-nonlexical-insert-random-selected-aligned.stat": "eeabd7b1c8a73eeec2ec295e7c63427d50af612672a497808aeba31c542cdcf7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0007-r3-nonlexical-insert-random-selected-aligned.log": "5975f14314fe962bbad2ccc805b594d9583d08b1645fba72b1bbd2f9ced160d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0007-r3-nonlexical-insert-random-selected-aligned.stat": "e4ac4b69371e12fe3a91dbba67087cbcf9c371eaa8b022f3e69e2ca02205daea", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0008-r3-nonlexical-insert-random-main.log": "f76f5beadda11368431324ca90a241f0cb84c4acc28e7124d4646a2af0c00a18", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0008-r3-nonlexical-insert-random-main.stat": "4ec66fa16bd2f5f028725397f5f633cff31c01dbe0d4245cf05f281ca0e65579", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0009-r4-nonlexical-insert-random-main.log": "96a047ead81d16e8e7565a7fb0f3056653f0cc94d7ce35ca8a7bb528657e19af", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0009-r4-nonlexical-insert-random-main.stat": "c41d0dfb6cb7104aa6f82cdfbc7007a811490876155e3ca10118025992136c70", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0010-r4-nonlexical-insert-random-selected-aligned.log": "6b25958fe556797fa36b9769a0da2fa6e2fb0951bf3e4d4456fea374fbfeb421", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0010-r4-nonlexical-insert-random-selected-aligned.stat": "c1829460981ebd399372d9da4944c4f866790998114bd5502fa689119a65c25f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0011-r5-nonlexical-insert-random-selected-aligned.log": "71e1348e4e98b851e9318b3d0eff5acf2172783d72e86f8bbfb73f4bcb92b7bf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0011-r5-nonlexical-insert-random-selected-aligned.stat": "c520bb18f5f13a57d73c78944669ddda34982c738d3311fd9aa9d2e9048da810", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0012-r5-nonlexical-insert-random-main.log": "9dad991bc56f94001c253ee3e1f814b2c95e8b8c35f707bba33d4fe8b32e86d5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0012-r5-nonlexical-insert-random-main.stat": "dfef056a7d3dddf8dfd345a9a9764a92582b37eeecac9f8bdca24ed8d03cd77c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0013-r6-nonlexical-insert-random-main.log": "2bda05676648bdaf5d0a75bad2c9d35edaab8654ed87871a34a14cb0058b01fe", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0013-r6-nonlexical-insert-random-main.stat": "24b1598d8a44e57812eae2047a148fc5c74f026782b0754d3dca7189f914d1a7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0014-r6-nonlexical-insert-random-selected-aligned.log": "0b71cb4439c3a638b8f67948d350d4a252e4af25b4c818c8a0bd88e3d541d270", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0014-r6-nonlexical-insert-random-selected-aligned.stat": "9850186a297c751871cd92b6e79536d3fb0ff7d77d0aebe5ff9b21ef42440ad0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0015-r7-nonlexical-insert-random-selected-aligned.log": "89eef8e3158afdd53ba123478a42316ee7750bc8d5dabd490b3b36920c97d334", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0015-r7-nonlexical-insert-random-selected-aligned.stat": "6c9dd596c6dfec3af16be3758b2cb7094b7c64b10d21add4f267ac1be53cd598", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0016-r7-nonlexical-insert-random-main.log": "724bbfd92b0c721e76e7b2907a1481c7f74a018799f94495f170862108dd4e00", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0016-r7-nonlexical-insert-random-main.stat": "eab4f51d0c53f002a978dbe63de3bd3c37b6b2c6b73bc60d78ab6f8fef5cd83e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0017-r8-nonlexical-insert-random-main.log": "6e09eb3e434dbd1764774cee0d2cb01b89789527766b2ea45eaca4dd3ba9ea7a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0017-r8-nonlexical-insert-random-main.stat": "f49b167734cacb232177a5155c2111a62615948d61d9a5e8ca50deab47ea2658", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0018-r8-nonlexical-insert-random-selected-aligned.log": "a81e1ab40d89c5a1e0f26e0e61cc067c7aea5dd653698b72721237068104a10a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0018-r8-nonlexical-insert-random-selected-aligned.stat": "cacb2133e764a607574edf1dab5da368a3a4c1196840bff38add4d5c25fdcfb7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0019-r9-nonlexical-insert-random-selected-aligned.log": "ea18026f2053db3742d724ebb2f82149b50049281792fbdc06b93fc02d90dac5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0019-r9-nonlexical-insert-random-selected-aligned.stat": "b058f2b1b25146c542b692ed38255b05494e19745b1f4db9ee3403f8f6601b0e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0020-r9-nonlexical-insert-random-main.log": "e5fbee54bc73d47bdc7012ec1a8afd1dabcba5765334e7052efc5fe20746bff2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0020-r9-nonlexical-insert-random-main.stat": "98c5b9c28f53b80cdb17484bce0ceab830d4c8d1b24668d6665f4e3aebffe1f7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0021-r10-nonlexical-insert-random-main.log": "efca2bd602d9f87a79c94f7297e19306feed62a469b88c3ac67a7326492138cf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0021-r10-nonlexical-insert-random-main.stat": "9ed5eaf417022d4ec479f2d54fd60541378d9fe003356c71eea12d47b1d14534", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0022-r10-nonlexical-insert-random-selected-aligned.log": "d75a7cb0b66a465826496abeb75fc7c78d8c22b2e48a5f5470f818dc43fdba7b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0022-r10-nonlexical-insert-random-selected-aligned.stat": "4544d479a45d0aab2264d9dbffa99ba2c9759d973a9e0cbfd046c27cddc2d881", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0023-r11-nonlexical-insert-random-selected-aligned.log": "c301eb3ecbe9230ea5a26879ee1cb6333ad7790bfead0a93705b28eba6d06813", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0023-r11-nonlexical-insert-random-selected-aligned.stat": "5647b7f099fa061260dfd38f4396aa1a28227c9c198276ec341f74bc0dd9d688", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0024-r11-nonlexical-insert-random-main.log": "ab6526cd3ca645b73a5fecbd9463cfd438c2d369bd85db14f9340a7cce70bd51", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0024-r11-nonlexical-insert-random-main.stat": "a4b96748834f94263507a451781fb8d193d482f6da1575d0ecebae43aa7c36bf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0025-r12-nonlexical-insert-random-main.log": "982bb467f3a114621d9c494587d1ea19a46af33a12397215b2fe22a5b3cabc5f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0025-r12-nonlexical-insert-random-main.stat": "be1b9081f0b3413313877539d0c5fd3c57a47972b8c5d8a184e0d2b303d5dfe7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0026-r12-nonlexical-insert-random-selected-aligned.log": "1fc3a37a0b29406c8541dab41b325000538f1cf64c0a7218f2c1caa12cb30864", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0026-r12-nonlexical-insert-random-selected-aligned.stat": "b93bfc5616e2164671ef167312fc25bc83923d05584c943db7f358ae4901f68e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0027-r13-nonlexical-insert-random-selected-aligned.log": "45e406a3aaab219081e1a06e5cd4c7c532e9f7fd44175f9ff086b71b9be7fb82", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0027-r13-nonlexical-insert-random-selected-aligned.stat": "c44eee580f9f6e2752d3dd6e6943c1ce49be9947ece077c53502ad45878a89af", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0028-r13-nonlexical-insert-random-main.log": "0fd02dff17d9b69acd03c92e94035d95a8d96382c3ea222457a6976305a95e3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0028-r13-nonlexical-insert-random-main.stat": "493b803b6ab5adecbe712cc436a52c9d46374fbfec8ca1750901caeff1dc2673", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0029-r14-nonlexical-insert-random-main.log": "c907b0583f531d5c439dc81f6e2749bab50287a373d3475631402c78a1c39233", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0029-r14-nonlexical-insert-random-main.stat": "65e7570926e4f3c27b619916f1c0cd5f43bc8468223744c79753dba394ed5382", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0030-r14-nonlexical-insert-random-selected-aligned.log": "c392edadd2b1f3963680b4cab39ead5442c9914ac7d9c4e940f3ea079ce0fcd6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0030-r14-nonlexical-insert-random-selected-aligned.stat": "444202b8e1682274e32b73f6c949391a009da62c374264714e325dc6d46f8f3f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0031-r15-nonlexical-insert-random-selected-aligned.log": "1b0c3a128aacbc3b1b81f4cf09e857f228806f64592d1a7ada46867d007dcaf6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0031-r15-nonlexical-insert-random-selected-aligned.stat": "ef4660a0eb2e466eee2383abd7708a461d7da9937612a1c083209b8383c47a5a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0032-r15-nonlexical-insert-random-main.log": "fc7f14425ba9a2203dcc1c475a371eb4a2e88863703e9e63a4c5a824734e8c68", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0032-r15-nonlexical-insert-random-main.stat": "ab48408bdbe60b3f9115d38e7ac033c73fb8f0eea64e1371388df7c34d9ac754", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0033-r16-nonlexical-insert-random-main.log": "86996ac4894c057988c9fff39dff5ba71ffcf50dfc007b332fc5e845cb879d0d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0033-r16-nonlexical-insert-random-main.stat": "1b50b3ec7b12592f2a2adeee369c8a7fbda2e635c31516f85a73a0421942d164", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0034-r16-nonlexical-insert-random-selected-aligned.log": "4c2280fa2ac281bd64b1c99d1702fa5492b05b7f35d777985bc80f93b4a66c31", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0034-r16-nonlexical-insert-random-selected-aligned.stat": "4438881bb19e209ee00efab9fadbee6f0cc92215b90fb9fff9e0573db64f562f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0035-r17-nonlexical-insert-random-selected-aligned.log": "b46d84ee5ceca76774b1a8c97d6d783fbcf3f3a7acdecc8bf2fb7611ea33e305", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0035-r17-nonlexical-insert-random-selected-aligned.stat": "fae16c0be70d01241380487f83c3f2738bb3641d924ba76c019fb9b6ba06178f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0036-r17-nonlexical-insert-random-main.log": "61c19bd41b7b4d79994fdac16c4062228d1cf78f646e3e67900c23258e6ea1ba", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/0036-r17-nonlexical-insert-random-main.stat": "b376e8787aad39d3c1b3a7f0c9ca6c76124f615c95bbd22da20ef6e06b82d3cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/build.json": "c6e8058d572fa4e60a6d39bb6a2d0b0e268f52464b5b65866240b93d25e88b75", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/independent-review.json": "c55ad290c70945e09db6730a01e3cbf8d22a80c616463663c2e00986d7465bb6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/independent-review.log": "5bdb0e3e86cd26b12fc024706094c24a9a8708972144311f0c79a2d5a755c7af", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/manifest.json": "28bc94ff63e6ad605a0a91a3dd5ac75e05e6daa6f7ca37fa55991ed28a563e14", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/plan.json": "3bd559fc637e3832ca1859de7f4e803150f8d08d398349fe263634111f650848", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned-random-insert/summary.json": "5d7ba53a81a82167eb08d323f5bcdb11309453de04174c129924d514d2cffd8b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0001-r0-common-scanfull-main.log": "c7e77b387cebd6709652e82f7819ea289eeaac4680a9f5204321f291c952b7ab", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0001-r0-common-scanfull-main.stat": "b98712b3d0870d49fcd4777a63fd923ef6993cdda79426300473f44e917b580f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0002-r0-common-scanfull-previous-selected-on.log": "cbf2d67db9f59b354c7ddf8349d59074845cd8c4a6ca455ad5e0879ff93c2473", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0002-r0-common-scanfull-previous-selected-on.stat": "514c48bef760ae8992529361f727c25898bbe5dfb5c1578333080cab7a48e8a3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0003-r0-common-scanfull-selected-aligned-on.log": "b3301ff15d4ce2f3bd542c955373d7e9fa63e93e7a21249b4442f23115b0de5f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0003-r0-common-scanfull-selected-aligned-on.stat": "d68f4aba5309a9ba3665c8d2e444020acd9ab3db1722c71cb87fa1d10add3a1f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0004-r0-nonlexical-insert-random-main.log": "0e79623b868e8d4c1c28c1c92c4eda8555880ddd9c38ef19b4e61ca69541b42f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0004-r0-nonlexical-insert-random-main.stat": "580ac55c49dacf8810b1af9c05c7a0d573e060322f08d9ab696aed029bba3e58", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0005-r0-nonlexical-insert-random-previous-selected.log": "6b89b3b827ccdbf58c0744559180e5de59e25572a1472d5c72ec2617f435c0db", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0005-r0-nonlexical-insert-random-previous-selected.stat": "e616579d08400f8cdb281d013b77357fc0dfe28503799392c0955a1e10c5b18c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0006-r0-nonlexical-insert-random-selected-aligned.log": "1455fee23da25781e4059a7b6a989b884edc459fa3849040256dbbfc6570e75a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0006-r0-nonlexical-insert-random-selected-aligned.stat": "8dcc44a8b8d6bb6dbf10dbdb00f87b1429073d0ff4f4435721e02cce36bbe975", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0007-r0-nonlexical-insert-sorted-main.log": "d2efc4f4915b177c8a1ac18580899b0004aa3f01fae9c8576337afcbdb692650", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0007-r0-nonlexical-insert-sorted-main.stat": "08750fd2274df232bf16b90d5decbb39a53b9f3adb93262c434586a041ef8558", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0008-r0-nonlexical-insert-sorted-previous-selected.log": "3e2d2426d89693d79c9db0bb8ca255e9bef3fb91451ffa396a290b42f92165ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0008-r0-nonlexical-insert-sorted-previous-selected.stat": "ab6521689828e6d19cf9083905d95be80c7b8712c003e08cbe8aa83aefa9f13e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0009-r0-nonlexical-insert-sorted-selected-aligned.log": "c6b067ed5f7e70fe47cdf0475c86dbf3498736de52de648ad13434ac06ce0d63", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0009-r0-nonlexical-insert-sorted-selected-aligned.stat": "0cc9e5b56272f95ba989b39b1c8e67701402dfd3acb06586dc2628f57e126527", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0010-r0-nonlexical-overwrite-main.log": "3197f840004ea20089f3cbe9a623a01f8edd577dbf4221f75cf1346b5a62ea12", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0010-r0-nonlexical-overwrite-main.stat": "aac7d7804aaf1e306a1cdc652812fb29e51dc25bed8a6c38e6ef52fb278a94b4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0011-r0-nonlexical-overwrite-previous-selected.log": "8a8bbc87f17f29b1078424e95bdd6ae4b0c33c5d284a380c7869a7222ccf1043", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0011-r0-nonlexical-overwrite-previous-selected.stat": "2108464543e75892e6fa9fafe17dbc174fb302f5c9d2f7a24aaeb7d903ae3352", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0012-r0-nonlexical-overwrite-selected-aligned.log": "3eef39224000659117c05c1c67fccb0664d98809e7b88663ceb2c7532c643a9b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0012-r0-nonlexical-overwrite-selected-aligned.stat": "47e6535e2c6d11cae8a670d50a9af6031f3c8f6f3a190379f20fcfc6e928b648", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0013-r0-nonlexical-pack-main.log": "984bcd48ac9855df9e92015fa26b9c457c88b9ece0c8978ddf8e957cf085dd99", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0013-r0-nonlexical-pack-main.stat": "9c665813b0e356ee1cc1a3148d08d3c3df769fb62c282f96204acc2c7dbe8573", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0014-r0-nonlexical-pack-previous-selected.log": "5bdd7c35549734622a2797c43efdda04956b9b4a6b26dba380450181bc1727b4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0014-r0-nonlexical-pack-previous-selected.stat": "76dc144e41e9432a60a4c837666b4dcb5e24a0938b3248985e4c532617543fb3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0015-r0-nonlexical-pack-selected-aligned.log": "fbfde175d17a5d173f876a2ef900f78e49117818377888305e5166c00504140d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0015-r0-nonlexical-pack-selected-aligned.stat": "de3595bcd8a932bbe2bcc4343f82131cb75f06283944d81bd0b6088f6d2b9b7b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0016-r0-nonlexical-hit-main.log": "3193c3edd4a007755e4febae875d250545a547049e3277e87c8a9f3c08898bff", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0016-r0-nonlexical-hit-main.stat": "410ed958e4e1428c4c0b2b40de7b698912c8494c67445ed46c340d758fac1b3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0017-r0-nonlexical-hit-previous-selected.log": "56858851e02b6d2036a095d47d49c16150968e916891dba9c81c74999cae93e1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0017-r0-nonlexical-hit-previous-selected.stat": "e40ca3ea7c7d17ef079a21fd8c8868a553b09dd7fd6f00927e628c7258d32eb9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0018-r0-nonlexical-hit-selected-aligned.log": "0ee0a0fdd3fdce395ac3eb56dd7404e072ce0b6e7a9a744b9c401deaba922d78", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0018-r0-nonlexical-hit-selected-aligned.stat": "71ac289187d471ff2fd25692598a77e7758c25e1e8af4b050b70c1b946b7b3b0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0019-r0-nonlexical-miss-main.log": "1d731d921353d41e62ceecae2d4a1416d39f178a5b5282fda14a8abb7e8468b2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0019-r0-nonlexical-miss-main.stat": "a99385ed824a203dd927df1ce44cdcf10f0a797ce853a5d38c0e5c6e77345037", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0020-r0-nonlexical-miss-previous-selected.log": "42c4306e5611ce390280f3624bcf92f207765f4ee98f8ccf1751e10cd9fe6baf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0020-r0-nonlexical-miss-previous-selected.stat": "df4601bedf681d19ee970158e1a99fe394d2eeac5dcb759851dd9873d0ce6119", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0021-r0-nonlexical-miss-selected-aligned.log": "48a8df43caa2b3b2efced52b6bbe5d84bf68717de106021a58ef4765f323a835", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0021-r0-nonlexical-miss-selected-aligned.stat": "06974e1ae801f7294305a6fdf2d81196b75e10bd64595aaea5d64f0f8a952a66", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0022-r0-nonlexical-scan1-main.log": "35e18888d204e81b263bb19ef0f06d3ac3d43e28acbe0a42ea0d740f5b5856a0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0022-r0-nonlexical-scan1-main.stat": "9a8115983db9a66dce5866144181d0bf01ef204a2badab76cfc02f27356e007f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0023-r0-nonlexical-scan1-previous-selected.log": "6090e7e495674e54a6ab4ed665c5ef28abe6646b908c128cc2a454f985c4e0ab", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0023-r0-nonlexical-scan1-previous-selected.stat": "1c4fe5f5ad6d8bcf7255e3781a286f81fba54c4f58c5945814a9c1fdfe6a2c21", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0024-r0-nonlexical-scan1-selected-aligned.log": "1f424df6abfed89583c98243b8e26137bc927085e7ad3d09c062e2c0940e84d1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0024-r0-nonlexical-scan1-selected-aligned.stat": "4dfeb2130898334c0d6b90ad7a8a719ed0e60aab0e31534a80021903d6be9e5c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0025-r0-nonlexical-scan10000-main.log": "be3918778a334c4d472a349600fec0a388b4905c694be4969af3da711a7f4256", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0025-r0-nonlexical-scan10000-main.stat": "5ceafe4ee775b2d8051bd04d0dcb95e91c16d18d077c51731813d4627851d175", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0026-r0-nonlexical-scan10000-previous-selected.log": "5b9f99238c8ce0a52dadae1922f9504851a2591730e98d9982390aff5269d8d5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0026-r0-nonlexical-scan10000-previous-selected.stat": "e5b9d39ed87658d6258ebd5e2538be97c660ce98a1db05e607de746c11800b9e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0027-r0-nonlexical-scan10000-selected-aligned.log": "f615ac2e86c08d5758234147dde3432b67c39793614c8ff596d63e0c0bd3b743", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0027-r0-nonlexical-scan10000-selected-aligned.stat": "0ceee37c3017ee915a7f0f9e6a75afe70561d4868197d34a3192d9d67fb75aca", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0028-r0-nonlexical-scanfull-main.log": "5fb50f86f8a8b7548f2cfcf34703cb5dd29fa5cd743d202d1fb646e0c3b863b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0028-r0-nonlexical-scanfull-main.stat": "43b84b668508f25d68a955ae030ccba0ba30968f114273da284cf561e354a853", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0029-r0-nonlexical-scanfull-previous-selected.log": "7b0f0ce58012acd7312b0df27434f333d08156f923c6c48db5174964a5ed2e49", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0029-r0-nonlexical-scanfull-previous-selected.stat": "9a48323a4a7daf4883b13a2e634e225dcf595dcb6b2ce55a3a479eeec1c1f0ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0030-r0-nonlexical-scanfull-selected-aligned.log": "4b8aa8b5b5eda6a07eae3ed15cf93795519aed9cc81d3081a2e6efda860e91ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0030-r0-nonlexical-scanfull-selected-aligned.stat": "2e2c2efed1a128a00650d55793cc108a203593ea0a0e93a1eda77616e763f69f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0031-r1-nonlexical-insert-random-main.log": "4a3b1b73f375b76c24604c15fe40f769988a09ad1f626178a02b61a4b8776e12", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0031-r1-nonlexical-insert-random-main.stat": "98bcbd5e3696c5c0e9d095bac9c4a9135dcaa572d8a5279be2e31595416ddb6b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0032-r1-nonlexical-insert-random-selected-aligned.log": "beac9cf5dbd02553ae4b9471ed80e864561e1d4181ceff0fa125cee1315a668a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0032-r1-nonlexical-insert-random-selected-aligned.stat": "6b0495f75b52f7b0492ccd0ae7dfc8b45db0d436cd0653153e27d3b5e385fe55", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0033-r1-nonlexical-insert-random-previous-selected.log": "1c98575b7b3423ba7bdcf66267f6713729ac121792f4cacf1c214da966027aa7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0033-r1-nonlexical-insert-random-previous-selected.stat": "536bfe475e7762b13bb1ca5586f1cc328ead0392f6937791e74612d0a95df799", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0034-r1-nonlexical-insert-sorted-main.log": "6f03fc5a74d81d0f894e2b8b7e605ff4ebcb05a7bbdca9d609a04babe6d837ca", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0034-r1-nonlexical-insert-sorted-main.stat": "91c34df35eb3b19dbe03ca5977082f4a5038a2b0824351304c536309896d5303", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0035-r1-nonlexical-insert-sorted-selected-aligned.log": "50584e467e4d16eb5cf7f0d280f968755c00b6bdc59b65aa1c60c4c76c3bc9f1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0035-r1-nonlexical-insert-sorted-selected-aligned.stat": "e70eec7a07101dde64d26b876a8febace3381aa93cdb9c44affaffbd5041d3e5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0036-r1-nonlexical-insert-sorted-previous-selected.log": "8fcec716bd117afb5c7daed545a24bc77c68d9397302d379fb6049e9b9f12ee7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0036-r1-nonlexical-insert-sorted-previous-selected.stat": "b5634675cb5585c514045fde38a229b0c864b2a7b76ece2cc6fc6edeb82620b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0037-r1-nonlexical-overwrite-main.log": "c520697cf9173e442d9a22eb0c30d5f75d94b3c196efffbd28f1ae11169eb9b2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0037-r1-nonlexical-overwrite-main.stat": "7ddda6645c0f718dc21bbdeeee67db9b307f79ca6ceed7bdbeb4e15ba80fa71c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0038-r1-nonlexical-overwrite-selected-aligned.log": "e3630d9ada2c2111f51b3177635a035ab55a483fd8561cff0a00d0638825350d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0038-r1-nonlexical-overwrite-selected-aligned.stat": "fc66475b41501b83673f8bffc6c39ac67f2f43a19136184808d99cf5d50176c4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0039-r1-nonlexical-overwrite-previous-selected.log": "c07044a9fb709f9b3cd59ce3ee18e9e35278b8e314dd3d22c34a30898a080c37", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0039-r1-nonlexical-overwrite-previous-selected.stat": "ed1ae5c560150b5e685b05a8e53dcaafcfee93a80db5d28e33b5a6a98deb81f8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0040-r1-nonlexical-pack-main.log": "d49422cf32ee6106d7ebdb7e01c8cf2b028cd05a629133cedb5da14e672e25eb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0040-r1-nonlexical-pack-main.stat": "52cd39563074c4d09605f89726ec511e92667b0aa3763f7d3e40a58f5864bd59", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0041-r1-nonlexical-pack-selected-aligned.log": "dd7b24288e6006bf0c4b2501e5fb9c98f923550f02cac1510abf9d29d1440a5d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0041-r1-nonlexical-pack-selected-aligned.stat": "bc27afad70df1f10e1b9874aa6d41b1c2f728431956e817bdedb7ce856614d80", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0042-r1-nonlexical-pack-previous-selected.log": "df5bc1f3386efb23d789f0bedff386525f88c51a486e6f6a0d0bfb411777e617", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0042-r1-nonlexical-pack-previous-selected.stat": "043c0110d34bdcc66dac70c1599208361222c1d051622c5eb8ccd3c6c0549b6a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0043-r1-nonlexical-hit-main.log": "68231d8e407c0f3463b8b4de83e4b28103b236797435f3c18420c3f3517d0559", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0043-r1-nonlexical-hit-main.stat": "38fc72791ee3d75f95ba2565f26c3dffb3ea46c005d3db098d93fc123f8e066e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0044-r1-nonlexical-hit-selected-aligned.log": "bff9567e20a14b30e06c5a8db380f80c2b9fb2f829555c3d48b2896d2fb6899a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0044-r1-nonlexical-hit-selected-aligned.stat": "7354199fb2053082458a1625d069bcb8a00be6946b52b0b6b04aa3d055a41e54", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0045-r1-nonlexical-hit-previous-selected.log": "543b2c2afd417dc20ac32a2ef1f74c71f60f2e433ca216cad71661e95fc50a84", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0045-r1-nonlexical-hit-previous-selected.stat": "2691275bdd23a13d273498c3e7e9170d2040a31379c3293011934314e8fccbf6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0046-r1-nonlexical-miss-main.log": "79d38d32482c99cb542a43eecd222d12e7242e189b45afa7dd008406aac90ed2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0046-r1-nonlexical-miss-main.stat": "fbc2b4913a7cbca2f897990d16fd5ee791ccd15a3f086dadb3bbe198e094a400", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0047-r1-nonlexical-miss-selected-aligned.log": "0c0c90e0250b8e7d2590f3c8e7ab0383794176816829d6c87f870a4e33bf2fbc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0047-r1-nonlexical-miss-selected-aligned.stat": "73e148fe1ffa697425f282a398447935decc9bf3362fd700c897b0995a86c6d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0048-r1-nonlexical-miss-previous-selected.log": "25e93c2bc52b38bbe3d3b4a473c6542edd1414628114c5cd4ac30d410d3f3fa7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0048-r1-nonlexical-miss-previous-selected.stat": "d8277a6218d826b77793ab9117ea72c211c055b00e2d0a1aa36814b40130272f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0049-r1-nonlexical-scan1-main.log": "d31a0d161d68dce70f6019f365c2599b96d9ab3a903763aabb0ac51abcd15650", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0049-r1-nonlexical-scan1-main.stat": "7b61a185f4e5c9869a75f7c275aeacc06c9f6a8bbb443b5682d9f24b5b37d2a4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0050-r1-nonlexical-scan1-selected-aligned.log": "a99dfb79c1c2e8584d31daf4ec0c89841ea445937c0bbbc7b42a350dd018cad2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0050-r1-nonlexical-scan1-selected-aligned.stat": "4959eebe2ea0b518de6710310f7ba0076b7e4709333e8c9fe951b21df8e9f147", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0051-r1-nonlexical-scan1-previous-selected.log": "1355e404f09daa3fa95c51220c98dbeb8c466cfac01ef3f6719ee1ddfe8367cb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0051-r1-nonlexical-scan1-previous-selected.stat": "648ab4d0362805abe5ffec3434b0413331612341a5598a855b167bd7ef25b152", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0052-r1-nonlexical-scan10000-main.log": "f9ddefd001b7dcbbd31a258ab3d96501ce2cd03b918b2ed7fdee3ee4dc5e427a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0052-r1-nonlexical-scan10000-main.stat": "25a8b5389c4b8bb18248f17b2d3bc0c43ee41dd2a457fff693c96a55583e4d36", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0053-r1-nonlexical-scan10000-selected-aligned.log": "03811549480f83beaba5a26fb70ceed17cf0491d34f41d1ad2eabaacc4f86607", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0053-r1-nonlexical-scan10000-selected-aligned.stat": "aef726817b1f8c42523df77b42850192c129fd3e4c582f0297307ac4cb69c284", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0054-r1-nonlexical-scan10000-previous-selected.log": "8d3cc6fc5f81a73030fa2a491dc146177f06a21b28eff0bbdd22588e297e2f29", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0054-r1-nonlexical-scan10000-previous-selected.stat": "b1af1da8d4a1d19ea2564dbe3df2aa3e0984001b9e69e49bf379bd9c840c9028", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0055-r1-nonlexical-scanfull-main.log": "68099af71da231c5eeacaf703ab24a537945ecbb6feaff3629f06fcca4a7d0b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0055-r1-nonlexical-scanfull-main.stat": "93c79a3f8c1075c7d19dd8feefff228e59c82a631ec7654ae6ffb74b8c811332", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0056-r1-nonlexical-scanfull-selected-aligned.log": "154d8c9aa2a5693516c43cd1690a39bdd35e47df5fdb6e4f42865978110540d7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0056-r1-nonlexical-scanfull-selected-aligned.stat": "775c10317f523be5743984199f4874af75e8cd6d6240e3d8b12267fe01cd6987", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0057-r1-nonlexical-scanfull-previous-selected.log": "3ef9053aec1408ac10b2f46f786a12c28d2f5030bc0cc6db7f1df1722627d521", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0057-r1-nonlexical-scanfull-previous-selected.stat": "7fde6e557ffa059b19b701e6dfc48ff382007b91cdd0c903d0e4d64b0eb21a45", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0058-r1-common-scanfull-main.log": "63376639e7b77e9f7c4d5e2a1e9009d1f786af10078012acaec69e25f194c753", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0058-r1-common-scanfull-main.stat": "d60a0f3b9649432817ae0935ae03d5c36dfbdd6389b1ab79956eacbafc9714ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0059-r1-common-scanfull-selected-aligned-on.log": "41512d37c96ac6f03a8534fdb97808ddcaefd467de5fe647fbf09ab0392b95cd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0059-r1-common-scanfull-selected-aligned-on.stat": "e6afbd99e70a9c275cdf45292cc4d49758e083af6a7a70987d9518f7cea78689", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0060-r1-common-scanfull-previous-selected-on.log": "e71f3d19f2ecf0ce7fb98575832ea8155ee81c0d6e5ae1774d622fe6c70049ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0060-r1-common-scanfull-previous-selected-on.stat": "b35271cba7bbf13e0778bcd12ca73598b822efd7513b6d7213b7d2220d135e08", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0061-r2-nonlexical-insert-sorted-previous-selected.log": "da2a60352bfbb6f2981727da14f33f8843cfbfd64f132af0d8cac3bdb4e517a8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0061-r2-nonlexical-insert-sorted-previous-selected.stat": "3e87d573dbe05c37970377017bcbb0345bbd63274d81c81ac71e681a724b024c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0062-r2-nonlexical-insert-sorted-main.log": "cad6b661b3ead857adec8ab059fcb4e03f47d1fd2ef94376ab6402bab7ec0c52", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0062-r2-nonlexical-insert-sorted-main.stat": "927f160317a72155db0fe856efbd23c738c298b0cc17155220eb2fc59826e51a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0063-r2-nonlexical-insert-sorted-selected-aligned.log": "60ae379c0f1bb56140c63de02e34503a3ac472f91ce23cb55265df479aa6deb8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0063-r2-nonlexical-insert-sorted-selected-aligned.stat": "b38044307190abe8b64ac5c4de7644cf83df320bae7c539b03e3ba01c735325e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0064-r2-nonlexical-overwrite-previous-selected.log": "3e042d87f02665f83fe4ee4af0dfc54896987770b88a1e8f05699c3b49bd06bb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0064-r2-nonlexical-overwrite-previous-selected.stat": "5de7a7d81485a5cc4296768f2f41513de48de7c634238c27bebda6f9e9741807", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0065-r2-nonlexical-overwrite-main.log": "0ee90047bcd106f38ef0e541626a6bc0ab95d78591c7203641b0f87f3e7ab1fe", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0065-r2-nonlexical-overwrite-main.stat": "e2100dfd0a812bfdeaba85a2b7cf369c064f47f2391261cb81750a012b6966e1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0066-r2-nonlexical-overwrite-selected-aligned.log": "d69079e915a76b9e4fa2792e2d360b00c607f4d9ab51b163a9ab28cbfbd4794d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0066-r2-nonlexical-overwrite-selected-aligned.stat": "89d678d7bcb103266b9d5ac5b6860cabd7e3abcbe6cc2c39333059053b6de66b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0067-r2-nonlexical-pack-previous-selected.log": "6f64eac150de5a048ed49ac7f0af54e4b54987f9a74ba83eb8d37210b4c276f4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0067-r2-nonlexical-pack-previous-selected.stat": "a8d63986b6e70fff52d42a2065236c20220462450526aeabaa255a70f948debd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0068-r2-nonlexical-pack-main.log": "66c5d7e6f4bfe752487e1a185c8543a31bd0f578602abfaa26f4ee459940da18", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0068-r2-nonlexical-pack-main.stat": "7c4861d48e43fcf5a5d24e55930b4c1315146b6a9c8fe2e9fe1007b2e299f406", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0069-r2-nonlexical-pack-selected-aligned.log": "d71408349548773d655ff7df997d626f4e6932d35b82f0aea027c616ad9878e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0069-r2-nonlexical-pack-selected-aligned.stat": "7b356956e7f31ef910068c79ac9e5771c1be14a455813519677316f80830d405", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0070-r2-nonlexical-hit-previous-selected.log": "766d9342a4a00e6312d6f8bf75e05d109a30699884172ac69a4c56918e32f70d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0070-r2-nonlexical-hit-previous-selected.stat": "efc28f973a659bab72f9fdf83518ae227010603e99140a2f4245efad53e02559", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0071-r2-nonlexical-hit-main.log": "226d262a534d0e646a28fdd0d00225e255dc2625a96c8ba3c087706692b7702f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0071-r2-nonlexical-hit-main.stat": "80ee9428ec48d0e3c11cd7e41951bedaada6ed2782bdd1ac920fba2398836825", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0072-r2-nonlexical-hit-selected-aligned.log": "f52ce9d9a3fbc2c4762c32ca76eb5e7ce16c8db7ba47b515925908338a47afbe", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0072-r2-nonlexical-hit-selected-aligned.stat": "3d70c69c5a9244f02783c3002a550fcac07a340d22c8ea41420587e8aa44ac65", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0073-r2-nonlexical-miss-previous-selected.log": "8793a3f5f35a26787c0699d9b1d4a900af82c52b55bc5eaa7c660eb1044352a5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0073-r2-nonlexical-miss-previous-selected.stat": "324e7501420105ad6541bd0e5d4dd5d60883164b5f4ff61316aaae7265f4a608", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0074-r2-nonlexical-miss-main.log": "90111ad5f26dc3854561368e5736cccc09c59e6c0c95ecbbcb0d7e2d38cd8963", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0074-r2-nonlexical-miss-main.stat": "790abb42257213dfeb747d6fd9bba18ad2eca8453e15c3ad9d40cf26fd939d6f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0075-r2-nonlexical-miss-selected-aligned.log": "d494d1789a0974676036899c05230494e0c0244613439dd4e0233ad1d5f9b1ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0075-r2-nonlexical-miss-selected-aligned.stat": "381d0cf30c459696613d6fd26012928febc02d498d31291d481d0e28aef09594", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0076-r2-nonlexical-scan1-previous-selected.log": "b83685544a8bb8530ae8388550559a764d75a0689508936519e629f95207a885", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0076-r2-nonlexical-scan1-previous-selected.stat": "666345cdb39b386ce619ef69ffbb6428eac107e73d9b4e7137295bcca5ca1665", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0077-r2-nonlexical-scan1-main.log": "5a908d9c5a06806826afb774eb103d9fb40df7eedb4291a1ecd7ce6bb851db1f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0077-r2-nonlexical-scan1-main.stat": "f30e17d029888e895b63bf98837a78fa890f4c85cb36b84ed9449620936f3e9a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0078-r2-nonlexical-scan1-selected-aligned.log": "a9643e09aeff74be05c08e9360d37b959d61a90258c1518f15beb97db3a9b1df", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0078-r2-nonlexical-scan1-selected-aligned.stat": "4643fdfc0d0df0db366ebd1a1a036add6771d669f53d140941c96e65f582c20e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0079-r2-nonlexical-scan10000-previous-selected.log": "d8007f4d37aa386a52a852e5ee27e39f7725d91516c94a749cf4a8a5916c695e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0079-r2-nonlexical-scan10000-previous-selected.stat": "08ff443958610a7b208e84bdafc54a6115a291f25b9490c25c391eddd356008f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0080-r2-nonlexical-scan10000-main.log": "44c6e2a7dc7154dccb2705d14180ec0246bcea3d16a05ecc893adb5e85c1cee3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0080-r2-nonlexical-scan10000-main.stat": "b14fea2a8c0a9da95c6e0eb8700b09533cae03c17bec688bfe0696814f6cd7fa", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0081-r2-nonlexical-scan10000-selected-aligned.log": "ba95beba5a8e9e54c222aba7b569d49f49ba893b3371fe04097a290a4627d1d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0081-r2-nonlexical-scan10000-selected-aligned.stat": "dfce8aa443d412053dad3d334ff01af068fac39ea3e4cd4c750f1a8ce9bfdf29", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0082-r2-nonlexical-scanfull-previous-selected.log": "7d8862dfdcf9ad9540eb60a4c8489f6a4deb9da36d81d05230397f450f673a3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0082-r2-nonlexical-scanfull-previous-selected.stat": "804a0efba770d974c9d17b5987524691277360dfc46600eb230cd70d50701172", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0083-r2-nonlexical-scanfull-main.log": "529bdac64915572f37dec1d58e49e6012b2841793f3359c30c79873bcd7162f3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0083-r2-nonlexical-scanfull-main.stat": "d1ffc831ce41ecb68ea4e9097b14efde8acbcb3cea3f5c4904948f648ccd8e18", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0084-r2-nonlexical-scanfull-selected-aligned.log": "36b129a8631704549d1d99a5dbab2306f9283617f829040c1034e3418e846857", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0084-r2-nonlexical-scanfull-selected-aligned.stat": "0a0fbb68313f54f484395c11384057e0bb96f01930e1d9c3fd6414af094af2cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0085-r2-common-scanfull-previous-selected-on.log": "b98985c697b22dbe4e830ad636dc0e74b85c39af0e36c2f8cde08349e25bd6a0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0085-r2-common-scanfull-previous-selected-on.stat": "8a43bc4c56e41d35fcfdedeff5977031c5370f874da7e171ad1519b9f6c490e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0086-r2-common-scanfull-main.log": "e37a227cf57a56270e96e4da15df4f96527a07265bc00a4f6ee54ebff18cc8d5", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0086-r2-common-scanfull-main.stat": "5180c2aa14b1d21f6e6526f7add2998a68acd394bd940cde7e5fb461af17b40a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0087-r2-common-scanfull-selected-aligned-on.log": "1becf0488b5ed8c75d2d546b9fd264e26f50223f88840f845bf6f1000e8abf4f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0087-r2-common-scanfull-selected-aligned-on.stat": "8f351e3f0fc57afd96facb266f3dbb1f35f147a4dc2a9b011b3b844e1212ab42", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0088-r2-nonlexical-insert-random-previous-selected.log": "e6b92b436dcc4c95eaa42e0a3e0a3e1d86479c9dd9267b98802dd906b4e6807a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0088-r2-nonlexical-insert-random-previous-selected.stat": "e73be253ecf0a194159e532e4bca1bf8acce02ef14647b5567a52ed2c150d046", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0089-r2-nonlexical-insert-random-main.log": "b5a2ad6cdf0612e3ef78308f326808bce1b447ea4ca0ea73255981bcf71d68da", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0089-r2-nonlexical-insert-random-main.stat": "cc733f6c4d0daf022d57eb1538b6b46259278fc4165c756cbf42aaf3ae54578d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0090-r2-nonlexical-insert-random-selected-aligned.log": "b419ac416de043776582ef31a8b81eded1996c97a275a6d9070c3c54db636292", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0090-r2-nonlexical-insert-random-selected-aligned.stat": "060d89aa36f310c1b472b7e7b02604deb7e88be2d4efe203d054a09dbd2041cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0091-r3-nonlexical-overwrite-previous-selected.log": "85ba7007b4d6ad39ae54ca53266718fe1ab1c47cfd4966c5f7f0e099b5238565", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0091-r3-nonlexical-overwrite-previous-selected.stat": "ba2018860814c4d9e8146b36a0c671da3a4aa0d00f8a643cb5b5f9a2db5539ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0092-r3-nonlexical-overwrite-selected-aligned.log": "d9efd83c0cab4cb1701e3516c62fc8feb23efd71f5fde48103ec210c27851003", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0092-r3-nonlexical-overwrite-selected-aligned.stat": "0daf5a9555f53271ed1bc82b6d332d0c9b8f7fcf74c00ed14dc42b4badcb2118", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0093-r3-nonlexical-overwrite-main.log": "8a8610e6c5e6e74c078a96d03cfe81eae6592d7997a89ee135991126a8069fb2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0093-r3-nonlexical-overwrite-main.stat": "aac2a46328ad47b539105c189b101ea9e8ff5e03d90bc66eba23e14b777a62af", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0094-r3-nonlexical-pack-previous-selected.log": "84821381d3d6661549f27a6c0cd8dec815a0b3308bd5afaf4aee78fce9058617", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0094-r3-nonlexical-pack-previous-selected.stat": "1dcf86dc6602d34dcf39a186cdadc3116aecafc8d919b400395ac7a6e6f80b29", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0095-r3-nonlexical-pack-selected-aligned.log": "5b56164e27e48c1459bd50fd8cc9026fded38b81757ae64224ece78c5575b4a0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0095-r3-nonlexical-pack-selected-aligned.stat": "4843d1ae34f6ed1bf8351cfa05f4265f15676f5221b5a0bb8f3bd997e2ab6b14", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0096-r3-nonlexical-pack-main.log": "b8f05c89aebd8504fca7bd607828db3ec5e96d0fab8f84d2215ed615a6be2cab", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0096-r3-nonlexical-pack-main.stat": "f0969f7e243021a2c0f6b8672a1ebeaea81b9d1a54024677737744ef0a84fa8c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0097-r3-nonlexical-hit-previous-selected.log": "7024af3fd22ea523a7f094ef352126706c6e698487163988d2101bd1cf11fd90", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0097-r3-nonlexical-hit-previous-selected.stat": "3bccc6bae139b168d7e699aac245e56cac9460ae8c6dedf6eb9c8a1f883dbefc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0098-r3-nonlexical-hit-selected-aligned.log": "184231358bff2956c05920d78bd2526f0a916de198a5f328de9198058f02943b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0098-r3-nonlexical-hit-selected-aligned.stat": "391624f356054c7b4b093ad27790ec96ec422cb495ae9a9bbdfbc68a69e11203", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0099-r3-nonlexical-hit-main.log": "27229302421dfc91ab79e4fddae181dde5d87cfc66d4f15bc0b6497525cab2d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0099-r3-nonlexical-hit-main.stat": "cc26fc4bf945824acc14d5935e28967a92233f74e41960ea7841aefc0f2aab0d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0100-r3-nonlexical-miss-previous-selected.log": "f7604a915d1c6511909a65298ffad8a8be1ac9cda466dc45d4e0bfd2452ada15", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0100-r3-nonlexical-miss-previous-selected.stat": "081e7bf5da775a43f6ca8e2cf876aedf613d0efdba2237d002003952d1052155", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0101-r3-nonlexical-miss-selected-aligned.log": "c88038f4a4e3a47f20756c513bb1d16f172341149b9d08c522718b1dc036d2bf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0101-r3-nonlexical-miss-selected-aligned.stat": "31456e36eba76af169ba3d6b27dcb22fc746d8c3d16d5faa9212e1dddeb9b02a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0102-r3-nonlexical-miss-main.log": "904241446dfaee07bb3f4a1bdb331e880a788a2640f89d945f423bcbbd2a3fef", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0102-r3-nonlexical-miss-main.stat": "58fd60a363dec251b98b347429484803169eade5ee6b82e877e617bfc3c5f70f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0103-r3-nonlexical-scan1-previous-selected.log": "2568582273de6158aebf4a7429f4feaca1c475dc9e04c748fc60d09a50803edc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0103-r3-nonlexical-scan1-previous-selected.stat": "4e0bdc151d17b9814af4239ae0eb923e4e8da6c0453fb5ab8df1e103f355e8d7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0104-r3-nonlexical-scan1-selected-aligned.log": "ca6b4418c9dd07173f69217c855bb0357123ee556d6e46050adc4883f8b65612", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0104-r3-nonlexical-scan1-selected-aligned.stat": "d5e221b02ed39e353523cad60cdcbaacd74fe215da19531dd01614279d5b34cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0105-r3-nonlexical-scan1-main.log": "7062475af6d0fbaa4af5529245c25b8bddb0811c7fef575393f200ce09f4fbeb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0105-r3-nonlexical-scan1-main.stat": "a1217b7a1b32fbbd4ed44da1e809fdca2afa050057e003777b1fe8b4e40025c7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0106-r3-nonlexical-scan10000-previous-selected.log": "689f2ec8f496c2671d6814aa889c899bbcca871893ae495eefd7f5ac69f817cf", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0106-r3-nonlexical-scan10000-previous-selected.stat": "1d596fb0d34f3ba676e85a3fb5a3d48bd3c341d61ca28f3eb8b571404da4862c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0107-r3-nonlexical-scan10000-selected-aligned.log": "e1359a574baac65c9e084a8b69b60ce7c669108eb17ca0c2fe64cafa4241454e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0107-r3-nonlexical-scan10000-selected-aligned.stat": "37f8491421afdca1fb5a3e9408d7529b8f431d4bf7a877191e1c30d087cd541b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0108-r3-nonlexical-scan10000-main.log": "5684dc6eb915ff29fcfa59996979b22a1359cf139b5d47ba97be44c53d666dba", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0108-r3-nonlexical-scan10000-main.stat": "99bcd5dca53cc9eaeccb37af89ff58f11a3e891a8304af7a2f41fe4304258c5e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0109-r3-nonlexical-scanfull-previous-selected.log": "24cb662b17295166167681bbf790494990d9c938caccbc73c0814e9af0567cf0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0109-r3-nonlexical-scanfull-previous-selected.stat": "04780fc87f82bf36af64520524df7b7fbaff28489d4495f45264176978e41157", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0110-r3-nonlexical-scanfull-selected-aligned.log": "94a0a6f6cb6037f8505ea9702fdb19221b62dbd84cea858b38f4cf5e3361cdbd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0110-r3-nonlexical-scanfull-selected-aligned.stat": "2fdcd7e2a46c4b096b1ffdeac1d0f7e9957dc8aa204bf2442b02b0d239c116b3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0111-r3-nonlexical-scanfull-main.log": "e0f1b22071c65f6411c4bcff2377475a59c9e1c9e8bae517d5b9824d8cf6ed1c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0111-r3-nonlexical-scanfull-main.stat": "2b1ce90c8d8bab9e54886e22e8aa040b10ba2adeb4a46fd1f4bf9bd4fc48b7d8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0112-r3-common-scanfull-previous-selected-on.log": "626cd4e86bf9c21ccb98cf51b89160938f2b67effc0c6279dbc4efce12ed8958", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0112-r3-common-scanfull-previous-selected-on.stat": "08298ff47d6d3d16b273071465ee1b8acbefad30a55332e7ca5c1446500e0533", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0113-r3-common-scanfull-selected-aligned-on.log": "859d58385ab73dd9a5c2289d760ceff81ef51bd23d5c5135d1c87cfed245406a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0113-r3-common-scanfull-selected-aligned-on.stat": "8e0ec6562b89c1bc6af8eca9e81f3c848372d956e3750efa05dc8f2c4d60ab77", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0114-r3-common-scanfull-main.log": "8d86d0f8b2d199638e09a9f662ef5cceb991842539e9493c97797988d8b5f250", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0114-r3-common-scanfull-main.stat": "b6f5993b9eddecb549fbea5ae42264e0bbb351526ab4f7ea3db5d2ce12b8f3d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0115-r3-nonlexical-insert-random-previous-selected.log": "24e56b889c7c6aa5fdaf404709cccc0208f2acaf8e802e450319a239dea87a60", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0115-r3-nonlexical-insert-random-previous-selected.stat": "ece24f9aa788dcdbce724c70b29c21e44affb617606d5fa84f38b1fc9780216c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0116-r3-nonlexical-insert-random-selected-aligned.log": "e9d9d2d4f1f9850f8135e526fba136d40b0eb326e7750dff208d13ea7848c282", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0116-r3-nonlexical-insert-random-selected-aligned.stat": "c17c9dabc6884e161662dccaa14fc6057418861d220820b75497150b08f43a72", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0117-r3-nonlexical-insert-random-main.log": "87753fcd1f00c4934aa6a609e28c7c31e6099b139d7ac6b5f887fe4b23f0c985", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0117-r3-nonlexical-insert-random-main.stat": "78e95b26911bdf6fb8fb767ff6e0afd3f9b8a23201760f4cfe3972353830b598", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0118-r3-nonlexical-insert-sorted-previous-selected.log": "3f30b7f8a9e8fc9f6198431d2ab7f549b9b8f2b13582bf08af55905399b36425", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0118-r3-nonlexical-insert-sorted-previous-selected.stat": "934a7ebc1856659ac2ec93bfbfe6a5352395824a761bc243bbff3e4448aec670", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0119-r3-nonlexical-insert-sorted-selected-aligned.log": "cc8545e4fafa0f8afc8826af2bcfe328dfb1bf948c5793034e24effccdab4973", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0119-r3-nonlexical-insert-sorted-selected-aligned.stat": "56569b3297816e923fd8311b1739a26c16c5e165247f08baa99ac232986c6304", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0120-r3-nonlexical-insert-sorted-main.log": "218fd0ba0b718a5f0b51977d23498587a2ebb5e578d6d093c4ae0b9dae294160", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0120-r3-nonlexical-insert-sorted-main.stat": "d8614e2875513d7df4ed5ed95f29a7cee71a52c2468ec4a54f0347e096094b93", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0121-r4-nonlexical-pack-selected-aligned.log": "721ed61579059aa4b890340105a54a81f4f0929546a8dc570e87e8ee6336eaf8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0121-r4-nonlexical-pack-selected-aligned.stat": "149786cf470fbb5ee540da5ac31581913900bf70db29a41230e8538906652899", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0122-r4-nonlexical-pack-main.log": "fdd12d012978e1eebbb1a616c5b0468c0a129eb3ef3d46a88d80639a31d151ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0122-r4-nonlexical-pack-main.stat": "dea9279d3beb93c9f6b51e93eba3666ff0013da274d88a00b56c9e7b25628bfe", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0123-r4-nonlexical-pack-previous-selected.log": "807f32a97cb03f9faa75f8f0928d64fb034f759a31169dddaf224824dfca48b3", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0123-r4-nonlexical-pack-previous-selected.stat": "b11e54ac1fcae1de1f2d7513f2ffa5129e2ab7ee4b712eec62a68df488e20aee", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0124-r4-nonlexical-hit-selected-aligned.log": "81e8294e6dbe123648371b59025aee6ed0361507480d9497be0f116e1f4aab4a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0124-r4-nonlexical-hit-selected-aligned.stat": "f80094f6b82cce733e064a112988de7fc7749aca137223266d687891e470fa01", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0125-r4-nonlexical-hit-main.log": "bcee76966f3ab733860152bfee623e082ad68b0de0bbacbcfadde40a0cc9e94f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0125-r4-nonlexical-hit-main.stat": "89bf03faffa9beea00d3cfab542ab8c663aa6c427bf9d45c337bd3b9b580ad96", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0126-r4-nonlexical-hit-previous-selected.log": "6567277e49c2bf2ec10101edf3c59ca643126d5a2d1e205c62feeb5e4eba2939", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0126-r4-nonlexical-hit-previous-selected.stat": "877b0789e7c5a12e5b7f76a81759f4ddce175249175f9bcb6f49a20ee15fb70a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0127-r4-nonlexical-miss-selected-aligned.log": "74b9e2eb2d6580656be62b9612c47666bc8942fa13311eb86c7b603b723776f6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0127-r4-nonlexical-miss-selected-aligned.stat": "96f90eec5d897992cca4c0da3621fd6ee0ea5ab4e65d9466cb1e32ac533e534b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0128-r4-nonlexical-miss-main.log": "4e4a25f23cc4d8c73a21cbfea7f454c763f339d2fac24be8df445455467ed4eb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0128-r4-nonlexical-miss-main.stat": "f9cb0b22a1c2f9b6ab5628e3d81cb22e752ba4f690ea05ce5bb65ab5a4835449", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0129-r4-nonlexical-miss-previous-selected.log": "5e6e16f71de6fc21605d39185bc58f2f3feff2463515d25fe3448b749a1587d1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0129-r4-nonlexical-miss-previous-selected.stat": "ecf9e07d41737fe52b20b9f320236bb2d27edd1e2669057210fc2ee88d869226", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0130-r4-nonlexical-scan1-selected-aligned.log": "98ecbcb9a5cfc7915a6799c50d532aa8c3f897dbd99917b2ccc79a35d5f085ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0130-r4-nonlexical-scan1-selected-aligned.stat": "f6953e8a3a39c10e3ab5a4e7fccfe63ee8982b4a5964604ab04507b7f2226760", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0131-r4-nonlexical-scan1-main.log": "1a8f0800271a7e03469e27d7a1d791aa44b633048e601c7605594965ea05bbe1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0131-r4-nonlexical-scan1-main.stat": "217b8aec06209099e1c566e8d1b75eaf0379e7e3da7b5548f085e6692e5cef85", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0132-r4-nonlexical-scan1-previous-selected.log": "02c6d97d7383008feeada22a708102280161e5b59a316455b440ec05bd59692a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0132-r4-nonlexical-scan1-previous-selected.stat": "8c569ac3867d04d0719dd944bfe1edd7444fdab342f69aa64c2552b22ea1fc66", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0133-r4-nonlexical-scan10000-selected-aligned.log": "685b5d13434cde8f16e670c2ce795314fd5abf5759bf8c603aa46cfe16400821", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0133-r4-nonlexical-scan10000-selected-aligned.stat": "87a8a50292d29a48a5296ded137abfba61ec525dffef45d1571b50a2df9b67c6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0134-r4-nonlexical-scan10000-main.log": "d3d92290e0c339bcf2befe71ac160e6e254aefe23e84b1a428df985b36345f31", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0134-r4-nonlexical-scan10000-main.stat": "93eb458d2162ee4f20e9d888854152c90a3865ed006b9b2052ff1b8b54074594", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0135-r4-nonlexical-scan10000-previous-selected.log": "61ea48707ecae2f7e03d6198d839075b32606eabb721fcf9e30c18e87d8d972d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0135-r4-nonlexical-scan10000-previous-selected.stat": "9f099688f60c6722033a99d372f14098b09ba64a018cd75b05bdbb7d8809da3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0136-r4-nonlexical-scanfull-selected-aligned.log": "94849eebd9478f2358961c584e16d6d4d9f38284734c64dff3242257bd7195fb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0136-r4-nonlexical-scanfull-selected-aligned.stat": "5cd16d15e6e398f3035e691da0f5903273b416897b4660eb569b1383663a7bf2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0137-r4-nonlexical-scanfull-main.log": "30fec0099ae3cc134fe8a37148929e9e8806483c152fc114bff36ef068759c53", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0137-r4-nonlexical-scanfull-main.stat": "9713ab8563189a48ab4887a3a987f1794b7dcccc85eea0736c8711b349f51cc1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0138-r4-nonlexical-scanfull-previous-selected.log": "ed169f0290c137c83c293cd55b976949d603605690e22b0ca928b82067155d10", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0138-r4-nonlexical-scanfull-previous-selected.stat": "88fcad0c5bc54183531d4f716dd91b5b7472e4070d3210d45171825a0059322f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0139-r4-common-scanfull-selected-aligned-on.log": "a100e750af0ba947ee017d80380e193cc48ed77b21c7a65f17f96945ccc4663e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0139-r4-common-scanfull-selected-aligned-on.stat": "ce73aa488039ed2a4dfa87ee14b8abcdf9a1d113862483cdb87b46d34369e3f6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0140-r4-common-scanfull-main.log": "e0a9b07f6e51c6cf890c54b478c1c344a26810ee95b2f8535cecae6a28c71e33", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0140-r4-common-scanfull-main.stat": "2fbc0a1e58d94a45e1c3fc41093db1dba524b6ba4e2b9838d4fd69173f5faa3b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0141-r4-common-scanfull-previous-selected-on.log": "22e42f91a793f13566aa7efba7e407407fc5de2aaa600b8264e15c3b223e85be", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0141-r4-common-scanfull-previous-selected-on.stat": "0795ac819f874dcb4e21fa1a11d20e0059ce3803078245be2a1fd7466724020e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0142-r4-nonlexical-insert-random-selected-aligned.log": "0c1d523814e8332364238f7ee5b47cc83172d0c30719b8d1cb838b9299287995", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0142-r4-nonlexical-insert-random-selected-aligned.stat": "b7a543066c2e09d9890fbcfa18753a4b5c21f6293739d52aa92eedafb6e76214", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0143-r4-nonlexical-insert-random-main.log": "8807365d8dfd70d8477fa2c09b2c1bd8460958cb6d8fe7fce0610a1ebcb035b7", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0143-r4-nonlexical-insert-random-main.stat": "27d7e66b02da4100de86eb3c2b422801ca2beca647f8814a31a4b72907ac2137", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0144-r4-nonlexical-insert-random-previous-selected.log": "9c1b5d9412f4b4ae928c98aab397800231d0cc5e1e84a2832395310f9b16b673", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0144-r4-nonlexical-insert-random-previous-selected.stat": "c98527fdd14a179afea0a4f79c0a6e1b5d08734f2294ce80e65806a43c35fb3e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0145-r4-nonlexical-insert-sorted-selected-aligned.log": "46a42569627ea465306d99d1cd53c82d492151582bf0bb3936d5dccc524f490f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0145-r4-nonlexical-insert-sorted-selected-aligned.stat": "a4bc67a56d393b8fe50dec4c89dee6f18d81566407d63f48f4810bacc28860d8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0146-r4-nonlexical-insert-sorted-main.log": "288235f6a47656c29f631ba0f8ac05522a010611323a1615f7c330ca44eaf319", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0146-r4-nonlexical-insert-sorted-main.stat": "92c6502f3292a64298530542160752392990ca0ae15f5807be823c6ddd1de5e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0147-r4-nonlexical-insert-sorted-previous-selected.log": "63576a59eff2e93bc63aa67ea7f40e6332c2534ae0a1292f763de2b80517099b", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0147-r4-nonlexical-insert-sorted-previous-selected.stat": "3046e73a0a9c038cecbdd7fb2fdb7fb1f7c4938c51378adbd323efe91131741e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0148-r4-nonlexical-overwrite-selected-aligned.log": "5ab34e1b459712134f128e5f6b5099cb4cdd9466e99f32144e083795a850c982", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0148-r4-nonlexical-overwrite-selected-aligned.stat": "ac22bb6e859afed76cf27fa491c345c17518a8ee2660f95b222e1f8764292777", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0149-r4-nonlexical-overwrite-main.log": "f0c84fac1446deb478cb6b50767b48cc265b11702111d1d0a7782f03efd5bceb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0149-r4-nonlexical-overwrite-main.stat": "f825efafe523f993ae129fa8c42967b4fbd7fd0dc87d2998b526164941392e2e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0150-r4-nonlexical-overwrite-previous-selected.log": "63cb8508aea930a3254596e946e4d371a93c33438c3425977b460c184ca49929", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0150-r4-nonlexical-overwrite-previous-selected.stat": "d6da43b028bf7f8daed403db5be5e38c17b506a7bfde3f3482c8961f45974874", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0151-r5-nonlexical-hit-selected-aligned.log": "f36e8dcfe7452f6ced645f2ee2dc55dbda43d61e62e9d9139afcc5405998af00", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0151-r5-nonlexical-hit-selected-aligned.stat": "f57c9be9de637f2b712620c510d347b5da76a90c4e11c50ceede0b7b8f42bf67", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0152-r5-nonlexical-hit-previous-selected.log": "181d301c0c76467e01248e54423127bdf8dca101981806ed6bc4dbfeaf33eeea", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0152-r5-nonlexical-hit-previous-selected.stat": "c7b20b2b69b9cdc9b553d30a047b3986efca9bb19cb0aa227d9da903f0e521cb", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0153-r5-nonlexical-hit-main.log": "042628d40bfaf9d0e6c09726c9158563533fbfb87e8204889637686a51fd569d", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0153-r5-nonlexical-hit-main.stat": "308d0be416f3133e3193f8f1ecf1a2b2001b0907cf4fe7f2534921aaba52b6c8", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0154-r5-nonlexical-miss-selected-aligned.log": "34c6f9ce521c02edf2e3ca5ef22f680fd9b5f70b92a1330d9ce0550716898604", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0154-r5-nonlexical-miss-selected-aligned.stat": "f4d1465558cbab558131a653808557079f701770da0635deec7d45558dcaa24e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0155-r5-nonlexical-miss-previous-selected.log": "8b75868381756d0104b350be2e27e0110ca39ceba612a8020ee50f6f5d5a1458", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0155-r5-nonlexical-miss-previous-selected.stat": "024ed4614785eafae9b57cd1523feaa8c48effbb5d65b218a9559d7949329b09", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0156-r5-nonlexical-miss-main.log": "ebd6bfb32cd91f8225b1771bbd8749acaf03aa1388339ec67a6279f43a096c28", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0156-r5-nonlexical-miss-main.stat": "80a7c4f60d7ec683d09a91ac0bcc0855ba157464bd3745614b0b253310443084", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0157-r5-nonlexical-scan1-selected-aligned.log": "513d8fbff158074b61f4b1aefaf08a51850d17c59259d7d0746265b0945d9237", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0157-r5-nonlexical-scan1-selected-aligned.stat": "4f3131dedda87b20c51218f2c8f910af4e5f253b86ff2cc46f75967eb75072cd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0158-r5-nonlexical-scan1-previous-selected.log": "317a038d3abe72b1bba89d351cdb785db32653a560f9aeef16c709c048640113", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0158-r5-nonlexical-scan1-previous-selected.stat": "474c5aaeb87a3947ade2848b128f5f1c19504e0375c0d79eb522addf8d4fe1e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0159-r5-nonlexical-scan1-main.log": "776d4c9cb3c4d63e162f1821ea5af595e30c7c8742111639fec17eb2a3fa7985", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0159-r5-nonlexical-scan1-main.stat": "b49fe0eb965fc51da9c8a2af8c789810ee7e9b5076e87c05e71897c9525b6f20", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0160-r5-nonlexical-scan10000-selected-aligned.log": "1260310aa8dbd4b703eab1d7faf12571575578ae56addec3dd0b1a55d0d98930", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0160-r5-nonlexical-scan10000-selected-aligned.stat": "ebd28c76e2bc06ebb5432a5c9b656315b3ba8c2b22def789c4303c4f36f3e14f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0161-r5-nonlexical-scan10000-previous-selected.log": "7e4f2f6db5dfd30e6f194c00d7e3d5ef44b9ed3fcf62a02b74f708a957095694", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0161-r5-nonlexical-scan10000-previous-selected.stat": "69dd4b84898fe13f5168b8975b3c90585508630903233e5041cbc2e44f7395e4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0162-r5-nonlexical-scan10000-main.log": "be7528a0650aa75ae85609c94afe0f19dce97bd0bbeeb1793fc6eb666fdd7299", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0162-r5-nonlexical-scan10000-main.stat": "3f5ea99afe4dac7144cad50dcb2aeff4bc768fa57f1df11f972464f39ffaadc9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0163-r5-nonlexical-scanfull-selected-aligned.log": "cb2c2984d6356aa3d945ecf0a81e09341e30ed77b44d1f9b02c79d4d7b1cefbd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0163-r5-nonlexical-scanfull-selected-aligned.stat": "24e109c4f69e3289e85a0a623a83b7b0dc243d13011acf4db04caa7775212924", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0164-r5-nonlexical-scanfull-previous-selected.log": "b0f50367a6dcd8fc88b51086de30b03ea7bf123229ee09a5213ce9095285a5f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0164-r5-nonlexical-scanfull-previous-selected.stat": "40cd007a75e8921c79476556bf4f9d4428fd02373e138cecc6cb866f1b300f3f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0165-r5-nonlexical-scanfull-main.log": "64ba05373347c188803db5ee10a7ef06199df853faf8fe9cffffec75624e64db", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0165-r5-nonlexical-scanfull-main.stat": "4b779ce9c7c6a672a5b42b5dd99c0cb5ab0223de6cec6c27cbfd43673064644e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0166-r5-common-scanfull-selected-aligned-on.log": "164056959181d82639c8b0dbc6e201a384942baf8be423b636d8a01453f2b3ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0166-r5-common-scanfull-selected-aligned-on.stat": "d9a37daf28f13f47bb223dc8ea5e0234c7b8bd93cc300ad7d0e724fa0ee1c27a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0167-r5-common-scanfull-previous-selected-on.log": "8330c94af1a38479814eb776550a8cbe9573edac534fd76fc6b7ec3e777998cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0167-r5-common-scanfull-previous-selected-on.stat": "6018cc4781d0bd916f866a67bccc474938b6d786d5ac9a19c819cf0059196616", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0168-r5-common-scanfull-main.log": "85619543b8bd8e9ced50cd26ed6af835ef2fa478176142817cab085d0ca0b9e2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0168-r5-common-scanfull-main.stat": "db2bb506cc1c1613aac8cd97b053820c60f321b3e8dd70fbee6233530e7c68fd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0169-r5-nonlexical-insert-random-selected-aligned.log": "da03eb7dee1d08141f84570ee9ccae7b00f2000585c81be7cde9a1ec87e94bbd", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0169-r5-nonlexical-insert-random-selected-aligned.stat": "7cd75917bc90a28f3011dfebdb3b913fd447229edc8d504868f503d608625dac", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0170-r5-nonlexical-insert-random-previous-selected.log": "fdc94db6289deec5ccaf3f9500fcd42db75afbe14ae11eaba1483b1f5172fc57", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0170-r5-nonlexical-insert-random-previous-selected.stat": "b9d47c2cf046c12238e164296f0b7282946f86801d3ffa07d12b7757718fc73c", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0171-r5-nonlexical-insert-random-main.log": "fd4f00a8c12c2f945a66d69572ab7a30a18be78dd446330c078633ad42d248b2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0171-r5-nonlexical-insert-random-main.stat": "020a6f134ac7bf86b53eec6820e7164c29b64d8f1f915d1888549d36d33c86b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0172-r5-nonlexical-insert-sorted-selected-aligned.log": "86d477584c847f310cbf04a4a80e5030a7c8ee471db5b49e3b22ece2b7e26cda", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0172-r5-nonlexical-insert-sorted-selected-aligned.stat": "e697bf9067b42bc8aa4b6e5fb490708410b5eb4fe14c83053e8f64798028a3e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0173-r5-nonlexical-insert-sorted-previous-selected.log": "70ea60cbbd3b615dbd3bcc094861e9959d45c9fbbb91c987f84c08483ff789a1", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0173-r5-nonlexical-insert-sorted-previous-selected.stat": "67b37b3c1e61b66d06489f5cdc84e2c021618046c350dd9c72e12a16c8bab282", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0174-r5-nonlexical-insert-sorted-main.log": "b773bf2aef2c745780cff0e2ab51e75a29751f8d623884e5bb7ef96fafc12e28", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0174-r5-nonlexical-insert-sorted-main.stat": "b1630cf4b56b73d45c271535612ecc010a94f10c4a668c5522d33f673a407da4", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0175-r5-nonlexical-overwrite-selected-aligned.log": "5945b7a779f0a9404d6dfd795fe86e6f28f6c4cd5991a6f95643299d9eb8ec93", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0175-r5-nonlexical-overwrite-selected-aligned.stat": "221b11a3c8579cc6900dd08d593e06b0efbb3ee3c27006d6ecd30434793775df", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0176-r5-nonlexical-overwrite-previous-selected.log": "233f84cc304679a0cf7652d5ad0d48b05e6e726612525c9ded6085be633c4d39", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0176-r5-nonlexical-overwrite-previous-selected.stat": "abb8b37f921395aa5e6740ad63a4b33ee7051b772c3975cc5a37f811a9902d95", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0177-r5-nonlexical-overwrite-main.log": "530d271282c53eaa6e236349f3f1c2bff5688ef5a943c908c0adfd357e6b41c6", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0177-r5-nonlexical-overwrite-main.stat": "78a617e14aea552fbb2c0bd93798080bdc1aac718bf01a9cbac3ba6f499d1af0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0178-r5-nonlexical-pack-selected-aligned.log": "03455777bcfedae0e326d8dc959c76ba4e9a8e24148a1fac8f4a39a14a65e653", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0178-r5-nonlexical-pack-selected-aligned.stat": "68ac9c7b5917f32b8de1fcb0f0a5d9a71fa5665159902f6e3e0cedcad62a9c21", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0179-r5-nonlexical-pack-previous-selected.log": "fa76fcd3da44f3b73f0b6beb36936036f01e09a4f672dcacaf72c318dfed594e", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0179-r5-nonlexical-pack-previous-selected.stat": "bfbb67a893f722de33dff8b329902f25d0dc156c8f9e0c8e7ef6da5ccfdf3522", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0180-r5-nonlexical-pack-main.log": "7432e870c3dc53435c93b8ae61f598570f525b4d158a51fa622bcf4dd8dccd84", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/0180-r5-nonlexical-pack-main.stat": "4fc5153719379ed671283f989c91c0d51f995e5cc1dfda0a5cf9dcfd88b08b4a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/build.json": "c6e8058d572fa4e60a6d39bb6a2d0b0e268f52464b5b65866240b93d25e88b75", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/independent-review.json": "7c1e511ef16edededb58bac8f5304adfd82881efb8b90796db71adbb092cadd2", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/independent-review.log": "227dfc0b8a5e942beb0e424fb0f330b9aff900405692953d77f6b49b37fd7c2f", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/manifest.json": "57e24d1670e39fdd3164e085e8164a2ffd9a8c2ca7d659569e3a55c85da00f8a", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/plan.json": "95cac0484e689704245bd1ee03807865c7c528cf736ad3e157111c948aea5303", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/confirmation-aligned/summary.json": "c5b386157e9202e069d5d8ccae8aa546d87aafaa29f71c3f66ac52884e194fce", + "benchmarks/results-20261016/btree-nonlexical/confirmation-plan.json": "f245b34e6248f6e000c302fb90055e69f95f841e95a95a6d4f7e59ec7fa5da27", + "benchmarks/results-20261016/btree-nonlexical/confirmation-selected-plan.json": "0805532b2eb2f39cb332eac0830c8d3ba7ed1ae9e35cb9ff3345268dc48f9950", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0001-r0-common-pack-main.log": "a4ac0828e3f6b0770798d112e1ddc4acf0036a2617140563c0cf46680bb6b00d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0001-r0-common-pack-main.stat": "ee271d514f9c73fa192e12a466bb2e5f9e97567c4f3786b6dede4febc017882f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0002-r0-common-pack-baseline-on.log": "96c44c7df6d2c0eec54f5912fa3a4e6e4c1956c21ca59409c8b2c107eced88d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0002-r0-common-pack-baseline-on.stat": "a2b4d15c4604ef9acf6071a8be7a849e9e2a19c86b3b4a6f36551b4eb8545c3c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0003-r0-common-pack-selected-on.log": "86280790fbe56316b41c640b899bb22f6a8fddd6d168579e2b1e3b7b160b39e3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0003-r0-common-pack-selected-on.stat": "4749572fdbaeab15386d9786aa6195f57e32b792ea24770255a8df06d3069e44", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0004-r0-common-hit-main.log": "7058dbe0ccedd8ad348a6d79d3c4ca5e06d0d3495e2aec668d9945acdccadbb1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0004-r0-common-hit-main.stat": "9bb6cdce4948f54527a001747cef1c61451c12399487f5fd308c45658e299cc0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0005-r0-common-hit-baseline-on.log": "dc43b31ff866b89c7751c9fc748f20036367d8b5d48913936b69f5c40e8b2021", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0005-r0-common-hit-baseline-on.stat": "341886415cfedcddc3ead1622364cd8d735d4f8a9f53c6dd7a45653e8bffe8ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0006-r0-common-hit-selected-on.log": "7521a27b3b97322d44a37da7a409e3667f91686678dd7ac566e5068bf5f79e84", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0006-r0-common-hit-selected-on.stat": "3d5487fff02e0814e9a7484ea23d0ecd6281c82220de19e6df44717ac170748f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0007-r0-common-miss-main.log": "98256fa87037759273d39e40fe3b49af753ca3326cecff00bd56e9643c1812c6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0007-r0-common-miss-main.stat": "a05dfe337559d0d5144f431937b72fdbc43f06494ce75b61e323d4d248648081", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0008-r0-common-miss-baseline-on.log": "771e84d76795aa303ac5e8683298afe823f10748b01eee656d1bf43bfa799d1c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0008-r0-common-miss-baseline-on.stat": "24452a7e2080dbf49e0d40d2f4e923b6bedc8d0da6407d052ee5d0242262a71c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0009-r0-common-miss-selected-on.log": "932ad80cabbe3891eaf44d00387fae39af472a97bbde199118cc5c0dd4870f47", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0009-r0-common-miss-selected-on.stat": "9030c4a778b0c6afccbfc0eac86d1d3d23c306b94fa265d399634b0d9758a3a6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0010-r0-common-scan1-main.log": "74f3911671e6904d2f452d8c1ef285a7e179ff5abc412cdf1deca1d6b8f5cec4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0010-r0-common-scan1-main.stat": "4ad9f0dda815172ebd8991f43cee389ca123643b0c7066f19ec6c71a963ce896", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0011-r0-common-scan1-baseline-on.log": "4f26f6865952bd7727a90ee8add7842245a5bf30a966a5ec71572493d3f45819", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0011-r0-common-scan1-baseline-on.stat": "926d9f59a3ae42b62fb2e562e7018ef95a45228047909364a1e57f3b013d5112", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0012-r0-common-scan1-selected-on.log": "c5b04a93f7fedf898e51a1d9ebc9403aa02c9aeb1acaa536ebf2ff7410cb807b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0012-r0-common-scan1-selected-on.stat": "9466d01a0ff1dd7b875570e5d25adda924161a3d8cc2f94ffacb0946c2cb5a4f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0013-r0-common-scan10000-main.log": "4795bd6464a6b082b6c3eba6909e5f3c53453e22439decf38c4926fb4d8ebf52", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0013-r0-common-scan10000-main.stat": "eed1d230ad7be1959146c234711a343d206616114d9f6a1cdd7ede875f8af0f7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0014-r0-common-scan10000-baseline-on.log": "487dd584dc9ddffa4b6ac384aad5b6271ad91aa2b4eaf087278d0b5767bb2e8f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0014-r0-common-scan10000-baseline-on.stat": "85eadd94f16d8e88f4e99b3601bb4482294a342aed082ab9ce9dca415d75e483", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0015-r0-common-scan10000-selected-on.log": "5584cdfb860e81c0d94f417833edb95ba2765be3d7feb62ca4afcf6e6adc7fb5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0015-r0-common-scan10000-selected-on.stat": "30dd9578cd1fdeb367149d2fc6713e49003ecc904c09e1b6bd7bc27f58f72a27", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0016-r0-common-scanfull-main.log": "e6efbffa1ea9be414b9e8490f6ae957fdc333b633f6f3e540c83f99290526e2b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0016-r0-common-scanfull-main.stat": "45d8282cf2f0eae40ce73d62e6a6c454ba659e920901954fc211bd74e846d0ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0017-r0-common-scanfull-baseline-on.log": "e44e50d65744b740c92af151daf27dbba79d318cd58b8164f2a2ef8f6589dc50", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0017-r0-common-scanfull-baseline-on.stat": "c4eeb1897cd75b62e14085f49a473bd25623e898d68c8e8055469d887130e4a1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0018-r0-common-scanfull-selected-on.log": "fab110fe40fcfd6f1197a25fa29b51ebea2941422274fdf009967386c4b79dff", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0018-r0-common-scanfull-selected-on.stat": "492b0fd1a07ea7bacb61ccbb5c250cf79411ed56196ca2448ef2fd7f132dc1ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0019-r0-random-pack-main.log": "4b8311e090abf58d7146ebc49ef92cd31bc8cba9892aba453a04ef37433b7452", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0019-r0-random-pack-main.stat": "54edf045f7875111c1066650150d1136e2acc0f54668fbc2f983093ed24d9ff2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0020-r0-random-pack-baseline-on.log": "586bc24fe787ad54946e962498ae41da7fe14b0ac90d2e366b7c1e180f313c29", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0020-r0-random-pack-baseline-on.stat": "ae7bdf472117debc9e83ef2e7e22a907fdb7da28e172d6b0e5d6a031334b51e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0021-r0-random-pack-selected-on.log": "00610496dfa414d0945f4e5aa2e24c09b95ae0f907e7308ac929e07a233b26f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0021-r0-random-pack-selected-on.stat": "d468fed74fbe31910bb164cbb8511ae31342df7cd17891675684c2ec9a07e18d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0022-r0-random-hit-main.log": "3572c35e4e8a14367c11517c692690cf5e6e1ccd7aab365aef91be9aa8d14253", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0022-r0-random-hit-main.stat": "10b79a7310a647d7df31e8b34376e1c298b1ea0cdded0fb5c7321c543ae3a60f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0023-r0-random-hit-baseline-on.log": "4283f2d8cee214166e4a3a5642420279101046d7fc34abfb794dafadc9fe8b30", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0023-r0-random-hit-baseline-on.stat": "29bf3ad31c2fd32024a7c55e1d22fc3fbf0aac87c3721d8f0083408f6f4bf8ec", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0024-r0-random-hit-selected-on.log": "080d5667efc3cb827644a0850e53d28decf0ca6417ff1e6121a4f2ce82c33d61", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0024-r0-random-hit-selected-on.stat": "7105a8f8b1933559d4412e0eb1b58d93be3f008b83f1ad9bae37f34af17ab665", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0025-r0-random-miss-main.log": "ea494c5908b27960a6a08b9ed08150e8687b7b1c1b3b5326536b2116fdfa1480", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0025-r0-random-miss-main.stat": "81405f3f20e33050990e06fdb03a532f27ae50fc0244d05b7a3756739d95743b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0026-r0-random-miss-baseline-on.log": "4330483a22e13eec9514258225a4e261ea69128888dbe6df0d68c9f26ebd964f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0026-r0-random-miss-baseline-on.stat": "8bd63136f772b50280301c64c4c54207f961639c1037b8400c5d5f62dc38357f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0027-r0-random-miss-selected-on.log": "2588424458527e0832dcd1b521f1df1d7a7eb98dd382c36bb8e5f427c3ec687d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0027-r0-random-miss-selected-on.stat": "f4e744fa914d35b7a653703a7cc0644342f7e9ebaf3f42f09b2927ab827f80b2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0028-r0-random-scan1-main.log": "9d883f051d321f65f0cf1e469f782b8c73a9ff73d7000ba2ef5cd988e5c90080", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0028-r0-random-scan1-main.stat": "db5b3172c95fb44179cc895abca062143cb14ec83f246fa5795c4968b0dfbbfe", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0029-r0-random-scan1-baseline-on.log": "0bb0b4a277ac04ece0d99cbe85f90fad4ce5b1c2beba8efd69584edb33f8f9a1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0029-r0-random-scan1-baseline-on.stat": "5417cb0b3e7645801b26b704907e214d70d4d19b0e7537c8c7c552ff27d4771d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0030-r0-random-scan1-selected-on.log": "a6224bdcfa14b8168c4c98a5248e126d345e4cfb39dc908a26dfde6768b1318c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0030-r0-random-scan1-selected-on.stat": "9a8036373582c374de5e4b0b783704b4cd084725fff4822a3db20e0f86fc5f76", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0031-r0-random-scan10000-main.log": "3e3a6412e75b34c9bed35d55d074687837f45e6f2f05fd136e4caa57065d04ac", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0031-r0-random-scan10000-main.stat": "b6a27849a37d08631560beb6a602b4642a1f0e4ce26a9c9aabc62fd8343f5a8f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0032-r0-random-scan10000-baseline-on.log": "fc1c010ad2be1288f426c7bcd106931f4bd353ea76b2a717068f02d6be1f56b2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0032-r0-random-scan10000-baseline-on.stat": "70c48572e54700d3dcebbac8908bc0d6ca1c3442aa79a814848e8a3a0c9433d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0033-r0-random-scan10000-selected-on.log": "1e520ebde8bb5ced58ccf74ec09facfe863e1a8f8990dc78c3d5f21ae828505d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0033-r0-random-scan10000-selected-on.stat": "ea6dcc57df3b686a933ceb1e15e03809e67b61b3e7045a41389756f80131933f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0034-r0-random-scanfull-main.log": "74ca90a8b4f5879bdcaaf31bc50819965d8c4f9da76c0b8b4a005273049f19a2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0034-r0-random-scanfull-main.stat": "c4229c1021f63d7732146ac8dce903461a2d71e8854102174f6f690c5a49307b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0035-r0-random-scanfull-baseline-on.log": "d4b1178917eae410b9116529e6eb82728cd90240ece3dfc2bbad24a629756825", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0035-r0-random-scanfull-baseline-on.stat": "1a736dfccf7027ae438aa941d22b753d49cdc73d92ce993a82a29500741c2619", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0036-r0-random-scanfull-selected-on.log": "12dd9d23097c81608c72c349c3e3f13502e631bfa4e85d19347cbeedfbb23335", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0036-r0-random-scanfull-selected-on.stat": "7e36b19bff6a76f139d767112e0c1253e63120cace42f876cccee0cf1f3a3da7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0037-r0-nonlexical-insert-random-main.log": "bbe9c40b2665bc139891fcf22aad20c7dc52883126146ee822fb9d898bcdfffd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0037-r0-nonlexical-insert-random-main.stat": "8b5d672b029b9f4e639cc117c377e46fcadcda6f56a550d9091666e76f787883", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0038-r0-nonlexical-insert-random-baseline.log": "1f2045e923087fd6b8adc1badac8b94db38d783e59f6bb5dc74a0226f966350a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0038-r0-nonlexical-insert-random-baseline.stat": "79a99b7757f75c8097ef07a0a448996d13f8bf2f79326b20dbc6af11a3071166", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0039-r0-nonlexical-insert-random-selected.log": "72f048fb77367461f9dc79e759f438e86f2d67c8048416ec7682e279f391c422", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0039-r0-nonlexical-insert-random-selected.stat": "162b5ad9b1ca2983fc66549d7e617efa56054974f6d23ab4ec9a2132f21fa13b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0040-r0-nonlexical-insert-sorted-main.log": "0ab5fb780de2a65ab8f98a86008d0d13686aa373261d1b01cda17432c0161f4f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0040-r0-nonlexical-insert-sorted-main.stat": "45cafa3fa5eda6b3d3a3cc24a52755aa4aa40bd7c9f4e75505b1f1d27503a043", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0041-r0-nonlexical-insert-sorted-baseline.log": "0debd497632e9c8d06ebc7e95a838fa05f04456814daee92c70b3d595a91e29f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0041-r0-nonlexical-insert-sorted-baseline.stat": "1988cd7aaa408cf2b5d8b88ee7d80b6e4a94683b536b44abe018b21721313c93", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0042-r0-nonlexical-insert-sorted-selected.log": "e381e4741a8159eb85d302c909510b55a39d722deea9b15c6e77966788c1bfb8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0042-r0-nonlexical-insert-sorted-selected.stat": "beb72b95d975ee352dcece33f4ba431af3fd98c89c8ff46db79e1d2404220289", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0043-r0-nonlexical-overwrite-main.log": "34b48e0dca17e389377fe5d616a2f360094e04fe5105415e18ef625c824b6cc0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0043-r0-nonlexical-overwrite-main.stat": "20697b7197af4031756b80428b79d4539e2917004976b505bb65cb39445b0d9f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0044-r0-nonlexical-overwrite-baseline.log": "f412cdea8f02fafd2704d72d391a30e0741eaae902ad4bb3977a5b2e1962111d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0044-r0-nonlexical-overwrite-baseline.stat": "e664ae034f12e089a72fd02cdcbcd5c3962539fa5226259f7de399ecace5d4d2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0045-r0-nonlexical-overwrite-selected.log": "80a4e00d49420949929af8f3efbb6d211aff11a04f0ce7c0deb0679fb1d4db3b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0045-r0-nonlexical-overwrite-selected.stat": "72b6fac1fc22f5325a8ced9c093d6455e73b28a58998b731ad2621bc5b95d910", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0046-r0-nonlexical-pack-main.log": "664f100adfc9f9f2742d6858f0847ce7eef7e29ecd951b6c1005302868d51ecd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0046-r0-nonlexical-pack-main.stat": "d55bde57de9f607c04a26efea82762ee55d19fda928a4b8a241803de9b9c6890", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0047-r0-nonlexical-pack-baseline.log": "59734751c5e530a10bf7b922c77c94d221f9349b5633212b7267d2c60dd0f6c2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0047-r0-nonlexical-pack-baseline.stat": "2e5fc218b8f5c7a8c98d33d70b707bd78f9bc8634b55e60392cb80e55448846b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0048-r0-nonlexical-pack-selected.log": "41a7db2239af5621bf7581cbf43b0534af42e8af69838dedaa139bceae94cbe7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0048-r0-nonlexical-pack-selected.stat": "1b45b73bdf58ca9648ef9c6cf2ee6afbe778a80cfcc2961e4fb95b4c1dd722c9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0049-r0-nonlexical-hit-main.log": "be7a436cae98b96e5186817eab91b9179112c66a3ec2f922a571607fae9c5658", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0049-r0-nonlexical-hit-main.stat": "f8c654818217dc2327147972dffc747c993a6b1572de7502006866d0f080e8d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0050-r0-nonlexical-hit-baseline.log": "0ac0533969a86540e1eab19143d15a7742eb2a5519e811783dbd58447309cabd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0050-r0-nonlexical-hit-baseline.stat": "d41a08e8a42ec3509f6f865c4e7d14e6d0b2cfd29c9ebc0dc58fe0f4009a9c07", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0051-r0-nonlexical-hit-selected.log": "99517d9971a6bb44d72d0ec25b64fedaa78e84a5ceac267c9786acc05c1f5e00", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0051-r0-nonlexical-hit-selected.stat": "560f18635891e261046dfc3cda6afb6d8b46c45338468b2736bef7e2ae301979", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0052-r0-nonlexical-miss-main.log": "c8acb0f9d811dbc6daa75bf955d6f43b9d3ddf37c4d7c45782ae5aacec6d165e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0052-r0-nonlexical-miss-main.stat": "dddd8d3a76d03ba80fabf80aab63216e1e0fd1924443d8dcc5b0e0c4b77d7af2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0053-r0-nonlexical-miss-baseline.log": "31e623ba9d5a3a951449b37773a253af3dd7bf7bb11951a05802948d633218a2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0053-r0-nonlexical-miss-baseline.stat": "1ee839718cf16fe82f1e4e2ba2cf0170ea9af09a781f1cdad8e5fce1e908273c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0054-r0-nonlexical-miss-selected.log": "b1b5e38acd257c0a478095cfa3ff905af7abe7d7dc427e253f7f0fd6c878c336", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0054-r0-nonlexical-miss-selected.stat": "a47fe3aeab0c2b85a8193550546782decdede950a913edc727c7f6d9ae264c48", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0055-r0-nonlexical-scan1-main.log": "c5e6680bbc06cbb922510e870c86236b919ef8e57cd6f298372e95621a8d2968", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0055-r0-nonlexical-scan1-main.stat": "de9eb5c78acad73fad8ed727176d471067042bfd23ad76d1816019ad4ac58d8a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0056-r0-nonlexical-scan1-baseline.log": "7ef64a040b840e5aefe971fc8e64da0d23b646bea57d134375d2ba7c82f0c685", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0056-r0-nonlexical-scan1-baseline.stat": "f439f598aec03939df0b52c4bb0f2a0829a867e44c9f974b53cbebc6ac37352d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0057-r0-nonlexical-scan1-selected.log": "548977b3d63a0fdbb1a490d713e71b003ccaa259e62ea95139040a59ed9e8aa4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0057-r0-nonlexical-scan1-selected.stat": "db056b37c7a548c11b3cb1c8f3fd1979418a6b8415433241a6c1e96e987a248e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0058-r0-nonlexical-scan10000-main.log": "267ba6ee6298bdfb31b80d75bed85414d52b5a6be718531605dfd0692a4606c2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0058-r0-nonlexical-scan10000-main.stat": "d9788bfea7783d8a19295ae269067f0dc845211b3ed74bf383cbee595f2a085b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0059-r0-nonlexical-scan10000-baseline.log": "32eb4cb2302cd03c9ee9511018a84561dc79f46694459c5759e3916bbd690ad0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0059-r0-nonlexical-scan10000-baseline.stat": "199fa94acfd9e56caf84309f4628c95151876daf63ab3318273c132bf7a94c70", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0060-r0-nonlexical-scan10000-selected.log": "ffe0e929ca8980408f90238c1c79eb4ff7fc8f73fc1c9ab799dde4101854906f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0060-r0-nonlexical-scan10000-selected.stat": "cfa7917478325c4fa3bf910d564b00481da5dada0cdd656d495d0f1a2df8a876", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0061-r0-nonlexical-scanfull-main.log": "829a29dae2ceceece1ddafa77b1444ab0e967c0b46d63d8318da82a68bfdb184", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0061-r0-nonlexical-scanfull-main.stat": "82e92b177214579dad4b41f20a74b418424da374e4067a1247fae426284b34aa", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0062-r0-nonlexical-scanfull-baseline.log": "b334ec127a8fde3b96b44df2ecbecd69ab3703ca0de965613e850324e175a83e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0062-r0-nonlexical-scanfull-baseline.stat": "f563e4cfe84a065a025b1f2c1d4b3e3c7e7f5a4c7cfa3442b994d5cc6e96c6a1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0063-r0-nonlexical-scanfull-selected.log": "2d6cf02e282d1355982fd3689407321e7769988c8547d2073afd9c8f1a388172", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0063-r0-nonlexical-scanfull-selected.stat": "012f43691f8ba938d0170d6eead81d7f84593b28823c136fe9e1c1454627a6ab", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0064-r1-common-hit-main.log": "109c1689a03bc130433a59ff2521e6173c7a05f898c86de5a1c389d2adf9c01b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0064-r1-common-hit-main.stat": "dfa4366965e59dea7de9c16db54d54984ee8fd898336672c13aa64f5260fc455", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0065-r1-common-hit-selected-on.log": "95a613e8d16158559aeb38c802503fd39911b753a9a4a0aaf36faace74acacd3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0065-r1-common-hit-selected-on.stat": "fd061577676524fb33aeffa21257aa969e533a0daa9cdeaa38a98cb9e7991964", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0066-r1-common-hit-baseline-on.log": "f8b139792df6395dba6fc8e9331d1aa35e0ea1f06f577cd8070fe11d82f67d7b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0066-r1-common-hit-baseline-on.stat": "365b43037053bedaa46b62fc352540b2640a330a1a6f4b583712cca877a99a50", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0067-r1-common-miss-main.log": "94317cf08b2afea432ba5836278206eb424a2374c5e2489f50d5b3060d9347ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0067-r1-common-miss-main.stat": "55814eabb73408a59d0def3ebbe3accd92625f6ee59a57a1f3ff8fa52aa12f65", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0068-r1-common-miss-selected-on.log": "07293f5a06cd44dc0c5e4a3c3a70af3d3a8cc141d12741311e33379821b2a471", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0068-r1-common-miss-selected-on.stat": "7c1caa131e46ddf0177b943efbd792108d67244c5e00f7ca1cec047fa9f928e1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0069-r1-common-miss-baseline-on.log": "379786b1cc8ddc391c2f4e58d516bce2688ef9f4f71023385c98a5e38cb9743e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0069-r1-common-miss-baseline-on.stat": "e9975993e63f02a8085739f8a2776052b96a6c78e713d1d8afa718997e32bacd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0070-r1-common-scan1-main.log": "1e90a88b0e0bba8c1b3ee0879bbd8f642e53d4b8341816bd885af7432974b251", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0070-r1-common-scan1-main.stat": "c890e0fbee52edd4b062bca2a528f94ec16c4ba4dc2576187b00d7e10389a628", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0071-r1-common-scan1-selected-on.log": "6586961cb56939b4463fe9fff7a1d311dfcd284ac82b49cb6b8ef755a625d941", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0071-r1-common-scan1-selected-on.stat": "a67c11e5f3ec78c810c1878b46602f2c8f5fdc657a35cbc540ab07c4c5299733", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0072-r1-common-scan1-baseline-on.log": "6ecf25c401d7bd63a851cdf575e4b20c5411d529b3caf7971afc57cd5a811ffa", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0072-r1-common-scan1-baseline-on.stat": "ad49b67de2b33fda275a89a2e966d6600f7bcd1d00bc6f0dd73fcaf29eb482bc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0073-r1-common-scan10000-main.log": "1764f85c8b2dd7a787daa3e315604ea01063bd3cae7c0372bd87098fc5a5873d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0073-r1-common-scan10000-main.stat": "855a54d7ebf8e9bc70dd179330eb403a778bc2d3d50bc9f2d698411334e54cd9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0074-r1-common-scan10000-selected-on.log": "002179b45b1304efe5bac211ea04fb73cdee1c0e41f500323ed5790e2353e2f8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0074-r1-common-scan10000-selected-on.stat": "667cee456bf8c79d488ddd26a7cb3aa95b7a7af1753c584bd10d31959745e3e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0075-r1-common-scan10000-baseline-on.log": "07634aabaf0a04412fadd29fae34760c812d8bd5e89d36202f07bd4ae3599678", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0075-r1-common-scan10000-baseline-on.stat": "73cd6ff7b5de42c949143631d896dc3d3307d05fc5f6d6215b23b2b9179af573", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0076-r1-common-scanfull-main.log": "06247a04f3eee82f38ae308e92308bec140a5457b48e5f3f718c48c4b9ccddff", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0076-r1-common-scanfull-main.stat": "c1262fa76cb0df57d4610942eeda17eba460451ad645a796dc7a6154e98fab3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0077-r1-common-scanfull-selected-on.log": "529cf9f0120843b9e5d41089607d49ee18965db334cd8ae44b75e8b8eb61e12c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0077-r1-common-scanfull-selected-on.stat": "a8d4e85684bf06b5974be96503ff7d55dbddcfbd5b716cc3bfbafb8e47dfc4c4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0078-r1-common-scanfull-baseline-on.log": "89070bde52d26e017e88e4042ad4422ba0153522f8af021992e627ca4c18ba10", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0078-r1-common-scanfull-baseline-on.stat": "1ca47b22f6b73cc4af825e76bb0a5d8d93f128b86be0494aaa980909363bef7f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0079-r1-random-pack-main.log": "22601f20f0f12bb000293b348fb7e90100e78c3a763d34c32f60faad7e3af691", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0079-r1-random-pack-main.stat": "334eb99c4382010fda41309b707b3e97815020508f2dac9cbf66e8f03ed0e9b6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0080-r1-random-pack-selected-on.log": "dc31717f09ee33540ec00b39725b3be47b62efd25e309b3c944096c2ed71493b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0080-r1-random-pack-selected-on.stat": "dbd0bc53bd78b36884a95529e5b9d9e71b58920bdbce39b0fa487723d1b9125d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0081-r1-random-pack-baseline-on.log": "9d3dc316a2b1caa903f45eea30176b0dd4898ee2d4124cba9cd6bd6d5c114021", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0081-r1-random-pack-baseline-on.stat": "c32453e031d5b7ef6f6e96c0c2bd11deb8da0cb2c6a79c14fff7cc83e7ed21e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0082-r1-random-hit-main.log": "5f3cd675ac09b9e621d582eca79849f61ec73caaa154e2d0258e5419871133d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0082-r1-random-hit-main.stat": "55f743ae451e8c8c57aaabd2ecdac6f70db9df3fe792a2935d0152daea5191fd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0083-r1-random-hit-selected-on.log": "ccc831d95d9d0b1ae7b1681dfd21e5d3274bc4f29e34deaa61e610671416ad80", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0083-r1-random-hit-selected-on.stat": "702ea438cb1077f508cea335fd96599e9d211c37cf83a8adee5654c23f46e57b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0084-r1-random-hit-baseline-on.log": "634f1d91e6f46fd513eca1e34af04d1cfd67c4bc2f2c8dde2e40317c74711d05", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0084-r1-random-hit-baseline-on.stat": "d7ecc96d7d49624f2e1689dc6f191c7fcdf9e3ee78ac93f906d356dbe50dab9b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0085-r1-random-miss-main.log": "ead83df13b5980bc5667f4b11ea2fa312db8397e2405f02cea84cd46e3ecbbba", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0085-r1-random-miss-main.stat": "0e3633178b8e670be52144f206651c11fea4a3c68946d4e5f9854276c62daca9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0086-r1-random-miss-selected-on.log": "bb6458b8b220611cabc7a85c795962097560d2e9e84d92691a55b255fb30f5f4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0086-r1-random-miss-selected-on.stat": "cd493a88bd966b81703805b0f22f943b218ecc7cb879dcc178ee17e31948caf4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0087-r1-random-miss-baseline-on.log": "e47e30442ee09f29e6235496ea63d0fcde23a02e9ccacc5c411948ba58463691", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0087-r1-random-miss-baseline-on.stat": "58aa2385be4db1318cf6cbeaae200c1ee035a2c70ab492e2d3fbec8ff5220b7f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0088-r1-random-scan1-main.log": "d587687655d53099861f8b2984ece47e36d206d0d61c405c394b4d6e07a47e74", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0088-r1-random-scan1-main.stat": "c469370794897560c46c6b6a2c6c6656b0bc242480a3ef3eb2e5f9876f71c627", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0089-r1-random-scan1-selected-on.log": "3e303bb9f28d032bbba954d2983ff9b595a57a909a378171a8107665b40dcf58", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0089-r1-random-scan1-selected-on.stat": "bc56e850e5fdb467ff92b7240096815d795e743d1c76de0918214b2e7f0c5d69", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0090-r1-random-scan1-baseline-on.log": "32dcb3bb2c16453205c270bba1a70b0b47e5dc70bf913336b637f3a7a0cf3aae", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0090-r1-random-scan1-baseline-on.stat": "a13c6c4a0cfa7a21d252597773fa65962c967215dc7124bdb93135b6d4a25e22", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0091-r1-random-scan10000-main.log": "1c11ed80fb31d1b5d788f8e49fc6b4fec1622c1c7c2b123d1afc351791365857", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0091-r1-random-scan10000-main.stat": "03b79864dd3f0dfdb0d016c7e1701fecb3f9c79b00f89995b512376f254e0953", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0092-r1-random-scan10000-selected-on.log": "67fd3715583aee0a14cecb12045d4d1318c48498ff616518afff4f7bc013db10", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0092-r1-random-scan10000-selected-on.stat": "db7c9927c92b0664b7a9e05d70b54823800b97dea4d385850aa22f1926ad60ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0093-r1-random-scan10000-baseline-on.log": "1082bc4f070294587b6badfd7267f96496305705f27fddd56ee342e9779d595d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0093-r1-random-scan10000-baseline-on.stat": "31d6a18616be2a562a57f8c8f7bb0f45391643ce7d5bc2ad7711376c1fe9b820", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0094-r1-random-scanfull-main.log": "410f5b3f6d341be9a438a44e5dd46b3966ead83add4d4ea7864f64524d793078", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0094-r1-random-scanfull-main.stat": "c15f74fdff9030b38a5fe32ee0ce96f1b184a267e30f4b8f27a2011edef68527", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0095-r1-random-scanfull-selected-on.log": "eb29cd9aa1745cafad949b52fc968e74aa1012e998cd01415a66da0123e8d490", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0095-r1-random-scanfull-selected-on.stat": "8fd725bdd8d3e5ae4c00b55de5edc6427eb5c0380009ac84bc92aafdd4f38272", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0096-r1-random-scanfull-baseline-on.log": "c5679f5a07e6cfaee401ecf4b6fc0ce65b57375146b373eb56aac684b8dadf66", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0096-r1-random-scanfull-baseline-on.stat": "70c69cd513547bf6bb18c99a9831fc538a2ebbb304d897070676b3239598f9f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0097-r1-nonlexical-insert-random-main.log": "01cab38cf843b44795832c6c8d229d7bf931097b8d80c3bfbc7bf06399385213", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0097-r1-nonlexical-insert-random-main.stat": "09e2fd1e2345e22c0defde63d5c8395feaf3ebfab6190bd8ff5ce27d45b301dd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0098-r1-nonlexical-insert-random-selected.log": "ce0cb0a74c6f42601a4e62df3d3e28507eb66ab510b1fcea05a1a9b4f8f9d54a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0098-r1-nonlexical-insert-random-selected.stat": "034ed4ff94b252cac17b367dd89dfb62c7c6a80acb32a8351fa47227379abf97", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0099-r1-nonlexical-insert-random-baseline.log": "e03d56bcb60ac078e57f7ea33c97274affced2fc8d1e4e16fae26df9d8794ed8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0099-r1-nonlexical-insert-random-baseline.stat": "28ed1b47a7a4ad0ae070c8afdcf35e94e3335dbeba0e50ed3686d6c0cfd2ece4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0100-r1-nonlexical-insert-sorted-main.log": "55b47d069fd829319f85fde431814244b21180533b80c6d5d81620da96de3c72", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0100-r1-nonlexical-insert-sorted-main.stat": "c0208135ed7c7bcc78086e8961369b2e20324c1e5a976a43792e97465af1893c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0101-r1-nonlexical-insert-sorted-selected.log": "559c294e902fcc7d9430b3666eb482f4acaa5eadb0e0f584a7db895aaa0158a8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0101-r1-nonlexical-insert-sorted-selected.stat": "67309eba8b5a307e13e104cb8e4dfd106801f6a9ace3f314596813f632fde493", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0102-r1-nonlexical-insert-sorted-baseline.log": "c6685ae840995f2e72865f9bc8b18264ba40d49a60a6b4c31bba6cb2a53bd2dc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0102-r1-nonlexical-insert-sorted-baseline.stat": "2e4b774a24908a7d8538a8eac3f8d578b66070a1bf35467ad8ccde67b662b9ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0103-r1-nonlexical-overwrite-main.log": "da1ca5566f05abd65be7518e1601897059ac7e4ec83e6f1359cc3bae5c3bc6f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0103-r1-nonlexical-overwrite-main.stat": "4e31241c147d441f31d85a29ba61050793b9a0606eaeb3cccc4567b32ce3cd69", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0104-r1-nonlexical-overwrite-selected.log": "abf45565f53daaf932d998ade7ac8c52216da393fbb9c1061d6c1106b7ffb725", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0104-r1-nonlexical-overwrite-selected.stat": "cb60f5759d3c992a72430c15229f0f0111350fe7bc775e58740a7755047e577f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0105-r1-nonlexical-overwrite-baseline.log": "6aa6e343c140e3f5f230f3ef49d304b4a785a5dae009d85e99dc22fdf428c2d2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0105-r1-nonlexical-overwrite-baseline.stat": "53c3a90b88aeeb8b222e0e010d63dcc31cec0ead9c5b79922492860a335a958c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0106-r1-nonlexical-pack-main.log": "0c97338c05d00bb432f5cadbf6a4df09d140608b5d5da1bc4c60ac1c45dc54c9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0106-r1-nonlexical-pack-main.stat": "5fe6f8dd071fd78f8f04c07b809b348b17f5b1f75fbdb69eeba7b083bebd154d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0107-r1-nonlexical-pack-selected.log": "4f8ab894b37725c36a9619aa612bea8add94dc433e9dc762fad05d27bec7e406", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0107-r1-nonlexical-pack-selected.stat": "a379bbabb54cde3daedff3c82d0e2a10d51df66e39169d41304605526294ef50", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0108-r1-nonlexical-pack-baseline.log": "d4db68eacfe522d31f4e1efdd63a71ab42818d5285862c7c178050b72c698d62", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0108-r1-nonlexical-pack-baseline.stat": "f6b19255b7d287b401dfa9992b990c2cbe5bf69dd26b42704dda6cbfab66193d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0109-r1-nonlexical-hit-main.log": "53e0af25a6f5f4d150ab9c9eb309573553c8088d05dc72f1be1138d9790adece", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0109-r1-nonlexical-hit-main.stat": "0b58ffb97d308f7ff052773c41c677a00d84dde1d53c5c15f90d29d472add501", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0110-r1-nonlexical-hit-selected.log": "1523213420ee2c15bcf138d94d88850862564551afbe629f0cb71e10ad1b7679", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0110-r1-nonlexical-hit-selected.stat": "76613248a31229dd5c8a6360c1b71d73f675cffda1a930140f71677b267f9207", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0111-r1-nonlexical-hit-baseline.log": "7c7fecdb9d8e89949b391c125ad1b02e76f7c3a52cde36fc25206c231f2ef060", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0111-r1-nonlexical-hit-baseline.stat": "d427819f375dcec27a4ab0ec179c749f7ae87189efcc886f14966f973c7a361e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0112-r1-nonlexical-miss-main.log": "cd9dc94930e3a97d95e8fa3749dc69ebb87862754632749cd4aaee37936abca7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0112-r1-nonlexical-miss-main.stat": "434b81b86a9c0f01e68718975b095231b4ecdeb2d766fa502bb805c3a8066c0e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0113-r1-nonlexical-miss-selected.log": "8f746d8843ed780f1919efa4c004952655fb716f60b561bc07b349c072e0f7ba", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0113-r1-nonlexical-miss-selected.stat": "95e2b1bc1b607d8604d9be6481d9671df096f83ea08154c69c66130ecd6aca6f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0114-r1-nonlexical-miss-baseline.log": "b2f677306721ccce66f18e7bf13cadb82df5385e16ff402a4decf145ac6019bf", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0114-r1-nonlexical-miss-baseline.stat": "385bf9af51e91e03e4576c3d2a2789d5791c13ec0edcf47bddd0242129be190a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0115-r1-nonlexical-scan1-main.log": "8b3925d3ff63b84946445296513b04f6fb592d564690ed50eea7b686775897af", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0115-r1-nonlexical-scan1-main.stat": "55b0f6c14c28d7ea1e6ec475631918484e47eea07ff0d7b2d08fbd5071b83e94", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0116-r1-nonlexical-scan1-selected.log": "6c156bd2f39e44239f3b732c6f0c10bd5e0e45a041990f7a0c164d1cc2980c41", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0116-r1-nonlexical-scan1-selected.stat": "9929d371b71029735c3a259370ee04dfa328f0d4ed3766dfd68d1d6d49aff5a8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0117-r1-nonlexical-scan1-baseline.log": "6d8d08d88a075024e9a751eb44527c0990a2622e9c712fe06d012e7ab0fa84af", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0117-r1-nonlexical-scan1-baseline.stat": "6ca92b059ca1d0f9f817312953324de2968cf4561af3cbb06d41594713876eca", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0118-r1-nonlexical-scan10000-main.log": "99b75b9d7d71256c324d83f9d612d45afa5186b768b2d10a89bc0e167a5b540a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0118-r1-nonlexical-scan10000-main.stat": "591c2c486a4b757aeaf4ba01b52e339267aa2572f483b1801b9001009bf77877", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0119-r1-nonlexical-scan10000-selected.log": "e9bd87f4ad0d2db7a3ed50df72024fb29b1bff2ed3da67954f6601cc6bdb6fb9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0119-r1-nonlexical-scan10000-selected.stat": "61fb5f72edfc38f47a75cbec9e451538fe04a963223373d50fcd246861c248e0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0120-r1-nonlexical-scan10000-baseline.log": "2f9b374e5f5e615db0e566bf4df6cc40aa1606feada76c95a1cf58911d134c59", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0120-r1-nonlexical-scan10000-baseline.stat": "909fb47391b897e98865d8a3d8ceb5aa633c966ff58498fee227da1259cf2c5e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0121-r1-nonlexical-scanfull-main.log": "b80f263a8ad8f7666bfdaaee90f7b3a1ee8b507416f7e658a5d373a25d64c2b6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0121-r1-nonlexical-scanfull-main.stat": "8c7c10dae542c00141151e67fe8a85637643497dcf99c330ccfc7ebc94cae67e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0122-r1-nonlexical-scanfull-selected.log": "fac1f95574f16e5260ef8ddd797d8e938f07abb30ba65ce4f630505c90295d24", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0122-r1-nonlexical-scanfull-selected.stat": "78f2a656ea1ab4e47d2b630ef8f6f657de33a5d46e2651fd0a8152fc543cac19", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0123-r1-nonlexical-scanfull-baseline.log": "608cb8d00f875520bd1cca2ee9b837f49d859ecb6a8d08d5fc287c74de8b0cb9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0123-r1-nonlexical-scanfull-baseline.stat": "5e49fcfeda31fca7a9ba6a618ca313a05d76b03d0b9afe545770686abe5f52bd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0124-r1-common-pack-main.log": "96e8165418f7ec0766b0aecb56dfe2fec1e1a66c0398c001f49fd79ffa7beafd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0124-r1-common-pack-main.stat": "6879bb8ab1d241a611875c2162a152585d286ca9ec7c1c9ff4e28226428ad6f0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0125-r1-common-pack-selected-on.log": "fa6bd0e021e69f081119361eed452f1f4cee251908eef710d0cd2bd0da6b3f75", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0125-r1-common-pack-selected-on.stat": "a4ac1e41703e15a3ac71b65bf43c042857c2d1726152c2c3b65ccdeaeb29aa75", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0126-r1-common-pack-baseline-on.log": "5c49994a41e2091ac10d148e812768f402a074f12116267003bda4950e8a8625", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0126-r1-common-pack-baseline-on.stat": "4ce15ef4d65cacb4dfeab6da0158d4afe11be8a371c0c4690c8f1856d14f6dcb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0127-r2-common-miss-baseline-on.log": "0740196840606f36cf45e9195e5f59910a18812d65ee10102dba87c4eaee1070", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0127-r2-common-miss-baseline-on.stat": "e1e21af9d427f32b238f858755cf210751341e748a26257380f088e66cf70d8d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0128-r2-common-miss-main.log": "e7b659d07faa7d1056ba802cb7acca7d76e6abc74ac10f7f9fe97fc0b98b55a0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0128-r2-common-miss-main.stat": "9ff096f3048886c756fba28cdd5382fe9f5d125a5e340bd1e46b08e8016336f7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0129-r2-common-miss-selected-on.log": "47a8ff2985de2e6e72b96e89696142bc81dc2b6987929ea6c69d1c6242e8869a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0129-r2-common-miss-selected-on.stat": "85c84a4dd8af60af2691a222de9fc71dbb7af5c417bca63dc4d5a03244de1af3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0130-r2-common-scan1-baseline-on.log": "c608545429547367d02bc2cfd59e9fe3d7d4d399eb73dba679976cd63e5afd76", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0130-r2-common-scan1-baseline-on.stat": "ff075077134db1f5b02f9897e8e010f987ea4f0b23958709a7192a98e2d3c133", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0131-r2-common-scan1-main.log": "eea97a93939380d7ba738f67bf4ebcb60f59dce9f52a3e1439a9a619a6469379", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0131-r2-common-scan1-main.stat": "0e7aeb78b92b9fe71de60738064c9a384425627f80243063626e2e8862201940", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0132-r2-common-scan1-selected-on.log": "dc22e60055bb08204960223103e3381e8f04acb6c61f2984f2e6ad5bf4713d57", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0132-r2-common-scan1-selected-on.stat": "940b96f4b3b4ba1a9dc8c5594b4dda83bd9ef77df22f3f98e9fe6214a5f04cf7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0133-r2-common-scan10000-baseline-on.log": "802d8a1cab1f5a6d752a13e1e6961cb4c8b53ec47a3473a5d04f09f40bd84673", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0133-r2-common-scan10000-baseline-on.stat": "8d97e9b54ea633cb7f53501929e893bc5e43a1e71388287b4d27fc7fdcfb1ea6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0134-r2-common-scan10000-main.log": "1a556fb6fdf800243f7ab4243fa6fb5013609faa110f0fffa2f1f71b5151bf0e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0134-r2-common-scan10000-main.stat": "195926b426d970a137c1b761bd9e1959d65af035cc1e653e9bc4e509c1f35923", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0135-r2-common-scan10000-selected-on.log": "179f7c9b653d13f880ae750cfff4b9f6b995d9fc59c17430b3ad651ef28df4f0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0135-r2-common-scan10000-selected-on.stat": "4c39360bd936b1f2f918af8a3c4f7690532cc34bd15ba0881532a21adfddc918", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0136-r2-common-scanfull-baseline-on.log": "27c7939307edb17bc89b6028b8d39cee0913c3599a9051091116d3f1bfd02669", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0136-r2-common-scanfull-baseline-on.stat": "274a336b2207211250d01b822130d8ff0f46baf78daf5d888e8db1cd5c9a0a13", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0137-r2-common-scanfull-main.log": "01241ea7aa3c6ef0590968546a3e58f305f694eb1ea173894d424e44a741b0c2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0137-r2-common-scanfull-main.stat": "b04d1964fdef52832c00e6adcdca63c9411c32195486cfc8232097f574ecbb32", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0138-r2-common-scanfull-selected-on.log": "22467560d97ae9480535b7292b029fa9d51e9ae80bf1f574e92996efa000ed26", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0138-r2-common-scanfull-selected-on.stat": "d2912c8eb223f0d896f02acb16db0a69e917db331361e795c2f9f2028a2b29ef", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0139-r2-random-pack-baseline-on.log": "e0aca85ef6db5b3ab597199d5788356b43286c95503101ebb7d08e84a1ef48d0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0139-r2-random-pack-baseline-on.stat": "27dbe1869abf2718c44351b0546015433c1f8bb2d2bf4041a63eaeff29e548fc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0140-r2-random-pack-main.log": "e079207a826f12de04a5bd0f16ef572c4da416ed4da693dc8de8f24fe07d989f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0140-r2-random-pack-main.stat": "a44b27ed126571111106086ab3ae65e59c2dc13ecf377f57a85046c4e6c78ca9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0141-r2-random-pack-selected-on.log": "b236e50b2df93ad5fd213b378627076ba95aded713148468c9b50921bb7c3f5e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0141-r2-random-pack-selected-on.stat": "a4d7eab75dc8afbe6ec1c898d026fba583fffc6bce95f8369b99b0c4358149ff", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0142-r2-random-hit-baseline-on.log": "8f658abcedc63d8f42e4a6619350a9d3a4e847bd252a8fbf2aa90240a12ba201", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0142-r2-random-hit-baseline-on.stat": "c6acba0bc37560badbeacc1b169cf4f66d45b8a064174f72ffd257522b473a05", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0143-r2-random-hit-main.log": "5703b050be871e8b921b67465bd8cdb072777020a894e4c3e8f65bb2b3199dc5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0143-r2-random-hit-main.stat": "5634af6c571c8227691983125ff1c7d499744936cdd5b049b0491f59a5dcd9d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0144-r2-random-hit-selected-on.log": "845305489f092042f6f9e095bd2b2e1073784c427660ff55665b00c5bc5b58ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0144-r2-random-hit-selected-on.stat": "bb6637fc7a59b58a9b8fc835cb47c64e78ecd7c906be07c0f755fb1cd5285d23", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0145-r2-random-miss-baseline-on.log": "a1674a3896b598e4dfc533cdc7ad2d978a01d08e8b509f595a83bb27d95259aa", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0145-r2-random-miss-baseline-on.stat": "e10872df50aeb7a3147f3d843320495a358b7eb0a6eb008a5dd8005c53118cfe", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0146-r2-random-miss-main.log": "1585520d070ce671163a5cb8d37e46666de28b95d07d84d92ff3b0797b5a62b7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0146-r2-random-miss-main.stat": "93d0fd75ba5e8f949fbc828c4a4b87428e92e5dc62f090b376095448b12dfeaf", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0147-r2-random-miss-selected-on.log": "00ff5a9417673d195b36b93b7d9c19e53851cf37ab6a55208b7717871e539f69", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0147-r2-random-miss-selected-on.stat": "8f74811911837b7d83e7bf4861fb5f9e28fb73fa04edce889cd4899174071f83", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0148-r2-random-scan1-baseline-on.log": "53439605f03004858088bec99a46b6431add5cddad9d37fb17e5c7f9d52f8955", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0148-r2-random-scan1-baseline-on.stat": "c04823808c620ce1744363dc1750b79060ec8afca76839b95ba4a139f6806225", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0149-r2-random-scan1-main.log": "05aea2e1a1f4b63df22182f7682941b40a87a4d27598524385861e5e5bd626ee", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0149-r2-random-scan1-main.stat": "17bb14ed7c85809145d01f325ac1c47db1350afe30a065c365cd0b8447ab3c26", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0150-r2-random-scan1-selected-on.log": "326401928cc4412be43a222b767f8eee5c9fe94dd168c02fc6e2b06dec2eb882", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0150-r2-random-scan1-selected-on.stat": "2aadcb155e991b81f73d364be7ef724e40bfc51a5db6118a4e4f27504c4edf79", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0151-r2-random-scan10000-baseline-on.log": "7218a7bddf843e2e53021cb44302a0bb8339099ebd33dabe11a5b486de4931ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0151-r2-random-scan10000-baseline-on.stat": "007590bc8981f06272e1cae96c8c4818a4abbe52f947911bd1dead3496bf75aa", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0152-r2-random-scan10000-main.log": "5f605efbee6a7216487445d335d77bfc7aad47189991738a309f250f8acd46a9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0152-r2-random-scan10000-main.stat": "3a8f5db22a89b554eabcc518e595cfeac673a72924a75a46c0b96fe2b86408c2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0153-r2-random-scan10000-selected-on.log": "91a08556f10bea96464e1cdc37687888480377cce4d8fbe2b208319a5608d35a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0153-r2-random-scan10000-selected-on.stat": "66c7b1661be17ff047b526d6450d2660f8dccd1d452138c5ab342c38b9d51792", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0154-r2-random-scanfull-baseline-on.log": "c286e03e0c21258c71644aa143ad8a3b93372c69d3d44227a51677289c99543a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0154-r2-random-scanfull-baseline-on.stat": "69441e69febef43e024d9be573b815655c3cb60200799e7e4a349224b783f582", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0155-r2-random-scanfull-main.log": "a312feec61a49b7024ee70811b3d170f41b9004709ded4c02de92643b043cdd6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0155-r2-random-scanfull-main.stat": "d411db3565bc0db3a1a4e0b473ad88580e8f6f6e9b914e2832dfa687f1ea6e4b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0156-r2-random-scanfull-selected-on.log": "e95c1a63c225b5384a72883a2dc0862a2a3772ccabf61f6144ea25c2b4ae8a0f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0156-r2-random-scanfull-selected-on.stat": "3395e202b34de3a11ce47b420759d5b9de509856de33718adbbeb66b146d8369", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0157-r2-nonlexical-insert-random-baseline.log": "5e536dd500da4eb7d6bdadaa3a2bae20f87cb51698f70daa8847486da87081e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0157-r2-nonlexical-insert-random-baseline.stat": "b3afb1b0b1c1ab9785227b1bcb3b5390caf9aac54549d0e3bfc916c90d218186", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0158-r2-nonlexical-insert-random-main.log": "594fbdfa69f01d7fbd95c2dda64a3058f9c4bee21e2dfd7cef048967a56d24e7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0158-r2-nonlexical-insert-random-main.stat": "2b798bba8bc5d464e66fdcf20e0f3e88c5aa13c98c73a7f9f7a293fba43aee0a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0159-r2-nonlexical-insert-random-selected.log": "2ed9965b46dac0d8a34e45f18cfe78e3082f84f41fcd4dce168b78846b3e3d46", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0159-r2-nonlexical-insert-random-selected.stat": "f47e3b2c57d7101ee1dac90175179f65a771abd5f47ef80353e08d2d0dc8b7bf", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0160-r2-nonlexical-insert-sorted-baseline.log": "40c0dff25d287922c7805034d47af5da8b19efca30360b4efe3631d67b87c093", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0160-r2-nonlexical-insert-sorted-baseline.stat": "5a1f628559715103d7893c701b82715059b773f939a8b14669e392c185d222af", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0161-r2-nonlexical-insert-sorted-main.log": "0cd6ebef71f19f622674fcf8c591cd34542e423772ba331b3c42e59b3c02806f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0161-r2-nonlexical-insert-sorted-main.stat": "f4a51f7312c480757b6d498530b502b0f8fa421e00c9652ae568d523225f514f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0162-r2-nonlexical-insert-sorted-selected.log": "16bda6745c4e3b33dbb909db43ae5aa8ab11c8dec42b63450a0ccce07fad4215", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0162-r2-nonlexical-insert-sorted-selected.stat": "66bf8f7fdd989a83e9f47a720363a3a07bd5bb841c15d5e738cc56a4bcaed6c2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0163-r2-nonlexical-overwrite-baseline.log": "8fc4947ad8bdfdd0b8e05dbda5423e5f52cadd823e87ff9b7a2b919d8aae87f0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0163-r2-nonlexical-overwrite-baseline.stat": "e312e4c306999fe03680d2988b521b9096ed07e6c72e0734e9c5e87187ec1242", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0164-r2-nonlexical-overwrite-main.log": "92967c1d0f2a08b1e04ace4f7d2c054fdaab929db78f066086bbf8ec4e78c544", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0164-r2-nonlexical-overwrite-main.stat": "991a640e8d7b9f225cf482e74133dbbd1a38e371cf6eaa1a18c2d07cb22052ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0165-r2-nonlexical-overwrite-selected.log": "76d8c2a86cfb1c1801acd43b9bb54a1af350a6af1597ef27cb327b93ecf99173", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0165-r2-nonlexical-overwrite-selected.stat": "68a256df4b50c40be35e4fc0be698872cc8d6931548909b41f7b539ffbbb40d4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0166-r2-nonlexical-pack-baseline.log": "11bef67f7eefe0b56e1950e6bf706fbd7097b1de900d675266ea4b0a1a6827f5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0166-r2-nonlexical-pack-baseline.stat": "e0d2e1a5eefcffd7ef017a38112df68983bffa0b5a8c4d5e5bee9b534c5d06f2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0167-r2-nonlexical-pack-main.log": "6c2957efb37e533e542da5550f70bcc0b53bf849e1d82db34a46e17da5da9b93", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0167-r2-nonlexical-pack-main.stat": "b227413ec7fee3b318150aeb6cf77ad8e65c03d618f732803d6f24c2e862d0c4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0168-r2-nonlexical-pack-selected.log": "3af19360f4a7602d6e1108aa72b8223d19b07c16c5fb770c260c58b99a641e61", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0168-r2-nonlexical-pack-selected.stat": "7b9debc248e309eec3579bcf92e6b66ab066d99708d06af1c906918822b6642c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0169-r2-nonlexical-hit-baseline.log": "7b8aca0cd71cbd8509f42f65ef572f0caa3be66a294fd45171dc1d4e66c13e3a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0169-r2-nonlexical-hit-baseline.stat": "5a303dd8fdbd7e38ffd1faca1c09b531a6a21df1be003c2c54347a36e46a0c89", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0170-r2-nonlexical-hit-main.log": "070c31fec4ce2afcebe40767c22164e8f200771c5b7e5e27ae4d81a1e86e6a0d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0170-r2-nonlexical-hit-main.stat": "f377ab615cfd3e4d80290255acaca83bca30dbcb5ea0d6af0af5605bf962c604", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0171-r2-nonlexical-hit-selected.log": "30f21e189400a7907f7c59a97db4ccf725a46494efbba2dfc9d4644795520e93", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0171-r2-nonlexical-hit-selected.stat": "6c90087912c0bea7d02d936819cc8759a7e72e3240b0fda63e381da61601852c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0172-r2-nonlexical-miss-baseline.log": "afc12cb01c9220d01254c43d5e5eb8ddd3b3c025604e1e0d2d012606723f22e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0172-r2-nonlexical-miss-baseline.stat": "2256e1807d02b46f2c74b8030290031fa1e4c3f79200c1dab55028e800e8b17c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0173-r2-nonlexical-miss-main.log": "3eb40cf9381ad9152b4fe1ebb5bbbd2a829ed3400f33fd52df839dbbbb9cf34d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0173-r2-nonlexical-miss-main.stat": "eac9971f067c9a44c62eb29877ac434a39560efd4ed062f646f496be1ba66414", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0174-r2-nonlexical-miss-selected.log": "e81ef9a7427ab1b20093e7bc7d93d896b40c576f39f3004ec69766e5e71482e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0174-r2-nonlexical-miss-selected.stat": "9e2b8f6102256cc0d7b87380d087fe415bb9d03ba920717148e7674f6f77d25e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0175-r2-nonlexical-scan1-baseline.log": "1e1cfc39924b3eb79d2d81a2c3f3eab2ba01b35d88e160b006aad330724ac3ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0175-r2-nonlexical-scan1-baseline.stat": "4b67a1a9cf80550108d47a8ce476f8d9455debcdd9b95f44fad6ab37b0a885a8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0176-r2-nonlexical-scan1-main.log": "f39ed256d5fb69c0f9894bb6d33e6a373ff8547498d45b5cbc78fff665dc68dd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0176-r2-nonlexical-scan1-main.stat": "d12bc2eb0f33b11128885dba5db285afbbbcc31a2c02183e1595873d6c2f3478", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0177-r2-nonlexical-scan1-selected.log": "50ad55ed7a039d4bed7ee94863257b2a38e69c56092be66514292d0fe19694c9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0177-r2-nonlexical-scan1-selected.stat": "d64a6f27ed3b437edb362ba59ac7465f231af6f0dc59d4db4b7a2567f038f48a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0178-r2-nonlexical-scan10000-baseline.log": "3a837ecd6baeb6d8c182377fd98d40259bd287749e3a9abde3ea2794249b7844", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0178-r2-nonlexical-scan10000-baseline.stat": "c8fc1c6f6158c160c439216e133e30cd4c662ab744f7bbd23bad8d01395b186a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0179-r2-nonlexical-scan10000-main.log": "7e20ca5686438e0ae0b6f688bf912b24c82b8bdc83fa2cf4fa4585213d0a623e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0179-r2-nonlexical-scan10000-main.stat": "820e66dcfbea22a474e70193e31146e930a968ee770a398cedf66bf332be2b0d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0180-r2-nonlexical-scan10000-selected.log": "5c07431529a481d36fbb151b7246a9f6f12d37967885ffebd93638b7cd308448", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0180-r2-nonlexical-scan10000-selected.stat": "6ec1be2e684f30dd8cabd006586ddb3814b15a42495542a2f4262d7763f79542", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0181-r2-nonlexical-scanfull-baseline.log": "63adbf6526d80065f2e03a007bd2cf2059bbc8bab2e643c4f0ef4c9c5948efcd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0181-r2-nonlexical-scanfull-baseline.stat": "7d8c0089362a1674e2b2ae976dc4cddd79e4fedd37d1767172c88bd2c28ba813", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0182-r2-nonlexical-scanfull-main.log": "bff567228addc82a8f7b4fe7ed05ee65cd7cd6913a9112172fe5f962045694cc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0182-r2-nonlexical-scanfull-main.stat": "3545fd861252b567fe95fc17d5d09f9ec9614a54ea8eb684b77217ecc043135f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0183-r2-nonlexical-scanfull-selected.log": "e9d0b59005fb7c4faeaae9641776edb127a1b356450a541e2a289d401eae09d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0183-r2-nonlexical-scanfull-selected.stat": "2062fb152e31a3080ded0d955080509eb11a3c1734256e1ba5641c3ec557ec48", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0184-r2-common-pack-baseline-on.log": "3ab404a9f2b550b13747b7f14add0fae3a6606eee920abc72dfb8e3d9f6383d3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0184-r2-common-pack-baseline-on.stat": "73adc4d42ad028af01f15c0c86be6c0a5cb931bba823f882f75baeeb2416bd13", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0185-r2-common-pack-main.log": "dffd906ec6fdcc903375b4a8250251bb61cc0b1538db2035b1ff6f3b8d853262", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0185-r2-common-pack-main.stat": "2d2a82a848dca8a7bd9fdc79e3e07fd07742334f230d5e7b86dc88866c8e65ed", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0186-r2-common-pack-selected-on.log": "4f0aee22bf32b647a5d3f1fd1fc9eecb7b56ef097687d12292a8d48c42a8cbd4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0186-r2-common-pack-selected-on.stat": "f402683da567a4c226cf2b396dc579a3a1a1ada6d4cdcaa6309ae1af86a4f69b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0187-r2-common-hit-baseline-on.log": "e11907db6c39a36e11c9c495284145e390f616f7005cab2484f628b973e11cc5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0187-r2-common-hit-baseline-on.stat": "4bf1cff27a91a686e710f7294b65f255c81a034ac2f7bd00d7952077b9e7d03c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0188-r2-common-hit-main.log": "5eb6cbf43d67451acb9f6383bd6c7a24050468ebe884354deb5f357c12991f2d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0188-r2-common-hit-main.stat": "d2b4f0a31f8ab1b8faaafe15d61f4295a2a7078d50d87a8bd3b04f346b40f2df", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0189-r2-common-hit-selected-on.log": "414be4a88b3f0cf1e76371cc5b29c8313070072729e90c20fb452cc31a653588", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0189-r2-common-hit-selected-on.stat": "730f32d0a0a0f80adf804f4a5aec0f5b99a651a7912a9cb5572c87a7ca11554f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0190-r3-common-scan1-baseline-on.log": "749a4bbb672f4a490aeb45f4aeb05e71ca7dcf5d095c33206e2804c645986302", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0190-r3-common-scan1-baseline-on.stat": "c86c272de87530b7295f5cdc56cde67ea3644362692b09a2c402b1bd4e222280", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0191-r3-common-scan1-selected-on.log": "4fc6b1d7e75d44dfa97cf491bd8bfe25a1d19f9b766a3a29a02c134d5f7d7cbc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0191-r3-common-scan1-selected-on.stat": "d153e4b91ab6dde525de4989649ac5eb193cf901177015992ce5901ef5ce1103", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0192-r3-common-scan1-main.log": "b4e9e6cbf705f46d7fb59f5422ed02158645a07dfc212f0d2f538099b32b4693", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0192-r3-common-scan1-main.stat": "4bb00022ca00b3a932e2fdd98909396b9b6125794ae3060619080949c22f04f4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0193-r3-common-scan10000-baseline-on.log": "6c58c41b85e6c13b1f0efb70c47a5941f76e8a192b58223d59eaff36db5502fe", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0193-r3-common-scan10000-baseline-on.stat": "4af5787a19eaeecc2deb5fd8cf9a60218581bcae0d00cdad833a74da25c98856", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0194-r3-common-scan10000-selected-on.log": "a9592a3c60b789fd5cf6c232c44410b2c0853ee08caa75dd5453ef2f84f8a1ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0194-r3-common-scan10000-selected-on.stat": "15f8c955f8b6d52128f02956c5e0a0aad56e7f9c83fcf001327339b6710748e2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0195-r3-common-scan10000-main.log": "d7ab30924b401451300b1f883dce287b75e4be9cdb993c8a48f1dec6a5231fe5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0195-r3-common-scan10000-main.stat": "2e1a297371d9ae9bac3c7bad46cd990d973108c34c4e2dce6dfd957ee23d57ef", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0196-r3-common-scanfull-baseline-on.log": "778cb7c2fbfdebdde64304c133597f84c24970c0a269219ba950daf8bee5e041", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0196-r3-common-scanfull-baseline-on.stat": "a317f2e0aa4f291c406e29bed41359bdc1f2afeba813b5cc80d544eedef562c5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0197-r3-common-scanfull-selected-on.log": "adb705fa18498f105a01ad4d7e90efa47e9f86e6834c60aec55e25a1171d5dc9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0197-r3-common-scanfull-selected-on.stat": "62bc0930874eea0749a9bbec24a9e24d346e142c20700abfe647c35ab574ba1a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0198-r3-common-scanfull-main.log": "6e67298519596824ac46f51a074c716e9fcca694635658f121a32eb5ec3477ed", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0198-r3-common-scanfull-main.stat": "d9cce5d1afe50e6bbd1bcc6c696b96db22dc38600dc0a368452e3cdc0e5d68ca", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0199-r3-random-pack-baseline-on.log": "a923c2950f355dc213d43d186f450942e8cf44564fc6878ba84dd45a8a8c42e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0199-r3-random-pack-baseline-on.stat": "f5b97eb0ed23276b7f9bb32c821d6093722e6d2fd74a072b00c8605f95795568", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0200-r3-random-pack-selected-on.log": "6fb5fa2cb0562fa5e34328b4ee028c9856a393d423ae78061647ddce783f936c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0200-r3-random-pack-selected-on.stat": "b1fff1cefd105f63b2fd4b1d787cb6c968def5c31c772ae1c67a33a8d2447794", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0201-r3-random-pack-main.log": "f6292ca4f9f94dbb3ca53ce50571e24984796373e11b2ddc753b1ba19a028a54", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0201-r3-random-pack-main.stat": "bb74a02404daae112753585804e0283e9a6c3b0310a360c2a46b9306d9b18b75", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0202-r3-random-hit-baseline-on.log": "2303acac90905bf3bb6937bf469f80c33bdcf52a029e1b8fb8564f3c5e4a483c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0202-r3-random-hit-baseline-on.stat": "f1b2c4598382c574908515298a779524b2593d92a0b97db57e3a8600093ebf33", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0203-r3-random-hit-selected-on.log": "e32dea1a9a10145e24b35ecfef37800c186ca591c61cb850298ad10eef7fef2e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0203-r3-random-hit-selected-on.stat": "7a5f4b308de90ec02da8862df571684841f5b2328112b1736496ebb819d36134", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0204-r3-random-hit-main.log": "11e1c72f507f80ce57a0f643a53ac4316f26c667ff971367564282ff08e41479", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0204-r3-random-hit-main.stat": "3453b3d337679f04d3a7ba26b4ffba5c8023a02a23fd21d169ea7496b9581ed1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0205-r3-random-miss-baseline-on.log": "b602bbdbda70105b718155de1bfb6c5a25e6087b2cf90d7457c7012f1bc3067c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0205-r3-random-miss-baseline-on.stat": "060efba18e36596e4c80d08e503396ef7719432b32e53bc85cd5b2ff4b5692b8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0206-r3-random-miss-selected-on.log": "2c426fb16661a05662a2f84ae845b2e32ad0c6aef3a158eb28730f1eb67f645e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0206-r3-random-miss-selected-on.stat": "73a38d6c0b0dec8178b128768be4d3aaf29b584dc0833b0af693f0cfee74db24", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0207-r3-random-miss-main.log": "a2f88f51120cbf1ed06360215b1f63406babcaa9e5b5730c693b2cf62184de3b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0207-r3-random-miss-main.stat": "9988355e4b367a77ed64ed0ca523a310b59170ec38e77ab21da918af3a2ed415", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0208-r3-random-scan1-baseline-on.log": "8c773d665c65de6f22d3f6c91fc7cf51c7c259bd2d403fecb4c10451eca456b8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0208-r3-random-scan1-baseline-on.stat": "50ea8454cd5fe422bd0a2bafa877a20484620e6a2c5fa58940dabea0066bd4e7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0209-r3-random-scan1-selected-on.log": "861bfd1f105f97ca28acb914e22d2ddff9399340a2b3c8992070544a3d9c935d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0209-r3-random-scan1-selected-on.stat": "a490a32995fba81fa8f7a6b04d51be04f98825e2167a6424f567f3187e06998d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0210-r3-random-scan1-main.log": "4ec5b301e730a00db14e6abd51a83b39017940f7ed372e708a555cf387080272", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0210-r3-random-scan1-main.stat": "60e92d49623dc5afc7217f199e3aaa2bbf7f31ab96cea20dd2eb928ea7439176", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0211-r3-random-scan10000-baseline-on.log": "789a5c35c7358d2363184e2a3fb66d8c34dfd8e3ef7a1c4cad484a9362e360bb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0211-r3-random-scan10000-baseline-on.stat": "8e7872e46e634597e8f41f982df40a905d7a43d138bb43b77d08302a0d5ea7ce", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0212-r3-random-scan10000-selected-on.log": "46d5cf4f4080a17dd8a0eccca80b088f4acf404894ef19221d7a14722bbe5b04", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0212-r3-random-scan10000-selected-on.stat": "e11da2ab7532277e147af1d18858bf6eb1dd8c37def96be077543cf9c5bea679", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0213-r3-random-scan10000-main.log": "cf224c673d4877597c119580cdb8ce3d6efed6faecd215b78eeb34fe9904782d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0213-r3-random-scan10000-main.stat": "502cc7368838186f0e7bce25d2127929d7f78486b0f8abf4b96851b1a941ef2d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0214-r3-random-scanfull-baseline-on.log": "1340d5973159f0ce6f3a26afc5aa442249c52724a14ea89edf500927df3c6f71", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0214-r3-random-scanfull-baseline-on.stat": "737b7dd28ca178816f949350feb2f093c790bf55286bc7fe4decb72dac1a09e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0215-r3-random-scanfull-selected-on.log": "e635de6e6203ab86db7e383a549c84ae9b14db8818057bf53e94764e38eef7f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0215-r3-random-scanfull-selected-on.stat": "5e7bcc0288c2bbc4a349f29a6fc3792228b675795cb7a0a933a3340dfa20b7bd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0216-r3-random-scanfull-main.log": "674b308bc11643a9c0f510d1728f618a22174d9e8ba2b3232627aef257613f47", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0216-r3-random-scanfull-main.stat": "1eb2469818e95c304d54d2b8821513c322bbf18f5963d9be6f3b2603d84762f1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0217-r3-nonlexical-insert-random-baseline.log": "5961716984eb41d21619edf9ad4e847b7f2b9fbf38ace53c420019b68f71bdcc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0217-r3-nonlexical-insert-random-baseline.stat": "ee47b262b2d8fdb37918c7c148cfc6a42d439b9da36521c56a76390ac4570b41", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0218-r3-nonlexical-insert-random-selected.log": "874cc92bc36f85b4d23674540816377f9a9f3675dcfe7c013293d5db41527d89", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0218-r3-nonlexical-insert-random-selected.stat": "d23a94681e7ce8a7b7fa6cf34ba7dcc3a894163e455156af2652836f241c9ea0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0219-r3-nonlexical-insert-random-main.log": "6ed4575b8bf521e67b3a350da03546ac8dfcb3a544b448114bc926b94c518389", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0219-r3-nonlexical-insert-random-main.stat": "5ada9aa01547948b22ba50e07a34e492ba1ec7dc62ead544e309fa2b26f9d489", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0220-r3-nonlexical-insert-sorted-baseline.log": "893addffad5d9562bc79b733d36b8abeaf57a03768c469fe28c51559e371321d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0220-r3-nonlexical-insert-sorted-baseline.stat": "9828c350b02e4cc7013ad6d2925d92fdcf897ba59063cff643b4351d98a71120", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0221-r3-nonlexical-insert-sorted-selected.log": "b85e917ac335c439c0c981ae57dcba29e8f66f1c70a88a74a26048e3db42f0dc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0221-r3-nonlexical-insert-sorted-selected.stat": "74e540752e2f3ef2e88169550ae00efdafbd1025cebc7492d58b217cdf9eb61f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0222-r3-nonlexical-insert-sorted-main.log": "1d1bb87697722c821dc49debd6f79ff58cae90bc528684fe279d820069857b06", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0222-r3-nonlexical-insert-sorted-main.stat": "29bd488a6ac84e3eabd2393e5e21d743dd737228fe226997194f507d7649f466", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0223-r3-nonlexical-overwrite-baseline.log": "c2e008b1a20800ece5ce0e9a87681b1a6a81d20cdf7d41fb28f074a8a377c765", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0223-r3-nonlexical-overwrite-baseline.stat": "c65e9351d6563bf2ca67821b3f2f3ed5f86b4e71d5a36dde3aef136e988e40c0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0224-r3-nonlexical-overwrite-selected.log": "2a1a2886e3ea2e44a254c56439ff2d33a6cd5ca8c2d97cb2eff34832412badd8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0224-r3-nonlexical-overwrite-selected.stat": "2f1f1ca5ab78e4087bd423b8e8d1729670ead996f1f977445af4c9d0a971e99c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0225-r3-nonlexical-overwrite-main.log": "ee4487066b872ed6cc4beb04f8536c8b79e95d3d231879cab2be12574a504c02", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0225-r3-nonlexical-overwrite-main.stat": "26a0bcb1c6e106d04617651bb82c3fb00eff18b63b78484328ad359a9d4ce83d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0226-r3-nonlexical-pack-baseline.log": "f454367be691336b89af23f6702a39cebc73422731c90cfb5c63453febe50b14", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0226-r3-nonlexical-pack-baseline.stat": "5f680ad85d80d042082255e727c5e3398145be071ca199d2acab4da617a595a7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0227-r3-nonlexical-pack-selected.log": "d87767018a066479e601999003fe2578549a5c2b3512cee87a58f5bcc094477c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0227-r3-nonlexical-pack-selected.stat": "58e0227d95c933e2363e7a5c02b86d729c65b47c650b265eafbd509134c7bc4a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0228-r3-nonlexical-pack-main.log": "d2b46fd3440a12fc10cbce883bffa9a26979c05a9065f9d00fe20873ace2f338", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0228-r3-nonlexical-pack-main.stat": "5818ae2d2dc2ed8a6883a8e4579338821d11051d3801de9821d360e7f5f2d8de", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0229-r3-nonlexical-hit-baseline.log": "389a3bfa2212b28f04ca147f84289218288b7b5340c80edd761937a47afef5b5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0229-r3-nonlexical-hit-baseline.stat": "6582443cc79d857458d203c21d943c10a06627b5ec575c8f59079db2e5589ee6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0230-r3-nonlexical-hit-selected.log": "65f6304d4ea111d8d368d26558d4500cec4f4d5cf47593f961ba8b7df161153a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0230-r3-nonlexical-hit-selected.stat": "2e60bea906fcf93df3f7955eb77c701b36409cd261be4af3d35a57d76e029104", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0231-r3-nonlexical-hit-main.log": "b8639007b22a4aa5e3c5294e21494c5c7b9a25bcffa6c27b85424745c7579f0b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0231-r3-nonlexical-hit-main.stat": "a43fdb71265efdb10f044009e65e463eacc388f70e39c9ad8df40882697daf7b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0232-r3-nonlexical-miss-baseline.log": "e7cbd1413df487bc9f9b5f374ba113aa3e2fb3bf66463cf9efe0ebf2ccce3de6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0232-r3-nonlexical-miss-baseline.stat": "5b63d7490cd52f125bd9f4c2bae3a64851a86e860a3cfb50db4237de160241cd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0233-r3-nonlexical-miss-selected.log": "0bd71d5cfa371a4e3fc0ce7f2a330367dcad9954f6fccc94fc906eb6d51e1d42", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0233-r3-nonlexical-miss-selected.stat": "2492f3344507355a0f40d8666b427c3f420bb9ee8406d854552b3b3958bc2bc0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0234-r3-nonlexical-miss-main.log": "7d0abb6c95c46cdc24b31d02d4205f1715dce0a37663a3d2d11db8fecab94a48", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0234-r3-nonlexical-miss-main.stat": "5447efffc1fc2df8ef4d43be4f911783b6fc6f5cb3e666bc85b64dda269a926f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0235-r3-nonlexical-scan1-baseline.log": "77786ea132dc89f22f8b1cf5201008d69454c3099600cc7aa80c361261969ab5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0235-r3-nonlexical-scan1-baseline.stat": "f582b38db8e4640c2334fd95997942c38267f8b70acad3dba6560b94437a50ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0236-r3-nonlexical-scan1-selected.log": "d2459825e2f36819bb1411b86738ecb09064284b423ab33e69566820c5eec827", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0236-r3-nonlexical-scan1-selected.stat": "77efb540754660f965c6734012628160674eaf8b55eee788f97b1b4dc64b95a3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0237-r3-nonlexical-scan1-main.log": "ad22022165909c5ba1c7148cb67b9a2b20d08412e198fb08cfce5bec4049098f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0237-r3-nonlexical-scan1-main.stat": "fb80b70ab274d53a793f6b89b38db0a771a764c5b3199d731bdccc35193040b7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0238-r3-nonlexical-scan10000-baseline.log": "129a2df5a6e2edd56065fbd6de3d729c51e1588d9fb6d2f04d5e948a654c0fe3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0238-r3-nonlexical-scan10000-baseline.stat": "4e11723f549b75928efc8332eaa8ef0e1d273d251a0392fe3391fb6df5703740", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0239-r3-nonlexical-scan10000-selected.log": "b7e1cd4b3bfd040134186e085fc5b5f2d2f51cfd563c492c09e77ef557fcf4dc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0239-r3-nonlexical-scan10000-selected.stat": "7fc9db3dc0a2ce3a3e94cb6c925b851b5823fab24e7eb238eb14dc68d539fa15", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0240-r3-nonlexical-scan10000-main.log": "6b312065938b0c857d5eb1aabd483c95c0a5e5576917b8728ed7034e27a9e24b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0240-r3-nonlexical-scan10000-main.stat": "e4586ccb3dde10371d2a7d768b3da5e3e2b8d0047828e7e2ceea06c57eebcca3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0241-r3-nonlexical-scanfull-baseline.log": "4fe2b0f283a523299a7c4a7d3592a7cd045f06cebe455c0783526b48e7028d74", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0241-r3-nonlexical-scanfull-baseline.stat": "75afa3355e31e32a83df83f2adbba1af236d20b73a6b2e616ad43be524c28452", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0242-r3-nonlexical-scanfull-selected.log": "1216568b38670578d2596bd1c7f168c28e6a2067c71bb4cec24cef2327a193e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0242-r3-nonlexical-scanfull-selected.stat": "54f90de0dd79d699120b9a2f1d4d38fe9d0f3ecd22bd14e571fd08419c321eef", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0243-r3-nonlexical-scanfull-main.log": "a6624c9870869a7005bbb6e575f3a44348a0d9092712ce24092e923a087f380b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0243-r3-nonlexical-scanfull-main.stat": "223bd9c9a20ac89bed42ed78998abdc8ff371f550c92bf2698c561e51636b61e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0244-r3-common-pack-baseline-on.log": "c28a71444883fd844e8043f8d5e46008059ffeb63f06ebd1de84bc537ae03974", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0244-r3-common-pack-baseline-on.stat": "13eff8da406e21f28788e71d6bd59e3ee33e71c9d55dce477b5b6143d62d48e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0245-r3-common-pack-selected-on.log": "91898abe3202a5bd4f0d97842b333bd1f490bb7aa2cce9e05abf4ae74ce591d4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0245-r3-common-pack-selected-on.stat": "a8c6c60c2e119ce48818569230d94a81d1af6c38f1b16c902c715bea80c7e651", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0246-r3-common-pack-main.log": "6387fb12e72f59b30902145309c19d210d62555afcb9ba37fd917678eec986eb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0246-r3-common-pack-main.stat": "69fbb1e8723fa7fd5909adafec87474e90111df3c862129f6b178f645fd5c12c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0247-r3-common-hit-baseline-on.log": "23245cef00144d0dcb7597cd1ca9abd077b77fafb7e6ab81e8603e145c13b5e1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0247-r3-common-hit-baseline-on.stat": "c54e058b7c857db57aac5ecd320e32759c9f9030e6ad0ac0da039904b4890324", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0248-r3-common-hit-selected-on.log": "580bed3f120762951395635e2657e172351dc0474104cecbb23b5871537b3d65", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0248-r3-common-hit-selected-on.stat": "907918a4c2ddc372c5e8b57cbfe001177c2c06dd85b3646acc89e4cc5a084ad3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0249-r3-common-hit-main.log": "8d0febdc61c5ddcf0d0b4c55bf5c9deb29370d170ef8018eb59a94dad49403d0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0249-r3-common-hit-main.stat": "94835932923498a03b0cbe1956e2bcc97e28d1c69293530d2a752b0502b02b67", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0250-r3-common-miss-baseline-on.log": "49d66ad660c4414c262799762a270232e3b1a299ab61cd409f57c6b1362a1dc3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0250-r3-common-miss-baseline-on.stat": "b02d905f7358b3a05e96f76caeff9f0988cf0c786c737c4f20484376dd8b3b51", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0251-r3-common-miss-selected-on.log": "bb25fa26cae8399a0854dc545364a794392873d6d79747c62b8decbc5356e20a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0251-r3-common-miss-selected-on.stat": "2c7570f733ea2ee573435e343b7f55dfe1a1d0f5dc7736f555acb610b0506ea3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0252-r3-common-miss-main.log": "177dacd3fa935b2870f0cb521a0c0f353604e81e8a6e7bb3f52ca69277752b4c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0252-r3-common-miss-main.stat": "a7cee580d0f9de10989bb4ed7192ed43a945b897101445e29c3ba750751290a2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0253-r4-common-scan10000-selected-on.log": "6f9abb61d93b317b11f250a20fddaceaf63b16448ff4915122e3a3d0a289e00c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0253-r4-common-scan10000-selected-on.stat": "1729dcaf2a4b65c6d9c8d901ce493ba29cd60f399cdc01a9a54b811127cb6cf2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0254-r4-common-scan10000-main.log": "b46bada10d0f7928cd7a6e9dbeb116c63f6f29475231ba5811c87475bb6a3003", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0254-r4-common-scan10000-main.stat": "7108892b8e1ed6531009c8645d1f02ff82ace890fff805200c2728d4291ffc8e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0255-r4-common-scan10000-baseline-on.log": "3d055269323df228718a20e7aac0f7e1242a9fd2c6ed2b7f29235e392d5a7862", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0255-r4-common-scan10000-baseline-on.stat": "1f23d76b9f361ebe765f95d176aebb1b4cc82330fc3604cf8ae34f82369ac4ae", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0256-r4-common-scanfull-selected-on.log": "304a7ff937cd54f49cf01858c79d8e620251b7b3015eb07a687244303edec572", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0256-r4-common-scanfull-selected-on.stat": "1aaee6087af9b6c776e612d14df8fe70a099c3c008be1db49c525326c5ad3b38", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0257-r4-common-scanfull-main.log": "7c7995325a6b43453a41e4da10a35348e2a8b580306b2b2914bb2cf30c497a47", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0257-r4-common-scanfull-main.stat": "206083a15a37d66080334cd6632eb0947fa7d98f36225dbde54c6eeefe4d70fc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0258-r4-common-scanfull-baseline-on.log": "5686e6bc2261b71847a82ce0111461cdcec0d7dd02e4a7569161b9772db1ba75", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0258-r4-common-scanfull-baseline-on.stat": "3c829b2a4b3488e18b19b35135a5e4163fc1ed1b8a2141d3c0ca911e58fd9288", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0259-r4-random-pack-selected-on.log": "46a3a1a33a58d3a0663dbc11240864ba84b11f3e3b18f02cdab98b375bc7546f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0259-r4-random-pack-selected-on.stat": "d96e82a1674e60b861989e36534ab941ffe76d455929a642e98411c41de1af05", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0260-r4-random-pack-main.log": "16b7d42ae88b5eba34053a57ee67e800dd29d01f5c9a07e9b701b6975b06e609", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0260-r4-random-pack-main.stat": "fe5cf6ff46a9e42724480a672ff708f6e85f29518c149a29cc6227524d304771", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0261-r4-random-pack-baseline-on.log": "b149a75e5632c0750ccec4758b0b164807df43e59732ce0dc1fdf2116ebb302a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0261-r4-random-pack-baseline-on.stat": "d38a097d7232ec1d282929948c44426e7d98f60ef66fa6978b4c0c0d8ffad63e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0262-r4-random-hit-selected-on.log": "627038930bdb72496c3c83b13fb6488bd05416a63a5b5a3bea2fd51b5fe831c8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0262-r4-random-hit-selected-on.stat": "3f80c7256bf9eefecb911d17217fe1641fa43ad985981cb00ece6e79f1c87a41", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0263-r4-random-hit-main.log": "60536b601d69ab67b3f940bf4e2cc0a2ef8fabf5fe89b022dce3d10bd5bf53b6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0263-r4-random-hit-main.stat": "a13dda531e85ca1351ace9671f5bdcb91e3ce15efa4130e7be2247acaa916a40", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0264-r4-random-hit-baseline-on.log": "280da1a8c78edcc9e3c78c0f46ee06f81b712d5043284daada337feaf662d3e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0264-r4-random-hit-baseline-on.stat": "1ea89c7640ea09d9bb32b9175f84b88ccc60b9fe594a625a4504ee5488ca4e0e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0265-r4-random-miss-selected-on.log": "e911ff87ce0e1eb6c2028b7205e2f7657e24c118ff7b674403edc66c59597dc1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0265-r4-random-miss-selected-on.stat": "982ead3df89e8f3faf5d83558728808bcfcbdea0ea0ee81e829bbef92a174bdb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0266-r4-random-miss-main.log": "265a3a0815c9e53c4fec8606531dde50b192d34b1a296ec0548d7564bf4b0329", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0266-r4-random-miss-main.stat": "8b0db1232d3d9ac04c8e33aebf9b3d33497cec61bc2a5b5dc8cccb342f7988d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0267-r4-random-miss-baseline-on.log": "415b7a2e37fd15266eb963e2373256ea7861f9a7aa7387727fdb97f50b7ef16d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0267-r4-random-miss-baseline-on.stat": "71452740f54bd44a33a4475857b19a4c811962731809522f2bc2c100f1f2e9fb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0268-r4-random-scan1-selected-on.log": "f203b79539e8a0b830c36952e88924a6d796dfd8d5aee846ef632aabc2739cc5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0268-r4-random-scan1-selected-on.stat": "163675204efa01b614005fc44472b45f0d348af7446da31ab5a7c874263aba09", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0269-r4-random-scan1-main.log": "65afb6ce87459241e4e4bd30fae8d4ea293f8be2867a6677d7d3c4903b57beb6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0269-r4-random-scan1-main.stat": "48e5a3a90638933cf50c2ee05f052f24c70430f7353727a9be74ddf772c93d93", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0270-r4-random-scan1-baseline-on.log": "5581b5fb4b3c768d4ccdb304285ea6c8e5af99cd10ba07f9f23c7a5e91906d7d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0270-r4-random-scan1-baseline-on.stat": "918b61aecc2a6c06b50257de3bc7cfcfc45fed6c7a00e461b7dbe66c64a31105", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0271-r4-random-scan10000-selected-on.log": "1cc5b58b4c6cfe44e532aa8c7b6e383e2721a13d1e7376ddc812384a80ff3e36", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0271-r4-random-scan10000-selected-on.stat": "0e5270cf5aba5756640c070c97dece10bef4831dafdf500ba22a1819871709ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0272-r4-random-scan10000-main.log": "db152ba4e3d6fd53060dfa8d546ee682d9b56c8c2a770b66d534b459013e2f14", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0272-r4-random-scan10000-main.stat": "86d4a4e3e4335e96412b2aa1aaacd3e62979f47575d851474b452c42610123e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0273-r4-random-scan10000-baseline-on.log": "e7f16bac92d71ba5576efbccad16cacf9b62d9a5470002c9c8cf0a93e0e4f9ee", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0273-r4-random-scan10000-baseline-on.stat": "35ecd3cd8f2673196c216b5a92a046174a9709cdd9de0c56372d58501cba12ea", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0274-r4-random-scanfull-selected-on.log": "a098f15dbe6c3bddcbe32c984b8cc1cf2fea18f87fb07bbb686ef76252fbc0bb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0274-r4-random-scanfull-selected-on.stat": "263452f5bb346ec6288823b38c27d1fa9cdb4633feffe43fa0a0258a68b7a17f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0275-r4-random-scanfull-main.log": "2b2aa7cbfa44ed0993654a2874ea8c9377d4b83e53712871e3225730c1fec485", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0275-r4-random-scanfull-main.stat": "86b7ec140c2c3b629619df596894eeeb456b5102ce8f33a1ecbef9a70c5c55f6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0276-r4-random-scanfull-baseline-on.log": "e7eccf015e63c63bc63c8fe30c906b07a16aeccd9849de7885c1edb62c5c722b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0276-r4-random-scanfull-baseline-on.stat": "d9329f2133147b0a232d95f5da139298f63aeed1dbf4b3fc3be76203309d8234", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0277-r4-nonlexical-insert-random-selected.log": "c9d8e26b18fc9c3a2af6864decbe045a02d84bdaa5ada3f23107891f0ad75797", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0277-r4-nonlexical-insert-random-selected.stat": "a0bfddc3ad547e67b181e09162eef882e965d70a688defbb90f4b04660e207b5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0278-r4-nonlexical-insert-random-main.log": "23133ceb614ee20053cc5176244f514983812a5b01ccc03c71b0ffb3978d7306", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0278-r4-nonlexical-insert-random-main.stat": "d5404c60317d5c94e703e68082e914c5bff35f9f4c274004026fc084ba29b322", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0279-r4-nonlexical-insert-random-baseline.log": "f00c11f3081bdf5e20a06eea01609bbdae811db570ff8e460d5d8f92f31bfa19", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0279-r4-nonlexical-insert-random-baseline.stat": "fa0e4dbb96f8a81af50b30d60dc810fb15c1af234cbfc624193520b5bdb39e37", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0280-r4-nonlexical-insert-sorted-selected.log": "a647fb7fd3d2a9c1c241c61d32c8fef49b9b7e70b320ce7d50544f94c96ef318", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0280-r4-nonlexical-insert-sorted-selected.stat": "94930921c05511895ae9fcb19e8fc6cbf465b56c8af1af183b89f8b323db4ba5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0281-r4-nonlexical-insert-sorted-main.log": "b68361015a6ccfe736267f12ec6327d4a1cdc3cb921e678001a3d695439857e0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0281-r4-nonlexical-insert-sorted-main.stat": "4a3d823b369d42d62482740cba426852e1a56c2a9e9e056fdd953503382aee4c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0282-r4-nonlexical-insert-sorted-baseline.log": "ff52bc60689f3fe8d1dd31d9e57dc7d2b254351a9c7d14f98be070c08c97b683", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0282-r4-nonlexical-insert-sorted-baseline.stat": "fe7703a6b46476c2b2bcf3398c4e5bd43eaef88769233e21bb1a30ea9f2087f1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0283-r4-nonlexical-overwrite-selected.log": "a74dc3a8a012419e7c35e083a1c770faac537ee040bef58d716e31e971b90593", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0283-r4-nonlexical-overwrite-selected.stat": "7ca769fa1eca3f63fec2fe6a9c0d99e597291bd0bfabc761e907bc73a8f6514c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0284-r4-nonlexical-overwrite-main.log": "d036199729e6e7c67cb5c804ac1e59da974258af350f6aeffd64404960bc0eae", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0284-r4-nonlexical-overwrite-main.stat": "e35b2639dc93998b5ddefb881ac3433ce44c92078685d3083dfd155159ae8856", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0285-r4-nonlexical-overwrite-baseline.log": "4e86eb98a2be168391071bc2fb68d6817d43d723519088891b6f1d687b7c8354", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0285-r4-nonlexical-overwrite-baseline.stat": "43301af4286da1955050d7b279f15f352bb577359ee1b75f40070163aa1301eb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0286-r4-nonlexical-pack-selected.log": "38ff7fd2730e8b6fca18dc70eca35484ec8e6d42a26a65e6030ccb78fd34ce06", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0286-r4-nonlexical-pack-selected.stat": "d21ddf955d231f307ded4cb36fa68698ea893028347e0ff29a503bbcd615b797", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0287-r4-nonlexical-pack-main.log": "1a5782008c5b7ca64e8a60c3476c56c659e45e41954b0b74ba2ba356d98cd546", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0287-r4-nonlexical-pack-main.stat": "4276133cb31a3c968d35abc8d2e1785ad2fcfe04d915c4233e5351daf3f8bc78", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0288-r4-nonlexical-pack-baseline.log": "a73d3e432c7f0a28e9fcc5dfe32bf2820ac106aaed4f274f635982ce0ffe20f9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0288-r4-nonlexical-pack-baseline.stat": "47793b5171f16b5b123d980901778c5529963285934773cb61026c5ff30ae390", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0289-r4-nonlexical-hit-selected.log": "a097697837b4d49585cdfbf0cb84411448f60f70faede0413bb34e3317347f23", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0289-r4-nonlexical-hit-selected.stat": "7583d7f64ca32a2ea2eff3b528f71c5afecc64fa222f1eac6d25c581cdbf7e9f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0290-r4-nonlexical-hit-main.log": "b268f506b07fabf0f3146cf86408ab5b75af6b1104b13f5c82f012988bb2ad04", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0290-r4-nonlexical-hit-main.stat": "6c30aae0146d480d67607c99420ea4cf9a331f31b09b014e0975e6bc3013e3e6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0291-r4-nonlexical-hit-baseline.log": "9f7ae0024c4acd0dd42adf8767b4ae04608ad9c59cc6160b6c277890805cb48a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0291-r4-nonlexical-hit-baseline.stat": "618340ae8fd5b0cd8dad15bedf614199b8cc3286faabc0b44f38daaef68bcdc9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0292-r4-nonlexical-miss-selected.log": "6ec05b54639fee5f5fd452b25e8d97c1187b8f24a89ec52f2218cc34e86b68ff", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0292-r4-nonlexical-miss-selected.stat": "1518f532eaf4833ec26a80ec51fdbb7df6e0f0177afdb16317de256c4e7cda5c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0293-r4-nonlexical-miss-main.log": "0c63b995535e5a76e48f775ab9020daae56b05f0bf38e01768ed07160c7ec755", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0293-r4-nonlexical-miss-main.stat": "5699944cbfc171326bad0f84cb24d5f2b73c0cd1141029c9af7120a3c72f0f2f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0294-r4-nonlexical-miss-baseline.log": "7e35eec38716407013ca55b842446be83c9ad68e93099cdd79d365607358c380", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0294-r4-nonlexical-miss-baseline.stat": "045ced1024391ea25cab30c4c2797acbff7cc4ffe7b08799e128ec8124a1da24", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0295-r4-nonlexical-scan1-selected.log": "57d6f93d28ceacf33117689191136261a8cb1a3239869c3d9f6054d93b9bb0c4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0295-r4-nonlexical-scan1-selected.stat": "c7091f921b760537c9782b8984c74514cb96e82ac3262014234453108c6469fd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0296-r4-nonlexical-scan1-main.log": "88aa6633d1bcd2c9a8368f426a6bf205c845ba1bb7306883944efd0adcb10e58", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0296-r4-nonlexical-scan1-main.stat": "73786468d3d66fc9db007c40b666e843ec49f419e5bddaab16584916fdb0c0ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0297-r4-nonlexical-scan1-baseline.log": "d78102ecb6d43bf5c7b280b708258ba7bb7c64fcff9e17cb32036baf2d251990", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0297-r4-nonlexical-scan1-baseline.stat": "764b1b5c5c04208d559c14be493a705ab2cfa7637a290851af8ee0fd018e8014", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0298-r4-nonlexical-scan10000-selected.log": "da618612197edb57540949676460a2fcd070865a2ad25d0ffb2d5729a0a080f8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0298-r4-nonlexical-scan10000-selected.stat": "c69371256ddce0a788bbd6eeaf5888287a7e13224685355c949d8f2cc6c74fc7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0299-r4-nonlexical-scan10000-main.log": "07da3771a0d51329d10cc7f8c4ded0e838bd3f085041ee43f8f8a5214b5b1d2b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0299-r4-nonlexical-scan10000-main.stat": "e128726264642b32148a0d3561295bd86b66d898ee08b768782fccd3a683e09e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0300-r4-nonlexical-scan10000-baseline.log": "c4d5936e3b976f7da6e1f1b91fda83157924a61c2c14538927d4d9a38119e296", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0300-r4-nonlexical-scan10000-baseline.stat": "ebbb2a81312f41a191dc1e55e5157d61adfdaf43bec7e7926e22b9893b9e65db", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0301-r4-nonlexical-scanfull-selected.log": "b953e47b5d30c3332a4f1c94de8ec50017a42b08236c9f09df20b13ae99fb573", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0301-r4-nonlexical-scanfull-selected.stat": "33cf2edd85d1bb227fc513f12a06937fddab2361b5475d81612487914c3a2abf", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0302-r4-nonlexical-scanfull-main.log": "e4acf06b35f8d90d4c166b176f0b5e957a01eedf4c16ebbc5b6de8ca5bdba8a9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0302-r4-nonlexical-scanfull-main.stat": "5a75f2b75efe8ec355f07d71884016023d740f87ce261459a1905b002a636bfc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0303-r4-nonlexical-scanfull-baseline.log": "83d5c39ce9e11de08c5a46e5e2f38dd67dbc40f155c92a8da3af1a2e5f58ae39", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0303-r4-nonlexical-scanfull-baseline.stat": "c5a5499ffe22445cc023dcd220790144bf45a6ccc739f998b3bc46cd4193dff7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0304-r4-common-pack-selected-on.log": "3e7382ca77891dd012c735eb842b4dae7f9c7867d479292636065feb99237fd6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0304-r4-common-pack-selected-on.stat": "a9c95843a5b7c2b80a27fb1d27cac45caa1469100065f197c35cdf1b4dae106a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0305-r4-common-pack-main.log": "995ad5b1f8873c4b154efab0c59e7d742d0715b59001d1721f4ec55c2f3129e3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0305-r4-common-pack-main.stat": "5afda0390830331751eaa1ce6d8f4fbb13eb78efea243d5d375e2babbd6fa8ef", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0306-r4-common-pack-baseline-on.log": "6e1c34a58dc44c5de7978d8f859a6d25730eb20168bc4f3f1e59c87a03a8df5a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0306-r4-common-pack-baseline-on.stat": "a2c5f80e2cfec50e54b3de8d7a7cab8fd6d816e474eac2bd5c57224f5c1a842f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0307-r4-common-hit-selected-on.log": "68c250cfa95607932794376ea1141bd08bcf7de71eb1c04716a8c8a8ff87cf1b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0307-r4-common-hit-selected-on.stat": "2f8491d68439356991565481b67c9d80e2765cd59786ec2de50b977021e17f39", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0308-r4-common-hit-main.log": "a41596991f803541dc6cf563c356d768ed90c98a1316f30eb69a02a0fd0004e1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0308-r4-common-hit-main.stat": "5d76f1453c842365c2c1a4859c3241b4e06cbb79b38774d3ff07308a41bbf8f5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0309-r4-common-hit-baseline-on.log": "5e494c6a44dbf5ccd429cca8656e3224e8208ce08fac2059739a146a5b65fa61", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0309-r4-common-hit-baseline-on.stat": "d23f89d9b71cc5665445dfacea6fa7bb4192adb58460183bcb653594071e7788", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0310-r4-common-miss-selected-on.log": "939b39b6161c204832861e9ac37507f599741421ea2a25f4362261938d9eaa89", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0310-r4-common-miss-selected-on.stat": "4343ee61ead54bf9e272d2b4d7747f78481093fa5b1620027b6dfcbccce918b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0311-r4-common-miss-main.log": "d86b10302e4830c1de4903b1f3ab418a9f08d84674d2e9e66a7728f1ff4faa3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0311-r4-common-miss-main.stat": "bff52758449885c2d9bbaa5f0e5083e11d48c415174a21041cb48f419fb03d04", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0312-r4-common-miss-baseline-on.log": "f4ee47dcc609724b1b199f115eb29928e49837d5b67a1ec9362e99628059ca13", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0312-r4-common-miss-baseline-on.stat": "b3d008672f2386007dc2f351288ec825af824e8bb6ecbe87a227ff64665ec3e4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0313-r4-common-scan1-selected-on.log": "a950f67b3b2c9d63ef9101ee781ab9bf405327a8413f6bb1fb4a8cf63c2ebe05", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0313-r4-common-scan1-selected-on.stat": "77ee740184d4120820e0d6ba227ae974ab1699440786a7f377c3852eff36a336", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0314-r4-common-scan1-main.log": "d28de656c03ca293d12455d7d64e8bc6369c277b2b048c97b05245aab569185f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0314-r4-common-scan1-main.stat": "1515fb1415ba08f00f7a1af745f8f90654788bb3fa92244d2d601932935b7d5d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0315-r4-common-scan1-baseline-on.log": "7469fb7e20fd2fd17291bd9f24f9d7b4452e93e54948b70d68e2b4f82e558df2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0315-r4-common-scan1-baseline-on.stat": "c4073cbc27c2978b94998bb5549a5e7924097a9557641df3b08877d0aa140368", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0316-r5-common-scanfull-selected-on.log": "6533ba990bf5e4b2880cd7967124ab9e6ee9347aab0ff16dced285d160e70367", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0316-r5-common-scanfull-selected-on.stat": "329a8ca1d82f9c84c9111b4661ea59f12001f0057055cccb9d2bcec9653185fb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0317-r5-common-scanfull-baseline-on.log": "4b0c4b0fbbb76154764d2c8c590dbf437fef675aba8a6da0f31833a7908f6df6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0317-r5-common-scanfull-baseline-on.stat": "46c37510937cc47d1449bef1b67f5f25bd43d327539c0cbb58f4757127035b5e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0318-r5-common-scanfull-main.log": "073a12ebc6f7e6c4153379062b73895f7790f660925403732f457421a86b938d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0318-r5-common-scanfull-main.stat": "29432067eab70bc329632b92242efb8282e9ec5a04f6afc332ff069aabc0d39d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0319-r5-random-pack-selected-on.log": "7e0df4c45a0865c022df5de8399c21d89ea264dad1f524a7c7f0e63e13f92c3f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0319-r5-random-pack-selected-on.stat": "c1676b7de9270ed37e6e4f9ae04d504e6093cfc8bd2ad26240700ebc8a0958d6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0320-r5-random-pack-baseline-on.log": "fe37ea2ac8eee0807eaef8b1e649963c1c919f231f065b67b3d72f311de93db7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0320-r5-random-pack-baseline-on.stat": "6af14c79b98b49889c07adf9cc3a3b5619b543ddafdfa785876cf382cd38a666", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0321-r5-random-pack-main.log": "ffdbf5d779c86c863e8a73b2fab2ba98d04a883e35c729c4b35758e4bed48c3d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0321-r5-random-pack-main.stat": "b84aaab3e095d7a223d6ad2f4ffee32ac97b65f26477eab5a650213fc8f6e225", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0322-r5-random-hit-selected-on.log": "06914bf6259b6b012377bd697ebf32f93dac58924893527f60c2e7be405a2f73", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0322-r5-random-hit-selected-on.stat": "a0036bbe6c463bd1acd9e944358b16debe6606ab3d4d8ec0b3e2ba909051b0e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0323-r5-random-hit-baseline-on.log": "3033e2bd2e0c3dc886db3fdf5ecbda486187903ce66ad77b93dd27f3ebb435a8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0323-r5-random-hit-baseline-on.stat": "9615d2659a90ee886c6cce3a88cf96550067ac77c57e410096b468aae58a62ec", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0324-r5-random-hit-main.log": "b42ff29cd117db4dd73b4b06ac79d5145362306fcd713711953e51d0640ddc1f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0324-r5-random-hit-main.stat": "0179c517de8142be9872169d7793f98e91c22f3d411a27bde413d5cccbb10d6f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0325-r5-random-miss-selected-on.log": "090822fd4e7c55a9bcf29d9502cd8d9a91cc7722be0114cc8c6ac462b9b178e2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0325-r5-random-miss-selected-on.stat": "4dc7bbc9eee655064f2ce63125855c621d754dff4536169bd59fd6a979314802", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0326-r5-random-miss-baseline-on.log": "fa123beb968d24c3cf6dcd8b045f7874aee91b76d28d3f3a49f4838afb7066e9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0326-r5-random-miss-baseline-on.stat": "cbca2402b0ca4dd764ac278f31f21c4ecc4347f2edc63d169b9d7f20c2b5c338", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0327-r5-random-miss-main.log": "6e73e28848a0f9f186d943d3ca054e4e5406c90224814fcd8ecd8194a874b953", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0327-r5-random-miss-main.stat": "4794d2a9bc3b6b08a2e690c51f6ced91b2936a546e0b123aa3fee71442f4602a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0328-r5-random-scan1-selected-on.log": "28ee0134a4993ccdd00ccd57aecf3effe67ee8860a1f81c7293bce015b64644b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0328-r5-random-scan1-selected-on.stat": "427943b537ee3a08f2c449a709c4542405e69082846e07129c5f67013d06f5ad", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0329-r5-random-scan1-baseline-on.log": "13676aae02209d5b1235ef2bc307c5a64dcae153a8c218281d85b45f5324f7ae", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0329-r5-random-scan1-baseline-on.stat": "ed08d0d4c8be4db194136dd3d4c755f759cd0b87ad679f59fe74245ffa3cde13", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0330-r5-random-scan1-main.log": "245d59a419cc49ff29b5dd56ee8b23349e60d8cc3510afd20bc4978b3b55902e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0330-r5-random-scan1-main.stat": "d55ae6213560bae9d23ba3e20d5cc14954b00ecd81c8649fb920adb74cf4a88d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0331-r5-random-scan10000-selected-on.log": "396a96dd679e523d87fd68fd02891fbecdc764405ff7385225ba58560b4d5407", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0331-r5-random-scan10000-selected-on.stat": "9f2e0d92d40bf36f80fd6edb157596ad98568af3e1638877e7c3a8e068cd1e18", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0332-r5-random-scan10000-baseline-on.log": "affc6bbbbbd913c18766be12a21d5ba37b2f27f7cf2dd900a0cac5167e6a82c9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0332-r5-random-scan10000-baseline-on.stat": "a63681c41af57aae752afb6d1877d5661236a20f88d9d68401730a97c81646d8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0333-r5-random-scan10000-main.log": "e9b2cb9b0e401720f5682a57baf6de38a9edcd943789f48940e4fcd7d1e80371", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0333-r5-random-scan10000-main.stat": "3e02552fd697231a193b1a66cd97d1c0b66d9615a6d567666967a552b2657359", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0334-r5-random-scanfull-selected-on.log": "f3d09f7dcea914a5b567c777ec7b5f2880893d7aab737e3fa1b8695f61dd2db0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0334-r5-random-scanfull-selected-on.stat": "2c86492ad26dc0eb812e51d674e47d95c7bf728b10b7d40715e2980a841af982", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0335-r5-random-scanfull-baseline-on.log": "c4b3d2b821184051920d41ac1e514dcf5da40514ee9dd71559a2a38440f2adc5", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0335-r5-random-scanfull-baseline-on.stat": "aed39de7417576849803bddbc6a6a1c6c9fe06ef0fa0293cae3b03f97cf5f86c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0336-r5-random-scanfull-main.log": "db906c7b95a2c020081423d4d18de38ef4a6269e2acbd5f86b470f22eeb1513a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0336-r5-random-scanfull-main.stat": "bbe28e0d195da4e19417d9ee4c163889ce2d052ad497207d3bbe965475fa3240", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0337-r5-nonlexical-insert-random-selected.log": "413303d36e6c68b2ba2ab5524d38f0819ebecd95cf431df0d3ac45f86089c610", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0337-r5-nonlexical-insert-random-selected.stat": "483b5c7eaf8f495a3dba0ad2518ccbce0f0c9be5747d153b4b3298c4ff4c4d2a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0338-r5-nonlexical-insert-random-baseline.log": "f9f7495207852ea0147b9346ad29fe75979a8db515e1fee77f9b8fc8c965d58e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0338-r5-nonlexical-insert-random-baseline.stat": "a0065ccd6f80b1a596522a085f49677b5ad093f806dd8e5b517a66fadb6e2a1f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0339-r5-nonlexical-insert-random-main.log": "985f32600b354f98eb276867635c6eec0b2ac4b18373b7a2c0993c25b00f2aab", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0339-r5-nonlexical-insert-random-main.stat": "d3c73fcff70842c06bed413d875297c7ce9bcf83006efc7a07554463a6ed534d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0340-r5-nonlexical-insert-sorted-selected.log": "81869436676830c202989cf3c7108cbb4d41c0edacdcc984e8ee297e5bcba3c8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0340-r5-nonlexical-insert-sorted-selected.stat": "13a4c6da01ca384419c6ee7afcac0d93bacc247bd47f472f7af64cb610f44a6c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0341-r5-nonlexical-insert-sorted-baseline.log": "a1c147ab9db0e8fea8e7304cfa27d2c6ace74321513f91688ab2c0b4e0ab7243", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0341-r5-nonlexical-insert-sorted-baseline.stat": "4f1c18651541c0030761aba8f5557ce78608dab30419830507f9dc42686f823e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0342-r5-nonlexical-insert-sorted-main.log": "775fc706cf499dabcdca3f5a73d9d7ba17f05a5d7b4d7877097b0b38348e3eb4", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0342-r5-nonlexical-insert-sorted-main.stat": "1973cca8334f59b8cbc62cc1e3f00e48ed0c8bbec51c16dc14281ab3ee4500f3", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0343-r5-nonlexical-overwrite-selected.log": "361a1dd6a56fbe44bc543480f3af7049c39874cd2a281f0629c9cf15105028e7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0343-r5-nonlexical-overwrite-selected.stat": "7cd8b418fc63b666b768cfa3d423746ee1b7b23d90eb33fa300fa0e5c136d926", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0344-r5-nonlexical-overwrite-baseline.log": "886e528c83b4aa832a2fafe95439dee87168ab00d5331eb0462b14303733e747", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0344-r5-nonlexical-overwrite-baseline.stat": "66da9aecfa66b648aaaddd7bc47dff9a38aba8a0f256153b0e4da1d68e046792", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0345-r5-nonlexical-overwrite-main.log": "7f965b9bd00ccd79dea4fcdac3a756e7e1f7b8acc706139cdcf3d58fe1492c78", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0345-r5-nonlexical-overwrite-main.stat": "6e8d9684594b6eef74ee5643141342d432c4f38bd82abb396689366a852349ff", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0346-r5-nonlexical-pack-selected.log": "98fc76d13b8cad9190b21476a5eebd1525eda22bfa000561b2803b8079ae6a9a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0346-r5-nonlexical-pack-selected.stat": "0f7981f8c07c913d99d87aea16e0d0dca24da5c766bf5745a70cb5eb3cc7437f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0347-r5-nonlexical-pack-baseline.log": "d12b6095d60c1e0b3c6b38a0d1d413496b752fdb2697fe015f73d445428470c9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0347-r5-nonlexical-pack-baseline.stat": "83645e84bc481d6eff60289dc843089e1242f88e4ac5051cb310cd4d325c1c0e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0348-r5-nonlexical-pack-main.log": "3f2c6bf1390688b97c4e738d52505c3e4b07e6c4cb50627371384a896499d029", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0348-r5-nonlexical-pack-main.stat": "32caff24540a22d99dcfe359093a496738c03ea187c39c51a1ead9ba4d038d3c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0349-r5-nonlexical-hit-selected.log": "7dbe8d0d4c847f9bcc862ab27eda48569801f658324c9d0f6b3cf3ef57b39088", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0349-r5-nonlexical-hit-selected.stat": "2b33cbe964344ad77c6bfb5d3dd97e05bcd1629894de2b221d3239501e139f0a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0350-r5-nonlexical-hit-baseline.log": "c14d94bde36db3a251be3bd014d8e3c108f6c6db3d904eac47cba1d079b9c9e2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0350-r5-nonlexical-hit-baseline.stat": "42a287d61fe840595ba3a2022e4053bcc6de6774959b7940498bd984ad6f8058", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0351-r5-nonlexical-hit-main.log": "381a75878f055301ed429dc5cd7f04ddba40752c226fdfc2eab3d77900c67fd9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0351-r5-nonlexical-hit-main.stat": "fdc04c7316eb8b06ab7b62d5bc525d57d48a0db5cba6ef02ee6756ba3f4581f2", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0352-r5-nonlexical-miss-selected.log": "25713f3f97736d40db4d7ce34c8fdbf0fbc39515e76441c49c9752675ebf3c2d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0352-r5-nonlexical-miss-selected.stat": "1a13a14d80568099232b7c3b6309baa92bc031dade2bb518646dcc0e3ee9b2c7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0353-r5-nonlexical-miss-baseline.log": "eac3d2858aa8308501c8b37c5ae39eaff9fe3e48e48cdff297d71902348c2b4b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0353-r5-nonlexical-miss-baseline.stat": "e2a84be7fe34c5d140ef351c330ad8e87b392dbb5addaed7b52d50440f2f64e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0354-r5-nonlexical-miss-main.log": "f6902a25fe03175dd667b91413b643b8001e56296ccd148996b7a9fce5710e4f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0354-r5-nonlexical-miss-main.stat": "88148365637f587e8adde6ecf00c16704a7d91f3d78287db88d3fe4a0a2b7eec", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0355-r5-nonlexical-scan1-selected.log": "c534b30984c62dffc5c8737a4c9d220ecdc8fe793caddbc7f6e989b50ca39a7a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0355-r5-nonlexical-scan1-selected.stat": "0c841c86d1f90345fe2088b34d1216cfddb7cf06ca9113f2ac31ea88c79938d9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0356-r5-nonlexical-scan1-baseline.log": "6e0682e08e90b6e1425b8e8ff851e8c89dee768418c11cdac935f5a014e195a9", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0356-r5-nonlexical-scan1-baseline.stat": "0ce4fbb9e49b295a12a3719681e1ab4bcf2bdd356c383be3ab22976528e3ca44", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0357-r5-nonlexical-scan1-main.log": "0ae3a1a865a16ac45c09f51d553984d16286c72622d8c0779ead3f01cb3c8cac", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0357-r5-nonlexical-scan1-main.stat": "12ebe9499bf39c3ab5b5ef09c6a05cc14045adde187e2768d94a094eddbc8e26", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0358-r5-nonlexical-scan10000-selected.log": "7453eca551f368a656173efc1de9e6810fb1aec349376ee1402d4cec68935117", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0358-r5-nonlexical-scan10000-selected.stat": "81a932595dd05b268c99b34ab80ad5aa942f936f24aecabbac555f32332454cb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0359-r5-nonlexical-scan10000-baseline.log": "d120056e21a586225f55320933673e0da244c34ef1c7f97df5a7b1dcd095d8b1", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0359-r5-nonlexical-scan10000-baseline.stat": "434e4b085776e61e69cc7e13485f451368d6c39c9e6feeb636c7599dbe807ffc", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0360-r5-nonlexical-scan10000-main.log": "c031bd4216b2bbbea96301fc09483087225e050f4b4796c75c9d6d4c2ea62367", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0360-r5-nonlexical-scan10000-main.stat": "c74599e5dba6da6a3a33e62358321d033c7806899071e800843b1bf27cee028d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0361-r5-nonlexical-scanfull-selected.log": "8cdd72c6f43b1fb95970998a1cacb08f4755734a0930749e0738d3ba3be45d2f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0361-r5-nonlexical-scanfull-selected.stat": "49eb6593ad05c4950f5e34fdd0e90e8483325fd788dcac41ce23e3410bda35c0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0362-r5-nonlexical-scanfull-baseline.log": "c228dd9b453306e8ab869fcff40f344a55185976e1d988813829a44003d949dd", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0362-r5-nonlexical-scanfull-baseline.stat": "683b60cf1932926eeab9353ee6232e9e942e9f39803d980dd1a2884c5e449ff7", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0363-r5-nonlexical-scanfull-main.log": "ecd3f52a60394a5f5b47ad6a88a5add57b418a9c7b3b5b437d6a4e9c2ef29c0d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0363-r5-nonlexical-scanfull-main.stat": "523564c947d13d5a1d9c537feda4fb350680de3d9c85ef478de84c4a202b2552", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0364-r5-common-pack-selected-on.log": "2f8ee077d33cfe50148bdad41d17a777bf47225fc67ac2c8d17c8d7adae7c136", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0364-r5-common-pack-selected-on.stat": "f09648e24fbd3835b5d4c71135ae3dd001f047c4bcf7cf48e15911ec90043aef", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0365-r5-common-pack-baseline-on.log": "5a4e167473cc1436cfaa60bd99f87d4bc35259e491fddc2b8a9a0eef0300734d", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0365-r5-common-pack-baseline-on.stat": "0c9b7de9e9fbcd68602c933033bf1906d3e5fe0e11103404f48f53a26bae803e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0366-r5-common-pack-main.log": "f7261803cd4d5701ec322ce65ebf8c67ddec165a5dd15fd970ce8e7e6812dd99", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0366-r5-common-pack-main.stat": "9a5faf6e357c90118c483bb0207231668805953b3c50dc1abbd0fd1773fb135a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0367-r5-common-hit-selected-on.log": "bfccd6245f081861eb596e9a747c7ed86dc67d9be2b2238ee8b5a459ab5e115e", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0367-r5-common-hit-selected-on.stat": "7cac2905ade5537078fe42fffa2d156067c9e4a55f05b4d88f686c0478749c25", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0368-r5-common-hit-baseline-on.log": "aabab4092ccd9de29d3fcce6400d9253d7561254008cda7574ba6b1eb0592287", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0368-r5-common-hit-baseline-on.stat": "f9246772611468ab7b8436ad05455f18e1e7410bdc1a5af261eea43b74b3f008", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0369-r5-common-hit-main.log": "803fd59f3ff4ccb2da98f21e7be11f71d54eb8ef0e1c925109de6a4cde37e9ed", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0369-r5-common-hit-main.stat": "da4af8257a8c3b7ab5c1b0eff68f3aba18901256f63a1c486a8f4f735cf34c4c", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0370-r5-common-miss-selected-on.log": "d5157cf5b485966e740c50a40ffa7c4df1dcb900f98055438c1d136a3024344a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0370-r5-common-miss-selected-on.stat": "7d4ef43b514c5c617a4f99b04caa2b3d624806960e7f0ff920538ecc830f2ff8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0371-r5-common-miss-baseline-on.log": "dfa520be3bd9bc5d20004bc6e5b8d2c6789b47daaf6b5e559df671ffbb140c8a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0371-r5-common-miss-baseline-on.stat": "48d57997f59d6e668639415109cc903d97b140ba2ff5e8be0e3f60652d7d28e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0372-r5-common-miss-main.log": "c903156668fafb253b39960a27d81d1c2840262b486ce7f9a223faae206961e8", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0372-r5-common-miss-main.stat": "54296700d7201a7a067d1c910a21c81b1d92e3ea620dd8dcf6437792fa34947a", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0373-r5-common-scan1-selected-on.log": "b5a2418de1e48cf24ece53925580fcca26d2b4829615ffb96274658a72d9b723", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0373-r5-common-scan1-selected-on.stat": "2017708348a70ddeddadb744b01cb91a8fb78aa8e6443ccd9fe84f46c52114b6", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0374-r5-common-scan1-baseline-on.log": "84318c9cd938d1ffb00dc0e71cbe2a292553cc34a60af7957f5b4f57b71ac546", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0374-r5-common-scan1-baseline-on.stat": "0c5abbe747fca7b00ff96aa79733a3690754ae13dff554026807b7cbe88e1852", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0375-r5-common-scan1-main.log": "13cd4d54554bba78da1fdfd4e7236167af21eef1bcc2903467e1a538531a6312", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0375-r5-common-scan1-main.stat": "0fcf75792c6816b155bab0453fda3d5572da3d1a99456cd66f9603e807e5966b", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0376-r5-common-scan10000-selected-on.log": "a495c2b48ef761162cf0e7f301993ae44eb726b473b85fee248a65130e76fcaf", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0376-r5-common-scan10000-selected-on.stat": "a6eac1fa66f94f637e7c9243afb542f5909e05468eca0be3759184b8c2031504", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0377-r5-common-scan10000-baseline-on.log": "a173d83eca34c0b522a9952dcb841e98a45a5c394aef1fe9eec83baea1d3363f", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0377-r5-common-scan10000-baseline-on.stat": "95a03a1eb56938d0e0d45baec73e2992e261d0779e5bbc33983c98dcb1a600eb", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0378-r5-common-scan10000-main.log": "6d70b25b452b503332dcf610a7d69ab8ca89a852a306749b6d878ca96d0fea34", + "benchmarks/results-20261016/btree-nonlexical/confirmation/0378-r5-common-scan10000-main.stat": "ada9912fd4ce954f441f3fa7e39971cbcd41a3554c84a15244bd953cd0872904", + "benchmarks/results-20261016/btree-nonlexical/confirmation/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/confirmation/build.json": "c842fbfb98f9b65f6b166a87882a6cb5b4b6ec2d7255baa68eff289b9786f035", + "benchmarks/results-20261016/btree-nonlexical/confirmation/independent-review.json": "33e0ed0697f8831c283c1fc5f50b044f076c6769c2fa85d6560d088cb648cc10", + "benchmarks/results-20261016/btree-nonlexical/confirmation/independent-review.log": "23d44cc82a54fc017844b9657ee42efc2c3ece6f8395d545d538584a7f98ba38", + "benchmarks/results-20261016/btree-nonlexical/confirmation/manifest.json": "b8c393a083df9a2ee54e920ef7813fd69f6379daab19af8a08e9472a5bf4c062", + "benchmarks/results-20261016/btree-nonlexical/confirmation/plan.json": "f245b34e6248f6e000c302fb90055e69f95f841e95a95a6d4f7e59ec7fa5da27", + "benchmarks/results-20261016/btree-nonlexical/confirmation/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/confirmation/summary.json": "57588c04b8955febb08dfc2050d1a3d9132821edc0c61f809948b75182096fa5", + "benchmarks/results-20261016/btree-nonlexical/final-audit-plan.md": "3bec342cc25a591445bfdc16be566908bd5af1457c3907afd98a2f83e16c8676", + "benchmarks/results-20261016/btree-nonlexical/final-results.csv": "0f9ab9d8e4fdfebe517548a0a03a5987e36a5d3ae4eea44dca4bdcf856094911", + "benchmarks/results-20261016/btree-nonlexical/final-results.json": "28960d1ceb00b3cebfe1c224bbbaa907e6052403ec217ff3a688e1a05a8af158", + "benchmarks/results-20261016/btree-nonlexical/final-selection.json": "b781ceec1762ed6c85d112895392cef9475e92dce2f556cd975ab98de7d17d33", + "benchmarks/results-20261016/btree-nonlexical/format-check-final.json": "3f9cf531537481514ec51fd53d9fd91d4bc051dc8f8aa91caf51cbfdded03bef", + "benchmarks/results-20261016/btree-nonlexical/format-check-final.log": "e10c8900a5c8fdf97710d1158714a524888eeecf9c042b5c9d85842ed9d39389", + "benchmarks/results-20261016/btree-nonlexical/format-check-maintained.json": "80d53c7c444f6c1d27ad893661b66b2d6ff720b8ee621265440bf4c27d5773c9", + "benchmarks/results-20261016/btree-nonlexical/format-check-maintained.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/format-check-tracked.json": "43ac9d77c064f2d44544b8a1c2478e18d8031c6fd0df2ae3094f710fcb372263", + "benchmarks/results-20261016/btree-nonlexical/format-check-tracked.log": "17f9b09d75a12d54537b6c2a90cae9c852355f9563491c9238cdc412e14382b2", + "benchmarks/results-20261016/btree-nonlexical/proposals/callback-search.patch": "f463ab0d816dfc1612b2cbcf160b295b9a4f016f0cf6adfc9311990be3f33827", + "benchmarks/results-20261016/btree-nonlexical/proposals/combined-read-blob-v1-review.json": "3feb0be8b1ccc9e6d4a52add28186dd9be0085118b72a55ea843b50e2acf3edc", + "benchmarks/results-20261016/btree-nonlexical/proposals/combined-read-blob-v1-review.md": "a9b18e0c8956c3452ca3b261928c3cca5f3a92266599755862bcbc5d50b84a08", + "benchmarks/results-20261016/btree-nonlexical/proposals/combined-read-v1-review.json": "4832ecc63b6cef4b25b63595d7c839ef48c3708565ead60cf94d5f986015dc94", + "benchmarks/results-20261016/btree-nonlexical/proposals/combined-read-v1-review.md": "509a773bcbe4b6f1777f7f1b745c9d76f91d532416d5660c159b664f633231d3", + "benchmarks/results-20261016/btree-nonlexical/proposals/lazy-pivot-buffer.patch": "b906fe918268f1cdaad4fecaae44d61ff243818917460c40b449c6830b77b921", + "benchmarks/results-20261016/btree-nonlexical/proposals/message-flags-test.json": "1f90ae6306ff3de78c6249bf38d034c439f84158303977a034b27efadfde07e3", + "benchmarks/results-20261016/btree-nonlexical/proposals/message-flags-test.patch": "f1667a761bc0abf1c16ebc48692cf2a7462b25fc5540a08d0969cd6de16c54e8", + "benchmarks/results-20261016/btree-nonlexical/proposals/nonlexical-branch-test.c": "3fec898e58f9a26085e7976cba45ab8a362ea665574467b493f575c6228492de", + "benchmarks/results-20261016/btree-nonlexical/proposals/nonlexical-branch-test.json": "9103c189e48285288ce4af1e312b838037b226e6572c5ee1c1165b51c725ef52", + "benchmarks/results-20261016/btree-nonlexical/proposals/nonlexical-branch-test.patch": "3a9ff9b8f64470651584aab904b515745a14abacc99f11826e90fdda3452d145", + "benchmarks/results-20261016/btree-nonlexical/proposals/pack-point-manifest.json": "02c5e607a4c65066187c8e2455dbf6f0d938a397843c8e6ab158355b23ff2567", + "benchmarks/results-20261016/btree-nonlexical/proposals/pack-point-review-complete.json": "13f20fd9bbdb1487d3d844cfde5e3f84f72418b879a6ca75a1308075c8c97291", + "benchmarks/results-20261016/btree-nonlexical/proposals/pack-point-review.md": "c32a646c9448d894483659324ad59c14959000244543f108499ba6d4befca92a", + "benchmarks/results-20261016/btree-nonlexical/proposals/prefix-before-scratch.patch": "cac8513cd318b63ff167dee1dbaf5ce0aea92e4d2a10203656628d0c640154ff", + "benchmarks/results-20261016/btree-nonlexical/proposals/prepare_selected_read_tests.py": "7a8b38e8e0b4259b9a4b90eaa52da593fed9d775df55cdaf677dd28066a48461", + "benchmarks/results-20261016/btree-nonlexical/proposals/prepare_zero_prefix_callback.py": "11c75f3b37c0fec0ada1a994b0c4781a2fe5d5b55917db12099ea77b63625638", + "benchmarks/results-20261016/btree-nonlexical/proposals/selected-read-tests-v1.json": "4c8bf7401a373255b7a5798c3cd5ee35683d3332a34b2e7cb15ece20ed69b03e", + "benchmarks/results-20261016/btree-nonlexical/proposals/selected-read-tests-v1.patch": "bf964decfeda41d5b12eb686eff5ea1da498c99c7681e65beeb8ef5135c4c9c3", + "benchmarks/results-20261016/btree-nonlexical/proposals/validate-selected-blob-coverage.json": "7b12bfdc2a1ee9e6be93b6822435b932430a169f8e0495def607059b0216cb12", + "benchmarks/results-20261016/btree-nonlexical/proposals/validate-selected-blob-coverage.patch": "4dd152deb214f096f643aceae74ac545018a5248857943be1ef66f44cc0581bc", + "benchmarks/results-20261016/btree-nonlexical/proposals/validate_selected-before-blob-coverage.py": "3869d20042b172f5af2012f0aba3e692a09827741d861f9346a26121a12ba817", + "benchmarks/results-20261016/btree-nonlexical/proposals/zero-prefix-callback-from-selected.patch": "31b08025ae320700fa322a454fd7d9888bce2253c2e4671e3676a99097a10c59", + "benchmarks/results-20261016/btree-nonlexical/proposals/zero-prefix-callback.json": "a8944998076b50f298df7da69f10686ef2e6c76b91ea8fb1dd6f660a956b5fe7", + "benchmarks/results-20261016/btree-nonlexical/proposals/zero-prefix-callback.md": "da23a29efdba6bddec83098015ca8e71b3c12e8e1cdb4ecd735683b3b5561e9e", + "benchmarks/results-20261016/btree-nonlexical/proposals/zero-prefix-callback.patch": "09734fecff68eefdc974597b4de77bcb619e1bed61488292624642ba3322bbba", + "benchmarks/results-20261016/btree-nonlexical/proposals/zero-prefix-search-design.md": "ce53872fafb9fb4d5a88d07710425965bbc590872b9fe431c671268e9a66bd4f", + "benchmarks/results-20261016/btree-nonlexical/read-design/README.md": "1feae0b0123e15dbf9c8b1ceb64de10352cce1131ab0c8e301377a8c358c4e3d", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/formatted-dry-run.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/formatted-output/src/btree.c": "0c0cb6f104387df0118ba4588c40e0ac3c54cc589d6ada0ab8ae80fd1fc4ede3", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/formatted-output/src/platform_linux/laio.c": "53dc4334861d8f228c1d1a06cc3096c1a8f9ccce712b0bfcdbeb7921d2d73290", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/formatted-output/src/platform_linux/platform_io.h": "aed5d9cefd9add9bd87c8a866c6e6f26992a1be327097d6d92b087ec5f1c841b", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/formatted-output/tests/unit/splinterdb_quick_test.c": "5c881a35687d7869cdb0b27a507de25baf553ee93a365100c3ea6ac204bdec0a", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/review.json": "3a47531b47ec0152cb9fa362684fc622781684c0f6d9af3b350423d0000d4f3b", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-dry-run.log": "13688bbaacc8605a9d3f6f48e613500eff72557ddf39de2714296c9a686293a3", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-formatting-only.patch": "b34c022bffb1af99d7f78e9745546172248a92813600d9b301774d5b9eb9dd9c", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-input/src/btree.c": "3d6a3f5d7dcc8ee5f3c474487715247d3ac901d2844f5f72cc2d9a1a0df69fad", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-input/src/platform_linux/laio.c": "53dc4334861d8f228c1d1a06cc3096c1a8f9ccce712b0bfcdbeb7921d2d73290", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-input/src/platform_linux/platform_io.h": "aed5d9cefd9add9bd87c8a866c6e6f26992a1be327097d6d92b087ec5f1c841b", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/selected-input/tests/unit/splinterdb_quick_test.c": "5c881a35687d7869cdb0b27a507de25baf553ee93a365100c3ea6ac204bdec0a", + "benchmarks/results-20261016/btree-nonlexical/read-design/aligned-formatting-review/test-overlay-apply.log": "2b1aa9464a61a606e36e92ba9d5bc55ad32a5f29e3c4714f40bcdea848bd1688", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_find_tuple_checked.lto_priv.0.asm": "aab901edf5a6fc23f504055c097117df8e7cf48b67c845a37181e98c3085a673", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_iterator_check_current.asm": "c7d597faf24936cba2c60438b6c0fb1bed27f9bfe9cbd5b96a82d6bfc42d3811", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_iterator_curr.asm": "76c8e973f0cd676d9e673485705732f3674b63e17309018f358fff0bd205d110", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_iterator_decode_current.asm": "74121f47396b22353092022d188f6b62ebaac1a49ea6c47f8e2c17aae7750bc2", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_iterator_next.asm": "c4c61a5a442c2d6de62ec1dcf91a794e40f4b5babee414eb04e53c73feaaf6f3", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_iterator_next_leaf.asm": "1c231abbcfc1e69d386a2504ffb18e30b2027197a569f6d8054363b42bd9e761", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-btree_read_leaf_blob.lto_priv.0.asm": "8d6666880efe9532775db3851347dce093696e658cf827caf1baf629780bc669", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-blob-v1-symbols.txt": "e99142deb2594bca2f5cf718010befa2b4ce40bcbd6af3e26bef10b565d4c704", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_find_tuple_checked.lto_priv.0.asm": "7876d648d2ba7609214b0017b46784f9ac863d4ea0fbc02e15b7446a92858c2e", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_iterator_check_current.asm": "0f77e4089d5fa3c885de1ee0eac8be3553c650266cec94c30d416ffe43f42954", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_iterator_curr.asm": "f50208b62cec5647b1126419854253acaf41769b89d35e0ed87a4a7066bd4d1b", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_iterator_decode_current.asm": "764a9c8f6fc624b48fad51eda328fbf2b3a67be433ca20e7a0c9f9f40d7e08b5", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_iterator_next.asm": "62110a7763f1befef02a76ccec135d0f6e1347d2f8ed85e1abcfc3d13c49010a", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-btree_iterator_next_leaf.asm": "8cec1aec2979b869b1cd95af57d0b506a9a953c4add8b1155d706fd8b68f3a59", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/combined-read-v1-symbols.txt": "ed30015b0fce1569ace24c3ce5e82fb3e7caec8fa945973b0033dcb9f4572874", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/combined/manifest.json": "a272e87c4f0c6e1307dcabcd3cdb1f029a4a5fdf176233072369e2b3b8230cb8", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/current-btree_iterator_check_current.txt": "b2fbeb931ee45b1e8f4f63c006fa16524cc74df8206474986ce883769aaa3cae", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/current-btree_iterator_curr.txt": "f96a4422d67a7a3a96812d52cfdd1b100455e2db02974277d012ba757926b2ca", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/current-btree_iterator_next.txt": "30d914b4261bd841a4594f6433e6aeaf54d22d45dd7911731516f2a74be89470", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/current-symbols.txt": "cbe3b04f6e2d58f86b4e23c9ce618d164dfadd4e31b97bdcfa7962192778c4cd", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/decode-outline-btree_iterator_check_current.txt": "b8a46d8cf17b125455389e8086487a1e2505a9034b7251188514abf48aed2c8c", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/decode-outline-btree_iterator_curr.txt": "d91d07cbc1082a7be008954d74b7d0a5a98b5264c3d59cb1a643f7be5a831c9e", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/decode-outline-btree_iterator_decode_current.txt": "21d5d487aef3268c350b9de80395bb1c9fc1156b4865f9acbab4184b7400fc9e", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/decode-outline-btree_iterator_next.txt": "87dc001b909a659a995b342e326fef060aa035cc613090611d5eb324ffff9867", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/decode-outline-symbols.txt": "5ced714da1d844d1918427678c245475d31bf41605a621bf4644731d45207674", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/main-btree_iterator_check_current.txt": "4d978c928c2b69204734af32b9d61f0c9e7a5ec4adb653335c86287fd03223b4", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/main-btree_iterator_curr.txt": "262a5f9285b025f2b887c468460078404dbefe1d18ba678cd01d90ea7c2a414f", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/main-btree_iterator_next.txt": "b145c21f6433e7be24bfc66ff238c702df1966d9bc877351d436acbcc6ce8ac5", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/main-symbols.txt": "e07948a09a3eb496b92c2fc228c19abd28848c5fb2fcbb52f3e628190a9dc28b", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/manifest.json": "75e8f37f2acc26bb08220b3c70d2bb00e1d120a8b8f65502bd89e612289d5c79", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/message-type-btree_iterator_check_current.txt": "3e9cf1d500bcd7ece49f5cba11804af90345adafaa132cabec0c4ba7dec99cc5", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/message-type-btree_iterator_curr.txt": "93cb2689d7e6530fdd3bac068e404a9a9c566ce28493484b3e7a61069a4c372b", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/message-type-btree_iterator_next.txt": "1745d234b8a1f0d9740688352e5685b1760804c731ad8fa96f7b43ccf6107e69", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/message-type-symbols.txt": "cbe3b04f6e2d58f86b4e23c9ce618d164dfadd4e31b97bdcfa7962192778c4cd", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/rare-blob-btree_iterator_check_current.txt": "d648fdd2ec47f6a2176ea9526d90f2717c22c94be56a551621b273dfaab76a70", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/rare-blob-btree_iterator_curr.txt": "4f6f153ea1d87c1ec298177c2ffa25ecb8320f940a69d1bc0e4ec208f0657f43", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/rare-blob-btree_iterator_next.txt": "551f23b06c01fd0ebe467452abf6ebc0d6c8e95da4c69d0108eae609ee16e8fa", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/rare-blob-btree_read_leaf_blob.lto_priv.0.txt": "782a010125ec46bc2c926106383e3071dffbfb107676f42794fba31338512ce3", + "benchmarks/results-20261016/btree-nonlexical/read-design/assembly/rare-blob-symbols.txt": "b0b023c8d45f6735d915311c14cad0662b5bcd8014541eabc2e7aa03497220df", + "benchmarks/results-20261016/btree-nonlexical/read-design/async-alignment-review.md": "5c857c2c4ef3ac7bcc15a605b3592dce88af1831490a7b200feeb495c3658db0", + "benchmarks/results-20261016/btree-nonlexical/read-design/b9cc3ea4-source.tar": "b77952ae490bf63757ab7c96fee025d2df7bbd0479c0028f303db542f8e44a5b", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-assembly.md": "2b41fe788b83f7a64d16afdece4306d7d5ea352965fce935ac7b74062ab917db", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-blob-v1-format.patch": "e161ac3a6a576da0f6fa0aac137e1bcba570fc56bf51cab90f9dec1c4323e939", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-blob-v1-from-combined.patch": "1412468b6d1cfdc8fe462fee7e65209b9940f13f9a9a48a1881930529a6657a9", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-blob-v1.json": "34640e3972b170304cd0dbdd408ea88cf14878ca21507cb0fd70fa9d3114bf20", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-blob-v1.md": "8ea968366ce15a1e0e41ff8a2daab057dc3ee9be69e2c8dc22fc91098b6526ae", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-blob-v1.patch": "a1395974b0b18fb347c074bd6316aa4b8de56f1c5a6487d0bda428a959006898", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1-apply.log": "71feb2bd97f55ee96c5364a746b0b8eafaea406c26a21e8e9e03bd8c44583e4f", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1-before-callback.json": "fdf4e7cabb48bfe30f2a6978c59311b6f8a7b72ea77e21abc650076931eaa960", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1-before-callback.patch": "30af983acf3fd44be87c6c2c3e187407c99c8a2d2737f099bcd4a583e5fffa53", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1-callback-format.patch": "bc191a9be64f65df728d9dc63d2b928674dd5d15613b233c49723a46fa11adb8", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1-format.patch": "4cf6f3fa854111834493d7ac914b7e793e806ffe8aac10f3429403ece1c08ba7", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1.json": "c0e3581a8071490c4ab60771141ea95278d44aa0f2ba43739e806c93f0ecac25", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1.md": "b8cff582a314aa7df533356808b8f3fd6035de45a4b860af131a0310297a68f9", + "benchmarks/results-20261016/btree-nonlexical/read-design/combined-read-v1.patch": "94bff042846faf69b5a10cb20a219ac4e3b49d501d4d45cb200c7dca2983a48d", + "benchmarks/results-20261016/btree-nonlexical/read-design/confirmation-review.json": "5f0a5098671d8e4fcf68cf21ec4e8b583e83d7616e91cbf8c0ceb19fd118b6c9", + "benchmarks/results-20261016/btree-nonlexical/read-design/confirmation-review.md": "05af0198bf180c11ecad67017ef57e598746593ed4f733cecb6e204b2256816f", + "benchmarks/results-20261016/btree-nonlexical/read-design/decode-outline.json": "961c2b77c944c187635b536d8258b35b5391a86bf8d51272afdf549e2a5d3306", + "benchmarks/results-20261016/btree-nonlexical/read-design/decode-outline.patch": "5e47765ae5b1146b7ae757cc8ebad95a9fd075c6d09d0232cada53b0ca889279", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/base-existing-formatting.patch": "b34c022bffb1af99d7f78e9745546172248a92813600d9b301774d5b9eb9dd9c", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/formatted-dry-run.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/formatted-output/src/btree.c": "0c0cb6f104387df0118ba4588c40e0ac3c54cc589d6ada0ab8ae80fd1fc4ede3", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/formatted-output/tests/unit/splinterdb_quick_test.c": "5c881a35687d7869cdb0b27a507de25baf553ee93a365100c3ea6ac204bdec0a", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/review.json": "d8d816fe6f63657420681b7482444bad272eabc79de24346b82482c0993b2e06", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/selected-dry-run.log": "13688bbaacc8605a9d3f6f48e613500eff72557ddf39de2714296c9a686293a3", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/selected-formatting-only.patch": "b34c022bffb1af99d7f78e9745546172248a92813600d9b301774d5b9eb9dd9c", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/selected-input/src/btree.c": "3d6a3f5d7dcc8ee5f3c474487715247d3ac901d2844f5f72cc2d9a1a0df69fad", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/selected-input/tests/unit/splinterdb_quick_test.c": "5c881a35687d7869cdb0b27a507de25baf553ee93a365100c3ea6ac204bdec0a", + "benchmarks/results-20261016/btree-nonlexical/read-design/formatting-review/test-overlay-apply.log": "2b1aa9464a61a606e36e92ba9d5bc55ad32a5f29e3c4714f40bcdea848bd1688", + "benchmarks/results-20261016/btree-nonlexical/read-design/message-type-assembly.json": "18643cb5ff695752268ebbdcd5adc92427d3baa54fdcb41750498bf140eb12e5", + "benchmarks/results-20261016/btree-nonlexical/read-design/message-type-proof.json": "2deb22611f76fa5d51ec546f767f24160bbc39a0fcb4b69150389f6a8a469494", + "benchmarks/results-20261016/btree-nonlexical/read-design/message-type.json": "8b25739a34366bffa3645dfcfa8e3cc935a77db98f67f5c2002d3aee9838c233", + "benchmarks/results-20261016/btree-nonlexical/read-design/message-type.patch": "417ea837c7a4ea4cdd24a5aaeb292fb542438f1f3c248fdab0945a54dbcc329c", + "benchmarks/results-20261016/btree-nonlexical/read-design/message_type_proof.py": "185d8614e7f777b5560d335fad8073a8eeda4bad90529a009d722fc784902fd2", + "benchmarks/results-20261016/btree-nonlexical/read-design/rare-blob-apply.log": "1bd61fb5487631a8640218c99fe115fd4415e723a7003b76ead323e7279d85ed", + "benchmarks/results-20261016/btree-nonlexical/read-design/rare-blob.json": "b49b050d4cf09c6f5e1193b51abf81f9be8efbe69ee0a3174dbfa1266eeb6bfd", + "benchmarks/results-20261016/btree-nonlexical/read-design/rare-blob.patch": "bc69deab462c9202f486a2e75a4f7dcb2c55ff7c8ca122dc37f41182ce9a389d", + "benchmarks/results-20261016/btree-nonlexical/read-design/zero-prefix-callback-review.json": "cb9ab6372106c6e83647fc3e75978dcb690fd0b52f04f452f0576fe2cc05c345", + "benchmarks/results-20261016/btree-nonlexical/read-design/zero-prefix-callback-review.md": "56cf3b32fcb726e315f81e58ed152571a12f59e782ab9fa6a6653be2d7451563", + "benchmarks/results-20261016/btree-nonlexical/review_completed.py": "3144fbc080cd985c4d0776117bea729b44668a770be3fa834905e8322bc2f8c0", + "benchmarks/results-20261016/btree-nonlexical/review_focused18.py": "5d067a3a58b523ace8bf8e62d7435022f9e7e250acc4a7df9ad1d5c6c0cf7d3f", + "benchmarks/results-20261016/btree-nonlexical/reviewer-sources.json": "0ba2d736c340c183ede61de92cbc0795de15c815ed6997a8c9aee21203aad7df", + "benchmarks/results-20261016/btree-nonlexical/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search-plan.json": "343e04463a0d1465b64f0b742dfbda76951e14f155998afaf266bb18ab7608c7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0001-r0-common-scan10000-baseline-on.log": "ad85a2466a1ce0d47137d5c708c9e8f4e613ae3071dbe0ee359bb26785da3cd2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0001-r0-common-scan10000-baseline-on.stat": "184bb4e015464cdb7dc9e11c49ac2701feb8196e5e0b3b7536a8fe2f51604090", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0002-r0-common-scan10000-callback-search-on.log": "153f07e8dce43e1c816503eadba935308d8d4c072278fbc2fed676f5aceedf39", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0002-r0-common-scan10000-callback-search-on.stat": "3770d2e7832ecdd25e223a309bdc3cdb75ca9b9c46220b360ea992dffc9e6d40", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0003-r0-common-scanfull-baseline-on.log": "aa440f546d63086163bb1fec44f65650f851e0c9673d3d38723040d5fec4d645", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0003-r0-common-scanfull-baseline-on.stat": "7802b754aa59191253e1f6ee322667ee251bff6cf5d5d78dac5593da7c9b77f7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0004-r0-common-scanfull-callback-search-on.log": "95691468444ec88ce7d8e344521e0a657b0b207ecf74d2b6d60c42800fa2cacb", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0004-r0-common-scanfull-callback-search-on.stat": "fd8006789000a6133c7a47db10bb1be54cc976433bf00db18d34648151ec24be", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0005-r0-nonlexical-hit-baseline.log": "447ac7888a332a2ff9161f1ae4c58e178ffafd892542915002eabb363b16b8a9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0005-r0-nonlexical-hit-baseline.stat": "d3411997a1b7b85a845e3bf127480fa36eb8042507316e3df576ece94adf806b", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0006-r0-nonlexical-hit-callback-search.log": "026d3eb690c4c647ce9f292d7a2f251ab111b39e9a006de810947b917c6dbd04", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0006-r0-nonlexical-hit-callback-search.stat": "17cbffc3c97052316448af466351c8b31ab31350ed719d3f37be13dd24cd93f7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0007-r0-nonlexical-miss-baseline.log": "59d0a0e3bf55431cbbd9aa73d5bded81b86f2cf685d53eba77772dad3bba0685", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0007-r0-nonlexical-miss-baseline.stat": "50f6236e7d15d62f850421bc9269ebfe5267d468eb8b243210366950fbd77cee", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0008-r0-nonlexical-miss-callback-search.log": "1b71e7af51d08d27f777349f70478e3add217815a390a3d936b0022899301697", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0008-r0-nonlexical-miss-callback-search.stat": "b0071e27eb8f15a6fe3defb39ad102ce8e5faa5b9b89bff05ff5e9ab15824317", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0009-r0-nonlexical-scan1-baseline.log": "34f7c807414a4dc954a85f6ef67345be0bf8f42b0a99a8d33940b87efce95b00", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0009-r0-nonlexical-scan1-baseline.stat": "513df08138248f625ec6f8839bac81ea9170d4b0bc5a29463d879a0c6d876a3c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0010-r0-nonlexical-scan1-callback-search.log": "ba8d3a8c0573615587694ef3f9faa3102f37cda05a6aae27f709555dd7e79bd4", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0010-r0-nonlexical-scan1-callback-search.stat": "36dbf414d59513c2f4b90486f2b13ba1acf4a5b654ad23217ceeea11aabbd935", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0011-r0-nonlexical-scan10000-baseline.log": "8667dbaf8a8d673b78ca48a38410c787ff949f6458be3d57508a87f09702bc15", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0011-r0-nonlexical-scan10000-baseline.stat": "2ee5930d7625eda0d4011fc8bfff485a9a00d6fe590de45129f981690435dea3", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0012-r0-nonlexical-scan10000-callback-search.log": "d4976e1501cc1d356fc723e36aaef0e4b454994f2c849d14f402f85421b96324", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0012-r0-nonlexical-scan10000-callback-search.stat": "072775c084a8b50a4ee39878052f8f7c3c462fa55b7402206760a5557e690ea7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0013-r0-nonlexical-scanfull-baseline.log": "956cd7658756bafb0a0373923cf97dc4e7522fb3782a928168c05586bfacacca", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0013-r0-nonlexical-scanfull-baseline.stat": "431bd699c9dfbd566c3d164fcb79300debfe717cc1f1db9e1f33bf73817198c4", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0014-r0-nonlexical-scanfull-callback-search.log": "d5b4d723dcf7803c9e60c376af70a880451ad67ad11ebebecc0b318406fcfb8a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0014-r0-nonlexical-scanfull-callback-search.stat": "d5dd5c0848b3c03ea7b76fe4d7def4eb54b62bccf72b1cdeece20371e4cb0a92", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0015-r1-common-scanfull-callback-search-on.log": "aa8c3473ca1461958b9e777afa2048cb3f8ee1128bbad70476271ec6ea602305", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0015-r1-common-scanfull-callback-search-on.stat": "bbc164bdb0bc30084411c449f4231cb7a09f0d77ccbabd1db1eb1a17cfebd4e5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0016-r1-common-scanfull-baseline-on.log": "52449dc85c0ff56ad8baaf5568658580e973b079926d340aa9a67e14b5403262", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0016-r1-common-scanfull-baseline-on.stat": "4beb34158797e9ecf6f094fe008eeb1b7d4ecf51d9b41acccd0097d3461b0828", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0017-r1-nonlexical-hit-callback-search.log": "faaa43b236fc0dc75a0646840db21113f04d44b93fd94fa6cefa6ca8e61cb2b5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0017-r1-nonlexical-hit-callback-search.stat": "5489b7cb20310f82e8adaf30b8e4c65f957177309eab26f5d16a476bdafdd821", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0018-r1-nonlexical-hit-baseline.log": "72c5a246174f870de2803dd643dd63a2f2b567cbf24271f87dbbce9a7f82e9d1", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0018-r1-nonlexical-hit-baseline.stat": "3dcf421c524349fcf7215f46156b999cb3034602450dd46d2c5959d990c47cd7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0019-r1-nonlexical-miss-callback-search.log": "215176584873ef1b04f91f3f8e04078a72d9717e4045186fad7ea454c94294fa", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0019-r1-nonlexical-miss-callback-search.stat": "6057e5a3e8c7877b60c1e99df75dfbf283812c3f5865ae11fc31892704a66186", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0020-r1-nonlexical-miss-baseline.log": "7d0122ea0d8eb27a18e689b0b23de1c83f9e8cd645021e4069c0e782a9f7a09a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0020-r1-nonlexical-miss-baseline.stat": "6e195291e3edb8c75558dd7fad0d081274e4a2fcf43726205a90500c455b8122", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0021-r1-nonlexical-scan1-callback-search.log": "b62db32d0cbefe6a583c30091bf888eed53a09628d6043a35672c2a3a69e3085", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0021-r1-nonlexical-scan1-callback-search.stat": "39f499850ca7f88473762f04a66d9cbb535f30f716ad834d249a195b8a09e8da", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0022-r1-nonlexical-scan1-baseline.log": "cd641e610db0147945e89365053f55a89203289e5d14fd8f7225f06b3f0364ca", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0022-r1-nonlexical-scan1-baseline.stat": "b61df2e1b418e1e80f358690a1751ea5744e177af32c56570ff7d25e5d1317ce", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0023-r1-nonlexical-scan10000-callback-search.log": "56e991da1e96734940938a4b51706062036d571b089f6f15395d1b4f4577bf12", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0023-r1-nonlexical-scan10000-callback-search.stat": "f43dae91a2c7c57eeb470aba1bde9a04a569e4f2aa8f04eceb443ed4a58fd7e3", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0024-r1-nonlexical-scan10000-baseline.log": "e10a92efc4f624802c23e8d024556a01c3b9a54b49294013105da06bdef376cf", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0024-r1-nonlexical-scan10000-baseline.stat": "6a948c35d233dffc6507afebfc00fd2f98d1bcd4bc558ee4e7615ca256c8e115", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0025-r1-nonlexical-scanfull-callback-search.log": "a4e709b3ad4386a52f92b8a4edd416edc70ffdf46ad7911fc272ca5c98907c22", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0025-r1-nonlexical-scanfull-callback-search.stat": "deac06850aea81e69e4710edf3f6176d07106d939082da6948598df6fd47c264", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0026-r1-nonlexical-scanfull-baseline.log": "9b230285b728ddad1c461dec3e3fd7918a538456ec9dea667c44a9ace11d96f5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0026-r1-nonlexical-scanfull-baseline.stat": "3977575e4da11ac1d4ac1927da769f43974940851ad816f06517948b78fc262e", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0027-r1-common-scan10000-callback-search-on.log": "d2cff67e613dab5b0aac8b9bc4f9d7c1fa063b3a9d9ba451ea57696c2b5bf755", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0027-r1-common-scan10000-callback-search-on.stat": "16834ac154b32de954d213c9ed5e9a1afbef4ec86a9ab09c913dbf942d7f2744", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0028-r1-common-scan10000-baseline-on.log": "8625632f321b0628a8c4bdcb30e30ff572162598a7d3220a7ca9df2bda657ecd", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0028-r1-common-scan10000-baseline-on.stat": "0c4e10592a6b6697b8ebe0a9438e3e5a984bfaf10ba6ae7cb49496afe680bdb3", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0029-r2-nonlexical-hit-baseline.log": "a8185b80265265678be5dfa423ffad27a3457889c5ec1da601340dbf7f263f73", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0029-r2-nonlexical-hit-baseline.stat": "68dd996dc18ccb2e117ffec193cb53914cf3110a9527678d094e704bb3ff597b", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0030-r2-nonlexical-hit-callback-search.log": "6a3c96c76a61de64ba924384c800b0aba23084c13264182627ba87f04a2c2055", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0030-r2-nonlexical-hit-callback-search.stat": "66c5f68583a8468620cbba69102293fa724a9b6d0f8bcfe7c566d24bccac2db9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0031-r2-nonlexical-miss-baseline.log": "3668b9cf7bc7bc232dc3d7fbe4a333cc482c59ddb68023610c3ad7fd04b0674c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0031-r2-nonlexical-miss-baseline.stat": "836e50739ae742824909ff929daf884871e1feb084a1de266eaef36c649ffd27", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0032-r2-nonlexical-miss-callback-search.log": "058bbfb4037248fa324e135a8d05abdcd98840a940b53d43d71913110c8f25d9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0032-r2-nonlexical-miss-callback-search.stat": "0bbd2bdca490edf8125daeabb60317503a4e549fb9188619f1bffd444cf4c604", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0033-r2-nonlexical-scan1-baseline.log": "b572ee025e479c7ebdf88ecfe0750920e2d96bbbdccb2a041b819dc9bfa34101", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0033-r2-nonlexical-scan1-baseline.stat": "68d919c95325567c4335c597c4266fdd113e5280a78ee490d34b308ec907e739", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0034-r2-nonlexical-scan1-callback-search.log": "6c6e43703cf960e77bca1ff9a76a1569d66a50e7858b7b19fa7ff3495ab7f0fc", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0034-r2-nonlexical-scan1-callback-search.stat": "0103c818a85376b934bbbad606c6f594ad67dda03c61f5c73786e15c9e43822c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0035-r2-nonlexical-scan10000-baseline.log": "315a2c40a347df1a9da247187d4cc520da518cd5aff799eb7bc89e79974f03e3", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0035-r2-nonlexical-scan10000-baseline.stat": "45ce7ad826372116118628cb8c7d0d9aedc28b78a31962af280a553cea5ddab9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0036-r2-nonlexical-scan10000-callback-search.log": "15ccfbcdbe7ddd53b967ff1533b7e55e88958a7cd9a5f116724409b7a0434517", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0036-r2-nonlexical-scan10000-callback-search.stat": "339a2399740bff20ed087567a1de712215cdc5917e3ee52236dab11be68724f2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0037-r2-nonlexical-scanfull-baseline.log": "ae53a461bc4cbc801caf92708423e2b40cc623a23f6c8c948aed4ce26709440a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0037-r2-nonlexical-scanfull-baseline.stat": "ed08fab7263871b35bbc41f716b7ef908aeba36f8189bc746a57cd30dca69f73", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0038-r2-nonlexical-scanfull-callback-search.log": "ee5cbd48ce55f70ef3f33cf7819792168ffc399f759c545b59d653bb48a987cd", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0038-r2-nonlexical-scanfull-callback-search.stat": "caefa66a48f5f0a21303a41ba8a1f83cd848cad3e350ea2b392498d762fd292c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0039-r2-common-scan10000-baseline-on.log": "a83360a47d364d5604cd2caeb9185a58cf4a466290f769266839adf46798c728", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0039-r2-common-scan10000-baseline-on.stat": "dd840362502d8e29114f0ff20eeff2728a42f6eb8f24ac8d419742e526dbcc32", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0040-r2-common-scan10000-callback-search-on.log": "fd36c22235420c35835ea6271833bd62def6674cb9c07b01fb736ec9e77adf7d", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0040-r2-common-scan10000-callback-search-on.stat": "d8f8d83719db6a43512e025865909779d2ac9f0be45a7dd8c335b67e47c340a3", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0041-r2-common-scanfull-baseline-on.log": "96817716184a95b8e95d842a9dee9016a322c5155ac36d85a589edc63a9fdd7f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0041-r2-common-scanfull-baseline-on.stat": "54d47670a8ff1277b42286760d4ee524f2501ca33adc03fede14f5e8f9af8e42", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0042-r2-common-scanfull-callback-search-on.log": "5dffa1f0957e1203abb5377d1400fe21aa420de9dd784c96372f2377959e3742", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0042-r2-common-scanfull-callback-search-on.stat": "95aa99583a8b1c3775f75546e0641c08c1e97bfa2b40069cd66712540485525e", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0043-r3-nonlexical-miss-callback-search.log": "6dea414bfa85c7da45dc1b39f395db1253e9487673e4c9798dad634bcade54e2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0043-r3-nonlexical-miss-callback-search.stat": "90df917f4e80287b234250135adf751d5b4d1242c36715954bd6f6661c83f729", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0044-r3-nonlexical-miss-baseline.log": "05e7169ae055b1dd53820a15bf221c82665f665b15cf60331bf98feeb0fb596f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0044-r3-nonlexical-miss-baseline.stat": "1e80bbdbfb30e333e246afeb99474c4c2deb4c6137540905579155c6dce7d3b1", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0045-r3-nonlexical-scan1-callback-search.log": "7611023cfa7822bd6c21fa6f200f068701d88a9a356ee4551ea73c68138fc250", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0045-r3-nonlexical-scan1-callback-search.stat": "60ba34c758e89b5a4fbaa3563f081a56e9eeec337e7ffdbc12b61c0b1c0e2aa6", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0046-r3-nonlexical-scan1-baseline.log": "c09a9c7b969c7e3f1d0e921cb599e912d295b3d3ab55cef19f576f5bc0e9c770", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0046-r3-nonlexical-scan1-baseline.stat": "deb2c1861066e80cb125ed761d22e4783c9232e0cdb2f2a0290b94cfb276d7bb", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0047-r3-nonlexical-scan10000-callback-search.log": "8c2705e92e3078fe873b6ca81e981f47d2750ed431edb7da1bf3d9932d3385b0", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0047-r3-nonlexical-scan10000-callback-search.stat": "05cfb2000f574ac706b68248e5857e3ffd7240cf196cecae9a973a67bf33e308", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0048-r3-nonlexical-scan10000-baseline.log": "dfb13d25a908cd8ec5b1d7f30c1b206389d1ca44c2e44bbfa1d5f81d2860b11d", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0048-r3-nonlexical-scan10000-baseline.stat": "b0fb71e52ae811ddf46c2b29313946b3f1951ea2049f4611aa8951c52ea7add7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0049-r3-nonlexical-scanfull-callback-search.log": "830293e22f76b4204b76e9cb36cfd85c00b4eb866be28b9e47c6afcfa1ca1302", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0049-r3-nonlexical-scanfull-callback-search.stat": "4b74423aa5b3cbd42c9ee3138ed2f21b96f41972891b3e03683ef07c2ee92a2e", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0050-r3-nonlexical-scanfull-baseline.log": "7e662961f77fca3e3d113e8ac207978dc177fd22b1a16ea0a51687b7b762d3ec", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0050-r3-nonlexical-scanfull-baseline.stat": "d8c55e883d17d7c6125ba2f359fa8ef1f38a52e2567038b245f7e91786f001fc", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0051-r3-common-scan10000-callback-search-on.log": "d6b951e2d75cd5c646986284df2ddd667f7311a66c4640a9a0b6e8a9d59026c6", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0051-r3-common-scan10000-callback-search-on.stat": "d761951a6c79ca51882080c3cce2e82b109788aa16f864dab01dfe0ccb5098d8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0052-r3-common-scan10000-baseline-on.log": "e8ffc90ef14456a99e12df11fbdc72d7ace42ec6eecc002adecb95f67a71b8a8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0052-r3-common-scan10000-baseline-on.stat": "f52ec902991b5d9ff86d8f6e5d8fb7d3d926f9a8f90e68ac02ae0591219969b2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0053-r3-common-scanfull-callback-search-on.log": "0fc483d5726c92f7a6228348368be289e00db6ccbcfbca7212829604a616e367", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0053-r3-common-scanfull-callback-search-on.stat": "1459468852787c8ad7732df04dffae7fe15f2667543bc89772bdf84e6d883a5b", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0054-r3-common-scanfull-baseline-on.log": "e391c4ca1fa7b01f7ca2fb490c8fd8357cf1a2de65510d218ba1246d8bc2e6c7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0054-r3-common-scanfull-baseline-on.stat": "08595212815aaaaed8505d264fac39eb7c103276ee873ad709bd4f52e7cfa1a1", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0055-r3-nonlexical-hit-callback-search.log": "e56bbdb35604f72ac4ecc1f5a4f72a2f6e2d1e09b7a59d459244a151efdda8e9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0055-r3-nonlexical-hit-callback-search.stat": "703a58cee8fdc3723cb72b9a44e98d1e5af91f36f33d3be71a3fa07c1b77bff5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0056-r3-nonlexical-hit-baseline.log": "206aed2bd3deccef4971d07c0b5996bdaf5dbea1c3ab4b4832c493e8bc29954b", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0056-r3-nonlexical-hit-baseline.stat": "1610a32599849fc62e1ac0128c2a0de3aa1fd873284ad70ba828544fc436be8f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0057-r4-nonlexical-scan1-baseline.log": "6b6ec87943cd51fcb6e7719323a7814194928a8461bc95182c3664ceef1aaa5c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0057-r4-nonlexical-scan1-baseline.stat": "6efdb9cefcc8d7592a5121a6f3c1b34e0b4db478efc80aa837b31785491d7e5e", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0058-r4-nonlexical-scan1-callback-search.log": "55590283ebf1c009507bf9b65f91f6c10474386d58c7ca404f23113eec7b026a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0058-r4-nonlexical-scan1-callback-search.stat": "e00553c0857912938ec75dc5e5207fd644121fbf1d4e76ce5cfc3af2a738fcc6", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0059-r4-nonlexical-scan10000-baseline.log": "7653e044a2a7494f86ea04ad7a240d36020586fdfbc0eacdcecfecad5ef0eaa2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0059-r4-nonlexical-scan10000-baseline.stat": "531ee78d0c9682e6d293f80d60d6b9db47e2efc09bf9bb71a825dc9816fcefb9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0060-r4-nonlexical-scan10000-callback-search.log": "e5b6fac01d76388b84221e0086ac88a83738493b4c40a495b2653bdfd6746980", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0060-r4-nonlexical-scan10000-callback-search.stat": "de8a17f86849fb0b86603726c01e5d3859438296014d125d65c42ab850afb828", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0061-r4-nonlexical-scanfull-baseline.log": "50bec23f4df716693083aa2f8adaa8747191ad2a0333aa0699130f3046f9377a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0061-r4-nonlexical-scanfull-baseline.stat": "5a02e197256c2ece30bb9d298c1be9973c488553742befda83cbd9848404cef2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0062-r4-nonlexical-scanfull-callback-search.log": "b74131e049b88b8156cd9f5701263662856b732cd0551b735a1bddd4d92efcfd", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0062-r4-nonlexical-scanfull-callback-search.stat": "030623f8b4e516076c50f3e6892714c27b89b88b197e78ee78df6fb4a27da795", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0063-r4-common-scan10000-baseline-on.log": "8ff9aec5247551e7726d6a7b54b001008bf69964c9364c0553e6a4df530d636e", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0063-r4-common-scan10000-baseline-on.stat": "447ee2a90386f4cdeec042c4966a50bf7bec32e2992642b0d3e71d47ccfd68d2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0064-r4-common-scan10000-callback-search-on.log": "14d36afc669885882acc2e9b07485f399224c53e457b96d2a037b9233d3800f8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0064-r4-common-scan10000-callback-search-on.stat": "98d2cb68296bd10bd1b4751c7aca8474f5fffa0ba9c62aee573d49c85f3611b8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0065-r4-common-scanfull-baseline-on.log": "600d44b2d605cadf98db4951e7cd5cd61ec69da31411675b97449839c474a595", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0065-r4-common-scanfull-baseline-on.stat": "6d013c81bacaa40a2fe7fbee6e1605ee63c9252b71d2ea39f369a1c3f9d7b96f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0066-r4-common-scanfull-callback-search-on.log": "9006bd481df07dbac8ab27673a39e04c5aa8d087c56e28df014de370b448d4c8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0066-r4-common-scanfull-callback-search-on.stat": "fff749212983eae26bd2e86fabf7b34e64dec636e449362c121be54962991643", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0067-r4-nonlexical-hit-baseline.log": "96bbe20ab5612c9286c8bf58db7c34d5f9e4ddae6447d2d1a409396206122cf8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0067-r4-nonlexical-hit-baseline.stat": "ed2dcc7906cdaaf5016eef33553d4faa30c722c2cee53abc646f995f282ecf04", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0068-r4-nonlexical-hit-callback-search.log": "938e288d89293b9eef5d421625194fbf05933bf0e38a8014e2f9f43e20e01a6d", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0068-r4-nonlexical-hit-callback-search.stat": "ef5c4866b4cd554d1fd8dd03eda9630c7cf9fcc9abe4d89df016e4f2b7e0aad2", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0069-r4-nonlexical-miss-baseline.log": "ffe20064575fdffcb3fc3cecc5c8f8baf992b9c033900b726cd883ca080e729f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0069-r4-nonlexical-miss-baseline.stat": "200c7c61abf85911c2d22cb32b58a0e4414886cd8853bd761e21555aa936c73c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0070-r4-nonlexical-miss-callback-search.log": "df751ebe97bf325f1a74a55d3e774d6cfd9b8ea4975e4154834b39c004ebc48c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0070-r4-nonlexical-miss-callback-search.stat": "35b2bb93f92340fe0730e0e71e8acd17ede2bc5f421a6a4a04a03608ef591716", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0071-r5-nonlexical-scan10000-callback-search.log": "ae013d2f02a378bffd8a450d777987bcfd2adcf52a0a09180062a6b28da5fe61", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0071-r5-nonlexical-scan10000-callback-search.stat": "0f5dbab685bf6eb4cf907f047f35da6251682a5f05c9ec5fbb03c86a30bd0bfc", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0072-r5-nonlexical-scan10000-baseline.log": "2f039a8e37aded2280945f3bd7612be6dbbbb58256136f5e58d18c2839d6fb2c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0072-r5-nonlexical-scan10000-baseline.stat": "774894376ba14e0a2a8418364e4153c5f47e6a93a71363e5cb2324d80745d874", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0073-r5-nonlexical-scanfull-callback-search.log": "465d52229d317292fc1e57bd40fcfce3fac892b4afee19bacb76f31b90584fc9", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0073-r5-nonlexical-scanfull-callback-search.stat": "7b5bdb3841ba17789ae851d76450a8108afbc2c9a976693414f6ec9408a3bf90", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0074-r5-nonlexical-scanfull-baseline.log": "dbc58b9dc8673372b858094132400326b67426d92813c7f1c47aefd974c2254d", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0074-r5-nonlexical-scanfull-baseline.stat": "a6767238d15bf4c43e794c8d340afc8db76db1e65025f798912b2ca2f37ef021", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0075-r5-common-scan10000-callback-search-on.log": "198aff2724294d80abbb6efbdaf0a70c9f97396cf1578b7451652eb9ff4c9fe1", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0075-r5-common-scan10000-callback-search-on.stat": "e3228d008a6e8498242aae6d0796678d19a3552964205c733a07c1565c6ac50c", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0076-r5-common-scan10000-baseline-on.log": "d6eee5de7ea09f078aa34112742f3b2b9a8ddedd21360bd56ee7b154e6f58ab5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0076-r5-common-scan10000-baseline-on.stat": "120354d6600181181527de3924e60d5cc618d4a42c02cddd8c6bf13bd181e33f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0077-r5-common-scanfull-callback-search-on.log": "8375700ae69341a232f5ac144c3013bfd3dbad946b9a1335feb2cddb0b9e35e0", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0077-r5-common-scanfull-callback-search-on.stat": "38f1e7fd9d6fe2d4f204b46e44635d21917e12eea6a51a3cffa8c95c572487af", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0078-r5-common-scanfull-baseline-on.log": "e1247c6da6a4da21ea11470565fbfcaea62793d28535c952f7760e313cd2b4a4", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0078-r5-common-scanfull-baseline-on.stat": "e08642f040a1ad26aec26d3ee79639aacd73f740b8bb3392655f076d91ba2220", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0079-r5-nonlexical-hit-callback-search.log": "47cdefcb76af987edebea9e8a14aee99e8a457099a650deab3c5e177c45849d8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0079-r5-nonlexical-hit-callback-search.stat": "48c521a5b9cc0eea030089dc61ed4d497442563832fa0cf7ed759efaa2b3dd31", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0080-r5-nonlexical-hit-baseline.log": "681a802c5144d8559f9a871aa559877a6c997c1f8463f9b10d03e24a1920b86f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0080-r5-nonlexical-hit-baseline.stat": "8b1dc5b08415e7d21db584433ed5de7dbab12b74ae902b832cd5b7a272fd6285", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0081-r5-nonlexical-miss-callback-search.log": "19215e2c2a127f1d7e28c2a03a8136d87eb8e5cd15df0977c6d61a4d3f4334e1", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0081-r5-nonlexical-miss-callback-search.stat": "1baf8b0ffb179f8829f7bbabe331191b81d618f81cff3c45c4fa252e2dc837a8", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0082-r5-nonlexical-miss-baseline.log": "0242957808c2029db29080b269c61238f9b711ac3e65d01a7840aa2fcd1d6ad5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0082-r5-nonlexical-miss-baseline.stat": "4994dfd0ae94705c1fbe60c5b070dc0b15c70e318ca11333cc02256057488e5a", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0083-r5-nonlexical-scan1-callback-search.log": "c5ae25dd8e59d16cd1694f7938cbcbc6dcae19a4c5e900fe69b57543c06ecc82", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0083-r5-nonlexical-scan1-callback-search.stat": "14923e8e3deb069e1b69c54ec4fbeb8e4955d8644041d4e35bc2f3deda464fc5", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0084-r5-nonlexical-scan1-baseline.log": "09ab5203d0144632817218661f1e7c6acd0a7e5cc4a37951a18f01f992f04688", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/0084-r5-nonlexical-scan1-baseline.stat": "ed93a4d01b528a3e7721dee07333e69318e1083e7b134980141c580041c64448", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/independent-review.json": "aa200f7cdfcaa0eebd1f7d7ba888f962ece439cb5b3bb2075de02975dee08e6f", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/manifest.json": "e6d775a981c2bb2bc2b34fe921ba0d760045a251915165f48b0a5f66ca216903", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/plan.json": "343e04463a0d1465b64f0b742dfbda76951e14f155998afaf266bb18ab7608c7", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-callback-search/summary.json": "b8f822aff39afcf39a7cae83e69b104c5168b77e42f433e028ebb78ec996b16a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations-plan.json": "9a1d0851ec6ae04912fd1876224091e7c1d84926709144709e33e1ea7bb5bffc", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0001-r0-common-scanfull-baseline-on.log": "da192d17a1a6fabe0c156a324656b12dfdef4ebaabd9952b2a595c6a916ef8a0", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0001-r0-common-scanfull-baseline-on.stat": "edcc14dd45faeb960dae284ed410016af473f00da2538d6371a70b09e49a7772", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0002-r0-common-scanfull-combined-read-v1-on.log": "08f62c40f7d5e6f20a8909ea6a129c32b40fe25ce4e5d4eb01e82acef68770dd", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0002-r0-common-scanfull-combined-read-v1-on.stat": "4f0b0fa3b8a049087b3eba8b6e709fbdbc06b72a3ef451c74720f39040da0a39", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0003-r0-common-scanfull-combined-read-blob-v1-on.log": "0f1d01fbfa68aeef9c142ee4458295be03b352a500e7fc5ccd9c653ad7abf68b", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0003-r0-common-scanfull-combined-read-blob-v1-on.stat": "4c9aed8a7459bf0f6859d0a360796b1ad58c577139d019854f8391fc550044f5", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0004-r0-nonlexical-scan10000-baseline.log": "8d5e8c79dcf50e645c840b8ea8a4e22db4d9f47c3f560079028794c40c275d85", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0004-r0-nonlexical-scan10000-baseline.stat": "4ba8abd48f33b163e3063b5a225e4c7c056079fa2b6138048edc7aef4623603b", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0005-r0-nonlexical-scan10000-combined-read-v1.log": "050ccf72a23859e98e7c21894249b191f88beb412f0c70187defc7c6ef0418f6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0005-r0-nonlexical-scan10000-combined-read-v1.stat": "408fb60ec44bc56c80b9bf3789fca60b4680471bcdb51cc17435c20ebe0b748c", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0006-r0-nonlexical-scan10000-combined-read-blob-v1.log": "3f6de7cf30dba6942e6b77d76c764080318f79c60ad7c12874fef5c40e1fff6e", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0006-r0-nonlexical-scan10000-combined-read-blob-v1.stat": "88bd6de657f790329174501ccfc0c2805e733977dca543ac9fcd330ffcb82435", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0007-r0-nonlexical-scanfull-baseline.log": "cd1702e5485a3cdf3ca435f2ad5a8e8e9ef982b9b540ef15a5fcbe2804ebe459", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0007-r0-nonlexical-scanfull-baseline.stat": "9b149503919303267250ebfdc19ea8b05c90af8195f776edb39b6ff5d42302a2", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0008-r0-nonlexical-scanfull-combined-read-v1.log": "1490901c53b7c9659d803c6231ba6b480f17a26f9998441aabffd416ab938c12", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0008-r0-nonlexical-scanfull-combined-read-v1.stat": "234b591c65b771228204a7a6ffac21a994c5360395a0354f6ea73faaafbab66a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0009-r0-nonlexical-scanfull-combined-read-blob-v1.log": "66294f9820ed4c4cc1a76b390703bd7d8d7b744bb2262314f5b78c3576a0d2af", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0009-r0-nonlexical-scanfull-combined-read-blob-v1.stat": "ffc1622ad0c8e3f1e203f492f0d0006e0947de21cecc3bb2fd3218be61ac0456", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0010-r1-nonlexical-scan10000-baseline.log": "879b9b5ea3fdffd07597259afc7701bd348afce13398bd2123fdebebcc62f4fd", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0010-r1-nonlexical-scan10000-baseline.stat": "0351441407f4ea2fc3ced74dfea6a53eebe0417001cf4539d61f7851c80923e3", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0011-r1-nonlexical-scan10000-combined-read-blob-v1.log": "681098f2c238cbb949fdc4f5fc4f4dc57b84ea59a0d8bf2ce54d14371f576638", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0011-r1-nonlexical-scan10000-combined-read-blob-v1.stat": "5d6d4d144d13aba9be7b52f37715d205cc44eca58e1f5c2a8a7705f25902726f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0012-r1-nonlexical-scan10000-combined-read-v1.log": "79ffd997169183f478c966eec2286728e4ea1922f4a99da99cd9311101acf35e", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0012-r1-nonlexical-scan10000-combined-read-v1.stat": "433ea2396853d8d1191bfcccb2fdcd9596da7cc825127f0f747003f7a8656d05", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0013-r1-nonlexical-scanfull-baseline.log": "2304eb56c3374778089da09e235242a64b57afa38818d1bc348a33408e54543f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0013-r1-nonlexical-scanfull-baseline.stat": "b44510827808d58fc2bd6b2976062ef6d28cf8dcba5817ee0c94497522054cf1", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0014-r1-nonlexical-scanfull-combined-read-blob-v1.log": "790706eece0406546345065c7ec09b07cc524b67cd6ab8301428c6f23c664364", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0014-r1-nonlexical-scanfull-combined-read-blob-v1.stat": "08f3776a4113aac4da846bf94c1df2d5470ff1b29f709750e08fabe2db5c15bd", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0015-r1-nonlexical-scanfull-combined-read-v1.log": "151ea8147ae717fdd50096f7601af4665770091d1bb884092ef2fc599d9bbdd5", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0015-r1-nonlexical-scanfull-combined-read-v1.stat": "c9e0fe7489e8eac957210c2436f0922d9223215b9f3e03f69a774a1d4439dbaa", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0016-r1-common-scanfull-baseline-on.log": "20003438f4f4b3fd75cae627b68e224a1a38610fcacf01126b5f5e9e0b1793bb", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0016-r1-common-scanfull-baseline-on.stat": "51d0c80ec3e7a610106b591a45ce119d22a6f1bfb2901ed716c14b9dba834a79", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0017-r1-common-scanfull-combined-read-blob-v1-on.log": "3438c7253a962eb2ef0c001cb2b02f01bde6e7dca875b12ad6c2bb39e47a0a37", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0017-r1-common-scanfull-combined-read-blob-v1-on.stat": "25eadd98382fa69678f7d2b47dafcd174d531b3c603aaf10d540e5bde8c60fb3", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0018-r1-common-scanfull-combined-read-v1-on.log": "b1ae0cb5c2e03ba898a21802d5977550ca9c086b61656c1c79edb321c37d1d3a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0018-r1-common-scanfull-combined-read-v1-on.stat": "5a6f54a5543568274a793731b2a8ae82d0b6089089b82e5c6f1a24cbc53fa462", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0019-r2-nonlexical-scanfull-combined-read-v1.log": "e12b6b24d4eb66cb290f838895d5ee2098560ec28a35152826551b1d8f423d2c", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0019-r2-nonlexical-scanfull-combined-read-v1.stat": "dd74408e6b495a9a84286044ccaa24644b6ae4ce9bbcb62fa3702bde0536b48d", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0020-r2-nonlexical-scanfull-baseline.log": "06214970c4ef8871219948b3905e91a11f501480d813f2d5d864f07a1efc846b", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0020-r2-nonlexical-scanfull-baseline.stat": "7246bb1b022717ca2e9387303933d2f8c97f8a9e725858443f0852c621468c6c", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0021-r2-nonlexical-scanfull-combined-read-blob-v1.log": "c71552a16baf549cf5558d686f67bb62a6571e4162d16578692ab19fb1e943b3", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0021-r2-nonlexical-scanfull-combined-read-blob-v1.stat": "56bf0e916157021846a42d27ad6b78aa55cc05b2599237a646e72168f21fbe5f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0022-r2-common-scanfull-combined-read-v1-on.log": "39c9a5c61ba46e244d6be869f7bfa3d73f4f6af10f0f3776a6cc746239f998f2", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0022-r2-common-scanfull-combined-read-v1-on.stat": "a4676618eaac404938dc9ba89d8610fd4db198ee178e7031802f1b511dc2acf9", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0023-r2-common-scanfull-baseline-on.log": "0d3daa6076279b618ca5ab7ae177ab9702d23e6061389a904b362d48cf7a8a43", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0023-r2-common-scanfull-baseline-on.stat": "abe26fa20e10a9587e5e5c31546b9ebd12c6fc41e96ead610b5c6258a43c20af", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0024-r2-common-scanfull-combined-read-blob-v1-on.log": "ed94646bea77a87a915169e412e2691f163f86a461a133e7c97cfee060337c51", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0024-r2-common-scanfull-combined-read-blob-v1-on.stat": "edf1114a51d020ee34da35c069e7ba84f234f5e3c07c618378a1360aee7a1f58", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0025-r2-nonlexical-scan10000-combined-read-v1.log": "a8063354bac4a81b81df615e3fae231704ad61fe1d49bf6c7852e4fbb3757f18", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0025-r2-nonlexical-scan10000-combined-read-v1.stat": "ef1c950794593bcfd3ffbfe2929a2dc8666befd398ba91a6d42915af5a8622c6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0026-r2-nonlexical-scan10000-baseline.log": "8590d5813abd9aae138af949ad1fb91f6756dcfc9ef1f412d1d3f5842fc66e09", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0026-r2-nonlexical-scan10000-baseline.stat": "1cf3481ba78890d57bb7bc0307d28cc35638190301fd74c6483b686dc1e899dd", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0027-r2-nonlexical-scan10000-combined-read-blob-v1.log": "5ffb3123fc9e1ffb8a05e4ca9029eb5c96cd4d7a9f0820acbaba3bc05a63bcc8", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0027-r2-nonlexical-scan10000-combined-read-blob-v1.stat": "4635b0f29989ba649e80949602b9056d0cd4ceaf589c61fec187859c39982e7a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0028-r3-common-scanfull-combined-read-v1-on.log": "22fe7cd3b0500f535fcc7dcd00c08295fed551779fd74cab060eb9941c989dad", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0028-r3-common-scanfull-combined-read-v1-on.stat": "e1f045b43ed141f9d073affbb755e77bf8650c7d0ed9f5a2f512ede48a95f912", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0029-r3-common-scanfull-combined-read-blob-v1-on.log": "709f23d1a4f5b44d80ae2b5b60697c0556b4fbd3a47295f65f626b46cd553353", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0029-r3-common-scanfull-combined-read-blob-v1-on.stat": "649087c8775041e38afa4e6149a7a1dc5ef36207b7249d52aef180c96c639d48", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0030-r3-common-scanfull-baseline-on.log": "1156828ca125b58460fc5674045e843e107fcffa880b047ab726138fb7477881", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0030-r3-common-scanfull-baseline-on.stat": "e66f22a44821963997687495c97287d7d269951156729333e3dcb2018f479b59", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0031-r3-nonlexical-scan10000-combined-read-v1.log": "bc62e5360d7d6728832484110b5f26b0dde744a63e80c4348487c280ba070692", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0031-r3-nonlexical-scan10000-combined-read-v1.stat": "6a36a0ef38f30204c7d1708f4075b874e92ff1520d598b37a1142e0fb3c1b348", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0032-r3-nonlexical-scan10000-combined-read-blob-v1.log": "b136d02601e904c9fc45d7f14499d63dfa58387fd8006b5763b93105580bcce6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0032-r3-nonlexical-scan10000-combined-read-blob-v1.stat": "c7be212577812f5c250b364e3b204c3bf91c51e9fe96004758bf4e1eac29569f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0033-r3-nonlexical-scan10000-baseline.log": "911e23f42a343ca5bea9a801f2a6f5fb28511221a1f12cb8a86bc7f37764b665", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0033-r3-nonlexical-scan10000-baseline.stat": "442ff74b052935666f863ea6a5ec50668ade67dbb19b0bc7873225e9902d2428", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0034-r3-nonlexical-scanfull-combined-read-v1.log": "fc452503490d85c4832ca979191e426d815e614387dcc76e371deea01e3f3d27", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0034-r3-nonlexical-scanfull-combined-read-v1.stat": "678c9d268fa2179939f5272375ceb8517bfa7db72784d5ede0f64b9e3766f88c", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0035-r3-nonlexical-scanfull-combined-read-blob-v1.log": "f46081c645cd981cbd74c483ac83bb82d84f3b0aa9f4a62f5213bae316a450aa", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0035-r3-nonlexical-scanfull-combined-read-blob-v1.stat": "a362318b6dbc68edb17602b67b38aa883b2d20c3227f1d9c72a159307678d56f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0036-r3-nonlexical-scanfull-baseline.log": "ce28a9594040bb625cdb9833871a41f886f23bc139f4c6fcdc59bcba4ac524c5", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0036-r3-nonlexical-scanfull-baseline.stat": "63a9344c23ee38c6041d37e747ef2f43c5989696405e5434529beb9258cecf12", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0037-r4-nonlexical-scan10000-combined-read-blob-v1.log": "5e94ce6ba57c5a9d2274d526ea8f7dd1df66417db2072fcacd867304645e9369", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0037-r4-nonlexical-scan10000-combined-read-blob-v1.stat": "6537daa77e1232ecdfea506151d338b8a4789da55b6e76a5f156d221430252f9", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0038-r4-nonlexical-scan10000-baseline.log": "a2a492a4397a112337e79a7a203d252c2b9a6471c671d7cfe6b609f5cbccad68", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0038-r4-nonlexical-scan10000-baseline.stat": "33c51f748d8395ea97673a67741db3af279d1b34ed130c059d160964733e4758", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0039-r4-nonlexical-scan10000-combined-read-v1.log": "8e6cd0a8a11dfcee95f0c9cdca97e245a4889385abd4d57628f06c0f8fd5adb6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0039-r4-nonlexical-scan10000-combined-read-v1.stat": "8e4a88f4232f7960706c1df5de06af6b0dcabb8704d65c23991aeab4a76bc274", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0040-r4-nonlexical-scanfull-combined-read-blob-v1.log": "5445dd215cb8273c19fba31f8ff47e6a86bb7d1c38da682a15e02b2ae9aeb6d5", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0040-r4-nonlexical-scanfull-combined-read-blob-v1.stat": "58cf501a182fc38f03da073613c06023f4ca0553c965452a34f21066b946a266", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0041-r4-nonlexical-scanfull-baseline.log": "cd31f40cde310846e8e8a986eda9e5eadea71bb4e693838dc8d34fc219d622c6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0041-r4-nonlexical-scanfull-baseline.stat": "3072bceee37cd38fe8f6b85512db6990396b50b578aa0fd57f66d85127e4b643", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0042-r4-nonlexical-scanfull-combined-read-v1.log": "ef193a8b48dd3ea05da2eaf597245b24fafc138aa4c6f708a6bcfae1429a67f3", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0042-r4-nonlexical-scanfull-combined-read-v1.stat": "fdd5ed108415b644cf3c2b83514200fdc3c7402f38e3d35b40aae4e342accc10", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0043-r4-common-scanfull-combined-read-blob-v1-on.log": "43c69ff6751c9d75d85688a4d359f093637c145e87204714b1a2eea2f1743199", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0043-r4-common-scanfull-combined-read-blob-v1-on.stat": "2bc315e474429a62c6b1c3ef57aa0617cf47bc88845b94dff02590c0c01f5428", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0044-r4-common-scanfull-baseline-on.log": "6be2d05cd0b86788ee08501914f8a459cfbc21ce99ba4557bd41aa2197968583", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0044-r4-common-scanfull-baseline-on.stat": "578278ac12982de7a34d07c2d0f30c1852833bf4d9795efe3939c3e84c4573fb", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0045-r4-common-scanfull-combined-read-v1-on.log": "11c00a65ac7fda160db9dcbf29a71b054a1eff717f7ec34262a36664d678c1fb", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0045-r4-common-scanfull-combined-read-v1-on.stat": "f38ef0061f0846b1f337782efe921f7e6f7d80787c5084e26fd320b2502c6ffa", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0046-r5-nonlexical-scanfull-combined-read-blob-v1.log": "611d31db2b4ce05c95fcd4b4f5d164d72792bd26ca2991b6ebaabf514b120456", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0046-r5-nonlexical-scanfull-combined-read-blob-v1.stat": "30418634e3d0691b09b0ae95b46579f0982e1e74d100a75d52f8ccd5aa390984", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0047-r5-nonlexical-scanfull-combined-read-v1.log": "62470bfcb069fc236f26ec349b81ca2003089883d824e3f4c709f054bd887399", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0047-r5-nonlexical-scanfull-combined-read-v1.stat": "8fe7fa3bea5de9fec97af74429d8e5501d14f38be294caf2f1dae96ecceb3050", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0048-r5-nonlexical-scanfull-baseline.log": "039f379f7bb935066fcffd5b3c880ef7a42b78b54d3ec6d8cfb450a6b304eda6", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0048-r5-nonlexical-scanfull-baseline.stat": "c0f49ddae8c42adec7413923234dc7eff91925b09df5a7b748cecbb7539c6f56", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0049-r5-common-scanfull-combined-read-blob-v1-on.log": "a10116649daa55c67ad5493755c3f6301483c3962186932a30cf931acc77b840", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0049-r5-common-scanfull-combined-read-blob-v1-on.stat": "4bf61fba1464c256b3c0454c6e756066cb3480cafdd70732eb4b97f041a73783", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0050-r5-common-scanfull-combined-read-v1-on.log": "085b090742e7882f4fca3b549f2e314cf17a5d98e607d52be0231cd0f0d5e9f5", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0050-r5-common-scanfull-combined-read-v1-on.stat": "e3e44495baaf892786a7cc607ba6cf7329f5fffc6162969c0670bca20c825d4a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0051-r5-common-scanfull-baseline-on.log": "f48e3ebf8462a90c732588ec445f8baf4a8dbfcff1222d43dd48be314c99f36a", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0051-r5-common-scanfull-baseline-on.stat": "757a5e03e2b1c07cf8b103fbc67fd7def0f3521d165a7d933efe323cb38f300b", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0052-r5-nonlexical-scan10000-combined-read-blob-v1.log": "ed973628b36f7c64b68e2ffe2bf73d48963774481b57bfefb08558985421b26f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0052-r5-nonlexical-scan10000-combined-read-blob-v1.stat": "cdf1f90630abf1766b6875697e8e7219a05fcb5b50530cfa4f36152c29384c49", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0053-r5-nonlexical-scan10000-combined-read-v1.log": "81cedf5240eacbaf0d959f96c887bd63e84e4e53bb9919cd2378a9a043f605ca", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0053-r5-nonlexical-scan10000-combined-read-v1.stat": "ab69162ac4cb40a81323ffa480873d26dc7f6d4d3cef7b6356ee7a9c32892494", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0054-r5-nonlexical-scan10000-baseline.log": "6585e2cc51b95c4569744c4f46b2c12908b8e6f5a0b89ab54d99c86de083145f", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/0054-r5-nonlexical-scan10000-baseline.stat": "1d3f54f5f16cc701d3768c22f3dc775d2db80ef78989d1688b1fe00695a12752", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/build.json": "c842fbfb98f9b65f6b166a87882a6cb5b4b6ec2d7255baa68eff289b9786f035", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/independent-review.json": "d30088e4c614c0c5265180dd232114f8af177d06e7d7c19613f75f9ef25220ba", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/manifest.json": "c3efe53b183d32c7e6b08c367bb93cef05cd5eba9118bbdade1010e6932eb933", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/plan.json": "9a1d0851ec6ae04912fd1876224091e7c1d84926709144709e33e1ea7bb5bffc", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-combinations/summary.json": "d4b672f30331c5a5976e9f6b4008dab47e2c229ae9d93ff90fd35571aab35181", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline-plan.json": "e1621ec86ad89dbd8e85cdb2f91f2955023eeecb1ca76c09fee6f9abd090dbcd", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0001-r0-common-scan10000-baseline-on.log": "104fa9e2a8a1fef9b890e902956793681c6dfd0b9a177550fda1d972d7cce685", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0001-r0-common-scan10000-baseline-on.stat": "1a20b53dd24d461ef928592d7e154f7bb37152d4ac410d9739534d1cd0f0e36a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0002-r0-common-scan10000-decode-outline-on.log": "183e571c0c802e5d08795783086a6fe6d07ef9e0952f8c1fe269d8116a9f0910", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0002-r0-common-scan10000-decode-outline-on.stat": "328a484f78c05cdf29c8431840f7564f5ec53ed1c8a4472d28711cf2e127139f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0003-r0-common-scanfull-baseline-on.log": "8abff09b9c7fc58099754ab8c60620b44f2493de79c89faa2afd2dc0f8364ba9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0003-r0-common-scanfull-baseline-on.stat": "cd23cb863d1016a22f66e0b7b40c0a1f9c44939b8edf69485753ae1f1697f6a8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0004-r0-common-scanfull-decode-outline-on.log": "a6a3e0786c2c80df98d118fe9a9bdf462ac43165743792824f704edb89818b01", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0004-r0-common-scanfull-decode-outline-on.stat": "a0bc169e2e74369ba3b99f6f928e114f846a6b7ccceec91f33cb4e00f24b63f5", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0005-r0-nonlexical-hit-baseline.log": "98c39ac8892868399e8000f7a9ee894d3cf852f7bef3613792918bbeb1491560", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0005-r0-nonlexical-hit-baseline.stat": "d29fef0ad9d69e676ce4db9c74dbed033d8a2288d65bb801376ef852ea10db75", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0006-r0-nonlexical-hit-decode-outline.log": "66e878b77597ab3a500bb782ad2c6183ad13585f09e7c8c20a93fc29020c92dc", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0006-r0-nonlexical-hit-decode-outline.stat": "986646c5130c95ab4b6ce281ae8aa0591848d58b484a1d66b0f03dbabb8d500e", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0007-r0-nonlexical-miss-baseline.log": "4acb97fadc1a8360f8c4048a45f17bac0c4f37afa1c4f7f6de7c9e5f16b1117f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0007-r0-nonlexical-miss-baseline.stat": "71ee49cd70d97136112ca23df8e9ca1140197a05b8fe4a5f4402768d06810a59", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0008-r0-nonlexical-miss-decode-outline.log": "8335793021a0c55c99be43abfd34f1e42d45933a8c3d834b3f56e683a3a07aaa", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0008-r0-nonlexical-miss-decode-outline.stat": "bef5aae7bb60a4739e2e4946e38cd3add9440dd1bad2c5c795ec3bf62554c2ce", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0009-r0-nonlexical-scan1-baseline.log": "74c7772b23741a24cdbb55e7c7e578d8f016ecc4c19f86f63cc59b9b5edca9cb", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0009-r0-nonlexical-scan1-baseline.stat": "ce531991c140acffd4392f8e078d611e1252754df1331ad8d1dfd2094a44000a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0010-r0-nonlexical-scan1-decode-outline.log": "3ffd019737c03943de62dee391baeb2e7993b2893f32782dae85e73af2aa049b", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0010-r0-nonlexical-scan1-decode-outline.stat": "53c261763f82d056bd5349aaf21f235f336bc9113adf0f381ce06ed2882a852d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0011-r0-nonlexical-scan10000-baseline.log": "afa3f7809559907a5c7073f0cb747aace96488e46498910d3b8f359ec57b7438", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0011-r0-nonlexical-scan10000-baseline.stat": "7ed1b0623356c95ada7ee29c69f1c43fa9373c1de3c35820e4dcec3a484a48aa", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0012-r0-nonlexical-scan10000-decode-outline.log": "0b79a631869f6041eb1fb4953fac5ec533ba3cda28f1a89c1ba5f34d8581f7c3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0012-r0-nonlexical-scan10000-decode-outline.stat": "b46ffbef4fd29570b2af42454f199d5c722a7e7b6fc0336813e5acfcafac58c3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0013-r0-nonlexical-scanfull-baseline.log": "8e4f6a4ef176fe542a1a97246dbb2d1cf7950322e4b079069a836e54aa41ed9d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0013-r0-nonlexical-scanfull-baseline.stat": "8a9d2bdba4856ab4c5ef0284c1ace8b653b6f2140a26516190dc82d3b331f569", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0014-r0-nonlexical-scanfull-decode-outline.log": "02989b48177b480d1760b3c2ceb6942af29b5a8498bea82ab74b238396332812", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0014-r0-nonlexical-scanfull-decode-outline.stat": "807c4bfa35c37825ecf00f46f305f07370f51280d8b1a93086b392a7ccede0e8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0015-r1-common-scanfull-decode-outline-on.log": "decbb222fd5de2674211ac94d0f8c11fe54eba3245f158146096844b397335db", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0015-r1-common-scanfull-decode-outline-on.stat": "9c1b3ee806840df10da80e14a97db01f1b6ed59c3c0e871632e75f49f4370405", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0016-r1-common-scanfull-baseline-on.log": "145bfe8896786e800a01e3eb82ef241d3619568a6a579d50b30eb0b840cfaa21", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0016-r1-common-scanfull-baseline-on.stat": "44e7e13f8bf69333418950a0aee69c8abe2e11bf36f316d7297bdb150a16ca5f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0017-r1-nonlexical-hit-decode-outline.log": "a25834e492f83e5759d719f18977a9ac84b27b40968f6b597154450408626039", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0017-r1-nonlexical-hit-decode-outline.stat": "6cfb0ef897eb25ae46e1c019e5aaaf72f6ca4269c425945ca43458eb6725e4b0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0018-r1-nonlexical-hit-baseline.log": "59768d0c69b3541c398752f3a342ea6925e39d9d116acf9fd5f3be3ccbd778cc", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0018-r1-nonlexical-hit-baseline.stat": "5efb31a9bb2c05de4301914e7b1c7dd126b22a06f0dd6b163345ed16f1853439", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0019-r1-nonlexical-miss-decode-outline.log": "b33aeb0261fb03f9d9626ea88483b497835ea6f88e97cef858a1ba4e463c58ea", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0019-r1-nonlexical-miss-decode-outline.stat": "daa3d45f1db7589acb9096a198ab38d25607a86f638f78cfc1df8120590dcc05", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0020-r1-nonlexical-miss-baseline.log": "64bb3899740d86f14c5e1a26d7c957a4628987bcc60957b7abc0a7ba2820821d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0020-r1-nonlexical-miss-baseline.stat": "5997966d5e6d7bce68d3a85a2ea7c8edb5ff48291098e75abf6ec25c9394a5d9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0021-r1-nonlexical-scan1-decode-outline.log": "78c7de9fdd3a3d8e02e191de43cf7c668d6c5b23072235e7d56d967420830bd8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0021-r1-nonlexical-scan1-decode-outline.stat": "a6372bf3d0cbd9f76d0a2c99790d9a27109cc86f109a5dbc7c1334693f65c94c", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0022-r1-nonlexical-scan1-baseline.log": "2bd3b1d726062e16c046adeb88a04458589c1753b79b1b10affc3f6c2039abb4", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0022-r1-nonlexical-scan1-baseline.stat": "9fbc74a3de61feb422edce4ae8f15d3898ec7f56135acf355ac788964f2af9a2", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0023-r1-nonlexical-scan10000-decode-outline.log": "7364c848fae714c58e4f0c8525683f20ff7b3bbd52ba595cbb502e83437cbf60", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0023-r1-nonlexical-scan10000-decode-outline.stat": "26ca58dbc0962b9a17bca243146d39763a789aea78c34b504bb526ca63b0a6c3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0024-r1-nonlexical-scan10000-baseline.log": "a06d160e9dc7723da27d55cb8bc41cdf009a88bd5cbb2e16bbb23b3248033272", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0024-r1-nonlexical-scan10000-baseline.stat": "19f68f9e92388fdf64f51839823f91d42c5c5b7eec7ed82ba0d4026633d7e218", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0025-r1-nonlexical-scanfull-decode-outline.log": "5c251c1cc87c4442899ebdd2128dbbe2eaf9b9f32aa182ee313b28ddfc198eda", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0025-r1-nonlexical-scanfull-decode-outline.stat": "0d6f9f9efcfefebfc30ecc9f992f300ce035d78251cfb8b2d4adc42c204afdf9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0026-r1-nonlexical-scanfull-baseline.log": "3c98dad8ca5d78d0d1176d1d248e4a6fd47f6b5c81508aa3fb0810b7c85bb012", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0026-r1-nonlexical-scanfull-baseline.stat": "8b4e642258bf0e5dac6afc709e203e4dfc7e0e187747d098a096d8f9a0dd4cd7", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0027-r1-common-scan10000-decode-outline-on.log": "1d931ec75ee7667845da34636a2a0b720220808740615fc7dd44462a61dc8785", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0027-r1-common-scan10000-decode-outline-on.stat": "86c1fe3df6c9de3613f08821c6ef0415312fc2d14218ce6615ee4e31cafcd1b3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0028-r1-common-scan10000-baseline-on.log": "133295788562b14a910514d17908485a3b5f04c51634b54e8ffc17f445e2527e", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0028-r1-common-scan10000-baseline-on.stat": "6ac21d148a919810f895e47fb1a6eacae5564620381dda8aa2598b1eff4f51a7", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0029-r2-nonlexical-hit-baseline.log": "8a20252aa927173698aeacd79437206b26a45752709d69bf21b9f44044511874", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0029-r2-nonlexical-hit-baseline.stat": "a993485542d23fd43a70bea952b0d38c5179441a916a41f01322aa6d5e56ca46", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0030-r2-nonlexical-hit-decode-outline.log": "07678e3be44dd467b6d6773d147c691d41e9622a312290b7592182bfa23837e0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0030-r2-nonlexical-hit-decode-outline.stat": "0932c3a0d962f363ea327dc50b5f3307ccf9037bcf22b6e3dc2c6d90bf756e61", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0031-r2-nonlexical-miss-baseline.log": "1849f6a3f701ed62472b9d82bccc33bb437928132b3c48e61f694cac28bd15a9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0031-r2-nonlexical-miss-baseline.stat": "96b01635bbd9cbb029f2ad45bc07e0b03d5f91c017b600fd83ee7e06c77b71cd", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0032-r2-nonlexical-miss-decode-outline.log": "4328d8946ec83693342d7e6bfc77058f77bfd8492088bd9eb378647af46601b4", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0032-r2-nonlexical-miss-decode-outline.stat": "09b272972905d511f85482f8fa666aab2e93fecf2316a19e538a8d08ada36115", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0033-r2-nonlexical-scan1-baseline.log": "ef15b20822ac8ccfcbd2354fb932766c3a201635576d8e9ede10e2504e85ae55", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0033-r2-nonlexical-scan1-baseline.stat": "d434229f28f7b994ea48c4324df8f64cc50f84b37953e05d9439b97d635cbadb", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0034-r2-nonlexical-scan1-decode-outline.log": "22e9c55d2cac64d949097107f9e2791f36299dcdb630e135b4da6f2d2516d48c", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0034-r2-nonlexical-scan1-decode-outline.stat": "a39699fe6b2e5f37063bf6e5ed422377e59527749965926a9c2b0bba75eca3cf", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0035-r2-nonlexical-scan10000-baseline.log": "778ba4576bf0b8b340542e79033e1032dca8fa5c4a6ecc3a04e31f9174bcaef9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0035-r2-nonlexical-scan10000-baseline.stat": "830689956ffc1bc3e461382ec1892d7e6e367fa19f5aa5059a0a51f4763c824b", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0036-r2-nonlexical-scan10000-decode-outline.log": "13f92477aab1b6f7c799cbacbdd570b3139d785737712a9ad908fc09920676ab", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0036-r2-nonlexical-scan10000-decode-outline.stat": "4c79d9a9e2844838daa264c97949daf8677de25af9e88c9e10a68dccfbf219a4", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0037-r2-nonlexical-scanfull-baseline.log": "022c35f7f6222b33a5d4f34cef885e325fadbaa71892982ec916d69ff40f00ee", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0037-r2-nonlexical-scanfull-baseline.stat": "84dbf167ce539d54f4840e20b749fdc43bf139e462a7578aa8826424b384cc9b", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0038-r2-nonlexical-scanfull-decode-outline.log": "c059d1998ede537c20274e81456157389261142ed47d415b317eb3e1e3bc9a83", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0038-r2-nonlexical-scanfull-decode-outline.stat": "5c177a23cd8cf4cc8d66b075026fa8cd5227459f75335a1033eea0be4c624666", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0039-r2-common-scan10000-baseline-on.log": "c782f58fa6e0e5b9ee596adb6423bc450fc4f4ce71df56070cc5081ce1959854", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0039-r2-common-scan10000-baseline-on.stat": "bb540ae6d0cf7d701f9d697d44e632a0fb265b1e87ed7520366860e3cabd26e3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0040-r2-common-scan10000-decode-outline-on.log": "504fadb08f2f0298b5a33bea281a5e23a88a08c3efc659a88d01aef77828fa20", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0040-r2-common-scan10000-decode-outline-on.stat": "8fdce51406cf30856203ee340ba4d79c5650d2385293e8a9265f7d0653330d72", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0041-r2-common-scanfull-baseline-on.log": "8e46ff493fc9c13c01bf4f2df06b7de6150192532d8c5334f74d4a66b3136ee0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0041-r2-common-scanfull-baseline-on.stat": "9ed615cbda989a80b7c0a5ec53f54f9e8b8908df0734549b1aecc478835866c0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0042-r2-common-scanfull-decode-outline-on.log": "7c5d214ca3f4fc014e488a012f687dc3322464f23973f4784fd77ef8db2360a8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0042-r2-common-scanfull-decode-outline-on.stat": "908873f3e8459a272937b05a1d094f36b558b21670a5d13878a7826638c430d2", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0043-r3-nonlexical-miss-decode-outline.log": "18d6c443702f17f1585dbd45853680ef6f986f0753da510f69889e0c3c704442", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0043-r3-nonlexical-miss-decode-outline.stat": "82404428a1e22858e69720df8a5b1a297eb054effa3f7daf810f10dfd6d6ca74", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0044-r3-nonlexical-miss-baseline.log": "db8d8ae8dbbc115ae4b4d9f95075518d2db9b93d3638b4b7c8e681f6191e448a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0044-r3-nonlexical-miss-baseline.stat": "63b3b1e95c1acb332118c75c4f8c2b31cb24450f80beffcc3aeedd1ee376f8ef", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0045-r3-nonlexical-scan1-decode-outline.log": "75428e4e94d3d3f332b7f706be8bc8eba85a4a77fd58b73d2b9a6af71b9c5795", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0045-r3-nonlexical-scan1-decode-outline.stat": "6c9e840510fbba036589771ba25056e354ccfadac6ddaaf0c2d806b6a10db2c7", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0046-r3-nonlexical-scan1-baseline.log": "88ea0c570dcc66a2f0e9b8547587c3981826ff3204bd231f2d1224ceaad2d5bb", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0046-r3-nonlexical-scan1-baseline.stat": "d400b92a1b8838028d5c9952bac55cc2b6b57c90f35482fe796ddd0703555264", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0047-r3-nonlexical-scan10000-decode-outline.log": "1b24faf99ce6e95246edd6013b9277e15a539164906e06be545d040fd7e29734", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0047-r3-nonlexical-scan10000-decode-outline.stat": "dd3750a7c51cc0c17b373fddda783223d93dc23ed4ebc893b369dac717574b66", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0048-r3-nonlexical-scan10000-baseline.log": "898534fa8c6a72bb51e02ba62fc4ead5ccaed73296314e66f97b8be2bf11527f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0048-r3-nonlexical-scan10000-baseline.stat": "e8fe1d02f20a5182218c3ae68384ce8d76ef87deaaa8e944c87dc13660020b75", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0049-r3-nonlexical-scanfull-decode-outline.log": "d4bc868ea589086208580e8e5eadd39fc2f4500bd16614617c34caa8301c25e3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0049-r3-nonlexical-scanfull-decode-outline.stat": "f911c948ae67e9a2b54145c19a4c4175173ee93b25958635de26f4d5f9671f7b", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0050-r3-nonlexical-scanfull-baseline.log": "854768cedb4b33a004887aaa8ea6f452eb4b41551cab56909e9d81714588ec29", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0050-r3-nonlexical-scanfull-baseline.stat": "a3b3f9a899ca1061e44acb6dff60d2db08c2537d242b0934494ac539b14696f5", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0051-r3-common-scan10000-decode-outline-on.log": "9087d333a65d0e6147d750fa88ffae7f16bb47a4f28f4b26a14f6e5ea90bc049", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0051-r3-common-scan10000-decode-outline-on.stat": "627cae3064b1ad350b7fa1ed795db2e3495b3b1b71d3022664ed541b85e17ea1", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0052-r3-common-scan10000-baseline-on.log": "db13e83ac92f1c81d7098662cad430200e32dd78342f36109a27620de2774c67", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0052-r3-common-scan10000-baseline-on.stat": "ba4f4b2c24728ac08e7971354447feb4fe25fdb31d7587c1b42cf02db7fd0d8a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0053-r3-common-scanfull-decode-outline-on.log": "f163e1deee15a610f4c16c1f5d56dc28337bb8cc247d455eaf7813ed130fcc45", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0053-r3-common-scanfull-decode-outline-on.stat": "2db31dd73aacbcb5ef8b26f0ac27686070a6404092edd80d72de1a8af88e7331", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0054-r3-common-scanfull-baseline-on.log": "85b5959e75fb3824c4a5bacdae779061588ff495b3c632edb3e8a5b2d1a1c953", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0054-r3-common-scanfull-baseline-on.stat": "77976b28feb2138a412976601dc82615c1fb3c00faa2f0ddc1b1d05f06ac25df", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0055-r3-nonlexical-hit-decode-outline.log": "b8bba4f8489a64d01c68da2a07b5f0e8c0f85fbc05205d737899ad989c86eb5a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0055-r3-nonlexical-hit-decode-outline.stat": "fb9b5b7fb7a7f9556dc8aa145e3356a27b3f80ce9c46c9c2e5173e8e6ffec25a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0056-r3-nonlexical-hit-baseline.log": "eb75aa6665c98869f04103c428f92cef7df7633fa5c71243578357c1779eb0f4", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0056-r3-nonlexical-hit-baseline.stat": "b8b95433d0e06a196bf8084167a39fcaaea08dec88c91964c43abe918d5fd8af", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0057-r4-nonlexical-scan1-baseline.log": "ee5ea26fd6d3e6bbd33305b8a40e9b8d2bc2675bc5a52026889eca366530996b", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0057-r4-nonlexical-scan1-baseline.stat": "e678dbfa308dff20d4f7fc858b34e1e4b4d47866d714b33bdf026598d9a386ea", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0058-r4-nonlexical-scan1-decode-outline.log": "95ba54c9c05d0d6277b175f20dbe2100a50d4562eecb96419083d36b12722e48", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0058-r4-nonlexical-scan1-decode-outline.stat": "d90dd08fea058693fa2488c5f58c6bdb6ad653c7d54e8c9ea2d875fa95de9b9d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0059-r4-nonlexical-scan10000-baseline.log": "bbd82143ae876f06b2906c7cc5cbc0c19a6328cba7a76e9d3fb6808fddc452f5", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0059-r4-nonlexical-scan10000-baseline.stat": "1ebee8729bacb347cd15c6962ea80a6f0a2410ff79d73deffcd885bd668f26e4", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0060-r4-nonlexical-scan10000-decode-outline.log": "6fae9ca2736ec41e3873d89bf1c124abf1852451bc2fb31945bf60130cecf7cd", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0060-r4-nonlexical-scan10000-decode-outline.stat": "270896999f023cc775f0d999e8018b79ec96ac4fc22804d77de20dd92142d1f5", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0061-r4-nonlexical-scanfull-baseline.log": "a99fa03527feebf9c48b8a12b8ea5bbe46c2697a1da688d44013b3814fc04158", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0061-r4-nonlexical-scanfull-baseline.stat": "a171613eb1457016cc1f014e41529e1ddf2ba3fbc8e6068508706adc4dc4f9e8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0062-r4-nonlexical-scanfull-decode-outline.log": "661186ef8ddccb790966946ffcafdebf54c1c98f01179c3e8cf4d39c7799e633", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0062-r4-nonlexical-scanfull-decode-outline.stat": "036f478f72b18dd75f9c3d527d5d60dd110f1fc7373e679b9ac49e4901d90d1d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0063-r4-common-scan10000-baseline-on.log": "da55a37721a2b891d61aa13bf8c03921578a1384a80f1029edc77a295ac64a49", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0063-r4-common-scan10000-baseline-on.stat": "b0e2f88ebbaeeb0179b19cf5c52654871e9194e1eeb09b5c69d68d0690e0ab63", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0064-r4-common-scan10000-decode-outline-on.log": "f906b3e008ba68a5e2d3df31846c47ca9115977e27d1fc752224113ed102aa45", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0064-r4-common-scan10000-decode-outline-on.stat": "136c6ac64ab6b024bd182d3fa6fff62e7d7aa22b189bae130a870c83250eb760", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0065-r4-common-scanfull-baseline-on.log": "2c3fd152b9aa86905dd1ebc23f6c9e4c640389f77a65184d647854f287a45a3f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0065-r4-common-scanfull-baseline-on.stat": "a4f9849410571f3c992d3378978f9e9544996f2fd2b9f48eaf833374be9cc17d", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0066-r4-common-scanfull-decode-outline-on.log": "e0d9bce80b260d84aff7ec58e1fa0298f90fc1de9b8601c4e2aa02e64235c50c", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0066-r4-common-scanfull-decode-outline-on.stat": "ca69169387e51e0ddacb65dd58626126e4a7dd31f6c920be89b51fdd4f3f41ed", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0067-r4-nonlexical-hit-baseline.log": "540ab523036379a9fde3c5be26eb214399a683180cf16e8b8f4a31928488cdf0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0067-r4-nonlexical-hit-baseline.stat": "65fa964fc5ff73baa28bb5722116c312a218b41830d680d1997ebb80d6cfd491", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0068-r4-nonlexical-hit-decode-outline.log": "eda33fe5a1d9b777fe4ea5baef050c8aadec4fcbb6737066e2c19306b62c1e7a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0068-r4-nonlexical-hit-decode-outline.stat": "bfed82c676df355637be6438df9c8638aab48e0b7543ab630bb1ebd5ce481a59", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0069-r4-nonlexical-miss-baseline.log": "b0bf56415e9f8d82e201dc0f52d37cdf632594297951433995a5270b238c9ac9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0069-r4-nonlexical-miss-baseline.stat": "03ef2dada465ffea368c4dcdaa6667f22089a2c9064b99289b3db26b2ab1d257", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0070-r4-nonlexical-miss-decode-outline.log": "60bcdcbd326a39dad35b5254f086fc507d4bf62e1cb101f5fdfb6d3de0ac8d8a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0070-r4-nonlexical-miss-decode-outline.stat": "86a966c596738fa8013cb5402b39ca13fad4560fa38b45cd5fd8d0278ae97840", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0071-r5-nonlexical-scan10000-decode-outline.log": "0b34479fc963a600c4dd446c65ee91e0600e985086fb7ad976407eaf5bc2c3f0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0071-r5-nonlexical-scan10000-decode-outline.stat": "c49cebc547904836d3dcc712e28134c359984e4a939c85195796b60873e92fde", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0072-r5-nonlexical-scan10000-baseline.log": "05ce21d4a2cd62faf1aaf33762f58ecee33c6b827d7e6a8e8962b36342c89c13", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0072-r5-nonlexical-scan10000-baseline.stat": "2cd06418019ed67a0a41b432510819194e40257f4fa712536215626df8ec58bf", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0073-r5-nonlexical-scanfull-decode-outline.log": "b02d22d7efd1f93ab0051ec7e35b873410c1f4a56d0f4eddf2f54ef72056bb75", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0073-r5-nonlexical-scanfull-decode-outline.stat": "c18653ff3cdedde2498efa3305ac6d45ac536ef331719e260a67ab5c0a9ab711", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0074-r5-nonlexical-scanfull-baseline.log": "7398440c4e7dc732b0f66f5a69523653f5cc2a04675d6f985f4efd6871bfe921", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0074-r5-nonlexical-scanfull-baseline.stat": "dc041f65eeb1b9d3f064208550404e36d79ca51c5f510d3a036fad490af60e4a", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0075-r5-common-scan10000-decode-outline-on.log": "c07981b94290c767f25486485a31646f69844b97417426a63ce1a2b1aa4646a9", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0075-r5-common-scan10000-decode-outline-on.stat": "4241f609ef8a799e842106aff62496a4c029fb07b4ed26ed224310a9897c609f", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0076-r5-common-scan10000-baseline-on.log": "7b46880153b6155450f29e64936b7c836e4f1a76def70c6fba2f5192985a75fc", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0076-r5-common-scan10000-baseline-on.stat": "aae157e3c0518f1387ee616b1703c383cf7fb37038e7dc9ae9e2cf50015d7375", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0077-r5-common-scanfull-decode-outline-on.log": "261859365bc36714f83ab1f5362347025e8e42e7db3cee5c9108499316b0863e", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0077-r5-common-scanfull-decode-outline-on.stat": "999272d878fafdf1674fe64d2c502cd3846cc432a8057d84424c676dac7cbb7e", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0078-r5-common-scanfull-baseline-on.log": "d34eb700e1cb95e3edb81a093c7f47b9b5d1a6a7a0111e7d1568b7dd7f33ce5c", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0078-r5-common-scanfull-baseline-on.stat": "0efbc9c748b097d67d74bb277c5eada8d5d3a2eb77f9609d6dbef6fa725efc94", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0079-r5-nonlexical-hit-decode-outline.log": "97d85804f0084343afeefce65436e81d36385bc21a3975497c9ac053b87dd510", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0079-r5-nonlexical-hit-decode-outline.stat": "5bab090e06c5cbe3107662fc07b654b7b462a3adfca9a3603f67098ea946f397", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0080-r5-nonlexical-hit-baseline.log": "5dfb55fc03eddd1cbb71284c9ed1fbf3115940a384f050a063d979c5a29bccd3", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0080-r5-nonlexical-hit-baseline.stat": "a05a82349617e4ddd9f216d838a27c206d5a4083e7c689bbb09d76dcb1b93645", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0081-r5-nonlexical-miss-decode-outline.log": "3b93cb9c23df8b7dc7e114a02a7af5029a9b7ac5a7de1844da97cb76020c4f87", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0081-r5-nonlexical-miss-decode-outline.stat": "4ca0106a15c2b9e3cfc500f576fe6928b514dd51415e8d0a95a35e1dd1618c38", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0082-r5-nonlexical-miss-baseline.log": "4165ac6dffc9ab55fadaf35c6b84188ff57d0830de2d6d2a907e2a3aa4ac81d8", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0082-r5-nonlexical-miss-baseline.stat": "90e51945dc4b3d00c5b072a11a04c1ced49a2bbae2567f69983c230cc685ebcb", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0083-r5-nonlexical-scan1-decode-outline.log": "f08467384d7dd16c54bcb135bc16b9534435b10f838b9ed636119888ae216db0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0083-r5-nonlexical-scan1-decode-outline.stat": "f09ce90097d2ad5872359b85aa87cae634892425b2bdfbbe0101a835541b1702", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0084-r5-nonlexical-scan1-baseline.log": "16c87ef3b1552d87663f3668955cd96a833105fe25f2decacf76a54e08852f74", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/0084-r5-nonlexical-scan1-baseline.stat": "0e868a2cf42a738c8d139107523c12aa54a89dd50379529251135a49ca663fbe", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/independent-review.json": "f82ca4f650e2d2741495458022e59753ddfcb5f3d63e1393ab8d83bcdc85e44e", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/manifest.json": "ad29e6a962dcacad302e97f4bea40f5aa42bbf9f9f1c02f2441b2d0d006a10e0", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/plan.json": "e1621ec86ad89dbd8e85cdb2f91f2955023eeecb1ca76c09fee6f9abd090dbcd", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-decode-outline/summary.json": "bde5b4c82239ca00ef48cc6c8520bd00a2095b5e009acc3bb393c01a28bb3504", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot-plan.json": "a31ce2af1524785fbb6bccd55a90f7d414c9a2290a2ef23f3cd4bf3d4e7ca333", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0001-r0-common-pack-baseline-on.log": "d5562f20e014f1cc3565bb35fc72c14ba4569380d7686850125918aee6fd389a", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0001-r0-common-pack-baseline-on.stat": "38d65d14459bff21b98a38389b4d2e5fb160cf21a71625b2f7b2eabcbf629e67", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0002-r0-common-pack-lazy-pivot-on.log": "5750c2b3a6b5412a95a621b0a59fa9b8c15c4a116ffd2e9cbb49f937dcb114cd", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0002-r0-common-pack-lazy-pivot-on.stat": "11f4fb10b2f67bc2398c3ecaf85c85b9f23cdf576f24f630d2683738869d3bd0", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0003-r0-random-pack-baseline-on.log": "027b93ebfa6c5c29c2b19b2366d177f9cab2f32b2fe87990238d92ac3675e308", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0003-r0-random-pack-baseline-on.stat": "79ea2af482198d7ab47f1d91aaac804e46d10bd17eead84a818511b4edbc07dc", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0004-r0-random-pack-lazy-pivot-on.log": "a27697634c658a8862516f1c0b3f13b465c729ef76144b1031c5f803c8895755", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0004-r0-random-pack-lazy-pivot-on.stat": "18887b55c03736c8eef27bfea792cbc53e4fb7a24c994b45e437542374352d17", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0005-r0-nonlexical-pack-baseline.log": "b09341819e6039c2c3b85c748dbda67805980f8b501d95e1f36d04ccb6f817de", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0005-r0-nonlexical-pack-baseline.stat": "33ac3709d83501e4ba8e21a082ad2c50ed47025f0fd578b4ae20ca758497d80a", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0006-r0-nonlexical-pack-lazy-pivot.log": "8dd534bd92141f0dd9f935d4aca867f1870e8f338fd5941bfefd2f453667f671", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0006-r0-nonlexical-pack-lazy-pivot.stat": "ad571fd9b7429fdee849bc17a32458627e3ce8d8e4d8cdffc504ff466533aa01", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0007-r1-random-pack-lazy-pivot-on.log": "8f29ac20c1266e8a354f3d6e9ff93039e8cb1ce063e66d5ecb6765ec7b939328", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0007-r1-random-pack-lazy-pivot-on.stat": "93fe018d0a6df7c41a12fd52455a8454a32b6ae423d9d147eb47694c5f18f397", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0008-r1-random-pack-baseline-on.log": "ab1c1b545a56a7822c0fe24dfe428a3c9537da010ac243a399bcefb60d231e20", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0008-r1-random-pack-baseline-on.stat": "32a0a05234c84b6ef120b0e25f408cd98c9f80dfba2a10239083cfcb8ef94905", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0009-r1-nonlexical-pack-lazy-pivot.log": "e0fb084ee44e81330d09ee0023ad5a13ae2c579ee9b08b63225b4ffaaabe24a3", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0009-r1-nonlexical-pack-lazy-pivot.stat": "a73bf07f8f64aeca7108151bae035bed0e574a2f144cc0eae415128850228058", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0010-r1-nonlexical-pack-baseline.log": "535a75caa39f32c1f534558b75e6cf22e6c5c1d48c5f041090ca2267b08b7d28", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0010-r1-nonlexical-pack-baseline.stat": "dde61d99306a98d9d3bcb32df20d4081c55f04dd04b8d3a0848c6bc1964cd699", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0011-r1-common-pack-lazy-pivot-on.log": "ff60722ccd81bf7c7498b627ccb29141162e0eebf7e44f4c7143bef891e7ca52", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0011-r1-common-pack-lazy-pivot-on.stat": "211416bf3f1588395f73202e7b4220c979454cb97bfbc14fab244767e78f1c0e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0012-r1-common-pack-baseline-on.log": "6229e1f78d3c8629cc5d61e4cbc5e2fc592b4bcf6f6528aefce66dbd3cbdd266", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0012-r1-common-pack-baseline-on.stat": "c4c3bd00c0134827c2f72bf43513cd9299a7d166ebb1edd4710180f08292ac7e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0013-r2-nonlexical-pack-baseline.log": "55549caa9bba11d75946058230839011f2e63250434438325acb985dbd5cabd1", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0013-r2-nonlexical-pack-baseline.stat": "463abdb33c80fa73cb140ddad26160f25befa6105da44ab09fc6e9e7a82c0e6b", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0014-r2-nonlexical-pack-lazy-pivot.log": "08747d9c8455a00b561c77425092897ef66b1c08d74f88984487aa910c55deee", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0014-r2-nonlexical-pack-lazy-pivot.stat": "8631878b7dfc4812b0ce70d306d8f1a2d26726f284a6d97483d67fa2a3b8992e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0015-r2-common-pack-baseline-on.log": "982e10dbf89619e50b5b0a7154c0ac2619424929c84a0aa48380d9938d3228ca", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0015-r2-common-pack-baseline-on.stat": "3cf80c3cf16835f938d3b34624733510d149c593d894dd629105a3c77c6b5ee8", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0016-r2-common-pack-lazy-pivot-on.log": "c0ada0421a26f93fea20c348a0bcfd583f42a916b615ab1880f28138a5e8f715", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0016-r2-common-pack-lazy-pivot-on.stat": "cfe1aba3e26bec75df323b09f2f0b333124c3259ef6d1137eaad8afd81d26e4f", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0017-r2-random-pack-baseline-on.log": "07654c167060fd907b9c43ec82734eed93bb2a9f75c609cfa6f19b106fa2cf17", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0017-r2-random-pack-baseline-on.stat": "d2eeacc9cdbe9b7feb6525dbe87b448a70af846cbe0eb58982074e2ef650d7c9", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0018-r2-random-pack-lazy-pivot-on.log": "d989821bc59031602790525a82eb4578af1dc4c0ac9c277cf5c78a03d4e55de3", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0018-r2-random-pack-lazy-pivot-on.stat": "47e89f06df1f652a064480dca3ef5092fe4216fb9d6864d2709d21c29fa14222", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0019-r3-common-pack-lazy-pivot-on.log": "2ac95e2108ffd7acf10d20a3fc37a694fec7ad749f71a9d608d70c12f3f02052", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0019-r3-common-pack-lazy-pivot-on.stat": "a5523355dab00dc550b6071501e5ca5a98e3baaff2c19b0882190885866f1ec4", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0020-r3-common-pack-baseline-on.log": "4f8470d14cfd838bb6d52cd49f58edefcccf9af1df96b76f6c539ae63d5eb452", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0020-r3-common-pack-baseline-on.stat": "0364d0d06f842356c7cf54a7bee54af52dcb8933a7610c7acc349a9285d0dff7", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0021-r3-random-pack-lazy-pivot-on.log": "badf50273722808e5e77464f9ab9faf065c596a5c7aa0a8e902ab4ea05b4a016", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0021-r3-random-pack-lazy-pivot-on.stat": "5cc7bdb818a44e35d2c061d8635a2fd408dd1d32012b6e162541b4815b884f5d", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0022-r3-random-pack-baseline-on.log": "f204468da0cef59caa2b3b9ff1b8f1b3118de6a8d76f30032443cdad7aa9cd20", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0022-r3-random-pack-baseline-on.stat": "202565ce201deaf35255b6a2376ee4a357284f1eb5ac6c038fa08df56a06ad6b", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0023-r3-nonlexical-pack-lazy-pivot.log": "5985598bac7a096c161a1b0699c157a01f0efa1395f4969a58220adbf1b2565f", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0023-r3-nonlexical-pack-lazy-pivot.stat": "70d4802cbd0bd02bfc254a7079642153343a7272c902f8ea127db47252ec6dbd", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0024-r3-nonlexical-pack-baseline.log": "09df0d54f99141c95cb809d4caf9a32df1f8e94dbce3d78e97d9cfc2a22d3c6e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0024-r3-nonlexical-pack-baseline.stat": "db76cc72bc18ddc3b64470d73d2d3288168bd60cd69d5774484f9e1def48628e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0025-r4-random-pack-baseline-on.log": "f6873f7dc491cc4bad0b6e755eb4a19d233956d852b3782f24812b29e6481e4e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0025-r4-random-pack-baseline-on.stat": "e6ed4f3cf206ed8e8259ec02ca00d5eb5294aaf9f7e4620af72fc637601e6b8a", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0026-r4-random-pack-lazy-pivot-on.log": "4eea179b2c7f7738809a7678908b93b9796d3569956376ee7ac9bc015e876da9", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0026-r4-random-pack-lazy-pivot-on.stat": "cceade9d5ecf90319c0421f1fa86b0ca2a7d1fd2c2933aa5d23deb19851c2cf2", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0027-r4-nonlexical-pack-baseline.log": "ebe959a15f1005847f43b2ea3920bc8e934611b03f5372030fba236c28b15ff7", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0027-r4-nonlexical-pack-baseline.stat": "2a096763d05f40b6db057a545542a2cdaf2efa43c7b532b2065a12fb04967002", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0028-r4-nonlexical-pack-lazy-pivot.log": "f017991cb85e4cc60f1cc20c7d13ff7816f6babb64b86bee2b2ebd2606136d1f", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0028-r4-nonlexical-pack-lazy-pivot.stat": "d4a6677750bba6afd999179734c1742ad4a7ee40a746cf9d84db4e626a91aa9e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0029-r4-common-pack-baseline-on.log": "cbc5b7e955ebf43299fad96e2f3b3c02edee51d645bb256e2793d960f43afd93", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0029-r4-common-pack-baseline-on.stat": "6c29ff3c68ce335b51ec565b6600dc2b898c3a93c0d412b8820f173ee7d96dd6", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0030-r4-common-pack-lazy-pivot-on.log": "5090e6e8b75128821f78d5171a4c116c8e373f334d73e40e7876dd3d0a14b71b", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0030-r4-common-pack-lazy-pivot-on.stat": "be2e2ca8b81c232121cc24c935e464a3d28a5f3924beedeff3d89272177b7fb0", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0031-r5-nonlexical-pack-lazy-pivot.log": "a3c76804af6babf4d831975a47185c4b2cd23431fee31dbe031bfcfecd70e684", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0031-r5-nonlexical-pack-lazy-pivot.stat": "264566d0797feaa16f5a590fbd9981ed7a494b8c0bd4ae9ed9e2a02f8b47e3d4", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0032-r5-nonlexical-pack-baseline.log": "8ffbee6607b1b80ef3881cb0087cb1465a79eb0f924aecb0382048ec433253c5", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0032-r5-nonlexical-pack-baseline.stat": "87cb137a1703b93e8f67d6706d6b3af1f330038e712c8b4b24c179b172ff0e0b", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0033-r5-common-pack-lazy-pivot-on.log": "ff71b390cd039b12d65e07f7276a2430c9339d8024f5f050e7dab851b7907e4e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0033-r5-common-pack-lazy-pivot-on.stat": "b8bda7d35e180a9a26978aba59462291e1c7a6994f6e9773bc5a8c64d37f3ef1", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0034-r5-common-pack-baseline-on.log": "91e7f26c30e17874a8836e0f2b43ea067bc16cc977fd3887e062bb42e614f13e", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0034-r5-common-pack-baseline-on.stat": "4c523dcce099567fddfe7ba14932510a87975d5dd6c907fb35db5a097ce26475", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0035-r5-random-pack-lazy-pivot-on.log": "b3e463a389cedb5d55ade327f479e39728784cc0ce3b305930c5fff1da2e14cc", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0035-r5-random-pack-lazy-pivot-on.stat": "45c6b1c7068c528196de4cde5da5ec164b7015491585f7685cbbca8760b1824f", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0036-r5-random-pack-baseline-on.log": "b73445795ea4b694041ff1e34142432c6f1a20b426ea09eff4d0294ce69298d0", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/0036-r5-random-pack-baseline-on.stat": "021ffeac53bc7de7de89030a909cc447534966cbaf8630733eaa161f400c1f45", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/independent-review.json": "c97ba720a1c28d15b447af19422c0b8229d5e1049294bcc6f8c701e370802756", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/manifest.json": "b336a6bc9ee0d7752eabc3405b994aee26a3306d74129be5a2f88e2f830989f0", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/plan.json": "a31ce2af1524785fbb6bccd55a90f7d414c9a2290a2ef23f3cd4bf3d4e7ca333", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-lazy-pivot/summary.json": "e2171f6f662f5dfffc2cae8b4e20f342d74462642d6fd93156b861c32f0d3d2e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type-plan.json": "d1fa917505c696f7e2b2d723ae99f3395496fc9d9ab596596cc68393cb19f441", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0001-r0-common-scan10000-baseline-on.log": "c8a4de9d8b4ce9e8481aac9b49c4d90d04abab76f0bd5ff5186b8d689f24967d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0001-r0-common-scan10000-baseline-on.stat": "528fe959b3ba194db5886fd83b8a151adba25903d0d7590a7324f1f06b262d5a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0002-r0-common-scan10000-message-type-on.log": "475ef5d22185d41471c4efbf00bee44522de3c224cd94555b374049f7cc99294", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0002-r0-common-scan10000-message-type-on.stat": "ac012a4f119927da151bc3ae9796e30db342173012352d0dbd51ef6c0a4cc736", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0003-r0-common-scanfull-baseline-on.log": "13bf9ce285c711e3370c18f8351d384b8d3b3d5375ec1092544e5dfbbd6b7ae7", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0003-r0-common-scanfull-baseline-on.stat": "bbdc0782b4f189ec09280022e7ebe8d607e810f1a664c2e1a81d55cf2b9a341d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0004-r0-common-scanfull-message-type-on.log": "da71e15a913dea89cb0971d8efb9c75e116a0ef5e273567d26bd9a01c88cede5", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0004-r0-common-scanfull-message-type-on.stat": "842f533a8aa4343b1638c9533449b5052da9e66e3ac4e0d10676551b986c9141", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0005-r0-nonlexical-hit-baseline.log": "241356c538f25e75402cef8f4ce74554d243301fe71630894b56f8c151a6ae65", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0005-r0-nonlexical-hit-baseline.stat": "08ff689d0cd53a1953a9a8b83870a82f89add031bdf7be173ecdce08a7b8651d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0006-r0-nonlexical-hit-message-type.log": "3277db3daa6a350242a2b3e62c86ee74ac17cd868f071686d49fec61ab1cfbdd", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0006-r0-nonlexical-hit-message-type.stat": "335f22b4cb3a86fad7ac2611797c99886d369b3c6d5a966ba5c53cb3bbabc8ae", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0007-r0-nonlexical-miss-baseline.log": "710e6fe9ed4c8e153e8c3bf402cb91b800a09684309ca78fd4f50bd8d5f5a7a4", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0007-r0-nonlexical-miss-baseline.stat": "33327ca06c77ce19bfe913a5dc2cd5c7ed295ad119078fbc55479f50c1961069", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0008-r0-nonlexical-miss-message-type.log": "749169bd1deade4857d49c74683e0fddee1bf88aaaaa4610087eaf646f59a444", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0008-r0-nonlexical-miss-message-type.stat": "4768e32d4f6ba82760f06260f9f2e76a83e958298a6739b440868f5433d2aab0", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0009-r0-nonlexical-scan1-baseline.log": "61de75a01832182d01b3ba699f3f933f3de88f3992c8847d9c3131efcb70caa2", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0009-r0-nonlexical-scan1-baseline.stat": "f3861a6f61b3c6c133e9f099bb0b22c08935b32607da5cb7b0e8e66e559e6922", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0010-r0-nonlexical-scan1-message-type.log": "398ddc2ef76b55d4147a3069cd5dc9e27971f93c5ea7796e748edf8f51b56a21", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0010-r0-nonlexical-scan1-message-type.stat": "425d67544f982035f76d4fd66ed99fadb8bd8aad5e2e1badaca0a14ee529db84", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0011-r0-nonlexical-scan10000-baseline.log": "56c4933c61f3acd19b367383791bc01614ea2d3e4bd9c116b5579b729275202d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0011-r0-nonlexical-scan10000-baseline.stat": "ee24a917487bd454d9f69d0146bcb60773ac01902029c5e11700c3b857a3790a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0012-r0-nonlexical-scan10000-message-type.log": "8b3e3e4f4029b89cfe220e15d0cc80a5f1f53c967321c061a43898076658f8a6", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0012-r0-nonlexical-scan10000-message-type.stat": "bb227ab7d57de4b89fea584ec2ac63fad105c19a62038c5df897d554639170c2", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0013-r0-nonlexical-scanfull-baseline.log": "e29bc352a956b6e896a0b8163488f2dc77987172acfc1040083a052bbaaf59e9", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0013-r0-nonlexical-scanfull-baseline.stat": "c71b5a3dd9b5a44989158a881b4ab949e06861a9758e7210f3ea7c66bf0085ee", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0014-r0-nonlexical-scanfull-message-type.log": "e843d5d5f61a66d469448deceefb2b57b869db368f7de346a8d9ac6afc25809d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0014-r0-nonlexical-scanfull-message-type.stat": "df0310fe4aadc98d23fcfbb68c5d8ecd3e149eb14a868d15f03ecb30d2621ffb", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0015-r1-common-scanfull-message-type-on.log": "d31b8ec61df04d085950d7f86154b1be15a655f0b27c7a4cd7cb1891b9cea45e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0015-r1-common-scanfull-message-type-on.stat": "3940148ac88414a972e0679ccaa23eab863d232d4deef51663712374b64bcf32", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0016-r1-common-scanfull-baseline-on.log": "7efea5a82c60a8909c13eaec9567c11a037f5d7a76e5278bab47ea1d2ee3cd02", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0016-r1-common-scanfull-baseline-on.stat": "880ba36b9693ee8c06adbace1a37998371f225be9a1f79b93684bc592a00611a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0017-r1-nonlexical-hit-message-type.log": "1c10f89e1d7d38df0c72612b00dfd201fb89a3229936512107cbec190ec40652", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0017-r1-nonlexical-hit-message-type.stat": "17bf98b99f61d83805b26b77ffecd10e008ac0cf41f8e6e77a674e71d64076a1", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0018-r1-nonlexical-hit-baseline.log": "21146b691b9c6368eeb4923b1ff2b751b1ab4e8f9ecbb55dc11dbe94cd7532a5", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0018-r1-nonlexical-hit-baseline.stat": "af211eab24081d13e075d800cf7bf4e93e7129e0faf8634c91654eaf693ef53c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0019-r1-nonlexical-miss-message-type.log": "4a7ae5fd2c1a03af36875399e6da60d44b5bb8106e224649a38209efeb03a921", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0019-r1-nonlexical-miss-message-type.stat": "a7360f6cf960771f6483f5bad8607fd5cb686c7fd85f5756ca0bc76ee6d7247f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0020-r1-nonlexical-miss-baseline.log": "e0661b53437f7374593e109afe98d4058aac3300b548f849f189ea20003b7fa7", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0020-r1-nonlexical-miss-baseline.stat": "60d8fc95706efe2591f70ab2924e4a9310791c036510441903e802baaf5ba2d1", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0021-r1-nonlexical-scan1-message-type.log": "42eed4da31bc338953d464c79c6b659d958e54918a2593cc09e5f2540fadd3d9", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0021-r1-nonlexical-scan1-message-type.stat": "4d37d1d185e44e8c618362fcab0148434a70d536cb97092a2eb15ab56db29181", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0022-r1-nonlexical-scan1-baseline.log": "e107a6858a2d798d3119cc633cb507fe27faefeb37744c58533bbc9bdb52d048", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0022-r1-nonlexical-scan1-baseline.stat": "9230cd8c6cceb591aaeb99ca61bec7dc67d185c61415dcf55b65b028f33fd04a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0023-r1-nonlexical-scan10000-message-type.log": "621d094260c3d506cf2729ca4c983fcd515d0c4a12939363b72849778cbcd9d7", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0023-r1-nonlexical-scan10000-message-type.stat": "c44c7afb5d755299ec7d1e5a48dbe63ba6e214c71275dc6ee05e5fbcd6a05f66", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0024-r1-nonlexical-scan10000-baseline.log": "11e8ac25a3a802758e387969c2fae385e4c0745e70495b144ad29eeb8a42705c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0024-r1-nonlexical-scan10000-baseline.stat": "93b8f0b0e0ebefbe1e50dbcbbf4725246549d21adf101e8f765da8b937e9c0ff", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0025-r1-nonlexical-scanfull-message-type.log": "58f03be476b5149e34418a13d6ad37f3ee77623dc7983dfc62c74db944d89b77", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0025-r1-nonlexical-scanfull-message-type.stat": "dd4b823ae9220dd5a2b436ae94cdc17825ee4ea4a12cd253ff51cfaf0ecc4082", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0026-r1-nonlexical-scanfull-baseline.log": "e953c3a6d86ea2172919092ff9daeb8f05fffd11dcc3b9de664e3deb7ad25240", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0026-r1-nonlexical-scanfull-baseline.stat": "6f1fa5c4639504207d6aece3d6520001d939b0901f58547aab43a932ba6a9c66", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0027-r1-common-scan10000-message-type-on.log": "f626aa9ab96f7684b8c153e59b375371f22f0ce1a076de8066e9ac14d9f0c7e2", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0027-r1-common-scan10000-message-type-on.stat": "8c7d4f03b76078bd84d02fd0278fcddc044438ff10c4647c95d1837d83328d4e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0028-r1-common-scan10000-baseline-on.log": "e9cd7dfc737f9fb66a15bf521b8a82b34fefbe3406e7664da414e7e396acb58a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0028-r1-common-scan10000-baseline-on.stat": "c3968710b34c811d219870c5883e28068920490150f5934ceabaddde6e20e503", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0029-r2-nonlexical-hit-baseline.log": "4f26d3e6f96d0de43c6e290bc92e29fd9ab174819427a1d4b7126c34de37e000", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0029-r2-nonlexical-hit-baseline.stat": "d3e2875d06bcdae4d30128e2cc54156ccf10d0bb2a9cc7636ddacfdc704aa1f1", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0030-r2-nonlexical-hit-message-type.log": "1cdefa4e365cf51f4ac260c635693d7c5507f7be055f45cbf0cb1c06d4507d9f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0030-r2-nonlexical-hit-message-type.stat": "34d7fea5e12d1a05ccc699d74b91138a9e2e923ce59063fd7f20eb362d60b04c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0031-r2-nonlexical-miss-baseline.log": "9d816c68dc748b9a8942fe3e01d17e0238cd0adec2b935867d5be489bf29c969", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0031-r2-nonlexical-miss-baseline.stat": "3abb6c0a3b9ad54c2a742bf5bc1f86c036e0bddb57a473995c62207d50223a72", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0032-r2-nonlexical-miss-message-type.log": "f38a6dcaa16d3af36c24cabf12dd17adf8e88b4dc7f1510545c171ee353f5503", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0032-r2-nonlexical-miss-message-type.stat": "d7a2195e59af68737e2a44f7580fd142857412cbc8eb8a992c1ca5eac6e4e929", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0033-r2-nonlexical-scan1-baseline.log": "8acbd8093e10b526818292bd38c6a66304f28613b7e3c6d87787888a83ceff6e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0033-r2-nonlexical-scan1-baseline.stat": "9a7325ad3a4b0d05429e3e055825fafa5dada20c30a08f2c241f74a4f48d15ba", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0034-r2-nonlexical-scan1-message-type.log": "7085f975081211df03a882ee5c3ddccc1f9c42cea66da879206cedf160b498d3", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0034-r2-nonlexical-scan1-message-type.stat": "3ddedccf36f8ca553bb36d6c5e443ed33cae8c3eb1181497245a33b482982ac3", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0035-r2-nonlexical-scan10000-baseline.log": "264756c195b3e764e6617564621e6b2ee5c65af099d17369d5abbff87c6f14db", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0035-r2-nonlexical-scan10000-baseline.stat": "704b4c9781c4c103c0021e71c46fdaebaaefefce70c9c69acbbb03cb77dc889e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0036-r2-nonlexical-scan10000-message-type.log": "abb43e35fe2c9124adf366b793a0630bd78beadf8f9b5d16b39e52a4134d107e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0036-r2-nonlexical-scan10000-message-type.stat": "097f9bac11103095e769c6f50ca7ff047a924a507b4c945dc9a7b7923ffb1c61", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0037-r2-nonlexical-scanfull-baseline.log": "70687e3ffa37279432877aa164476258dd5cf6114bb949b880146c71703fbd98", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0037-r2-nonlexical-scanfull-baseline.stat": "35e46d4c59afddd58a88013b7ec3903559dd99903daec708f1b50c74b5c57311", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0038-r2-nonlexical-scanfull-message-type.log": "013fe403e9507bcff122eedc2597447cf0d3ba2020b68ed6320da076481b9324", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0038-r2-nonlexical-scanfull-message-type.stat": "089b455ce7ee69d48f53f977bd17752acec12f8a7d0147aa5bc059801610ea64", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0039-r2-common-scan10000-baseline-on.log": "73e3b6842ce32e0e095c9ad53e2d4fbf682f783dd148af0221a7a074e729f5ab", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0039-r2-common-scan10000-baseline-on.stat": "a1a73292d6ab98bf86f78d7bb2b379def509d3f4202b9270e30ab51becc5176b", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0040-r2-common-scan10000-message-type-on.log": "8b3f626a3c6436d4670e798f851b51c8333ff0e80d22f51e97db94e4977e7676", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0040-r2-common-scan10000-message-type-on.stat": "e728e1d61a46e5c19e67a4e145e0df10be5044339676440346f345c186e4187c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0041-r2-common-scanfull-baseline-on.log": "829a3760b25c39d1bd0dccb0d66134e7e9bb2d44ccb3c1804cebee1ea603437d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0041-r2-common-scanfull-baseline-on.stat": "5d9127bbcb95e974500832c9b41cfaddeb83db68f51d7d2e7911f26fabc49c96", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0042-r2-common-scanfull-message-type-on.log": "cb6d562f7856b45fae091d15551bb3d71d51ad3fcf5e0651230522dc2ade3222", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0042-r2-common-scanfull-message-type-on.stat": "6c5baea1124f30796a70bfcb36b2f2e059775ef37aadf4cab7253603df70e116", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0043-r3-nonlexical-miss-message-type.log": "aa0d74d4140ae34906d69fa8be4b0e4212766b989198d40179b001ce42d374d6", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0043-r3-nonlexical-miss-message-type.stat": "fc2183222c53a54b40c19aaad187a4f7b0f51d16dc177f53401d2473a5679532", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0044-r3-nonlexical-miss-baseline.log": "d799a5af48b89d69c7339f3a2b547dfe63525724cc5107b6d1506bcedbade6f3", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0044-r3-nonlexical-miss-baseline.stat": "c7e87ca7840b256dea3c2ece516a3f0ba962bb736b7b58da299b3d48c662a951", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0045-r3-nonlexical-scan1-message-type.log": "16137baf2273bc60a46c3002a5f14677437ff10d12c0177cf2ec42bce275a394", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0045-r3-nonlexical-scan1-message-type.stat": "2d28fa842ccb6999df32116467224e86d9360ed85ee7b1f9abe5da181a437ff0", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0046-r3-nonlexical-scan1-baseline.log": "a9c6572a26fa81abc22fb7ace24a997201d382b73fc644d026c5aa6ac077f5ca", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0046-r3-nonlexical-scan1-baseline.stat": "2c646da254ee5c2d831350ed9b11ba0649155300c11176d230d67df677925770", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0047-r3-nonlexical-scan10000-message-type.log": "277b25243b0e11d96472660b599790c6cc26a58872df89a07cee3564037a14e9", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0047-r3-nonlexical-scan10000-message-type.stat": "fd03198bb73c40dc6fa3859d94e5cab5108f53166dd78aba5c319101bdc9618d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0048-r3-nonlexical-scan10000-baseline.log": "492b4678c1f74899d363de48e23fc5b17bedc6f9de5e8b4c071be90a71a5a68a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0048-r3-nonlexical-scan10000-baseline.stat": "baca1494a60cef6f1cc2c350153307935832c1d8032ddcb14c377e4d59c2e874", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0049-r3-nonlexical-scanfull-message-type.log": "5b1e81b7bda9ccc7f6eb4c02051fa4d338c6ba5eb0a2627a32d977b22f53ec38", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0049-r3-nonlexical-scanfull-message-type.stat": "80be026afa51a7304bfcce941ab005ab297f62b329a7d21fed282e33e3db97c6", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0050-r3-nonlexical-scanfull-baseline.log": "01fc493b9513f4d4f3a09ab39f3f25aac8e56c6ccaf0e32bf443aee6b7e3c7ee", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0050-r3-nonlexical-scanfull-baseline.stat": "fa8fc2cc12c2ed45530386e051aaa6d40e7b4635f25710c97bcdcdbd5e3157a2", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0051-r3-common-scan10000-message-type-on.log": "a84d5adefa520d53792f82e233407da1c1b44540b9dfadcd78f6d6cd431ec20c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0051-r3-common-scan10000-message-type-on.stat": "1657b220fa706fc7c7642f3b08149b2cf3da9e6e52244699c7dd599bc63e86a3", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0052-r3-common-scan10000-baseline-on.log": "71de8689ae9d096bd7617f3e60255f36dee98eb54cdf7e64933b085c76df8f22", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0052-r3-common-scan10000-baseline-on.stat": "2441b0d2dc462d429fde3bdd52e56942d5b6e71e779e573c8a3150c8179a09cb", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0053-r3-common-scanfull-message-type-on.log": "1ca075afec6208d71adde12bb1c19aa1b79591421cf709d7f8863bd5b7892ff5", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0053-r3-common-scanfull-message-type-on.stat": "ff9575dcf8309b87b039bf3d0ccfa11c505c9f99439916af38067d3bb91e1812", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0054-r3-common-scanfull-baseline-on.log": "56d4a4ee90e3f49461653add05113cc04f0f6dfac8b67cab7d889f073173c606", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0054-r3-common-scanfull-baseline-on.stat": "5a492386cf4490e0acef188bcbf30503fdcbd32c6f1e4825b0e6489d8ec2de90", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0055-r3-nonlexical-hit-message-type.log": "76975e471be2efc7e1fd9ade34771a4db6f5e5c6e824b5a373dce43c7924a114", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0055-r3-nonlexical-hit-message-type.stat": "5f0f0947be6096da6c57bf91d0207a2d07b722186299ffa9b0cc9725c57d2e2f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0056-r3-nonlexical-hit-baseline.log": "80cc4bc7701594bd83f5baf19accd16df634d82c06fa2a6f0780ace4ecf88f1a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0056-r3-nonlexical-hit-baseline.stat": "4354b058fb60a1d0aeaed22a52090cf6fb8b59cc75b53d3b92d620c9da40ac6e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0057-r4-nonlexical-scan1-baseline.log": "9c18db4b51d79e5b1404901dc8474c654adbd9cd07bc1fc88e71d771c131e270", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0057-r4-nonlexical-scan1-baseline.stat": "673e45d20bc53b6b334dbe6b41ffda158fa261e940bbbc6a104444f9588928cf", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0058-r4-nonlexical-scan1-message-type.log": "c453e32b18db588889fad2707ceab446fd4cbe5fd0a1096d7dc194e7990f40bd", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0058-r4-nonlexical-scan1-message-type.stat": "e90c556577563ad4c621ca6c22cebcdfc717e4bb0d18851a41a27c4689f0dfa7", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0059-r4-nonlexical-scan10000-baseline.log": "2a68f0470bff548e708257509ca591e6495b31c4ea67361668cb8a7e229b8925", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0059-r4-nonlexical-scan10000-baseline.stat": "b004bbbc17e7d57ba129cfe64eb6f7a247a142ae5c060c786f6dab72f5cd5e1e", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0060-r4-nonlexical-scan10000-message-type.log": "51b0396b47affedcb64ec966fbb773121a5b2e85a5491c5f2b21d89f992c5237", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0060-r4-nonlexical-scan10000-message-type.stat": "545bc45c26d03126c53aff640e5a5efeff9ac5be86ffbe4c47a4dd0d0c6d12e4", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0061-r4-nonlexical-scanfull-baseline.log": "0c6e6fd028345d99f33e5c2940b179042acc0c6f8b719997487ba38a3abeecaf", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0061-r4-nonlexical-scanfull-baseline.stat": "709eb2cefe0a4603cb3717ffbd10bf19f81c2bfd7c764d75dc58144fa4c0d485", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0062-r4-nonlexical-scanfull-message-type.log": "a5d2f65fdb56a4ec2726ec57a2d9f3c073ec8e3ad826a58caebf3dcba5552561", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0062-r4-nonlexical-scanfull-message-type.stat": "2cd45f50a741421837323a75a80dc551c2988cc3f43f1f7ca96c6be1d26786fc", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0063-r4-common-scan10000-baseline-on.log": "75b6d8e220b76c55ce54509b9abdc1f014bd0a87d16a2b0b127090437215f498", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0063-r4-common-scan10000-baseline-on.stat": "2c6ba852a4d4106c2a4cf598aea5db6324b3f75134c5a044fc38c98fe3a26f3c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0064-r4-common-scan10000-message-type-on.log": "82b9eaedfcaa1d047c4e8e6a5f879d6286fc62620ab7e203229c0dd65c6f400a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0064-r4-common-scan10000-message-type-on.stat": "5a86a3367a9aa715051851556c02a43bff7460f45622137b89b8f14a32a9c66b", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0065-r4-common-scanfull-baseline-on.log": "3c1793bafbbb6b36d8e8eec7267ac58eb6b7ec0215b517fe8a589dead2bba316", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0065-r4-common-scanfull-baseline-on.stat": "35f07f010a42f6cf27120c1df3664f2de6873d67e41f37749000f982372a8806", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0066-r4-common-scanfull-message-type-on.log": "27d329870fa9ca5e8aad6f225771f657738718857224bc08b249521a3fe0d14a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0066-r4-common-scanfull-message-type-on.stat": "f4dde5764c6c2ca6885a5a689c8d6d0458b1164610c7e18fad22a44798b50537", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0067-r4-nonlexical-hit-baseline.log": "840ce3a558ff1ae237dfe0fae535171d4953a4e61b0ec884d7044635dffb98da", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0067-r4-nonlexical-hit-baseline.stat": "620ba381c621aa129046564671bd8edd437fde351c5c63e32d3db7be87096a0d", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0068-r4-nonlexical-hit-message-type.log": "9de6c7a6c165272bb766639dc301d8c4a272617bfef09b9ca599dcd9e1be7d1b", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0068-r4-nonlexical-hit-message-type.stat": "524a094260f6467377b12882037df359ef212fbb55fdbb0d467e1641a6680411", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0069-r4-nonlexical-miss-baseline.log": "d41bc5408b64b6c085857ad83ac60aa7c2aba26ddb5e0a1bfb660a36fad72bbd", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0069-r4-nonlexical-miss-baseline.stat": "634659f1f40f773c9dc3f19d1f03f17b7a24f1ae3de68b28d4e5b4a4d1bf37b9", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0070-r4-nonlexical-miss-message-type.log": "d68b57fe6c528878a20a7c0129bc34393d7a8161988e7ba31c811a2067474b0f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0070-r4-nonlexical-miss-message-type.stat": "90b632d9be0b2cd51c6572be472cd0a49059b11904ed6b871bea1d33db7b3c62", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0071-r5-nonlexical-scan10000-message-type.log": "e3144fb72558f66b6dac13ca587edec2d39c2140840b8abc7226880cd050485b", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0071-r5-nonlexical-scan10000-message-type.stat": "c73e9a070db8d7bbb208d0a63cbaa892c4000fd82b02600b00e289b777855666", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0072-r5-nonlexical-scan10000-baseline.log": "70cb053ff875298ea17a241beb7d67079228c6d40ac14f0ec5da850e5e00269f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0072-r5-nonlexical-scan10000-baseline.stat": "b6ce23d11cd3d56268ddc7af869937f9768ef449f6baaefa77a138de2707d8a6", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0073-r5-nonlexical-scanfull-message-type.log": "d2f89bcf1165b289f9f6ea37c4913511aa4853dbdb1e9811579beca910336292", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0073-r5-nonlexical-scanfull-message-type.stat": "d822154542b85cd93768c5d78beee06947c056018f5296c1cea710888cf1ae81", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0074-r5-nonlexical-scanfull-baseline.log": "9928c2e20cfd1ca385ad80e3b1672616d132ddabcf7a144b6b98c07f184e4315", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0074-r5-nonlexical-scanfull-baseline.stat": "98a84be5a8544369bc51fca13170ae6ee590353d116e7553ddfd00c35fdb62c1", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0075-r5-common-scan10000-message-type-on.log": "2527e066678665b5caefb50d8394cfe8e39a52ba76b27f14809f16710e8e20ef", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0075-r5-common-scan10000-message-type-on.stat": "34f8749b1befa1a7fbd7a615c18e130bcee5e2216e19be7fb7e530f4f4b94fad", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0076-r5-common-scan10000-baseline-on.log": "3467e2e74fa2e4a30c75553b800d6b635a6681526657c5b4eda0f57dc0b16d61", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0076-r5-common-scan10000-baseline-on.stat": "5a00cf89382379c262b4b5fa252d1c279276eab44054783321e37f8c9ae5a080", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0077-r5-common-scanfull-message-type-on.log": "630b12f32bff94f81623a0edd982b07ae1250f5b4cfd6936437a35bd29739de0", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0077-r5-common-scanfull-message-type-on.stat": "05495b57755ee036716c4c5c581b2fcd19679617525ac603625ecd79644562c5", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0078-r5-common-scanfull-baseline-on.log": "7d705649d7a23002f73c00a480f60a0cc3e6f5f8fd8781ac64f29c0f5aac8d50", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0078-r5-common-scanfull-baseline-on.stat": "963e630b2a7fff342cac069844326d7ba337ed27b9220d837f277833773d4868", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0079-r5-nonlexical-hit-message-type.log": "535a86456edd9e0d40a00c6ac7bc697f525ed0dc3ec07adc3e5ee7c1b613690b", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0079-r5-nonlexical-hit-message-type.stat": "7f0d44c1caa1c91a44b3b2c83407322802ec18f8ba3361b456f38d4e2c9121cd", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0080-r5-nonlexical-hit-baseline.log": "5917abc0c3a27320c8b174819f3803eee651dec8b6f530878d1dbf0931717641", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0080-r5-nonlexical-hit-baseline.stat": "5bb10f21c731b9073be796ebd4bf23a4f4839aa9791f95fd42ca4f4a344f5bff", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0081-r5-nonlexical-miss-message-type.log": "21eeedd4957355c26e926dce9d35458ab1d2c01e6a3cbf0219180b91e75bdd87", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0081-r5-nonlexical-miss-message-type.stat": "dd8b8889b13b659b0bf89211dfad9f851b27585ce4c5168245db73f71ba66d3a", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0082-r5-nonlexical-miss-baseline.log": "2ca922dc5d35292619fa54e28e2e04eb146be21f4b171c700c9a27e833a37dd2", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0082-r5-nonlexical-miss-baseline.stat": "707b217428b268f0db3381d00bd81390f68ff443fea0789cc6fc2054c0433b1f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0083-r5-nonlexical-scan1-message-type.log": "4aa14d9955394d306ba162d66ecda144e8eccf8f085662cf46c76683795aa1a6", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0083-r5-nonlexical-scan1-message-type.stat": "d849179a7ce7311ce8b1e3496c737dce53791b4b70ae0f0e8fcc09397186914c", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0084-r5-nonlexical-scan1-baseline.log": "ce3075672e2a13ab3b51206ce20ec3a30b229d3319de642216d2e10bbdf1086f", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/0084-r5-nonlexical-scan1-baseline.stat": "fe26c127eae3eacd615f48d3ccf50912a99fcee1ea942acc869c9d5db93e2752", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/independent-review.json": "222ef6cdffd9fc0a15aa45eb9002db4641c6a0790036e5102e3fc8b8ad27c9f5", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/manifest.json": "6851ef11164878abd2bf8494862197defb113a198f46abb4bdbf0ded0e841703", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/plan.json": "d1fa917505c696f7e2b2d723ae99f3395496fc9d9ab596596cc68393cb19f441", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-message-type/summary.json": "f788a3d328d089aafedb60749a108d86d16501d8e3f065b31c0d83565b08963c", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch-plan.json": "fad71214aeededb58c319c205e9cb5f8994602d2aae4f4ec603b8e6565b4fe04", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0001-r0-common-pack-baseline-on.log": "b011b9f68a63822f4a7c4a921ac1fee41be5569568223774f68ee5317b388151", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0001-r0-common-pack-baseline-on.stat": "833a3a11b94162e1678deb6651dd1fbe5f77789c45904bff85c601beafc59d36", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0002-r0-common-pack-prefix-scratch-on.log": "bb0df693baf7d7c47ca9f3895b05ff6ef995d272a4846e9ed889020458f5e830", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0002-r0-common-pack-prefix-scratch-on.stat": "6b3075c0a43e9db496e06e3ff4a1e326ac9da9b5105f6a5a20c44293d678daa2", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0003-r0-random-pack-baseline-on.log": "e01292156ca47a96317de4235117b2d5abf8a82bbe2e7ebf60add5c10019d41f", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0003-r0-random-pack-baseline-on.stat": "db942ffec037f051cb55fb44e83325a216a3381299ae6d9eddead5904e35863a", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0004-r0-random-pack-prefix-scratch-on.log": "798f4562a61e5b6055a5c79c168e34ffb023a710453c0b8f0bb9d2bbfd567e15", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0004-r0-random-pack-prefix-scratch-on.stat": "bd258303f9f9eb1b376febade90bd6ebcc6557cb7ec8b1af694d45c039120ca6", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0005-r0-nonlexical-pack-baseline.log": "985bda2de4cc10fb1cd7dc960e5991f6c280983307d86fe722b6e4b6b398ea07", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0005-r0-nonlexical-pack-baseline.stat": "18e98d1ded03f7635cc439362a26923418e209eb4a796fe9bdb49d9b67f51d30", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0006-r0-nonlexical-pack-prefix-scratch.log": "8b94660350541989947a39009512e94908a343827e73f730a631038d8fa8e3b2", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0006-r0-nonlexical-pack-prefix-scratch.stat": "7f792ceb151a9566b973dba485ecdc4e894d2f1000425633428143fd0eed9b31", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0007-r1-random-pack-prefix-scratch-on.log": "31cb9f9dae1faf3cc7f3c89d42d6926f0448745f135a689418019f49784dc9df", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0007-r1-random-pack-prefix-scratch-on.stat": "709b685ce46f7122f12047c71d456f774a9ede849bca31d77eeb9f69d52b268d", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0008-r1-random-pack-baseline-on.log": "70c4f76cbc3a2785f9722b0cfc64a518c1aa1598931812d109aa98f251911476", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0008-r1-random-pack-baseline-on.stat": "2dbb6017856b87f6e1500080105480798560ee0bdfc4cdcd8f269fe3237be545", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0009-r1-nonlexical-pack-prefix-scratch.log": "519cc88e18aa72d2663c1a3f9c93d7c28e2a755f4f3e36fdd762473a761dd746", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0009-r1-nonlexical-pack-prefix-scratch.stat": "894b075913fd42990898ef328235d9c52e2059e733ff7991944ac3709a425145", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0010-r1-nonlexical-pack-baseline.log": "32f6811cdb5c8a020814f246a25b977277afe577c58cabae6bb98eecbfd87d4f", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0010-r1-nonlexical-pack-baseline.stat": "e28728a67de28b96980e02806b7eb18a76f1b78df2a2f2fa20df54525e7b38a1", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0011-r1-common-pack-prefix-scratch-on.log": "827a229a2656e0a586e4effbdd9946127236e09ae82f5291084394c2134f3833", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0011-r1-common-pack-prefix-scratch-on.stat": "b5b53a6e6cde6dd435bb42ae39e01b6896dfc3ba933fb319bebadd461970fd8e", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0012-r1-common-pack-baseline-on.log": "91986241c147d5a98c67bb3c96f1b380bef4add2fc3e8c2b0fa12de2abc279e0", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0012-r1-common-pack-baseline-on.stat": "0c07c16faf701e11f30ce89505b8c3e7bcbbc9767ccccf6d017c7cad9f310d4a", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0013-r2-nonlexical-pack-baseline.log": "53a9150e36104741bdb3508a1ba64f800b185e416cc65a93e95aafefbb3075d7", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0013-r2-nonlexical-pack-baseline.stat": "1480d81bc68868a1e3fc3004062c35f10c298737b4b4cedfe5177fb5aae059fb", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0014-r2-nonlexical-pack-prefix-scratch.log": "2e30a97c8da2cabbb200578ee46d96596a84e9849d4c4c581693549b837a44bf", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0014-r2-nonlexical-pack-prefix-scratch.stat": "39f4d482d4c167a4075fe659b375d7ba4a2c15f42edf1990f0bffbbe3cde2e79", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0015-r2-common-pack-baseline-on.log": "bda41fc78fc96473514d71a1da7587bd34aaeb4f0764695b13603186ad7d1bf6", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0015-r2-common-pack-baseline-on.stat": "376e62acbbf97d1019e3b45a4e6e75ea99b3cafddd0388c58611e8c056000d31", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0016-r2-common-pack-prefix-scratch-on.log": "b53a9db56d1c6ad8370a05624d4326313e69c45abe797e038564b0c244a9f915", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0016-r2-common-pack-prefix-scratch-on.stat": "225fe4cbc3645b40bd265896f45e0382db3efe0aac81c47a902d7c6df87aa700", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0017-r2-random-pack-baseline-on.log": "b3ae09d1ce607d0b73eb076a844fa60cbeb60f9ec48b8e40cb320e28a40db071", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0017-r2-random-pack-baseline-on.stat": "a35ffa24e1a60231b5cbe66466db67b12ee2aefe5a8f8ca372e381463f5e4b88", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0018-r2-random-pack-prefix-scratch-on.log": "641e3e42f12e75a08525bd193f79dd0185fead61c0b6f7f8cb0d16ba189d3843", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0018-r2-random-pack-prefix-scratch-on.stat": "9919e2380f39a17a84c74cdc32e87e2c34ba11759195f390843690b2c239dce4", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0019-r3-common-pack-prefix-scratch-on.log": "7a12175ab93f65639f7d22a0d1d8103f85faadd71dfafb335f8f34c82e489670", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0019-r3-common-pack-prefix-scratch-on.stat": "8af5eabf929e9c287cd84c208e507c32b92435670d9a0ce75f859374b08cc121", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0020-r3-common-pack-baseline-on.log": "1a65b12c7adbbec106db634d79818d5390ebb3e2e35eca454f24bc594d49c194", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0020-r3-common-pack-baseline-on.stat": "ef7097b8c8060ff9bb3cef20be36d0673275c7545f64427da097da6421a700bd", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0021-r3-random-pack-prefix-scratch-on.log": "9660ac94bd6b1402ccee1fb03f3d9473344837b5f220402ce826c82f8ce3e16b", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0021-r3-random-pack-prefix-scratch-on.stat": "4575f19e34b8462ad380606ba74624615c6d170a330d58954f3f5eb337c152da", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0022-r3-random-pack-baseline-on.log": "378eb032f349804ae1025167f048d9ff64c722de26f86c9fa6faf0c6ce5f72d6", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0022-r3-random-pack-baseline-on.stat": "1c693df2cbcd81f4346239b27c9e832187a300d540e899fbd0f3e1a60f4d0ae4", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0023-r3-nonlexical-pack-prefix-scratch.log": "eb991f0442ad4ebd732c02a5fc6067c7a93a46b761efd92f3f9a6a869ceadbb1", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0023-r3-nonlexical-pack-prefix-scratch.stat": "744e08116c70a9ab40c264ec1738db1738cac3324777e40f0fb6007137d8d5cb", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0024-r3-nonlexical-pack-baseline.log": "bb3cce3f2153bc939e425c6e6b06485258ee85c9a90098eca139f568d2d5cfd5", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0024-r3-nonlexical-pack-baseline.stat": "45c88262dac713973f697230405fcff002247af4466bd488ef8e22fa93f50eca", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0025-r4-random-pack-baseline-on.log": "9239e5a2d3f5a4e1707cd6c2540ddaf99716237c35d381994c002f3cc723272e", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0025-r4-random-pack-baseline-on.stat": "b1fce094a77d9c70145bfd40f0addc8ac3f0035c9318f9b23852140d6ee6b7dd", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0026-r4-random-pack-prefix-scratch-on.log": "077ca891bda19be70d61cad27a5252c31ce44b24439c6c733a176e6ace789fa9", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0026-r4-random-pack-prefix-scratch-on.stat": "9f914888f520a37ab003713ff3c42b3481042706d67007b0d8dd1447a47e58c7", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0027-r4-nonlexical-pack-baseline.log": "01e79776c3aa096ae3b0a118b8b2991c95188a23220d7cf1d447945b83e592b3", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0027-r4-nonlexical-pack-baseline.stat": "ebfed4ee66d8333301cb6aae950a759211979c9ca1e4c524df663da729d0fdb8", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0028-r4-nonlexical-pack-prefix-scratch.log": "46aa18e27242a0a922ec52fb228ac37c9bff8aac26c67e2f1459d9bd1d5ac590", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0028-r4-nonlexical-pack-prefix-scratch.stat": "ddfc01e5b681b48f70c9af5fc22316ac6de2c11da3e294a5e75f0d227976dea7", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0029-r4-common-pack-baseline-on.log": "7e98b683325cfb2375742e6ec5f26c9a6af1bd7828edc782224482e7f20bedef", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0029-r4-common-pack-baseline-on.stat": "4589d10d9e1c53f0da88179c582800cc335b1ca420950c93f47892f5cae27378", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0030-r4-common-pack-prefix-scratch-on.log": "3db1aebbdf98125a3b81ad9ccf8d687babd954c58d594e8ce9744df54cd118ef", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0030-r4-common-pack-prefix-scratch-on.stat": "de786e5c05724f75ab6c73b27513522f0022d074f035cab8722fc59519528ca2", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0031-r5-nonlexical-pack-prefix-scratch.log": "d0889c8c54405dbc92be0b830ecafc4516758d59c20a581c9a7470b917a7645a", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0031-r5-nonlexical-pack-prefix-scratch.stat": "7713c8403139f79d6b668b280a27701d7dcb75450507a12606a3b21702721490", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0032-r5-nonlexical-pack-baseline.log": "f605e46f486561ba61e2d6ef6ea7df3bb0f0f29c4a9938e8c6ebb3d9edaf3037", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0032-r5-nonlexical-pack-baseline.stat": "805341855e55ff17e8a71136608f8b5bbce34ba171d612bbb7f6b2acc49bc346", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0033-r5-common-pack-prefix-scratch-on.log": "4bef35e13fb20afbbae921ebffe8f73028f5c66bb23005ff333945f21a517ebe", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0033-r5-common-pack-prefix-scratch-on.stat": "d9474394120b6490a79c61a8042dc5356366550d9dbf3d9e2c4b041e3bc2c627", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0034-r5-common-pack-baseline-on.log": "58db4bfb275389eec7dccf51cc11939c7dbb796a7e27608545fd0b74261b9100", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0034-r5-common-pack-baseline-on.stat": "de194f147f494db36d18a8b38e8a52a59a62601c1ec64df26cf7023072de56cc", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0035-r5-random-pack-prefix-scratch-on.log": "57a5b6599e5f33bbd82dcf02b89024044904654913a5393b50f7701bf8479bb3", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0035-r5-random-pack-prefix-scratch-on.stat": "835039832b4c6052ef2bf432484c8bbfb14906da10df3cc44193bcb6b0006d3d", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0036-r5-random-pack-baseline-on.log": "c7b7cb587e4120a3b02f77801faf98e50b48198257ceff03f569aa7e14236d97", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/0036-r5-random-pack-baseline-on.stat": "3f6e405a4ff96dec1646d0203128cf925e0609963e757c9c2a3806f14cf85942", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/independent-review.json": "8a1eebd62709e71ddbad0c0058eb9628c762a5f1eba0449f0c72c55500d1ff07", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/manifest.json": "5dfbc6d8adfc6f4e628de2905692dbe928d1bbeb4c3b008e9038dee128f06eb5", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/plan.json": "fad71214aeededb58c319c205e9cb5f8994602d2aae4f4ec603b8e6565b4fe04", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-prefix-scratch/summary.json": "d282d7aa7204d652b81d574842d924632b4cb9d8c939abbc08b814c3da5fb36c", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob-plan.json": "5e5756783a0bf0f1ee67cad40195bc32d018c030a4ae99febf6df129bca04fae", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0001-r0-nonlexical-pack-baseline.log": "d065a7d5a9dbaac75d95204ab9e32909c0f7aa282567202abd0d414600bb8739", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0001-r0-nonlexical-pack-baseline.stat": "46757b4af2948b340bb64e5f469a7d8214526d3e7c079f0c37afc0d62f428f45", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0002-r0-nonlexical-pack-rare-blob.log": "c20df0430ef9c5d044bcf5194e0b8600c42bc01cab7375bca07dbe65e66a1d10", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0002-r0-nonlexical-pack-rare-blob.stat": "ff7e1db17bd456fc9b2732e8172c841f495b803b032cacefdf87b4383fd92229", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0003-r0-nonlexical-hit-baseline.log": "7d39630a2ffeee4d1ffeba11520ba1fcb73bd0765727e32b083bf3db1bf4b25b", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0003-r0-nonlexical-hit-baseline.stat": "a1c6bfea6cb6b570e15bd7c74b2d589b7bf86f58294b7705d9a248e1a16f4365", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0004-r0-nonlexical-hit-rare-blob.log": "26651b20294fd3cfbb8c1226aef46fd82948c63b837cbd2d7a2b46e7bc738e78", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0004-r0-nonlexical-hit-rare-blob.stat": "24b0c3c98333ea5db1a4c7f95a8c8dbb0e3ade2942416115e264cf3eb3a7d0cb", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0005-r0-nonlexical-miss-baseline.log": "2cdbd748ab72c83870448b0435f32a8a9655c3960937a14f0fc4c89be8c91e16", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0005-r0-nonlexical-miss-baseline.stat": "a715bae4610b44572774533fca8efffa012cfdab194f02c3435f201d45da692b", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0006-r0-nonlexical-miss-rare-blob.log": "160497cadd335e48124833ea247b8b0509876b5bbb15608d1473682b292893ad", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0006-r0-nonlexical-miss-rare-blob.stat": "48789caabec50873f85420170240c0382b43be074bd9066f314c4aef632b06ab", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0007-r0-nonlexical-scan1-baseline.log": "974db22bddafb1afe461bcfe28132b88305e9cbb118c0348ccf045854c901683", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0007-r0-nonlexical-scan1-baseline.stat": "cdc212ff07cd68db1f8626a4dd9593a05f6ab2d4eea19c207953d9a1befecd65", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0008-r0-nonlexical-scan1-rare-blob.log": "eab525d78e2af1909a2741fe763f3d3f9264d8794093bf0086feffd24c2e3815", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0008-r0-nonlexical-scan1-rare-blob.stat": "8bfae2bee84f8705545c86d3265e480634e4974faf3db1e75441fd9fc18644cc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0009-r0-nonlexical-scan10000-baseline.log": "2eb878f1f24cf20cda923ffbf003c3ec60360b40e5612f0e90fcc22964ec1390", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0009-r0-nonlexical-scan10000-baseline.stat": "873cfc7473e9d61fb288c45cb61e62146418ca6a9f3dce3451f6bc30ba895347", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0010-r0-nonlexical-scan10000-rare-blob.log": "c34c9135b5b87280990c214f766702285dab8a320d792f8b232fbb287c385cc5", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0010-r0-nonlexical-scan10000-rare-blob.stat": "c90b596ae24cf6e8d3dc25aa27093e972ddfcbb26d9a83e046cd7ed8bc03ea56", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0011-r0-nonlexical-scanfull-baseline.log": "1c07d22815fbc9a8d43dec146e3f9a08ac1c5dba4d5f37dea05c2a998bc8f634", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0011-r0-nonlexical-scanfull-baseline.stat": "77be09395480635775196a9d3bb01f34301fe7e3a372866d84938766c92ba0cc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0012-r0-nonlexical-scanfull-rare-blob.log": "e1c33df214e21001426a61df4d3a9418c0d0fa038570be19c11f76a273f9eb4f", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0012-r0-nonlexical-scanfull-rare-blob.stat": "274e043b1e26636e10c540890dd56bfc56c792efb9f7fcf74ee33cc6887dd0e3", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0013-r1-nonlexical-hit-rare-blob.log": "2183d6d69927dd7e565d1fe966690b3350fea9009dda4e95ea2a912b8a2c03d9", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0013-r1-nonlexical-hit-rare-blob.stat": "05850dd62c24626ab2a6a8ea332818b5783d7284b151f555cf24dfb214ee1dd0", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0014-r1-nonlexical-hit-baseline.log": "0984d0484fdff0ca79cbfa457d2a3eafc6eb0c66ebba4be27261c1e657c12cb4", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0014-r1-nonlexical-hit-baseline.stat": "1dbcd119e397aaa87e632a9fd45096319784cd29b5aa85b762f4c15bd4846edc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0015-r1-nonlexical-miss-rare-blob.log": "103cdf58a35e02d94de5a09f73690aa7711f65cd5f4bb0bbfa67ec227359763a", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0015-r1-nonlexical-miss-rare-blob.stat": "a72fc2f4abe10aaaf8653fc0e9355e1795cf5026a81699690cd7514308d02a03", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0016-r1-nonlexical-miss-baseline.log": "da870a6bc6f64c6267d74e3a30a6eb7f1fd3038d9b352aa0064514c19d747699", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0016-r1-nonlexical-miss-baseline.stat": "c7930b1c9aa377e196b0f7e33fe957c5094b32df7add6cf6580d2dabda65c5a2", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0017-r1-nonlexical-scan1-rare-blob.log": "20594358e35a6be55a9d41912daa6378fff65212a5149fb7cebd5a2d2ce51d35", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0017-r1-nonlexical-scan1-rare-blob.stat": "edfaabfb5c1f3610ba10a171d2303c6e8c1e1820ae5b313d43836ce02c9dce00", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0018-r1-nonlexical-scan1-baseline.log": "ecbb4c4e3d4b84e24301ae21fef40d2cb9ddcdf2681d9077cd703c1a3823ee0a", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0018-r1-nonlexical-scan1-baseline.stat": "04c54b32a07450acd625707261f33e8cbdbc2034d0e4de786e1f53e1c59ba834", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0019-r1-nonlexical-scan10000-rare-blob.log": "ce33c213486da44504bb1ad4c7407115dfa31cb980b9ae9f9e32291f294d54ce", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0019-r1-nonlexical-scan10000-rare-blob.stat": "3d01ccd8542c1e68e6a7a3a8cb43a353a467c5fea84b879ede444e75e7652c97", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0020-r1-nonlexical-scan10000-baseline.log": "1531fd66e05bf9965751180c445df28f2a795e3ca1f1aa0fcb9caf664fc33759", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0020-r1-nonlexical-scan10000-baseline.stat": "5d90bebe3d3a260f35c257c8a07793dd32c38a023ad983e59c6c24087f960770", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0021-r1-nonlexical-scanfull-rare-blob.log": "9788d4b9b151676a8aec61ae710bd639bb12cfe2e8e9dfd64f65471603c1e554", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0021-r1-nonlexical-scanfull-rare-blob.stat": "3fd02899f746e00d067010bd62c8f2b21ddc00fee1d502500ea51f395470beda", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0022-r1-nonlexical-scanfull-baseline.log": "d8a4c9eadbade10fd8dc71727053e01a91e8788d3f60c1810f17752b816d3209", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0022-r1-nonlexical-scanfull-baseline.stat": "e4750fe2724d0642b1ebec910408f495e90f973f5667b541a031c4f54498c54d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0023-r1-nonlexical-pack-rare-blob.log": "cf2b607a749837299cc33a2f517f06aac2007474448bdb2587c95aadf688f7d5", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0023-r1-nonlexical-pack-rare-blob.stat": "00b25f366826bec4a5542b23d62e4cf8f9d76d8058c34cbce63c17214174ff39", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0024-r1-nonlexical-pack-baseline.log": "46c569a43e9716b7a6e7323b1d6d9e478a2c783e2b4563d2380fc0768bfcd785", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0024-r1-nonlexical-pack-baseline.stat": "feb0c9c042690b379e4614624a94544c50eefa335fb657f67fca3732aa9bb2da", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0025-r2-nonlexical-miss-baseline.log": "325e3374f337f95f9553f031b19bcb3fd985dba8fa6c8d4ab6427a818ab60ba7", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0025-r2-nonlexical-miss-baseline.stat": "1c5b637239b2bd1f0a45c9c8e992ea8e9732127db533b1b78e062f2f0ec6ca76", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0026-r2-nonlexical-miss-rare-blob.log": "cbf6c2f23418423889dacb411e862fbf1fc0a1e876b30c35ae757948258c1c4c", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0026-r2-nonlexical-miss-rare-blob.stat": "ef9cf8a930d5a6b3c293f1ef4a1ba4bafbb18b72d36fb8775bcaf61cef6b5732", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0027-r2-nonlexical-scan1-baseline.log": "1ebf3eeca0636734cf16d9f234c4c2030459241bb4daefce446f6f716e22588b", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0027-r2-nonlexical-scan1-baseline.stat": "dd8bd0433504261e9c9a597c45138a6ce451b17402ae128d2bd7d988c613b18d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0028-r2-nonlexical-scan1-rare-blob.log": "4a3c1714ac387116a470384600fd731fd6931cc8538b8de017c4007099d568b9", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0028-r2-nonlexical-scan1-rare-blob.stat": "36d8f92f3d7ebdb5803622346541ef26f043e5939ff7fc39178a026928f2f3bc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0029-r2-nonlexical-scan10000-baseline.log": "4cffd261c74840a39853ac016173a69c152e1cd7d5f6ed35eaa6eb47ba4a0a74", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0029-r2-nonlexical-scan10000-baseline.stat": "c02137b303e5b1c16578a859d5b0f1849b96e6f942719700b91e6e8cde67e4b0", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0030-r2-nonlexical-scan10000-rare-blob.log": "72b455443c60665e994a34d7783a6698548a3dec647055b3d81d415993aa64c2", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0030-r2-nonlexical-scan10000-rare-blob.stat": "7b35f30835b79a42ee50c546127e5b8219756efc740b28ff4f6711a35c0c8510", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0031-r2-nonlexical-scanfull-baseline.log": "8475eaac0290254e47d45afb962c8e585763c2983b7934638e71a108acc1cca1", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0031-r2-nonlexical-scanfull-baseline.stat": "f8dfb58bfeee49e9bcfa0a1dec2d07c96a6cae36f2d9e0ec5dc436eacb000a72", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0032-r2-nonlexical-scanfull-rare-blob.log": "700d5d4f0cff27104e6975d6cfc94fff39056e7639f69ea925697ee8f151ffd6", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0032-r2-nonlexical-scanfull-rare-blob.stat": "0eadb32b4e0b68d653696cbfe504f671a784bc541fb3ebacd4f1de5872a8906e", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0033-r2-nonlexical-pack-baseline.log": "61cba40c040665fd5419158dcef6696790897b7f1b9602b64a17a861a612f17c", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0033-r2-nonlexical-pack-baseline.stat": "3536eac06b5d84dd478cc467b60ff7d065bbdc71f430c809d9cf4f2a3486f1e3", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0034-r2-nonlexical-pack-rare-blob.log": "cbda8b158453cb0f3069977ad86e991125c3c705735b502f2337a95f0f59b3d9", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0034-r2-nonlexical-pack-rare-blob.stat": "6d5cd050b4c38f01f6f5b411dd767fd7202663ad2ca60989bf9fc1d453e987be", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0035-r2-nonlexical-hit-baseline.log": "6a4b7863b4e5beed392474bcbafc8f9cbca9678a3df3e5b427efcf35eac2a4b2", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0035-r2-nonlexical-hit-baseline.stat": "8ff1123ba2abc43fbd07d0b1873a792647be2d6c0ba10178c44c6628f3cb2468", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0036-r2-nonlexical-hit-rare-blob.log": "acf10067547fe8d713f5059b65d00eca5333340cb66c1bddbabf74fb2ac5bfec", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0036-r2-nonlexical-hit-rare-blob.stat": "7620d4d6e5a02c3d32e564470be11c3afceca07a2a6fbffad4a4ce858929d7fd", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0037-r3-nonlexical-scan1-rare-blob.log": "a8960ede1357fdf96008e129bdccab5d2fac8f3be92d10a675f2c03786e8c82b", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0037-r3-nonlexical-scan1-rare-blob.stat": "bd1b6087617b7095a588c91ece8d963d8826741d1e887a45fe734f3bd4e62d53", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0038-r3-nonlexical-scan1-baseline.log": "e3af144aa99c9361316cb27741f2c56eec459e8431478cb5c86151302c5e0a25", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0038-r3-nonlexical-scan1-baseline.stat": "d1fa24b4c28b4bd9f44eb06e57d2349d5efdb91d4dbae79df2e33323192fb532", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0039-r3-nonlexical-scan10000-rare-blob.log": "db452292368f14ea0d6276863bc9805ddf1c5d6443888f7bbfa030c240f2f981", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0039-r3-nonlexical-scan10000-rare-blob.stat": "43fe09fdea336df2ca990236dcc4792f6b8f9c2f58cc43359a82d0cec12a8c8f", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0040-r3-nonlexical-scan10000-baseline.log": "15405b7bbdbf8b16b58765469745091e0ace1c0be96d638da4ff8bb22e667055", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0040-r3-nonlexical-scan10000-baseline.stat": "63f2118ae55cee32b06e08ba3212d7e2a83ed140f6a9c250c3acaaa2352ae9ad", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0041-r3-nonlexical-scanfull-rare-blob.log": "8ac8bcc496686a6166794ec5c048bf347a0257ee746b236c4de608f67c84c6fd", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0041-r3-nonlexical-scanfull-rare-blob.stat": "4f5976b61714ab0a78cf2fa4415490bc54752195168593d6756d4a6bdd8580d0", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0042-r3-nonlexical-scanfull-baseline.log": "5bef5ec1bd162b696c4e4dc5a7a832f02d7ef24fc62f384b9e3ad7997df6dd51", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0042-r3-nonlexical-scanfull-baseline.stat": "4dbe283eb23656c66953b625b03ec07590988a24e4f4a0d71b10fb9f1e43c901", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0043-r3-nonlexical-pack-rare-blob.log": "e72fe22f041de211a8e4b80d1cb3d72256dd3dc6b016015b6eec115e7f3512f2", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0043-r3-nonlexical-pack-rare-blob.stat": "aff7aaf9be6a158b2f9e325ac2c2322a3342cced4e1666d669bedf542c328a97", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0044-r3-nonlexical-pack-baseline.log": "2398e88cb4e03e0d49e2c059bddf0b9e41bc06f98dc58b3ca602438d71d5af55", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0044-r3-nonlexical-pack-baseline.stat": "6cfaa1524d0e4cc199c1a31c65eb368911c38c7dd23d6f630f20ec597d636318", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0045-r3-nonlexical-hit-rare-blob.log": "daca2952174c55d896a98a3a7118efe6116850b5a9099d1a85ad964b25716497", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0045-r3-nonlexical-hit-rare-blob.stat": "517b949ef03a3bac93146289f808dcc4a9037e0a495680a6a839cc47185e5679", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0046-r3-nonlexical-hit-baseline.log": "72fcd6dbf3e5d6ea98821e1fe7ef1df933a468f568cbe1f615aed37d7221142f", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0046-r3-nonlexical-hit-baseline.stat": "c99b2e4eb6109bb9be162bb9cb71e955c1b7a79c3e7a41b55dafbd03972f3bb1", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0047-r3-nonlexical-miss-rare-blob.log": "bfb8aa600c4bebc57b91a175894be4d7edd927eb6af1f1b9a74a4656ce594dc5", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0047-r3-nonlexical-miss-rare-blob.stat": "3c352bcce5d2fcec5c31ed0feffa58c6bd079e830b96a1f713cc6fc92818c6cf", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0048-r3-nonlexical-miss-baseline.log": "c39fb2b149ddf95e75d0588dd9630ca55e64a25325912bb6243a3370dfcf1682", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0048-r3-nonlexical-miss-baseline.stat": "8e401918a5c636b926e037b1a6c557b659b3852a2e02673db5876680e5911221", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0049-r4-nonlexical-scan10000-baseline.log": "58cafa5b671726ea051436298b640da03d0c717ba171e6053e7b6c8228df68b5", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0049-r4-nonlexical-scan10000-baseline.stat": "4cb8191f65aa90461dbaf3501528454d60775f78d10638f4b1c391541e9a73bc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0050-r4-nonlexical-scan10000-rare-blob.log": "1061bae071bf3969d0ee1ac8d7ec93c290731ad75f696c0427bf5cb428c2b738", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0050-r4-nonlexical-scan10000-rare-blob.stat": "cb24fecf1177a86e0bd1a28fbd010b5590b67eb7236e8f31f8aec37b768db8a1", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0051-r4-nonlexical-scanfull-baseline.log": "e297456e010cef61361caeb72c121d67428e40b2d96bc58b1818f0aa8fdb4622", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0051-r4-nonlexical-scanfull-baseline.stat": "d488f9944fa12063d6c3a7ec723093abbd290a160fc7ad67993a4f6dc36bbccc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0052-r4-nonlexical-scanfull-rare-blob.log": "90aec98e8ad46900639515dcc6d369c80d2eddf5a9948607bea10cd2c88327e1", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0052-r4-nonlexical-scanfull-rare-blob.stat": "8d0ca747ce9a615f961251f2fa791c9e2128a46bab5239f678961a0d7c646b42", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0053-r4-nonlexical-pack-baseline.log": "1dc9dd59fd38685f3e063c2dec2c166c41b215b4170f751f658b49b7ac6e42ea", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0053-r4-nonlexical-pack-baseline.stat": "7590527468fde1cfcf32972012d2d1aaa78b513ce53c573e95eed1935a2063a2", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0054-r4-nonlexical-pack-rare-blob.log": "517aa5f051d6993641fe553d0ea1a7c982acc2bc44551b44e92c1f6cce8e8c18", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0054-r4-nonlexical-pack-rare-blob.stat": "5871aa4165c84411087f5a3072cdf759ff867dfdffa67b3dfda0911781ec7a1a", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0055-r4-nonlexical-hit-baseline.log": "9d7f6c0db170596237b312f901d1a030cbd52b0dd6552c04e7e8d64cba2859a6", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0055-r4-nonlexical-hit-baseline.stat": "0a8fc9b34d1b31a712428bf67d56a9d8ba5fa28f16c00324ef15ccc01017c122", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0056-r4-nonlexical-hit-rare-blob.log": "b34e1ac6ba4b564bc0b4c06495cda14c0deede621f456c8b5b70115f7974f85d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0056-r4-nonlexical-hit-rare-blob.stat": "1af166b6dfdf60832e035d35aa3caaeb285881a0d0085ec041952b67b76b79f7", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0057-r4-nonlexical-miss-baseline.log": "bd771955d964159b095f3e18e27c88b3f31b91d9cafe4ddd963125c2d80aa29a", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0057-r4-nonlexical-miss-baseline.stat": "0cb0dbff1cf86879f91f268bf62fdc80f315f009c34ba671faa06e384d89c59c", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0058-r4-nonlexical-miss-rare-blob.log": "6c72b4d09c29e5849a13d418889ec01605d941a9491fc804ebadecca12f94d1d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0058-r4-nonlexical-miss-rare-blob.stat": "d476fb9c18d24b66def502d852b892d823f6ccdba59b726291e16940aea7638d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0059-r4-nonlexical-scan1-baseline.log": "41470820afc2168ab5fae27df7413e92a11e80505358b48952e9d09534b695cf", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0059-r4-nonlexical-scan1-baseline.stat": "4fa16592f7035d62c6c8311c853174c6faa95af2e2e62ed87ee603daaab7b4ef", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0060-r4-nonlexical-scan1-rare-blob.log": "b3b40953be1d45d79e675d1c759371e43f25068c233675571b4098088e03f4e6", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0060-r4-nonlexical-scan1-rare-blob.stat": "0746ba402589e4689da32869c5212ee121c6681d48198b931a6f3812dc338115", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0061-r5-nonlexical-scanfull-rare-blob.log": "95d42aba0bbcfeb02d6e7f819feeaecfb2f17d7b919874c502efcf090fda8d02", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0061-r5-nonlexical-scanfull-rare-blob.stat": "990da9ac8bdd0b4472e890582d37602f4a0c04eb0861769abc030051b2337c1f", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0062-r5-nonlexical-scanfull-baseline.log": "ad9cfb432fec5c9dcdf63f86ff5e2b525d7e4ba4a1ae9ede73bc3ad64377d7cc", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0062-r5-nonlexical-scanfull-baseline.stat": "27aae84e89b7df6f6867a0c6302ace34490bc3829803a69c2c3d12a34fa0abfe", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0063-r5-nonlexical-pack-rare-blob.log": "06460ed62ae039ecc001b743e50d98fc8bf392dc21cc526f3c5ba53f5b7bc0af", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0063-r5-nonlexical-pack-rare-blob.stat": "dcb7678ba0d9659c83ed316dfc047ce018939a596c6db133a0d7b3dfa667ab48", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0064-r5-nonlexical-pack-baseline.log": "79257a06727f26fb98f3690030eb6d37264e8ecc75dc12ab0fd414711f4982cf", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0064-r5-nonlexical-pack-baseline.stat": "dd61de4194c2bb38c077b7c35fab085a6a88cf00b0df2290ac8a554293d7a455", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0065-r5-nonlexical-hit-rare-blob.log": "28980deb478e6949fe6c963af7a460992988b688f5519e0468ef0bbcea1ea4c5", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0065-r5-nonlexical-hit-rare-blob.stat": "aa4b255bc2bb2272514ef37edb1ed76a6f83a0e481561684bdb5baa3c0c830b6", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0066-r5-nonlexical-hit-baseline.log": "cf6c0d96ae47ac1c00d3118b88f7c7e72b7a2125290c2725d76bb766cb5cff55", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0066-r5-nonlexical-hit-baseline.stat": "d1c891c6623bb491db9d1262844841b56caef317041d2ce059360186feb1e76d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0067-r5-nonlexical-miss-rare-blob.log": "7d383077ef742d653b7958d09a1b518d713af9a22e78d7ca699c96c65c3640ae", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0067-r5-nonlexical-miss-rare-blob.stat": "ff7acf328d9883a8266a30f91e0e9d94eafc58eba7072b8d309080be87a92116", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0068-r5-nonlexical-miss-baseline.log": "8b05b42f9181c7fe04afab1a95445cfdbf02cfb5a293359a9359ed28c9c3caa3", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0068-r5-nonlexical-miss-baseline.stat": "5a84f69fa83b73a1fa9b6b34a5661f70fcbafb29d33acac2696a303119951678", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0069-r5-nonlexical-scan1-rare-blob.log": "0246ba15657f93e70a41def6f7ecf64c63241c2ac24a65ef37bd9b8fa3cf9657", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0069-r5-nonlexical-scan1-rare-blob.stat": "b1d75e3b04e1095e3d788a0eeab0f8a32c36a0059046c15c23cac57bb043c1b7", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0070-r5-nonlexical-scan1-baseline.log": "777b17f828c79243427a3c863ce88cddf60d87da4b91b4526da0c212364b5133", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0070-r5-nonlexical-scan1-baseline.stat": "8bef00002e3f834e20ce74a8e211ffe759b588a0782c3a2c72cf1bb3d7a6461d", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0071-r5-nonlexical-scan10000-rare-blob.log": "85744087ef50c2aec9ddf0d17339d6cc950a859112f322b487ef5cc5b3b4e933", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0071-r5-nonlexical-scan10000-rare-blob.stat": "67126790690dea0a043c01d8d56f829d78c6c5db613fc97b61c2e9606dbfbfaf", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0072-r5-nonlexical-scan10000-baseline.log": "d4083c133d534a7d0d8bad9798de28d2dd48f90f821a36cdded1d0e9ec75f245", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/0072-r5-nonlexical-scan10000-baseline.stat": "68db62fde6163dd898e280c503206f5ac08daca0f8a9494e2d899af9595c4d77", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/build.json": "5b9d626df2263f08bbfaac71168ca77be744503ba264c4d5ac8149248df5def3", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/independent-review.json": "a82df930a0c7ee71bd2fc6e6d6dc4cf2dc3149beda8d52b49240e599b6626990", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/manifest.json": "e68d70e7d61d25488f1a941931b297afa94d337a7f06274f2c4842ad5a5a6ed4", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/plan.json": "5e5756783a0bf0f1ee67cad40195bc32d018c030a4ae99febf6df129bca04fae", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/screen-rare-blob/summary.json": "61b2bb744285b94052c74330df1bd38bbc4b473c238b1fb3794f1e4d6eb11629", + "benchmarks/results-20261016/btree-nonlexical/selection.json": "2dfd65e8c081c8a99640484fd1faa0a9e0cb3b4f50e154b6b9d879fac1e1505a", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search-plan.json": "7a0f2f9a8fbc2e63b78073ee94db1915cd790c540bfbfee32a18f797e6c62b3f", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0001-r0-nonlexical-pack-baseline.log": "58e2984ba92d2b24d0d37694b336f31624f46e71498f4d5b582e70c8011cb0f3", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0001-r0-nonlexical-pack-baseline.stat": "18fd3f924c7d59bf77da02923ccc37442e08e7fd41d4aed0a776a6c4a5e975c8", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0002-r0-nonlexical-pack-callback-search.log": "b45a41a5d6910e30f83de4dc853340b5222b6eb5d73a2d89693b831f6db1ae54", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0002-r0-nonlexical-pack-callback-search.stat": "0f185a0eb0f3a8334ebf5192f9fe762b140129d6ff616cb0ffa095826912d96b", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0003-r0-nonlexical-hit-baseline.log": "11e6cb1fc1fee2f76273f73067bfb1dc83697fa0954be3da3b4455924327babf", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0003-r0-nonlexical-hit-baseline.stat": "a452198835ec9e21d13a216a811ea02a4d5cd488606a096fd64282e725d78bdc", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0004-r0-nonlexical-hit-callback-search.log": "31d0e3caf961062c4f2448167012281769ca1b51537555bea99a9dcae4e50c4f", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0004-r0-nonlexical-hit-callback-search.stat": "5fef7c1c27f9031baf82c600aea61ba39761f03a1cdd1fb30583a2c6ae540e65", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0005-r0-nonlexical-miss-baseline.log": "923d6b4a651ed637d2b1ed701c16b052e256908953c366c8d05362939184cbd0", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0005-r0-nonlexical-miss-baseline.stat": "167139d1c5a3af3f61f5c391724b441b66a0340d2a0ff7b25fd12760ba0851f8", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0006-r0-nonlexical-miss-callback-search.log": "086714414a27a761f0173527649ae2f198d74dd7166352dd37cdadbb4579a1aa", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0006-r0-nonlexical-miss-callback-search.stat": "1d2b83991f49d6a66138691acac6a4fc6ad45648c053fadddb8e85253f0d8529", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0007-r0-nonlexical-scan1-baseline.log": "8effab542d4e2ec94378bc032d9f47f44c1275e10f49a92188acc3bbe1770ed2", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0007-r0-nonlexical-scan1-baseline.stat": "2933d1cface0aacc7a33a53f58a56034f1c5774f49fe81decb268ea12142eb3b", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0008-r0-nonlexical-scan1-callback-search.log": "727d7a26a3f23c465ba71d9718dab3d577a0ce6150e73fad201f9d17c3e60836", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0008-r0-nonlexical-scan1-callback-search.stat": "60ba35baf8a5c6e394646b8cd44bfc191d3d2f363f16d181cc94e53ac6bff8ca", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0009-r0-nonlexical-scan10000-baseline.log": "766e075ef3d5cc88dc1a4887b111a828909afd9a2472e92942b113b1f21ba136", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0009-r0-nonlexical-scan10000-baseline.stat": "a9db5b552306f6b84c21242f8c8e5fb30a036712ffc6be1826d4b788376ea43c", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0010-r0-nonlexical-scan10000-callback-search.log": "873100adf86c35dc445f648a7d7b438cfc4767ca57bffb438eb8ea93fd3360e4", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0010-r0-nonlexical-scan10000-callback-search.stat": "07645a3f0ab3f1ed5a8b4624718e3fc648df0b24a58b649b199af9f17d2cdecc", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0011-r0-nonlexical-scanfull-baseline.log": "891268a1f9492ff45d9a972a9c83170e9159dfb32aed95c39fdb0e9c1158d339", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0011-r0-nonlexical-scanfull-baseline.stat": "69a9d0e91ed153e58f447728bc5b4f7b8c17b5a17ead88b99febab3ec726ce66", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0012-r0-nonlexical-scanfull-callback-search.log": "545aecd87ccc7d19b7239aca11ce374f18342d23c66fa4978b53b97b065026b5", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0012-r0-nonlexical-scanfull-callback-search.stat": "1fa1ce6611029af4b6e098930bdca11f50850a594214fa346a4ef8451e225b4e", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0013-r0-common-pack-baseline-on.log": "8140179f15b5c245e50258637d889d3812b9f1dd0c8e62686ad196b832a3506a", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0013-r0-common-pack-baseline-on.stat": "0813ff7904b68095c20c1ca2255f975c220d145a93eca48f359245c78f32c168", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0014-r0-common-pack-callback-search-on.log": "0ca235ba05ef3dec308f356cbc6678964e04e9a09a552369eae0de6eeeb5e66f", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0014-r0-common-pack-callback-search-on.stat": "246c6508bde92b709c49481d5525a754b79ce13cff6beadb5f10aa586890b407", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0015-r0-common-scan1-baseline-on.log": "729eceedd613f86a4082fe096e8269997f975ceaf4cc16d505126899acb05815", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0015-r0-common-scan1-baseline-on.stat": "4a71cdb6bc538b9e42a6cd3b6427ed0419f126bfe66666eb9306cbb945c28207", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0016-r0-common-scan1-callback-search-on.log": "09950de2b3ea1f3ed479836af6edca05264f9c5eb8db777bfb204e1021689ef9", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0016-r0-common-scan1-callback-search-on.stat": "6f0224642b10ed17aaa14e5b44732d2512c32061280dcb31b3cb1862bf6d9c2a", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0017-r0-common-scanfull-baseline-on.log": "735d5e2521f95d621868849b184e0faba85288b57a7445455c7135b0e86dfd8c", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0017-r0-common-scanfull-baseline-on.stat": "20dfbfe0142ee7210b36d2d5b240c634f1e4800fa71a7f6ffa2ec9c603defe34", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0018-r0-common-scanfull-callback-search-on.log": "32db4657d53c14df78a71cb9b668a17711f2dc046e0c8083a688d216199a4298", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/0018-r0-common-scanfull-callback-search-on.stat": "091eaf223e9a3f44fd74aeec9985c5edefe117aea44903651142fdcf6a1ca800", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/manifest.json": "8027a84fea8a62dc70018f0cdca10bdf79715d2a9fddc534a45c24d8cd010bd8", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/plan.json": "7a0f2f9a8fbc2e63b78073ee94db1915cd790c540bfbfee32a18f797e6c62b3f", + "benchmarks/results-20261016/btree-nonlexical/smoke-callback-search/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1-plan.json": "e894be56d88f0c2e35cefeef90e976446075a021f4623ca8bf65ece3927c283d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0001-r0-nonlexical-pack-baseline.log": "7881515d530dc50d9c71c4f3f9a68541bf01a2f228a794502f76e5b1542b46b1", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0001-r0-nonlexical-pack-baseline.stat": "e4be109f3f397e7810cc89840d805e64205ef272631b6c509da3d446e5e3f68b", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0002-r0-nonlexical-pack-combined-read-blob-v1.log": "36145627af6548f3acd7ace546efe2a63c1e50dd9cece0067b783f8fcada1a6e", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0002-r0-nonlexical-pack-combined-read-blob-v1.stat": "562c01754d56643bc7c757cdb7530da3fe60fe815bbf11eb7613a6b0000d25a0", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0003-r0-nonlexical-hit-baseline.log": "34eb32d80e20195e4749f85c3908fcabf5d1a2898f1c43a855f42f10858caf1f", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0003-r0-nonlexical-hit-baseline.stat": "be1bca2a485ee663b2939dd5310ae80c067abfc32b596d5cc466cc1ff6766a3d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0004-r0-nonlexical-hit-combined-read-blob-v1.log": "db51c7fb6a3f773b7a28dfce96ab65a9497ad8d3d72ebdeb677819f2ab0b5757", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0004-r0-nonlexical-hit-combined-read-blob-v1.stat": "5aaaf2c594b4f85c8e1aafb2367217a7ff356c6044fd1c2d33bd57a606bfa536", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0005-r0-nonlexical-miss-baseline.log": "97279185d7b7cb5c2955e7963f266862c9c0c76ef8472de1646437759435371c", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0005-r0-nonlexical-miss-baseline.stat": "8b83eb9ce04d616d99d81bfd57c903dc05d083d6e2220e979d2629902d1457fb", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0006-r0-nonlexical-miss-combined-read-blob-v1.log": "b2d0becc2ab4d8c53ad749ae73aa25e17fa33afab90e22cda9710d624ecdab9a", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0006-r0-nonlexical-miss-combined-read-blob-v1.stat": "99fb18c12628d77ceaf59e0a3f98f062db0b9d7bf82785811b9fae036df9695c", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0007-r0-nonlexical-scan1-baseline.log": "1604765ade8dd0d5d1993d93f52d4929212728c182000caaabe70a8ec7e42cdd", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0007-r0-nonlexical-scan1-baseline.stat": "f6806da9319c1efb1ad8025f0af7a898d3da0a82e40209ef8690a6505e59a034", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0008-r0-nonlexical-scan1-combined-read-blob-v1.log": "1e8e53f265c1e969775d131d3f11fe8fe0bc29ee75d42da4b005e4f4402dc07a", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0008-r0-nonlexical-scan1-combined-read-blob-v1.stat": "00dffa2659298ff343763b52df8b1cef35ac85c5c5502be1d80519385ff38718", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0009-r0-nonlexical-scan10000-baseline.log": "f96a4deb914230d465508d885f12e80684dde246ec717c6b7791b2345521852d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0009-r0-nonlexical-scan10000-baseline.stat": "77dc7ebed97faf09a7ae395e0956921cf2706521ccbaa5341e1b0642321c86a4", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0010-r0-nonlexical-scan10000-combined-read-blob-v1.log": "27fe6f1bf30d1858098b03557664628724cd746dd327ede019af1f0a433311b7", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0010-r0-nonlexical-scan10000-combined-read-blob-v1.stat": "bb7341ce0af4db067cad238e7a596048704703ac89e8fb394f689bb84d64ce65", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0011-r0-nonlexical-scanfull-baseline.log": "00e5ce751eefbcbbd5c832ee582a2cb509ada90c58181b99e8883d3c405d2011", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0011-r0-nonlexical-scanfull-baseline.stat": "9c0d667b40775c7f58e33047d60c9a8d9d06331bfabb450f7ce89c1c7b497bed", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0012-r0-nonlexical-scanfull-combined-read-blob-v1.log": "ff2b082146146833d78f6375df471d843288b5d31988a9915ef4fdaaa97eb016", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0012-r0-nonlexical-scanfull-combined-read-blob-v1.stat": "8037bf7a1d737f90f570583bea1c615e3c50511a49e93173fd32031435b5cc80", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0013-r0-common-pack-baseline-on.log": "5e43a571e777983372393a49bd3499e52e13c7e18b847412de01aad5dcc57d3d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0013-r0-common-pack-baseline-on.stat": "5b73ccde58e71d1fc60abb45300c18b6b99940753df61c398524da2409779221", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0014-r0-common-pack-combined-read-blob-v1-on.log": "90ad4bcf5928b904cd36de01bb464b7f05473f4a11a5bc82da76db141f7f6d1c", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0014-r0-common-pack-combined-read-blob-v1-on.stat": "af281fcfa3be5aa11a0f34e9774e3f72c85e849f27939c40d8decd43573dfc23", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0015-r0-common-scan1-baseline-on.log": "3c98698b775424a516876d065536b924e6b923f434f41871427f04edbfe2fca3", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0015-r0-common-scan1-baseline-on.stat": "ca88f01d316ea070ee0a8bd731df866c011cf789812c9581ea86cfc26abdafee", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0016-r0-common-scan1-combined-read-blob-v1-on.log": "23fcb8f7a81029e739033bae8e21e6e72803d413e66be17097c82b8703cb1699", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0016-r0-common-scan1-combined-read-blob-v1-on.stat": "75069f21c4efefe07b72278221d5b5ee4d7fc2f0fb92e63e1f48a5804d9b51af", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0017-r0-common-scanfull-baseline-on.log": "e7df4e7cb9cc497e43e1a2d8b0a522307393e5e3962a05fcc2a3efed39e8df33", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0017-r0-common-scanfull-baseline-on.stat": "3b2c86df9fb4d1d9814452516a657febf8bac5f0c17043ad7e78cd02c3763256", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0018-r0-common-scanfull-combined-read-blob-v1-on.log": "dd0752921aed7cd1b74d72ac308c8c542a04c98e5a076001377954bc2d95c173", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/0018-r0-common-scanfull-combined-read-blob-v1-on.stat": "1eb13d1e06fc3e680f329bdb81d4cc78243e9771bd098fcc225fb5fe5f501e98", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/build.json": "c842fbfb98f9b65f6b166a87882a6cb5b4b6ec2d7255baa68eff289b9786f035", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/manifest.json": "544798296db475d2a0b889dc4b06ed61336af052c81be4a18874a2510888a339", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/plan.json": "e894be56d88f0c2e35cefeef90e976446075a021f4623ca8bf65ece3927c283d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-blob-v1/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1-plan.json": "0c074347543c2318054b6bec7628c542a5e09bd546892bf7557625573548d075", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0001-r0-nonlexical-pack-baseline.log": "9c37d01098c54c7ec6f9cb34de8b786930f103091ca7bb2bcaa4da757f173987", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0001-r0-nonlexical-pack-baseline.stat": "0b9ad8cdbd9eac8dbcfc27726a2bf57d24f33506e5fbfa4f33ed071d2c836cc4", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0002-r0-nonlexical-pack-combined-read-v1.log": "4571d9e607c464e11008806ab4546fe319e1b2c39f15a256710d19d709de1a6b", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0002-r0-nonlexical-pack-combined-read-v1.stat": "10701ea9f791391ac340a209c51dcdf2f77f03bd137783a8045af7615a3842a8", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0003-r0-nonlexical-hit-baseline.log": "91814047b72b3df37f1ad183bc88291e0c4f68858820afa1b9f6b1410d6b0e8b", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0003-r0-nonlexical-hit-baseline.stat": "f6174249db04c7a9054a0e9cb67c839f1d48a54e513990d00ee0386dee30de2c", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0004-r0-nonlexical-hit-combined-read-v1.log": "b2455af7bad0fa3cf8d15f51f8e1e68c7f8587ff49b027c8b084bd10313b235e", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0004-r0-nonlexical-hit-combined-read-v1.stat": "fec5b380d09eb31e14baa8d05786c974bec4f23eadd0a67a2daed057780da9d6", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0005-r0-nonlexical-miss-baseline.log": "c1139e91142face362b502e365288d6dce33819ffeffd17ef24d291c935d275c", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0005-r0-nonlexical-miss-baseline.stat": "e65a85a676e87d5bd86253c5229d43237a3d8b0af5f0f6bb7d342266a57eacec", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0006-r0-nonlexical-miss-combined-read-v1.log": "371726e1bdc54ab8974589bd36a91467c6e49ed9e56c104ebfd8a8c3cfa0c894", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0006-r0-nonlexical-miss-combined-read-v1.stat": "3741717bf4faa0b179ed97e7a07b8678a2bd2077c4c4a47c5b515578be80b052", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0007-r0-nonlexical-scan1-baseline.log": "cee8308cde3ba36297b8c59f7b02b420bda71665b9106f8006adecc12ae1de5a", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0007-r0-nonlexical-scan1-baseline.stat": "609e6afefea0d6a3aac5d94d69d7e0147a218ed6448e0be2c8b781aeb3667049", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0008-r0-nonlexical-scan1-combined-read-v1.log": "e31bacb6c99f23a21128e7d493ab5f06f3adc8b4bda1e7917b8c01553d52490a", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0008-r0-nonlexical-scan1-combined-read-v1.stat": "bf3c89c774cc74c3efac53148e3901e4332b2d4dae54c6e640a23e3f5b8db4f9", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0009-r0-nonlexical-scan10000-baseline.log": "c18375e7f3a5ebddf062b36fc8288d748d01a803c6b855685873f542fcafa747", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0009-r0-nonlexical-scan10000-baseline.stat": "b616f71e6ebdbed9cbbace7dbdc0fa710531426265d69fed61cede18159d7c44", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0010-r0-nonlexical-scan10000-combined-read-v1.log": "4186a41bf1475fd1f67dd21ad4fc9394dbebf77f70dfff2f8627755e82339afe", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0010-r0-nonlexical-scan10000-combined-read-v1.stat": "6c5baa64208f5f074d741d9f4feb91e91fb778d5814df56b75abce100d3f9df0", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0011-r0-nonlexical-scanfull-baseline.log": "6b635c242e1864b6044b4858bb7f174888fd6cc078f6ffcb02d77f12ddbc494d", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0011-r0-nonlexical-scanfull-baseline.stat": "6812966c26d5f354dccfbedcc6e3862b9b1a9e1451b343f67fe9e1701f344b94", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0012-r0-nonlexical-scanfull-combined-read-v1.log": "e9eb4fa5b60c9dd295e9ef16019f1ef4462881c7cdbbe1d0c46a664906cca376", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0012-r0-nonlexical-scanfull-combined-read-v1.stat": "986264b07a0e8a0fa4d3cf491d2f47f5838086af42e402d9a4218e3a23214e11", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0013-r0-common-pack-baseline-on.log": "3af977cf8d0c837b5ae5fc36304022303821b3329891a526f6cbd80e11675d52", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0013-r0-common-pack-baseline-on.stat": "4406822b69f7b4c4a3da3801d24f691527207d7b4bdd75ca129c864db1172c58", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0014-r0-common-pack-combined-read-v1-on.log": "fb638d1ae0d011379f2831ea9e1a37c884b9d18a1e15504510168265aeab6a14", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0014-r0-common-pack-combined-read-v1-on.stat": "20a0da3219859afc226811efeca701ae575048661ae15ebf56a3d56be2a803b1", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0015-r0-common-scan1-baseline-on.log": "2eff1518cecc9f7c489317f6015773f0cf55e9f9a45310eec66ed75176343036", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0015-r0-common-scan1-baseline-on.stat": "a5baa8d41a13b3b08a484ad53c8cd6d028ca808fcf3b827333f4d165f954d395", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0016-r0-common-scan1-combined-read-v1-on.log": "0be36887b3321e431c4acda905e86c5d971139989d3ac7aa98614334df4f47f9", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0016-r0-common-scan1-combined-read-v1-on.stat": "5b76aeeb5dcb2933e0419cc58f680b0c236058fdc0ccefeed1b2bb847bf1227a", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0017-r0-common-scanfull-baseline-on.log": "2e204dd99277a7c57289a81140fee3650b66c0c4950d03547b3b8fc294e9538e", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0017-r0-common-scanfull-baseline-on.stat": "db77eb50dbe6fe19a5881a7bc9045c949f044adcb2aaf385f191f3fa865b8710", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0018-r0-common-scanfull-combined-read-v1-on.log": "41786fb2150c221ba872c4bb81dfb429ddcfe42d01df9188652193bd0b6a6482", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/0018-r0-common-scanfull-combined-read-v1-on.stat": "38eea5793e623e3d1ea640a818f996dc1ee19011a14068d63914779c91f503e5", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/build.json": "c842fbfb98f9b65f6b166a87882a6cb5b4b6ec2d7255baa68eff289b9786f035", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/manifest.json": "2674a0f7eefcd72c139d447ac6bd2c95a8c121ad419ac0e73609746b86dac621", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/plan.json": "0c074347543c2318054b6bec7628c542a5e09bd546892bf7557625573548d075", + "benchmarks/results-20261016/btree-nonlexical/smoke-combined-read-v1/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline-plan.json": "72ff05d0825d5b9896f51e97eab166248e6ec86e96e6c06528b3e5380f0e37ed", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0001-r0-nonlexical-pack-baseline.log": "8b12e102e6276353749efe49d4383acd21befd67a6c688b8cd0c50dc32cfee6b", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0001-r0-nonlexical-pack-baseline.stat": "18bf3ad64e02e35316653d83a4e2e95165872e294509559867a8cfe0a75d70f2", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0002-r0-nonlexical-pack-decode-outline.log": "6364a19acaef55971b0eee5c8707bc54f1e85de16c21c640aea9a2414af580c0", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0002-r0-nonlexical-pack-decode-outline.stat": "411f13e5d2233f67f8f2a183779bab3328f15d8b3994fbe5476338d27c226650", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0003-r0-nonlexical-hit-baseline.log": "d3e2351e0bf094134ac27322c91f227311295a276caa96c661b05cd3bc9d8dab", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0003-r0-nonlexical-hit-baseline.stat": "d36f94da38f1099da5b7483cdc9908a5dae1d9d0467e93f5fc05ae6267af7912", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0004-r0-nonlexical-hit-decode-outline.log": "21ab87bd89d26de60a80734a5c83085866f3d53568db7dd2c44b066c447cb80d", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0004-r0-nonlexical-hit-decode-outline.stat": "6a49e2c0d07d5c9e704f1fff48eb093a5d1e67e932440440675a08c0867acf39", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0005-r0-nonlexical-miss-baseline.log": "97cf5c9a11e2008b63c3533f24f5dae7165b3b1bc80b2643a2b3a9e1cfca6dac", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0005-r0-nonlexical-miss-baseline.stat": "6530b767d4760a3df940991bd475e17ad9ac31f438fc8fe1a74df9483e9c4c83", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0006-r0-nonlexical-miss-decode-outline.log": "83d959f2024403a969acc7e0605ea0e1e75331c28b111c1849491bbe12cfd915", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0006-r0-nonlexical-miss-decode-outline.stat": "63c82d0cc6464aa97f2fcd953a49ac8ec171ca0c6dd24e485083944e58716f68", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0007-r0-nonlexical-scan1-baseline.log": "ae0de059f9fed413257ffb6c98826ecb631249a0df419a0a8591159b7dd58d46", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0007-r0-nonlexical-scan1-baseline.stat": "74fd15d80b69981f0331173597a85730bc16d776a4caba3f2da18d9c56b6fa02", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0008-r0-nonlexical-scan1-decode-outline.log": "bba0cdea2a5c56765df2279187247e079b49d74fe750322411a9097d0ccc7690", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0008-r0-nonlexical-scan1-decode-outline.stat": "c139d4ab0a0ee81f273b45ed9e4fddcef563bedf07c9d6c7d041ebd36b0a35c7", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0009-r0-nonlexical-scan10000-baseline.log": "0ca6b4ca2dc4b6456a441374eed0e8ffe08f5685fe58aedd6bede511cd85e90b", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0009-r0-nonlexical-scan10000-baseline.stat": "fd844d35e1c167b5382551176e300527cd3a8a5a38966abaac3ef07b6f26b973", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0010-r0-nonlexical-scan10000-decode-outline.log": "f87ae34652fb5f42d19c792f0eb50797d815ab12c27ead1c4cdce62e1508900f", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0010-r0-nonlexical-scan10000-decode-outline.stat": "b5d89819e703577cd4681064894a29cd2ac88ab9e9181204581c62f3100f09d3", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0011-r0-nonlexical-scanfull-baseline.log": "1cf26c6e51d572e6240630058b4077f9391254bba5fc1ad4ea41fda51d45e49b", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0011-r0-nonlexical-scanfull-baseline.stat": "5a9f466b2717053e8d3f5cd6af1038b564e5a27353ca6fc5defa83187d3f61e4", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0012-r0-nonlexical-scanfull-decode-outline.log": "c1c991c9cef4817f6dfaad9f6efd409ffd9e564419f3c184703ea3a228b2708c", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0012-r0-nonlexical-scanfull-decode-outline.stat": "4dab7ab90e96531ceab8d4d71c5c0857bbe3de707f7f456905e7809e8b465a40", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0013-r0-common-pack-baseline-on.log": "3a8b2b4c39b3520403c172ac588dde107946f7ffd96f54d67707eb40bd8c6cdf", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0013-r0-common-pack-baseline-on.stat": "c9d719a0d7b012c5e9d9b8c233ee66ae526e9746a581b6ba8562c7d5617a0a01", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0014-r0-common-pack-decode-outline-on.log": "bd376defa606353a89a5c3fdb57c7da6a5b8e58a69e50c58fe0c1ce95fae291c", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0014-r0-common-pack-decode-outline-on.stat": "5e2d815541e3bb03a05a3f1b278586300a1369d11864e0e30598d6af4eba79f7", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0015-r0-common-scan1-baseline-on.log": "2ecc8af2248421f694e13351277791ab4ee581d2cd5c1d7dc2058dcd1ee0ced9", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0015-r0-common-scan1-baseline-on.stat": "e9b54c3d30e057cdba79dc755e13d95e8cddd92c8797640d7592c1df1f1915c6", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0016-r0-common-scan1-decode-outline-on.log": "ecedf530f536884729f48b6981c8509487d5a0075364be363e5e838119ad43fc", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0016-r0-common-scan1-decode-outline-on.stat": "9c4d5de06461eb1c3e3cdd3c596e370f1520f8e4cfc22881aac2f098406d3315", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0017-r0-common-scanfull-baseline-on.log": "280be3992d27b51ec149359b1c5d453a60e052e2f35d195c948d6ba31ae8c9c6", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0017-r0-common-scanfull-baseline-on.stat": "d2e6910ca6dcdcdf0556dbceb289a5ab2d5c395239df66b43fb47d0641114a53", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0018-r0-common-scanfull-decode-outline-on.log": "ccc4f63877d4589af8e7eaa6e5714e524cbeca63e0e46786d2dccbbfaf9c1815", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/0018-r0-common-scanfull-decode-outline-on.stat": "6ebbffa929baa9c973b8c3a47e5113044dd62a8659ffc72d88246a9284cbcfc6", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/manifest.json": "66d27643efab899cb577f00ee6d506694d3d069c46591d62db96aca493e85111", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/plan.json": "72ff05d0825d5b9896f51e97eab166248e6ec86e96e6c06528b3e5380f0e37ed", + "benchmarks/results-20261016/btree-nonlexical/smoke-decode-outline/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot-plan.json": "23c395dc51fe3c1d1b5de624ce955ccb69e12a4ee0e638bfb2c0bfabbaf243a1", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0001-r0-nonlexical-pack-baseline.log": "f311c9146ad6d5ce84e3aaab614153238876d3007912c9a4c6c79ff140a12cfd", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0001-r0-nonlexical-pack-baseline.stat": "e4ef3c427c8bb5bc6ed1acb7cedf7ce47bdc0200df05ca724ab67c1456ccf134", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0002-r0-nonlexical-pack-lazy-pivot.log": "3a2b4240515840f2ddcb512e9b8a8ea6234bf3b363b7dfa7d16f0b8412ef8def", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0002-r0-nonlexical-pack-lazy-pivot.stat": "81f0cbfa7af5cab1cbb6398ff456b70b1138c5eea74076f2405afc3e893d6c5c", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0003-r0-nonlexical-hit-baseline.log": "edf7515bf73f99dd8592dea618bd0c989bd7c0ca1deb15ca62c10263ba5a8500", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0003-r0-nonlexical-hit-baseline.stat": "f5670e83691118260bf36ba4a1830cb4af6b6f0f9fe9a936f35bed2a3edbbf74", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0004-r0-nonlexical-hit-lazy-pivot.log": "fb984aa77696688f62d5784f405bae90d1d78709d41349dc113bf6ac5e46cda9", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0004-r0-nonlexical-hit-lazy-pivot.stat": "eb4574d6f5dc2d3d7e4d057accc666fc77070b02be3be8b26ae943aaa5d7bfba", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0005-r0-nonlexical-miss-baseline.log": "81bbe8a640748d15745e79a4429658d8e3499302ec869b7692119f519acb002b", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0005-r0-nonlexical-miss-baseline.stat": "c003bb9529ce9ff4e96ffdbccbf91774622127865e189bbe5fba30423c22c224", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0006-r0-nonlexical-miss-lazy-pivot.log": "3a78876a93f1c64732bf863c532bf51b68cc90c828c3fa7520dc42d84a8bea7d", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0006-r0-nonlexical-miss-lazy-pivot.stat": "eedb19364626ff25c1a00e42adb27c4f9c895f739f84b9857ca9d0dbc6b5c916", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0007-r0-nonlexical-scan1-baseline.log": "337c2fa21f28c152aeb9edc7cb2f558078002b7e38df3a70121e161c8a93720b", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0007-r0-nonlexical-scan1-baseline.stat": "989f2cf4533dbaaa688c9c6b4f511164b55e23d48065403d539122d3ab4e2fc9", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0008-r0-nonlexical-scan1-lazy-pivot.log": "5d07e357658a39af0775d7d4a58c866771c4a1b6a45b4ba0f59d694d21e0bea6", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0008-r0-nonlexical-scan1-lazy-pivot.stat": "02baad8e1e4b86a3a02dd3b42e02200d81c2c84e091dda267042f0c6d2a5a670", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0009-r0-nonlexical-scan10000-baseline.log": "34c670bbfdb511cc11a575df614dab8d6ade710d2e56e41f7db94da731c51acf", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0009-r0-nonlexical-scan10000-baseline.stat": "fd25503a05a738465c80c1d6391b95045362fc1f4c38b30d68e31c334e578c26", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0010-r0-nonlexical-scan10000-lazy-pivot.log": "9a4f84c2bc15d9df2f568cc58237db139e1e0438ade8eec32478fcb5d8a57c72", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0010-r0-nonlexical-scan10000-lazy-pivot.stat": "e035354ca6199ed72641d96e2c1a28344baa24bd93dab5c1c1826936da1a9c82", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0011-r0-nonlexical-scanfull-baseline.log": "b515df8f4d12095912577e5f274eeb4ebd80cc75dfcfdff9ad422996073f894f", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0011-r0-nonlexical-scanfull-baseline.stat": "8a9919f47f3dceea229fb0e874a9e6f4a779d6e11a314568ccaf754e4a31ebab", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0012-r0-nonlexical-scanfull-lazy-pivot.log": "def46f1f42d34384acf486975022300d5c922d2afd81d4c98c3f86c56791056d", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0012-r0-nonlexical-scanfull-lazy-pivot.stat": "5b504d4fa851e547c5366834ca29199a47a10b312ed9caaa5636570d169bb3a5", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0013-r0-common-pack-baseline-on.log": "633afba0ab2cf8c679231fd2ab409188414422602556e2b5ebc5f64702907c2f", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0013-r0-common-pack-baseline-on.stat": "8c09554ec027cade32c16a0bbbfab6adc136111ed380514b4bf424fcc426efeb", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0014-r0-common-pack-lazy-pivot-on.log": "7dd47886e8742f3116aff5b5e1d4bcdf9a7f78ac3287337aa4134b312d064dd4", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0014-r0-common-pack-lazy-pivot-on.stat": "b77687cdd9b991440960c794c8de0546cb44b7a18f6bcb744ab16a5197ad1568", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0015-r0-common-scan1-baseline-on.log": "a0ede3886a284b7be5ef7a9bdeec1b7932a7db5f3b81c7f053222f7a1f68739a", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0015-r0-common-scan1-baseline-on.stat": "beb59629676d483ef80987f629480a4c5acf73c053284f4245d3be6046691209", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0016-r0-common-scan1-lazy-pivot-on.log": "60ba3cea1e298353c1a4ae98e6cfc9e4787992f57cd734db797f9392dee1831b", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0016-r0-common-scan1-lazy-pivot-on.stat": "a820a68067dccefba144ad44babf70bf1552ffc0ba570df6ac3f3d30a6ff7eee", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0017-r0-common-scanfull-baseline-on.log": "50f4c8cbd23ad312acfd02bb73363be2089c1fc97bf7c6cf4befb0a4e1264f70", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0017-r0-common-scanfull-baseline-on.stat": "2f2e0c9193dfe44d2c794330be97c5e7ae4ad9080580bf3b5bcd1e48ddb56341", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0018-r0-common-scanfull-lazy-pivot-on.log": "5c1ebce1d9e63536425665015c1bab96e5e5d0bb47f7f53cc301887f178192fa", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/0018-r0-common-scanfull-lazy-pivot-on.stat": "ea72f15c460db72fb19f45671b11e03d05d3475a10d86180b30994157885d4b7", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/manifest.json": "ce6e5e9af1a99145206fcc2ae633cc4e0db8ef2b385da84c83b93f7b22935817", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/plan.json": "23c395dc51fe3c1d1b5de624ce955ccb69e12a4ee0e638bfb2c0bfabbaf243a1", + "benchmarks/results-20261016/btree-nonlexical/smoke-lazy-pivot/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type-plan.json": "e5ec2d848347e8b5da6bec4178b3e4c069601f3cb6da0e115084660a3704d75d", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0001-r0-nonlexical-pack-baseline.log": "51366c035259c062a07682a8609188b0e1708be7d8d3ed0bd67d40bc88102349", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0001-r0-nonlexical-pack-baseline.stat": "94eb8fe8151de032bb34973721b06e04616979b6efd304586940645daf5ac888", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0002-r0-nonlexical-pack-message-type.log": "9cd588f3eb91c37f8df7a7bbfcae11ba6b57cc6d913ef86c2ae018c846f44913", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0002-r0-nonlexical-pack-message-type.stat": "8a2fdbcac1e08397300f8a74769d44d2ea6e7b516bce51d996c3b49a1b6ca88b", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0003-r0-nonlexical-hit-baseline.log": "7ec1077e9e2c895e9b3d1971f579b1638c80720466679d0f8c4995961fac2c94", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0003-r0-nonlexical-hit-baseline.stat": "27e2c5689c0a12b046a230dbdab47f105cd9dd6840bdce4be08db97c2a4a2427", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0004-r0-nonlexical-hit-message-type.log": "b82aaae24a2109ae6e8234679c9867b130dba097678efefc5e7b74f65a08c0ce", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0004-r0-nonlexical-hit-message-type.stat": "631e00d9ee25011f0fb8dbf07204071ebe93a6725af7ea6a7285ed979650eb09", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0005-r0-nonlexical-miss-baseline.log": "c71ed036e6662da3d980578c865a4c9f62472c4dd276d8d7932e20a6125280a4", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0005-r0-nonlexical-miss-baseline.stat": "15f857bc6c3c50868e0a0384cff727345dcc6badeb262d8c2e38b83c60bfd121", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0006-r0-nonlexical-miss-message-type.log": "abb97fa4ff2115d382d8d05533f37f8f47a80586d180685e33db58218bc1b312", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0006-r0-nonlexical-miss-message-type.stat": "609eabe6867db51635ca2ac60e0bcfc1762d837a90c5760f4c0aff9d848ddbee", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0007-r0-nonlexical-scan1-baseline.log": "caa00b0fa29b82b16c493182edbad6bd0343c876df03f2a87f4e1cb3716dac45", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0007-r0-nonlexical-scan1-baseline.stat": "9d0c95132c711492b2b1d40c0d2d2f85be295372ee2ac6d9f33bd9dcb7691ea9", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0008-r0-nonlexical-scan1-message-type.log": "e4e3bfc9e225b17ef420544b66a875088b86af9f44fa26c8d034cfbbff86820c", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0008-r0-nonlexical-scan1-message-type.stat": "7a68a2db87b8ee5db436e58c56117f6b7a1991aa250656d87966ef898fb34b1b", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0009-r0-nonlexical-scan10000-baseline.log": "284b39e4071ca58bcf4e58375caaa6f14f55b4bd1338f84f626bad57388d82ec", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0009-r0-nonlexical-scan10000-baseline.stat": "fc6d4ee609c7dc05c40f6d3c2574ab5d6227c851e6575f5179113d7822a2f904", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0010-r0-nonlexical-scan10000-message-type.log": "d50e4988ac1b671148f955aae8475ecbe0bfba3c8040350518389d6379860e3c", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0010-r0-nonlexical-scan10000-message-type.stat": "4efe8713f6bcaca0d2f3bb30a4081b2490833843c087dfb2c355970657edf461", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0011-r0-nonlexical-scanfull-baseline.log": "2694d1ac7ca0001ec77e8387176755429134287670eb94f1a347a80f95fed4ac", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0011-r0-nonlexical-scanfull-baseline.stat": "763b250baa172efb8b3d471007e972f17fdef401aeefa8e82a178bfa82eacf6e", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0012-r0-nonlexical-scanfull-message-type.log": "d1582e40b996ff6998b1a3a08b150509d0c7b0e1c9e94fa50136bdc3240ecabb", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0012-r0-nonlexical-scanfull-message-type.stat": "1c271169c168a86b92bc05744c4f9b292dfdf54f1a0c6d92ac849cb853e1ce40", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0013-r0-common-pack-baseline-on.log": "71ede69435b3a13e78537595c4319e63790b3aff621a79d1538af69ec7fc42cc", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0013-r0-common-pack-baseline-on.stat": "72c61af435836d8255d5b6ec694352556fc24bcd6e69e10049c92a93b581a89c", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0014-r0-common-pack-message-type-on.log": "a65f5e6608a722314648516d48ebc1fda638d63804fba206c694d8ca9e088569", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0014-r0-common-pack-message-type-on.stat": "8335b7196b97ddc9f335afacb5eda82f970fb0b423a851277ace79c5691301de", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0015-r0-common-scan1-baseline-on.log": "b471c0e45751d88f4e5f484c99b9d87e8cd95148b6b810e56a7e30350a21021b", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0015-r0-common-scan1-baseline-on.stat": "7d47cb59dce71ffa7fb7f5d9e0c465413be0a0f97aeacc838110853e907b8b2d", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0016-r0-common-scan1-message-type-on.log": "5377475112d4dc00adff73cd40b6c7adb7775abe0566bf57bb7fb6edc59c2a70", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0016-r0-common-scan1-message-type-on.stat": "9b46553fab12f5e14917c1ee0224038947ee493fbcc64a98c315ca6a2212e11d", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0017-r0-common-scanfull-baseline-on.log": "a07b99ea1680e02e6d9d0a9109d098d5bd70dc4bf255e633f86e8119f1f2359a", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0017-r0-common-scanfull-baseline-on.stat": "0a0c2ea3f3becd9c78e6eb503eb35e1e9a8ff3831ae4b266bba88bf137f47ae9", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0018-r0-common-scanfull-message-type-on.log": "c6c2007f28452ba6961fd67c3e32053cf2c4054d4049b6e4e8d7177d37ea8b7b", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/0018-r0-common-scanfull-message-type-on.stat": "da68d28904f68af76732f69e1f8c99e50693dc0fb556ce1d411015486b61fb6f", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/manifest.json": "3af87da006b80150ba0d90ab7a1723c63094930d828125e077d25544d179e689", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/plan.json": "e5ec2d848347e8b5da6bec4178b3e4c069601f3cb6da0e115084660a3704d75d", + "benchmarks/results-20261016/btree-nonlexical/smoke-message-type/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch-plan.json": "ec74055a1665eb97b947837793affcde9cf2874bc1ed4b38d0d370922cbd479a", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0001-r0-nonlexical-pack-baseline.log": "865ea8de7d6a44ab1ed1406823fa3cd1010654f8dfcde32d28e29e4ae51ed301", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0001-r0-nonlexical-pack-baseline.stat": "736ec4144f1d80e00b8d90fc194ef040e171ee04fb650c578b9db3c33795a5ab", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0002-r0-nonlexical-pack-prefix-scratch.log": "03b0fe33531d693698a2c95ce4e90a6fb9151fcb460ea9dec89046a2aaf32d3d", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0002-r0-nonlexical-pack-prefix-scratch.stat": "1021fd356375d35f832ed40f9249dca02a3452b3c94049987b62ccab37dbe691", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0003-r0-nonlexical-hit-baseline.log": "ba8a95abb4dbf4d86eb65481914681e16dab1f92c0bc839290eaea6bd3700090", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0003-r0-nonlexical-hit-baseline.stat": "ccaca0e207dd941a34dca4105ea86e3187467ad0758a275250e84d1a4e96e447", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0004-r0-nonlexical-hit-prefix-scratch.log": "906012ccf45c106ac55caeb8cd670d0b9f4f2da69359537ae7316a3ac9815a17", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0004-r0-nonlexical-hit-prefix-scratch.stat": "f01613317567931c0db8e4aa9fe28907b7afc844732af19192761375e67b6f3e", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0005-r0-nonlexical-miss-baseline.log": "c5075f2b66befaa2d4d1dfdc716513a550569c0ef1f2ec0db937f251c34aac1e", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0005-r0-nonlexical-miss-baseline.stat": "1e43fcf282c6ae022bf89da2f46aab02d3bf671daee608fc274221ffc909c177", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0006-r0-nonlexical-miss-prefix-scratch.log": "cb33afc6471c333c42f2ada403008ea13d3f8f795c19f1af051dc27cb9c3b622", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0006-r0-nonlexical-miss-prefix-scratch.stat": "3193e3736700d77f56584d273c8b3dcc7672f3fda61e267bf644c9d177feb767", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0007-r0-nonlexical-scan1-baseline.log": "0823fb76e2c80479f7c6b150fec7d6faccda54cfd69c0a30535d48021b12b002", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0007-r0-nonlexical-scan1-baseline.stat": "b1d590ecb6d936e32a0fad70c3d5e134528487984f36cbf46afb63123843007f", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0008-r0-nonlexical-scan1-prefix-scratch.log": "79977db4f67dd96b6f168f0539b6346daa77380f0b5ff742831050a78f2933e3", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0008-r0-nonlexical-scan1-prefix-scratch.stat": "56b3323ec323063ba085e3775dc44a04189d067c4123cc3793b0534ecc02159f", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0009-r0-nonlexical-scan10000-baseline.log": "13ec75d781a5da3de71558e4cc215739a0bf964aaf2f878fd8c28c019d2aec6f", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0009-r0-nonlexical-scan10000-baseline.stat": "65e1d16427d497d46039348eb7fbfd4d89d7cd636a6e6e24760480e4c6b2597f", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0010-r0-nonlexical-scan10000-prefix-scratch.log": "31f6b15af8773a2b72c6f36aedcc917c4f7e586bfd2b91acceb637d2a49dc871", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0010-r0-nonlexical-scan10000-prefix-scratch.stat": "56d908a035663b26c57662686e177ef6ca505f9018eff6988048d43912854f35", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0011-r0-nonlexical-scanfull-baseline.log": "7b1e43c2e838e3f1630a39192bef63fd6386cd8fb66d566923e31ba03fce0ca2", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0011-r0-nonlexical-scanfull-baseline.stat": "a7ecc9788e91b1c191ab964d69063d02f1304f86b78c08b18a6b0079e943238e", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0012-r0-nonlexical-scanfull-prefix-scratch.log": "5d7e1a52168348136292cbd7adf38dface9c0ac6c361357973d0aa0eb8a8faa2", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0012-r0-nonlexical-scanfull-prefix-scratch.stat": "15a0f95a9c21db0c05de03e4f3225ac158bd990f69ac9ed6327d03e2a9110cad", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0013-r0-common-pack-baseline-on.log": "0a553578a39cc8069bb109ef9dafb9e2b7a820a4b4e5b4bbdfbe28903e0a8aac", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0013-r0-common-pack-baseline-on.stat": "8cc7aebf3c3835c2707507729636ac0e03386660c549c27fb2af05713b08d6ae", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0014-r0-common-pack-prefix-scratch-on.log": "9aa320a02b27013d231dfcd1aa7c3937f4487d874a904f1c24a9daf419b1eb54", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0014-r0-common-pack-prefix-scratch-on.stat": "07c35e2ce7c5269a96206979f1c44f93324d342cdc3b6b6c299a3d7e60222cd2", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0015-r0-common-scan1-baseline-on.log": "6a858eb901de08329db2ab19b84da63fdb878dc6fe9a65686bc86cb232f69f44", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0015-r0-common-scan1-baseline-on.stat": "cd623a62609b191c97be8e0515185693d56cccce0bea6f10fd0a5e3c50aa88b7", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0016-r0-common-scan1-prefix-scratch-on.log": "7b55328e26e643685c9d055d4c544e846b47821d055b7960e88e8afaf278e3c1", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0016-r0-common-scan1-prefix-scratch-on.stat": "4669adcdb70244b7460949bd3242b932248fac84a97f2cb5a01f3354547fbd65", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0017-r0-common-scanfull-baseline-on.log": "33f7539042e5e3460bbac68a0c4084097ed6d05f14e5807dc3866e075b4b5c9e", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0017-r0-common-scanfull-baseline-on.stat": "c585956e8b8562ac06afd90ebd3df76f312df1d9a81e6a0a5161439b4035a248", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0018-r0-common-scanfull-prefix-scratch-on.log": "90db9ed4ba7774aa71f3fe96b29543f0825c925f46ae9c24ecb99f07e36d06e9", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/0018-r0-common-scanfull-prefix-scratch-on.stat": "762dbd919b7871efa41c0b9f1a3be15f5375ed42b9ced1323c57f271210eea0d", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/build.json": "bd338426fb8bb0834f3fdb6bf5e1585229580cc3e71cc4cbd8ed6b48ebdc6287", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/manifest.json": "e38ca40b4d60d3d92f657541c12bdf65409ed2d93072156882f3804bcda88eb8", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/plan.json": "ec74055a1665eb97b947837793affcde9cf2874bc1ed4b38d0d370922cbd479a", + "benchmarks/results-20261016/btree-nonlexical/smoke-prefix-scratch/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob-plan.json": "79c792601d2f0e53dd79c689481dc5be68170657ada0c8460ec4804170358af7", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0001-r0-nonlexical-pack-baseline.log": "8d7dcc6ba1d201f4b96af902d8e23c30d172364b0153165d19675c1574613c66", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0001-r0-nonlexical-pack-baseline.stat": "0a301c982415db84c3b68383e685abda7ec03012f89631873557aa3e2927d7a3", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0002-r0-nonlexical-pack-rare-blob.log": "33d2ffd2485d6a1415c2e010ed53e5a3e97621c5eee2ad1f0e6f8c6c80f266db", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0002-r0-nonlexical-pack-rare-blob.stat": "e282d335ab595dd683eea705562932db3d44eee64daf167c4268241c77c9c8c1", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0003-r0-nonlexical-hit-baseline.log": "940a429fc199f44d22d3b4f1de17b5522ea1ecd31624c3233eba8a7f10c74c8f", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0003-r0-nonlexical-hit-baseline.stat": "6abfbe8d5e8cb11acc441ba8e5e17eddb4111cac874826727d8c9c94c6068761", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0004-r0-nonlexical-hit-rare-blob.log": "688989ea94667c45ccebaa0172061da6417adb0d266917e9de329bf67d53855e", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0004-r0-nonlexical-hit-rare-blob.stat": "b1402bc4e18c565dce9c70cd55ef28643749e9406b464bd4e4d41dd1ff713c0c", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0005-r0-nonlexical-miss-baseline.log": "f72272d6f06943410418e3de9ef74b85ae9208335979c9d03b80b65bb525c14f", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0005-r0-nonlexical-miss-baseline.stat": "c1859529a737c2977d65dfad1298c818f0502da19acea8f34ca1e2beb20c4a15", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0006-r0-nonlexical-miss-rare-blob.log": "80a46a1efd413bc13abbe21079e6f13184e7ed9295b130f5ff2b5c2cb4e464e0", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0006-r0-nonlexical-miss-rare-blob.stat": "088b3fbf0815af8ab3f52e9295e21302073207ff3a04e9e6ce50dfe512513510", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0007-r0-nonlexical-scan1-baseline.log": "c2f2a7eaee126ad394df7f3ef52d632e9470466d78f2bcb405bf97c31995936e", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0007-r0-nonlexical-scan1-baseline.stat": "9a900a262f9fe8f8885e60c901b415b28e441167e3dd45f14e4b2d17e650534f", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0008-r0-nonlexical-scan1-rare-blob.log": "a620f95452550cae6d16acfef2798e9aafde66ee4c0adbe93e3137b12ec74f8f", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0008-r0-nonlexical-scan1-rare-blob.stat": "8a4f1038fb36d49434c22464c64f5c46e2fd91ba6a6db0fb63d7a93a9f53e088", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0009-r0-nonlexical-scan10000-baseline.log": "642178af47d90a47eb52ba676ec3ccebb8d659176317da2fc233483a2de5c6ed", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0009-r0-nonlexical-scan10000-baseline.stat": "16adb754c1631773cba308412a86d981ff5a197d40a577706979a48b50d2b3dd", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0010-r0-nonlexical-scan10000-rare-blob.log": "9c76f2f7653780c6fa8ecf360a8a57036962dbce8b1bde66ac0189eb0e5eaa5a", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0010-r0-nonlexical-scan10000-rare-blob.stat": "ea3720a7110dd77c764671554376e5aed20dd20bfe886848d0410258b84ca03b", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0011-r0-nonlexical-scanfull-baseline.log": "245babfd32e16ec77ccc9f9e6fd96974bf8a0aa38a82a99a7754cd1ef5766035", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0011-r0-nonlexical-scanfull-baseline.stat": "58aeb43ccfda2a08cf4d86ca1665131a4ba16d01fe5175b86a0e9e5c642e830f", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0012-r0-nonlexical-scanfull-rare-blob.log": "74581e6024c6f64077446b935b06c7d0900d9ba066faaab3f77a0b6742a57d37", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0012-r0-nonlexical-scanfull-rare-blob.stat": "bfb5316ed63c68130734ce8e9cd5d53c673cdbb010a439f398db555b15dee25b", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0013-r0-common-pack-baseline-on.log": "40ebb0fa996c81db6f1a9e5c9a5e6b7a247c4d7b71c60808bf9363c79e3900c5", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0013-r0-common-pack-baseline-on.stat": "c52202d5bcae1948e20f2e16c71db6d0721ebe62560a0f1499efca2e9bd83dcc", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0014-r0-common-pack-rare-blob-on.log": "eee408f7e71e19a6ddc506e29aff1ad95f9519b8e2d4190e2b25812f8eee2be9", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0014-r0-common-pack-rare-blob-on.stat": "2bb39628bb28f0231ed228edc5a446acdbe2aabe354a38d49477f38aac628fb7", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0015-r0-common-scan1-baseline-on.log": "fcd277446414812b3dd4eae8a8a56a43728662d5555fd56b4d8d530bd58a8487", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0015-r0-common-scan1-baseline-on.stat": "d46f2cd508b038d8306ad8432f5e71c1a50053287e57db78a5ec6d1922ba2585", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0016-r0-common-scan1-rare-blob-on.log": "8cb0bfa7512656657fc149e87b6b5a7180a8cfa3619faae321f94faef9526481", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0016-r0-common-scan1-rare-blob-on.stat": "92be36de662ea8e13cc99abdd39a096d248b069145a532608e210a32b81c30d9", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0017-r0-common-scanfull-baseline-on.log": "0149ae55b25bda3ff7ee5f86bb723bdfb254e1a92ad5fe3a983d752387979a34", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0017-r0-common-scanfull-baseline-on.stat": "df7ec24e0b9cbe498c5fc0529b6f5a12bb26bed5364c727a42ab978d62bb0071", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0018-r0-common-scanfull-rare-blob-on.log": "fab777414786bf07f71973fcf8c418062ea37212b50e03bbd749fa890036aecf", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/0018-r0-common-scanfull-rare-blob-on.stat": "e688d2286bce416bb2a24352ed4899495651ad5a2f83d322a553bb8b0d2c0841", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/build.json": "5b9d626df2263f08bbfaac71168ca77be744503ba264c4d5ac8149248df5def3", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/manifest.json": "dceb5623b10a708399ac76b67077b40d9efdc94f13288b31336533701d1d0e93", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/plan.json": "79c792601d2f0e53dd79c689481dc5be68170657ada0c8460ec4804170358af7", + "benchmarks/results-20261016/btree-nonlexical/smoke-rare-blob/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment-plan.json": "932e9d37d5286658bac00e879ae8d592886d9beddceb439f608bb989a59db6a9", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0001-r0-nonlexical-pack-baseline.log": "5bdca524932957ce1e2247a2602b662f62d6b5d7294dbfc093130fa0560be0e5", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0001-r0-nonlexical-pack-baseline.stat": "ec5544197f10a94a7715f13687707f4c0c80b1769140ed2a46205880c2d75f40", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0002-r0-nonlexical-pack-selected-io-alignment.log": "c2f6703b5a65bf5f9ef2d61394c8a2dc229dddd1ac7e6ba99fdf64bef9d84721", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0002-r0-nonlexical-pack-selected-io-alignment.stat": "3ff34bb7470c4f62e39330320490000a751a12bc56bbff92e9ae39c35fd87bb3", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0003-r0-nonlexical-hit-baseline.log": "824daacfceb3e4e6dd86673a653dc5f311aee67620fda49d26521873a47dcc8b", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0003-r0-nonlexical-hit-baseline.stat": "b1fd838c80406ff4c480b056fc311a12d5c6282a7ccd90410830df64ae882d88", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0004-r0-nonlexical-hit-selected-io-alignment.log": "d4f15e7ab622372d6eb3b9ab7a2386b8dc6be399dfac9d11aa23decf34d8647c", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0004-r0-nonlexical-hit-selected-io-alignment.stat": "94a04473abe00a28fc933ef3c3354fe93d6a194a2fba5eee3418b19ea8c4c2d3", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0005-r0-nonlexical-miss-baseline.log": "d12422f172a436bc860d02ed91936b03c8e213bad1e0364b03932d8c3f095d5f", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0005-r0-nonlexical-miss-baseline.stat": "735b43d3d5766ac40a7d424e6750cf9ce148ae4d7e03fed537e4db015c01eb3b", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0006-r0-nonlexical-miss-selected-io-alignment.log": "633e8175a9f2ffd267d8ac0d0c23cc0c88389c050ad8427ae2106559ee16fd67", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0006-r0-nonlexical-miss-selected-io-alignment.stat": "db6c392a84fd77181526cb051c0c98e7270f76e6598355f7431d9c48add92d97", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0007-r0-nonlexical-scan1-baseline.log": "b5bd834643f8fbc941236ced71575d9fafa9d8c26899d5d39be59a4981b9f81d", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0007-r0-nonlexical-scan1-baseline.stat": "28e3a12dce5ecfdf3e0e4b80c2804c6edb7b375279a786aae88e3dd3824c76ac", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0008-r0-nonlexical-scan1-selected-io-alignment.log": "71672ef2d271b58c784eb11a31dff5871e1267870682fe2616388b82a50f5dc6", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0008-r0-nonlexical-scan1-selected-io-alignment.stat": "e87d5010588a161d99960de85143fbceda76f97c1f633dc191f4482013c137f7", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0009-r0-nonlexical-scan10000-baseline.log": "b9e65532389ab69aceb83a362f3e052b2e6facd153ebf0faf60a178a60a0a875", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0009-r0-nonlexical-scan10000-baseline.stat": "46e13c26a762ae86c33ce0cc7e6464a3ac8281398b2674f4e4235dfcb18ac6e9", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0010-r0-nonlexical-scan10000-selected-io-alignment.log": "3d54cd14cef9fb44066bb0f46a6f58fac230557001d9fc820b7666748c48a94a", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0010-r0-nonlexical-scan10000-selected-io-alignment.stat": "1cefe735abf298804a44aa7d132ded5988c8965cccd5156b231ba829b025d1f7", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0011-r0-nonlexical-scanfull-baseline.log": "93fb6622a3f0c80f85424c2ad6d12948e5b6a45ec79d732edd84407dc922a05d", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0011-r0-nonlexical-scanfull-baseline.stat": "1157e05040e306e50a7b0f026c0572b110f20b64e500faab4b3531fcbc093bd9", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0012-r0-nonlexical-scanfull-selected-io-alignment.log": "88ac8cb15438c73482878fdec8fffcf3c3718337cd05fc8b4205755534d1cdd1", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0012-r0-nonlexical-scanfull-selected-io-alignment.stat": "716b80780fe3f320c91326a3250c5d89b5f86a183badd8eddfe08a0816e9e60f", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0013-r0-common-pack-baseline-on.log": "60e5b2dea508eecd7add9b5544ca6d87bdaa127889f1c9c293c61b2d89bcc443", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0013-r0-common-pack-baseline-on.stat": "d00a77e5be074beb16e25308f4a74ea9c9c7a70744b30b6a4d71880cad4bd75d", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0014-r0-common-pack-selected-io-alignment-on.log": "af2c99f4e262c1ef4cdf57bbf579fbb42ebc65edf21703540a95605bd4013fbc", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0014-r0-common-pack-selected-io-alignment-on.stat": "b07b62c1a49e501af403be6e58a76a0836a272429db3585a0dfcfd2c83111987", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0015-r0-common-scan1-baseline-on.log": "c4cca7097f6dcbc6a44507a3381fc7502ec0226e5a8080aef5a6b32cb98ebf95", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0015-r0-common-scan1-baseline-on.stat": "fcc7d43070260d0b637f1d9adde252f4289422dd1bf7c27e88c0e3f0bef26646", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0016-r0-common-scan1-selected-io-alignment-on.log": "aa1fe27c9a91799868496a1650349e43c3c39637a178c4ad93e3b49e7037e8fe", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0016-r0-common-scan1-selected-io-alignment-on.stat": "d4a7d4289878eec95dcdfc22d921130bf9860ebfba75b3a20ede513aff61055c", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0017-r0-common-scanfull-baseline-on.log": "fffc1242d222d0af98add462954f63b2ed9cbd1ee126e732d8dbf6ec54f01422", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0017-r0-common-scanfull-baseline-on.stat": "a9a5b85ac74386d6e19e9ddd4cff9c9994b5f3b279dbf8484c75a3b4278e8053", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0018-r0-common-scanfull-selected-io-alignment-on.log": "9ef8fdc7d17b8d0fae95d5bbc46c65858a771dc3edf7b7749bed9b0b40cf4c41", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/0018-r0-common-scanfull-selected-io-alignment-on.stat": "396161f47a65291ee2f2c0bd5c7a970b273f6c340338941b8199316fe661a7d7", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/analyze.py": "93adbff4dc404d122cdff1cf93be9da8fb3143f46f3ee6a8a846265cfadb78d0", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/build.json": "c6e8058d572fa4e60a6d39bb6a2d0b0e268f52464b5b65866240b93d25e88b75", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/manifest.json": "29e209fea9586a4c1468937e9520755f83f990981e69a93996bd1ada81847c32", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/plan.json": "932e9d37d5286658bac00e879ae8d592886d9beddceb439f608bb989a59db6a9", + "benchmarks/results-20261016/btree-nonlexical/smoke-selected-io-alignment/runner.py": "bad9028673ac10388994ad0ccba8f1015026adb7a7e42b843764504e43b18c68", + "benchmarks/results-20261016/btree-nonlexical/tooling-origin.json": "8386881cb46fb19393101d1b22385fc481a8093dc4849b327b09662d91bf3b22", + "benchmarks/results-20261016/btree-nonlexical/validate_selected.py": "0acf4b32497bbedb06b3f36cb7999f49c82b23510527b076d77ded913fe1b2e3", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/compiler.json": "ee4e30db494d6ca08a7cfce0f71f7f9447bfb428fd3ff10471b0b4734186142f", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/invocation.json": "51578aa78f183e88cc3530f93fd0cbe4948ee2ecc925e4256d28edefad0e2984", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/results.json": "174c3e53a8abea0227db35f59b2d7f7c81f316928ba2dbdeeb1261dda302bc44", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizer-capability-build.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizer-capability-run.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-btree.log": "33b7404499b6f4d35e6f671f93e29889bd5736c81dbe068150539004f57a904d", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-build-files.json": "6da6e40b2b42ca9ef8635f1e15ba07d47d1b8c199eea7de286dace430c74abdc", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-build.log": "179e3e1683f1edb16b746e1862164c56e352353a0fc18ef926b1fa7dabb6eed0", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_bounded_iterator_start_normalization.log": "533e0ac4429672c324059a5fcabc72f8763d4c4a33e5c1863271b02c02685933", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_branch_prefix_malformed_leaf_entries.log": "456ac95fca3dd789ec8b7fb94900d2a5836c6819133b968eda724e68257bec05", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_branch_prefix_minimum.log": "fda8a720d654215f0892acab47953473f6fac2ae31d8ceeb77039bb6254b472a", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_branch_prefix_roundtrip.log": "71cfcacb4fb35fe7ac41d9eb58ef86c20a2122855541bcd9396ef0bd5a92f206", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_branch_prefix_variable_iterator.log": "9b4c5ae8ce925b31874689e27b462e73ff89cf52c8ddf2def1609095745c4c98", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_immutable_branch_custom_comparator.log": "9d48e529e6619005635037351059fdd06886779a2cbc179b2504ac141a919220", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_iterator_custom_comparator.log": "7c084e60bf49bce6dbd452b8f9a82648c2502a917459f20ec27b21a98541b39b", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_iterator_prev_and_next.log": "fb4526813433fd33ba3b62f82fe725e8718071294661beba874f2df3d22c8ba0", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_range_init_error_cleanup_preserves_branches.log": "29085d6531f9fe3cd662762153a9ee8831cf310cdb64abad835b408097efc59c", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sanitizers-splinterdb_quick-test_value_size_gt_max_value_size.log": "6ca45b096ec9fe5fe5b952ed7d623e76f291e728d970c5826bfa687257b00354", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sha256.json": "31da0eb803c4544e3e214299bea4bc225f5ffcdcba08d3c99e2885f9c458ff72", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sources-after.json": "013bc777296b5e9f8ea3a62e1cd698b19c5bbe3043eb9fc3cd903df029edf527", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/sources-before.json": "013bc777296b5e9f8ea3a62e1cd698b19c5bbe3043eb9fc3cd903df029edf527", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/storage.json": "f6b8f567d79fe8b895dee8288b506c4b99b05586761e7a2fc75d4ccabaaef73f", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/summary.json": "af9e36fff5f5c0b14cb9e52bb651226665dbda69ec5d755b301fe49a83b01386", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/test-overlay-00-apply.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/test-overlay-00-check.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/test-overlay-00.patch": "bf964decfeda41d5b12eb686eff5ea1da498c99c7681e65beeb8ef5135c4c9c3", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/test-overlays.json": "893e71bf7ca2b8bfd1124d2f9f54e981ec98fd0cc82120856c3d1895ddc0be0b", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/test-plan.json": "160a8b1659bc4399a282f0a35721e7e1d33958e135289fbececc399c2012da90", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/timed-build.json": "e981379b2e93d800e944f0035669e3fce19742acc980dc2d39e510e3905a44b2", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/timed-files-after.json": "33ac4b5d9c0ad65d52c07836692255c5fa3d54883e6f5f41d499c7a546725be6", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/timed-files-before.json": "33ac4b5d9c0ad65d52c07836692255c5fa3d54883e6f5f41d499c7a546725be6", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/validate_selected.py": "0acf4b32497bbedb06b3f36cb7999f49c82b23510527b076d77ded913fe1b2e3", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/validation-sources-after.json": "424ed9112cd47f26bfc3c042fb136fde46636ac665c436ef4c9a8c31492e16a0", + "benchmarks/results-20261016/btree-nonlexical/validation/baseline-alignment-reproduction/validation-sources-before.json": "424ed9112cd47f26bfc3c042fb136fde46636ac665c436ef4c9a8c31492e16a0", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/compiler.json": "ee4e30db494d6ca08a7cfce0f71f7f9447bfb428fd3ff10471b0b4734186142f", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree.log": "3d624e8a35351a2fe56ee630a30f4eaddf38f4d44dabcd322634254474b4af2e", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree_stress-copied_iterator_bounds.log": "5dab75eb5b8913d72713ef1256788fc952115959f7fcac2a7bbecb3427ffd78b", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree_stress-copied_iterator_prefetch.log": "d2aa28873ad2c1d270d55e0a1bda84f1961dbceee5941ed59e2c28ddc20dbd6d", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree_stress-copied_iterator_split_on_release.log": "c431c92d4871782fa5eacbf4069402476ea08cd8b5ffce103b29bd6d52fda5ea", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree_stress-count_in_range_returns_lookup_error.log": "bd51af66ec3811633041a661c92b3a3ce4ce0f0558791e371e882af976764a6a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-btree_stress-iterator_endpoint_error_is_returned_by_init.log": "d0a088ba30e775964d1deacd7a7523ffc5d16843ded82be9bc9f9b30f668eb21", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-build-files.json": "1c1a39ba9d0f1d2c7837cb265585a662717d8563436b43fbd4678e1f1b5ecdae", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-build.log": "229d39fdcf6cc3d4d50c01d1466a98d8a0e110393a8702e41b116f31bcc097af", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_blob_checksums.log": "7d15542ca86d12c6da67ca4b9cea6838fcc93f1ebe689e6cbe0fabf956551126", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_blob_descriptor_sizes.log": "4170fde88b7e58c7be0de428e9ea64e06b5474de4af9383b42053b3b9d8d80e8", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_btree_pack_abort_releases_reserved_extents.log": "09aaab7e2de0b812d137b1fdf09587dacae51d6fb8d8307705c6fc6f0057664f", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_btree_pack_rejects_counter_overflow.log": "56a29828f20adc59145906affb431cbaccb9c4b30cdabf11f25f15495ef7b8f1", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_cache_read_errors_reach_core_operations.log": "33fa4d94234e74c122932d9a17173ce8636eab0fd8d1b9cd6598b5715947de4e", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_invalid_branch_reference_rejected.log": "80c6e8cea1f633e6418a8cb0241693e2dd514c3f64a3279f4d8a6a48b15860cd", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_malformed_trunk_child_height.log": "0c5268e3aa228dfbca562b2224659fd269f217bd4fed97d3bbde7edfe8cad5c7", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_malformed_trunk_pivot_bundle.log": "964de3bef84f4126fab1f5682cf6d2c0e3b39327ad003223a071b4bce7219454", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinter-test_malformed_trunk_pivot_stats.log": "13c9253a619dffae6d2f9873443d0b0cb33f69bb1da64c87f381a7460605bc3f", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/debug-splinterdb_quick.log": "fe604c9039bd34b8dfebbf0dd37771c3c49482d8dd6d9bd9d97848d54ea743c4", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree.log": "3d624e8a35351a2fe56ee630a30f4eaddf38f4d44dabcd322634254474b4af2e", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree_stress-copied_iterator_bounds.log": "34f308eb2a8c4b36ecf4be036a40fcb73c7fd715dcb01fc6d6d39b1fdf2f85b1", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree_stress-copied_iterator_prefetch.log": "c335a352809e14c83806d0382bdbbecba337f88bf8202ebf50e7f4023239600d", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree_stress-copied_iterator_split_on_release.log": "e66239bb0cf61fb2e52a7f175f2b73e3caab7120e8804e872bcab05235ee5541", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree_stress-count_in_range_returns_lookup_error.log": "1957176e8fda150f878bef3c843291bbf31940e9723d86e830772ad480458c28", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-btree_stress-iterator_endpoint_error_is_returned_by_init.log": "d0a088ba30e775964d1deacd7a7523ffc5d16843ded82be9bc9f9b30f668eb21", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-build-files.json": "bde18316f064624f99fc1ad286123ec0966363ede6d2415e4c5c72783c237fa7", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-build.log": "d320a7a9a96ed7fa47e51966d35f2ad0e301cc2e94d5f38f7c466a5496992a72", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_blob_checksums.log": "2c4bdbbeb586ba3687e16a120f28bb87b115dec3518f556f283ec52fb93b702d", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_blob_descriptor_sizes.log": "a711aaa60fe1cd96eecefd5efc145e06822cc1a9612130708712cd409f6cafd7", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_btree_pack_abort_releases_reserved_extents.log": "5189dc486040cc75e68f3a69de448c0189f19cd429bc604080a147cd689c7b6c", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_btree_pack_rejects_counter_overflow.log": "d10ba874071f1ea140189681ff89d5697a59ddfe2d764015486d02e1eeb405ad", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_cache_read_errors_reach_core_operations.log": "0d4a3135d1efa4f03f0d929637fca1d7956303b91f84c3011ecd485fe11b5c84", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_invalid_branch_reference_rejected.log": "740986b46cd60f6139f1d643af1b9fabaeffef020317eba748dc304790622950", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_malformed_trunk_child_height.log": "42654c954ac6e750b7ae8cf7b8310175a00836b9d3dca0bb84a889e294e59ea5", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_malformed_trunk_pivot_bundle.log": "3ab1b2dc62f56db77113a7a9da447504e2b337727246a520f2e4ceae9c242628", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinter-test_malformed_trunk_pivot_stats.log": "51451b6624e8966fabc72d07e502189698afa031250c87a033f8ab7558225fe1", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_bounded_iterator_start_normalization.log": "a2be84564e938c0c37911541d35d7885f2626af27e7a84977173f78dbc78319c", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_branch_prefix_malformed_leaf_entries.log": "616090f18099288723319e5f5a1a162b1e77a10316e84656d0a6a794e3775604", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_branch_prefix_minimum.log": "4be99b11fc62b1a115ebaba944efef5b65706630552fe4a5a88fc963502459ac", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_branch_prefix_roundtrip.log": "84e09f395673b75689345172052d0330178c0b1a27cb311b4e3b523922b6c846", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_branch_prefix_variable_iterator.log": "6667a5a406dd12ac4c7e88d5c126792e4de1a48047fcb36d4ded6ecfee9f931d", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_immutable_branch_custom_comparator.log": "5131e01d1b4756cbc04e48c242412dc83ae4722e943c7f2f96862445a3eb603a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_iterator_custom_comparator.log": "83345dc0a115d8285c33d6722d7017e2e8be4430ec78faa16a00545267443f39", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_iterator_prev_and_next.log": "9ec302d2f1b906f10a51c38b6c722ad7ad3bd5469992db9373607c4f168e02e1", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_range_init_error_cleanup_preserves_branches.log": "53e543bd14cf60d03b8591fdf2f5989f450a45263a893278764f48c064692fde", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/fault-splinterdb_quick-test_value_size_gt_max_value_size.log": "f05a00e1f8c8288fc5845688db6a79ce8b4688a3d824c6512523e0a11169d69e", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/invocation.json": "137b4b9106aefd3f038def38853aa5677947f0a401649947a9c21b2800ea642a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/results.json": "15a15b6d270ef05caa84848faad79376b4e616c82174cd6fbfac771fb7185548", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizer-capability-build.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizer-capability-run.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-btree.log": "50427f353e04b69603a78c5cabc2909c0360cf6722d29fcda0015ca5be39a1f2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-build-files.json": "cfbeb28e2902323d73b82ec9835ba8c91e6354886e7d8d841bb365af58df4d63", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-build.log": "b8a6510d95169c53c41f716978baf6a7419785910c55d8cc7abea20ed2b3db8a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_bounded_iterator_start_normalization.log": "31fe12db87a797d37c8cc2307db068acfa236e807dac1b2cb7ce6ea07ca7ea34", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_branch_prefix_malformed_leaf_entries.log": "28b3f8bd14e8e1695c4b9be7fb84701eb4dd1ad40362143d1ab0a267f9bdde42", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_branch_prefix_minimum.log": "9187d8b71f8213c7fcf511394b667a2f4d3bbd270c93e6657030122637466106", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_branch_prefix_roundtrip.log": "75177414d193819429b6834a12d6cf20c1321d0fd63dc8eac93cbf87a0755d9a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_branch_prefix_variable_iterator.log": "d88231ddd204cfbeebe6241b8f2896deae7b94dca3659988e7893db2da0637ca", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_immutable_branch_custom_comparator.log": "17de349e02bb279d76603dadc5238ce2340d4075b5b52f0dd2df601ab5390a67", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_iterator_custom_comparator.log": "16ad1ea8afdeb4c88d24725ba4f9e490c390ea975d0018db40d976db5b536009", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_iterator_prev_and_next.log": "eface6b7d8ecfd67444dbed58bfb7eed0235e1a73efe4f3bd70c0a4ef8cd5ca2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_range_init_error_cleanup_preserves_branches.log": "af948400caf32b325b8dc802ce345ecc72a6d90c7c744cc84382d84649d05ab9", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sanitizers-splinterdb_quick-test_value_size_gt_max_value_size.log": "29ac718661d292608eec18528b457365130b54950902de81aca4efb19d42e97c", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sha256.json": "7e7c6fceb034b0da21ea7e74beaba4189f3e38de08d66c7701379edee4620132", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sources-after.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/sources-before.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/storage.json": "c4fade193660616190244b2464aec2fd83357c5cb08ab905455beb70cc5573fd", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/summary.json": "c2657bb600e42a6cb81f1768b5299399637afcf67a0269d80149254fc3a9eead", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/test-overlay-00-apply.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/test-overlay-00-check.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/test-overlay-00.patch": "bf964decfeda41d5b12eb686eff5ea1da498c99c7681e65beeb8ef5135c4c9c3", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/test-overlays.json": "35610e2fc7f568a47333e39c7d9e21a8a7143665548be13f64e24d72c8426aa6", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/test-plan.json": "160a8b1659bc4399a282f0a35721e7e1d33958e135289fbececc399c2012da90", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/timed-build.json": "ea9af5d74faa9f657118e95de9343c92a378ae1588f3af2b1546404d7e7753b4", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/timed-files-after.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/timed-files-before.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/validate_selected.py": "0acf4b32497bbedb06b3f36cb7999f49c82b23510527b076d77ded913fe1b2e3", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/validation-sources-after.json": "75035336c1206f8e9dd7de67d1df87f0706fe49275a7d2e379602ecf4270de63", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-postconfirmation-extra/validation-sources-before.json": "75035336c1206f8e9dd7de67d1df87f0706fe49275a7d2e379602ecf4270de63", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/compiler.json": "ee4e30db494d6ca08a7cfce0f71f7f9447bfb428fd3ff10471b0b4734186142f", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/invocation.json": "b748d3d8330d75438e30e46b9afea56d3891524fd2cb1546bb6f400e5cd8346a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree.log": "1159d05f22b0856c2e5eb66afcb51bf70db527e8597e2f4aef0d4dce5894cead", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree_stress-copied_iterator_bounds.log": "e803a5b658080e4c1a8616c693fa0d99c9e34ea2e85f24b671d8c6b333e4615a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree_stress-copied_iterator_prefetch.log": "7fbfe7e26e4a0bb242e745375842db494f2952ba175036345ff4590dafd64f53", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree_stress-copied_iterator_split_on_release.log": "c5149a7d70bbf439f01a62c6a1f46c64d340aef037ccea464c385dffb83546b5", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree_stress-count_in_range_returns_lookup_error.log": "86bcb38ff72f4ecd7575b73e20e41f1d7bbb572a41fd2ff9747b502ea2e97dd1", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-btree_stress-iterator_endpoint_error_is_returned_by_init.log": "7488857613e2a4b2dc9287d0b71b746f71f9eb7d509c89721c2de739df3f067a", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-build-files.json": "119feded0aaf4182cb32e8bc7e99de19ba5556c8e24e0a5535a3b173effe9ad4", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-build.log": "7a6df6345b90dd9affe512da8b21abe4fa2d9355e722430be952535f3c90cdb7", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_blob_checksums.log": "75cfc3c2a2ad9d8b3adb7fa8f4dddf2cafaa27df4c072e643b5ebf6a522e5b86", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_blob_descriptor_sizes.log": "4eb2ece5c3669e64acbe58b8b3287855058d9ba601f7b780e62b9ac98d55725e", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_btree_pack_abort_releases_reserved_extents.log": "c343a77e151db6d24f15b68dd23e3dcbb231f85b69f763247cb698b9e4dc3f59", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_btree_pack_rejects_counter_overflow.log": "1f4a6e377aaed03acd58006a488d961d5cd74c0e23026f26b201e34011f3b931", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_cache_read_errors_reach_core_operations.log": "43aa26fcb1b55f89cf565fd73af24b2aa5f92b4e9cd40871b5b13f880d384bbe", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_invalid_branch_reference_rejected.log": "93e23e15edd5dd66ec5258c522084a845840f1b6631bf1b6906b69091ae7b863", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_malformed_trunk_child_height.log": "6b3206e759abe2a529225d8ae2c241ceb16c3d1fefc5b18bd4171171fbc08a08", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_malformed_trunk_pivot_bundle.log": "9f4067797a8c784eb23a555d59929f75d6f3ac1a9fe81292fb46e6db08051edb", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinter-test_malformed_trunk_pivot_stats.log": "e39f8e0caf442c586e6f90d6729899fc5b8549ea9b9e9f2a498f86897b63d683", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/release-splinterdb_quick.log": "8c9acb3557955e25cc866011ed7b34adb93dcaab5c03017dcf0a54d48a2288e2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/results.json": "73aad02d129246f813e461b094fa7050a7d2ca3d565bff8813ebc2eb8820c2a9", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/sha256.json": "bda7f61cf0c5199d8be8f841012d0c4c2cdea68f3d8e6d96e2fe1b62efb35d44", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/sources-after.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/sources-before.json": "28e50dcf2def0e92ff1fbc91db77bb3e0a0221577cb944bcf7a895ab87b94713", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/storage.json": "ac1f8e40dff99f9d88b93cb66a88d453417950a69cdacc6686ae7420f05a7ba9", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/summary.json": "d1126660e840a3b7adb3fd4759f16a46295fcc372d199da9f683f174107e026c", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/test-overlay-00-apply.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/test-overlay-00-check.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/test-overlay-00.patch": "bf964decfeda41d5b12eb686eff5ea1da498c99c7681e65beeb8ef5135c4c9c3", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/test-overlays.json": "7b33896ea6ff8fac59a0a938f6c35c5bd6692fe316ebd3976f89c2e3118747d9", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/test-plan.json": "160a8b1659bc4399a282f0a35721e7e1d33958e135289fbececc399c2012da90", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/timed-build.json": "ea9af5d74faa9f657118e95de9343c92a378ae1588f3af2b1546404d7e7753b4", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/timed-files-after.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/timed-files-before.json": "90a7c1258ad3c57a8320e74d8eefd98e89e777f98f7095f1149c47925cdfd7b2", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/validate_selected.py": "0acf4b32497bbedb06b3f36cb7999f49c82b23510527b076d77ded913fe1b2e3", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/validation-sources-after.json": "75035336c1206f8e9dd7de67d1df87f0706fe49275a7d2e379602ecf4270de63", + "benchmarks/results-20261016/btree-nonlexical/validation/combined-read-blob-v1-preconfirmation-release/validation-sources-before.json": "75035336c1206f8e9dd7de67d1df87f0706fe49275a7d2e379602ecf4270de63" + }, + "per_root": { + "benchmarks/results-20261015/btree-prefix": { + "file_count": 1438, + "raw_bytes": 16251259 + }, + "benchmarks/results-20261016/btree-nonlexical": { + "file_count": 2987, + "raw_bytes": 70375363 + } + }, + "schema_version": 1, + "source_roots": [ + "benchmarks/results-20261015/btree-prefix", + "benchmarks/results-20261016/btree-nonlexical" + ], + "total_raw_bytes": 86626622, + "verification": { + "every_member_sha256_matches_original": true, + "no_symlinks_or_special_files": true, + "only_files_within_source_roots": true, + "original_file_set_and_contents_unchanged": true, + "repeated_serialization_matches_archive_sha256_and_size": true + } +} diff --git a/benchmarks/branch-prefix-evaluation/evidence.tar.gz b/benchmarks/branch-prefix-evaluation/evidence.tar.gz new file mode 100644 index 000000000..9fdb5ace0 Binary files /dev/null and b/benchmarks/branch-prefix-evaluation/evidence.tar.gz differ diff --git a/benchmarks/branch-prefix-evaluation/final-results.csv b/benchmarks/branch-prefix-evaluation/final-results.csv new file mode 100644 index 000000000..121e8e25e --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/final-results.csv @@ -0,0 +1,10 @@ +case,campaign,pairs,metric,main_rate,selected_rate,throughput_percent_change,ci95_lower_percent,ci95_upper_percent,instructions_percent_change +nonlexical-insert-random,confirmation-aligned-random-insert,18,ops_s,966308.1218151139,963804.6558912902,-0.25907532673139944,-0.8444091381787916,0.32971381857912285,-0.006118950103554397 +nonlexical-insert-sorted,confirmation-aligned,6,ops_s,2208041.7639800054,2224391.347884528,0.7404562799143066,-2.073395538831085,3.635162143394768,-0.0055744379729201635 +nonlexical-overwrite,confirmation-aligned,6,ops_s,947977.3576353488,944344.0166328123,-0.38327297305917046,-1.8215523653291001,1.0760767015391774,-4.954812251908216e-07 +nonlexical-pack,confirmation-aligned,6,tuples_s,26356687.00889943,26122420.0427801,-0.8888331300523374,-1.8300269613948459,0.06138429374658137,1.517009780770382 +nonlexical-hit,confirmation-aligned,6,ops_s,1149069.8485497134,1152512.179783677,0.2995754556007862,-0.883778393040977,1.4970574288662684,3.6268361831885825 +nonlexical-miss,confirmation-aligned,6,ops_s,1162388.4089263137,1158815.145688784,-0.3074069915090386,-1.1445082375458548,0.5367827681108192,3.4669997671552806 +nonlexical-scan1,confirmation-aligned,6,tuples_s,970560.7434311935,963753.4561061065,-0.7013767423789227,-1.8458814456382755,0.45647320848771517,3.6351714885246427 +nonlexical-scan10000,confirmation-aligned,6,tuples_s,58995302.04966481,59525819.231018245,0.8992532675005518,-0.9010836284964626,2.7322970089179286,2.341728181889161 +nonlexical-scanfull,confirmation-aligned,6,tuples_s,57201881.94928984,57428680.975638404,0.3964887493555182,-0.7305448135359426,1.5363178357994949,2.3393281181650307 diff --git a/benchmarks/branch-prefix-evaluation/final-results.json b/benchmarks/branch-prefix-evaluation/final-results.json new file mode 100644 index 000000000..8c7df9e42 --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/final-results.json @@ -0,0 +1,116 @@ +{ + "variant": "selected-io-alignment", + "main_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "original_candidate_commit": "b9cc3ea4ecfd523d799116798285fb2d7fe0bfaa", + "method": "Direct paired log-ratio nominal95% intervals; random insertion uses a separate fixed18-pair follow-up; other rows use6 pairs. No pooling/exclusions. Exploratory investigation, not simultaneous equivalence guarantee.", + "rows": [ + { + "case": "nonlexical-insert-random", + "campaign": "confirmation-aligned-random-insert", + "pairs": 18, + "metric": "ops_s", + "main_rate": 966308.1218151139, + "selected_rate": 963804.6558912902, + "throughput_percent_change": -0.25907532673139944, + "ci95_lower_percent": -0.8444091381787916, + "ci95_upper_percent": 0.32971381857912285, + "instructions_percent_change": -0.006118950103554397 + }, + { + "case": "nonlexical-insert-sorted", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "ops_s", + "main_rate": 2208041.7639800054, + "selected_rate": 2224391.347884528, + "throughput_percent_change": 0.7404562799143066, + "ci95_lower_percent": -2.073395538831085, + "ci95_upper_percent": 3.635162143394768, + "instructions_percent_change": -0.0055744379729201635 + }, + { + "case": "nonlexical-overwrite", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "ops_s", + "main_rate": 947977.3576353488, + "selected_rate": 944344.0166328123, + "throughput_percent_change": -0.38327297305917046, + "ci95_lower_percent": -1.8215523653291001, + "ci95_upper_percent": 1.0760767015391774, + "instructions_percent_change": -4.954812251908216e-07 + }, + { + "case": "nonlexical-pack", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "tuples_s", + "main_rate": 26356687.00889943, + "selected_rate": 26122420.0427801, + "throughput_percent_change": -0.8888331300523374, + "ci95_lower_percent": -1.8300269613948459, + "ci95_upper_percent": 0.06138429374658137, + "instructions_percent_change": 1.517009780770382 + }, + { + "case": "nonlexical-hit", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "ops_s", + "main_rate": 1149069.8485497134, + "selected_rate": 1152512.179783677, + "throughput_percent_change": 0.2995754556007862, + "ci95_lower_percent": -0.883778393040977, + "ci95_upper_percent": 1.4970574288662684, + "instructions_percent_change": 3.6268361831885825 + }, + { + "case": "nonlexical-miss", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "ops_s", + "main_rate": 1162388.4089263137, + "selected_rate": 1158815.145688784, + "throughput_percent_change": -0.3074069915090386, + "ci95_lower_percent": -1.1445082375458548, + "ci95_upper_percent": 0.5367827681108192, + "instructions_percent_change": 3.4669997671552806 + }, + { + "case": "nonlexical-scan1", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "tuples_s", + "main_rate": 970560.7434311935, + "selected_rate": 963753.4561061065, + "throughput_percent_change": -0.7013767423789227, + "ci95_lower_percent": -1.8458814456382755, + "ci95_upper_percent": 0.45647320848771517, + "instructions_percent_change": 3.6351714885246427 + }, + { + "case": "nonlexical-scan10000", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "tuples_s", + "main_rate": 58995302.04966481, + "selected_rate": 59525819.231018245, + "throughput_percent_change": 0.8992532675005518, + "ci95_lower_percent": -0.9010836284964626, + "ci95_upper_percent": 2.7322970089179286, + "instructions_percent_change": 2.341728181889161 + }, + { + "case": "nonlexical-scanfull", + "campaign": "confirmation-aligned", + "pairs": 6, + "metric": "tuples_s", + "main_rate": 57201881.94928984, + "selected_rate": 57428680.975638404, + "throughput_percent_change": 0.3964887493555182, + "ci95_lower_percent": -0.7305448135359426, + "ci95_upper_percent": 1.5363178357994949, + "instructions_percent_change": 2.3393281181650307 + } + ] +} diff --git a/benchmarks/branch-prefix-evaluation/merge-validation-manifest.json b/benchmarks/branch-prefix-evaluation/merge-validation-manifest.json new file mode 100644 index 000000000..e722a8570 --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/merge-validation-manifest.json @@ -0,0 +1,204 @@ +{ + "archive": { + "format": "gzip-compressed POSIX pax tar", + "path": "benchmarks/branch-prefix-evaluation/merge-validation.tar.gz", + "sha256": "f40fbeedea0ec71c8fb643053a08baed76a2356c548bec13786008845010d1f3", + "size": 34954 + }, + "determinism": { + "directory_mode": "0755", + "file_mode": "0644", + "gid": 0, + "gname": "", + "gzip_compresslevel": 9, + "gzip_filename": "", + "gzip_mtime": 0, + "mtime": 0, + "ordering": "lexicographic repository-relative paths", + "repeat_generation_byte_identical": true, + "uid": 0, + "uname": "" + }, + "direct_review_copy": { + "byte_identical": true, + "path": "benchmarks/branch-prefix-evaluation/version-rejection.json", + "sha256": "3f50d0d2e63f3d4c8c257df3442a5a98ed27d877168a8d962fac84e7c6295703", + "source": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/verification.json" + }, + "directories": [ + "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection", + "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final" + ], + "members": [ + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/provenance.json", + "sha256": "5f238dc81a255814f574381ad75241edd059619d41d897ccb2d0eb1ae0e6410c", + "size": 434 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/release-btree.log", + "sha256": "1159d05f22b0856c2e5eb66afcb51bf70db527e8597e2f4aef0d4dce5894cead", + "size": 2354 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/release-build.log", + "sha256": "31800b68aa6adc8fcd26ddd071526ec7557f07dd1ffd27b3a04efd3e94363ed9", + "size": 12940 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/release-splinter-test_invalid_branch_reference_rejected.log", + "sha256": "740986b46cd60f6139f1d643af1b9fabaeffef020317eba748dc304790622950", + "size": 1109 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/release-splinter-test_persisted_old_branch_version_rejected.log", + "sha256": "8bf5d3705c71e3d064f2c4edc8fd36b22f4374de9c4870de329eb15cadc38ce6", + "size": 278 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/results.json", + "sha256": "39a43edf72e082203ce2d4cf1ce1e7785ba4e7bd2c9cb80d22e7f7d4a4e5dfcf", + "size": 4441 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/run.py", + "sha256": "58d349571a8c90d82e9ba60233825c2b2e1763a82ac192ea2df0898ffbd17b12", + "size": 5902 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/sources-before.json", + "sha256": "d02dd1e983b33c2643e2237d75f395de418aed5e6fc9bfeead6eef0a080b258e", + "size": 16652 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/summary.json", + "sha256": "5341e3f7bfc81f1bbe56dfb238a99be6f143bf37cd76c3966da277e601bfa915", + "size": 436 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection/test.patch", + "sha256": "198f7c433ed12965c2c62a408a8d71503c19fb36863edfdcb4f52ba0e60f3e88", + "size": 7145 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/debug-artifacts.json", + "sha256": "14db441f3303cac712225c76a0fbd7c4b2090660d20ce60c55323191c99c1013", + "size": 286 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/debug-btree.log", + "sha256": "e043e77b5af274892abf70dec85fd522e375c5f0c6614b96907818b307753645", + "size": 2355 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/debug-build.log", + "sha256": "bcbc8b307fcdd7235de818d1e75d2aeb228772d26f80733bab502abaaa3bf2f8", + "size": 13040 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/debug-splinter-test_invalid_branch_reference_rejected.log", + "sha256": "aadf48eb716db17e7a628e40e0fde8cc87458fda9c2fb192f52b7680f70d44bc", + "size": 1109 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/debug-splinter-test_persisted_old_branch_version_rejected.log", + "sha256": "7465d321f4eeb0541291f56ff3c6e1a026c991e0ca32014f563ddf61c8067a48", + "size": 1090 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/provenance.json", + "sha256": "97f626765422c459cd1d7087ad888d80962cb73cc2d0e5ceacfe331d9ae43bfc", + "size": 440 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/release-artifacts.json", + "sha256": "fa332c564ec4518bf3639059ab141fc97c86d300064dec188549531e370164a4", + "size": 286 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/release-btree.log", + "sha256": "1159d05f22b0856c2e5eb66afcb51bf70db527e8597e2f4aef0d4dce5894cead", + "size": 2354 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/release-build.log", + "sha256": "759ea853ad0841c2c99f0aa30d9061a062119b25761bc15b06c43542e12c7598", + "size": 13240 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/release-splinter-test_invalid_branch_reference_rejected.log", + "sha256": "5dea2378d9d0ea9304d710384cd3bde14d51c154f050fd91564efbe41d12d37d", + "size": 1109 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/release-splinter-test_persisted_old_branch_version_rejected.log", + "sha256": "6d1da0787c0508acb212950d5f52ea7508970b270b2e30b397bc93d03e377450", + "size": 1090 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/results.json", + "sha256": "4bc351fb37283ec5e4bfce7ed6337df18c03e8874dbde1a514154316302d7336", + "size": 14539 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/run.py", + "sha256": "0428895c7ab90892e9b430ab5c164af5b67f85b94afd1fea51f017dd6b74d2c9", + "size": 5914 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sanitizers-artifacts.json", + "sha256": "227d157a1680970ce16f2b80f7f82157a68c9d2e9f7a3691d5cc759d821253d5", + "size": 286 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sanitizers-btree.log", + "sha256": "33b7404499b6f4d35e6f671f93e29889bd5736c81dbe068150539004f57a904d", + "size": 2355 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sanitizers-build.log", + "sha256": "55ea23fa343cf574efe97d96951055278e9b03fb2285cbbc12709a8e8cc53b8c", + "size": 13540 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sanitizers-splinter-test_invalid_branch_reference_rejected.log", + "sha256": "2ff5d48d7987cdeb072dba624e5209afd83f48bc79d1aaf8d8e28f84bf814e6f", + "size": 1109 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sanitizers-splinter-test_persisted_old_branch_version_rejected.log", + "sha256": "f643d743f1a792ef315a93602ea38f399781b883672a537bbaaf18df277a7f5e", + "size": 1090 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/sources-before.json", + "sha256": "2ee158e0621fda61e2380370399a770e4357d6f258a9d42b6b6c10c278d4fc25", + "size": 16652 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/summary.json", + "sha256": "0b1b9218c97d629081ad439d34bed0eb9e748ab9884858058efbf1e8a25137ea", + "size": 257 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/test.patch", + "sha256": "21a9033ddceed0f9d5557477b12c00ba9a331867f2518896712c9b2219dca263", + "size": 7172 + }, + { + "path": "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final/verification.json", + "sha256": "3f50d0d2e63f3d4c8c257df3442a5a98ed27d877168a8d962fac84e7c6295703", + "size": 1866 + } + ], + "schema_version": 1, + "source_directories": [ + "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection", + "benchmarks/results-20261016/branch-prefix-merge-prep/version-rejection-final" + ], + "verification": { + "all_members_match_original_sha256": true, + "all_original_files_unchanged": true, + "all_paths_preserved": true + } +} diff --git a/benchmarks/branch-prefix-evaluation/merge-validation.tar.gz b/benchmarks/branch-prefix-evaluation/merge-validation.tar.gz new file mode 100644 index 000000000..ab54d5287 Binary files /dev/null and b/benchmarks/branch-prefix-evaluation/merge-validation.tar.gz differ diff --git a/benchmarks/branch-prefix-evaluation/msan-fix/README.md b/benchmarks/branch-prefix-evaluation/msan-fix/README.md new file mode 100644 index 000000000..7b8a69fef --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/msan-fix/README.md @@ -0,0 +1,59 @@ +# MSan follow-up: compressed-page free space and async read tracking + +The threaded sequential-key/random-value insertion workload exposed two +independent initialization defects. The original runtime at `8c192839` failed +locally under Clang 19 release MSan in 2.68 seconds, with the same +`btree_pack_compress_leaf` scratch allocation and whole-page-copy origin as CI. +The first local poisoned consumer was `btree_read_leaf_entry`; CI reported +`routing_get_bucket_counts`. + +Compression rebuilt the header, offsets, tuples and prefix in a stack page, +then copied the whole page back. Its unused gap remained uninitialized. The +fix clears exactly that gap before copying, once per successfully compressed +leaf. It prevents stack garbage from entering the persisted free space and +leaves the nonlexical early-return paths unchanged. + +Separately, libaio kernel reads replaced cache-slot bytes without updating +MSan shadow. A slot containing poisoned scratch bytes could later hold a valid +filter or B-tree page while retaining the old initialization origin. Routing +filter construction initializes its live encoding correctly. The async-read +fix marks only the returned bytes initialized, across iovecs, before invoking +the client callback. Partial reads retain poisoned tails; EOF, failures and +writes do not initialize buffers. This code compiles only in MSan builds. + +The new direct-pack regression creates one compressed 4 KiB leaf containing +64 tuples and a 2,842-byte free gap, checking shadow before reading the gap or +reloading the page. Five I/O regressions inspect initialization inside the +completion callback and verify the data actually returned. They cover three +full iovecs, a short read ending 37 bytes into the second iovec, EOF, failed +submission, and write-source shadow. The standalone platform test target now +links its existing platform-I/O object group. + +The test overlay against original runtime fails the gap, full-read and +short-read checks. The EOF, failed-read and write controls pass. Each failing +baseline case runs in a separate process because CTest assertion failure skips +fixture teardown. Initial build/fixture attempts remain in the evidence. + +The repaired release MSan build passes the complete reported command: + +```sh +build/release-msan/bin/unit/large_inserts_stress_test --num-inserts 1000000 --db-capacity-gib 25 +``` + +It completes in 116.1 seconds with 11 passed, 0 failed and 2 existing skips. +The six focused regressions, all 12 B-tree tests and all 62 quick tests also +pass under both Clang 19 release MSan and GCC release builds: 171 successful +test executions in total, including the stress suite. No MSan suppression or +disabled check is used. Repository formatting and whitespace checks pass, and +live sources match both tested snapshots. + +See [validation.json](validation.json) for final commands, test counts and +source identities, and [evidence.tar.gz](evidence.tar.gz) with its +[SHA256 manifest](evidence-manifest.json) for raw logs, source snapshots and +runner scripts. This validation reruns the reported CI command locally; +hosted CI status is separate. The GitHub connector still requires VMware SSO +authorization to inspect hosted runs. + +The earlier throughput results predate the compressed-gap clearing change. +They were not rerun for this correctness fix. The production work added is +one bounded clear per compressed leaf; the async bookkeeping is MSan-only. diff --git a/benchmarks/branch-prefix-evaluation/msan-fix/evidence-manifest.json b/benchmarks/branch-prefix-evaluation/msan-fix/evidence-manifest.json new file mode 100644 index 000000000..149560662 --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/msan-fix/evidence-manifest.json @@ -0,0 +1,76 @@ +{ + "archive": "evidence.tar.gz", + "archive_bytes": 758145, + "archive_format": "POSIX pax tar, sorted repository-relative regular-file paths, gzip level 9", + "archive_sha256": "dec3df80d01af5617052756904590bae9cbb6773f4d0ab7e0647e0c1f0dd3bb1", + "deterministic_metadata": { + "gid": 0, + "gname": "", + "gzip_filename": "", + "gzip_mtime": 0, + "mode": "0755 for executable inputs; otherwise 0644", + "mtime": 0, + "uid": 0, + "uname": "" + }, + "file_count": 45, + "files_sha256": { + "benchmarks/results-20261016/prefix-msan/baseline-tests-build.log": "c6ecee267bb5c6ead9bf392200e1c51ef56a3093446d8a365c3936835ec04fa7", + "benchmarks/results-20261016/prefix-msan/baseline-tests-io-eof.log": "1c923fffe2a8e59def0eab6e6c66c430ca5b07e2bf269089496bb2c4cda42611", + "benchmarks/results-20261016/prefix-msan/baseline-tests-io-failed.log": "83693094103ffe322089402a59048e65679fb05848709fd00634bf7eaaf82103", + "benchmarks/results-20261016/prefix-msan/baseline-tests-io-full.log": "aa2f7ae6d609a35bd9c6fbba13bcfbd978f6f2141fdad2da0d0942e1a0fb4668", + "benchmarks/results-20261016/prefix-msan/baseline-tests-io-short.log": "3742614212cc1767933da1df0780df0105cd6cabb446d8bf3c49d8df708089db", + "benchmarks/results-20261016/prefix-msan/baseline-tests-io-write.log": "d037058ce09ea6a9dda3edb467883ed7c28ecd9cd3a1341d192625c9420ebdba", + "benchmarks/results-20261016/prefix-msan/baseline-tests-prefix.log": "62aaec28b21b80c164f7543fe1bc01d112697185174cc6904f6cc95afc957296", + "benchmarks/results-20261016/prefix-msan/baseline-tests-run.json": "12a98a350bc1e87cd7899f90d1fba4082d91d7a0c8a5f5787d9890a7f3085790", + "benchmarks/results-20261016/prefix-msan/combined-baseline-baseline-tests-build.log": "0cfe27a84f3b6fc0dba0d25b99b021a60ea936478372a5a78ba31055065e5837", + "benchmarks/results-20261016/prefix-msan/combined-baseline-baseline-tests-io.log": "4db8b842b79b123a73a10014ff9f1466b98767b8a84db31140eccbe7d3dcd111", + "benchmarks/results-20261016/prefix-msan/combined-baseline-baseline-tests-prefix.log": "f89f52a2435906c4c75878ca4b52b498479d73f82095d2aeae65540e51bf52d8", + "benchmarks/results-20261016/prefix-msan/combined-baseline-baseline-tests-run.json": "e2c4d8574ce08f80da71c936f0f16f2bd573b6e586aabc574bbaafc3fe0a5866", + "benchmarks/results-20261016/prefix-msan/fix.patch": "decdebf3c61b40fda2f98a46c70737d88b602ad808e982ecce25e52613f3340d", + "benchmarks/results-20261016/prefix-msan/fixed-msan-btree.log": "b548b3cade464538b85250d6838ea1c6483836541d00b0603d89c617a9ab8d1e", + "benchmarks/results-20261016/prefix-msan/fixed-msan-build.log": "9b6ca7828898418b4dd26e4d10ec6331b7e26e97192aa3ae8fdbbddcaa3affe0", + "benchmarks/results-20261016/prefix-msan/fixed-msan-io-eof.log": "beff70bc343bccd2a58d95e3d8c38760082edcf37978564f05dedb31809ef092", + "benchmarks/results-20261016/prefix-msan/fixed-msan-io-failed.log": "2c30f0481808e9aad2281cf586034dbe8747ae3dc8a496aa3ea6932fc52c4add", + "benchmarks/results-20261016/prefix-msan/fixed-msan-io-full.log": "3679c51bb44abe80814b06fea24e0b0ac575eb479b24b70455f5904d38266adc", + "benchmarks/results-20261016/prefix-msan/fixed-msan-io-short.log": "9ed82143f2fbde0fa6920b4013fb112ff8902f2f532972c7ecaa765a7629bcfb", + "benchmarks/results-20261016/prefix-msan/fixed-msan-io-write.log": "68972ca1cce77b58f5568cb80b8b49b0fc4f066cf3457e0da639242f9648c02d", + "benchmarks/results-20261016/prefix-msan/fixed-msan-prefix.log": "ee2607daa4d9b630f9fc13791e9be5e1d660823a2493f10c578fb78cf49c18ad", + "benchmarks/results-20261016/prefix-msan/fixed-msan-quick.log": "c5995b1b06d867228420f7820bdbab0ce4ec27d005c5ed44e6ae4ce574c2204b", + "benchmarks/results-20261016/prefix-msan/fixed-msan-run.json": "85fc80f98995ea712becae1a1738ede5285bcc911b125238481f2f36da42ef38", + "benchmarks/results-20261016/prefix-msan/fixed-msan-stress-full.log": "090439148121e6cc7ac9d4a060aa96bf3d4723657ca6c7f450bf04ad670d4d64", + "benchmarks/results-20261016/prefix-msan/fixed-release-btree.log": "ba511c6e3124b95d6bd07ce156076359221d79c420575cca9bd50c2e1868c6bb", + "benchmarks/results-20261016/prefix-msan/fixed-release-build.log": "036441baf4f78d48e75c66d173bae4dbc2de8a513ef42d7957277c5a2a34f36e", + "benchmarks/results-20261016/prefix-msan/fixed-release-io-eof.log": "159bedee6ef3dc3b6d88dc537632fb47d3bca03791261d2c2bf4e7fb3f45ed4f", + "benchmarks/results-20261016/prefix-msan/fixed-release-io-failed.log": "4ab6ba12a6aad22968f4c7fe4cb358c7f7b66744ddf7657017a21411b78958ed", + "benchmarks/results-20261016/prefix-msan/fixed-release-io-full.log": "017bcd59c7823d04aac79211ee95b003f7a03103abc8d4707d3d42cff8588393", + "benchmarks/results-20261016/prefix-msan/fixed-release-io-short.log": "a3613dbdce5aa28f8b8d95dc59623c3d0fdcb547ca5ab95be339ec5d7b46c24b", + "benchmarks/results-20261016/prefix-msan/fixed-release-io-write.log": "1797d4300387fedc549cd1bbe3ea6332ef4ab0cad091935268fab674f0442c02", + "benchmarks/results-20261016/prefix-msan/fixed-release-prefix.log": "4258734d4eae6a41b0c1e059fd8f0441303c38a0d8680c31e4a91578d38eed14", + "benchmarks/results-20261016/prefix-msan/fixed-release-quick.log": "3a52a0f4c80175e0f95bbd60294fbcf10fd568ce48f64e0fe46dc99b422a8d77", + "benchmarks/results-20261016/prefix-msan/fixed-release-run.json": "8068f36648ec46e216f61a81894ff7b61d13400fb99ca96d062f90f8d367484a", + "benchmarks/results-20261016/prefix-msan/invalid-target-original-build.log": "61d5d046763c04219002b11ee14e5e116d4234f85d0909b6e8023eaf05fdb2b5", + "benchmarks/results-20261016/prefix-msan/invalid-target-original-run.json": "3c535defc93c50854563cc4323785efc4e8d0515576d720aad5b9aef24050f6d", + "benchmarks/results-20261016/prefix-msan/missing-io-link-baseline-tests-build.log": "e7a2d40cb871054c7b7fda62a0699ec7668e583eaacee80d44de61d58e3e152c", + "benchmarks/results-20261016/prefix-msan/missing-io-link-baseline-tests-run.json": "638335a314ce6f2638409a81149489dd1183ce2029ed007833f5b70fe8fd9467", + "benchmarks/results-20261016/prefix-msan/original-build.log": "51ac7f40ccd662f69f7cf4242b541d2ca3502702bc5d321e94b0c2b577b49755", + "benchmarks/results-20261016/prefix-msan/original-run.json": "8e5bd2b43c651fb6eb21e48536bdc5b4c4476a65f7c054b719ebc3f633e8e827", + "benchmarks/results-20261016/prefix-msan/original-source.tar": "7f74e07014c4abb18cf8caa116f4ddaa88a50a7793a3a4c45f742437f8c17b74", + "benchmarks/results-20261016/prefix-msan/original-stress.log": "216f643ffc44f1f9e7c21df7e62fcb4ae5f0ac57c738e751c08c351f9279d029", + "benchmarks/results-20261016/prefix-msan/reproduce.py": "02ae2c480c5b32f06419c2b7cb408e9f66c79e88123e5b094f5d37125fd40a50", + "benchmarks/results-20261016/prefix-msan/validate.py": "e35b85e0052fe694e4b2b5a6c5ddf5b9660c0d1c5aa10292c46d12cc7d1dfd4b", + "benchmarks/results-20261016/prefix-msan/validation.json": "9a4c10ee82a27a952a8c7e9e44410b0ea639515f76fda662b4366eb1a78887d1" + }, + "schema_version": 1, + "source_roots": [ + "benchmarks/results-20261016/prefix-msan" + ], + "total_raw_bytes": 4116704, + "verification": { + "every_member_sha256_matches_original": true, + "no_symlinks_or_special_files": true, + "only_files_within_source_roots": true, + "original_file_set_and_contents_unchanged": true, + "repeated_serialization_matches_archive_sha256_and_size": true + } +} diff --git a/benchmarks/branch-prefix-evaluation/msan-fix/evidence.tar.gz b/benchmarks/branch-prefix-evaluation/msan-fix/evidence.tar.gz new file mode 100644 index 000000000..89ff17231 Binary files /dev/null and b/benchmarks/branch-prefix-evaluation/msan-fix/evidence.tar.gz differ diff --git a/benchmarks/branch-prefix-evaluation/msan-fix/validation.json b/benchmarks/branch-prefix-evaluation/msan-fix/validation.json new file mode 100644 index 000000000..b3313d17c --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/msan-fix/validation.json @@ -0,0 +1,554 @@ +{ + "base_commit": "8c19283999ecfc792ca2ac0e263e24e8f9a9f934", + "runtime_source_sha256": { + "Makefile": "d8dedc26e6c9f5cf8ecb534ae059ba85b6cd8286246ecf95c654488a909ca795", + "src/btree.c": "c92512b3beb0b355eef6534418fa45d64b87a71996387b04540a617788f1c2aa", + "src/platform_linux/laio.c": "ce8a231716b3fbec1a993828224d1aefca8d1630a20ed9f1068155d612aecd3e", + "tests/unit/platform_apis_test.c": "f6f668bff000d23e5700d931e6ff1c2e74f54ff6ba01264310429f2df712a2a4", + "tests/unit/splinterdb_quick_test.c": "b1bbe3e09a749d855c9b907da11d3075b429f5068d633b154bcff05c8c5ffec6" + }, + "live_sources_match_tested_snapshots": true, + "original_reproduction": { + "returncode": 86, + "elapsed_seconds": 2.6793787479400635, + "origin": "btree_pack_compress_leaf scratch copied through whole-page memcpy", + "consumer": "btree_read_leaf_entry", + "log": "original-stress.log" + }, + "baseline_controls": [ + { + "name": "prefix", + "returncode": 1, + "summaries": [ + [ + "1", + "0", + "1", + "0" + ] + ] + }, + { + "name": "io-full", + "returncode": 1, + "summaries": [ + [ + "1", + "0", + "1", + "0" + ] + ] + }, + { + "name": "io-short", + "returncode": 1, + "summaries": [ + [ + "1", + "0", + "1", + "0" + ] + ] + }, + { + "name": "io-eof", + "returncode": 0, + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ] + }, + { + "name": "io-failed", + "returncode": 0, + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ] + }, + { + "name": "io-write", + "returncode": 0, + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ] + } + ], + "validation": { + "fixed-msan": { + "passed": true, + "executions_passed": 91, + "failed": 0, + "skipped": 2, + "commands": [ + { + "name": "build", + "command": [ + "make", + "-j6", + "CC=clang-19", + "LD=clang-19", + "BUILD_ROOT=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build", + "BUILD_MODE=release", + "BUILD_MSAN=1", + "BUILD_ASAN=0", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/large_inserts_stress_test", + "unit/splinterdb_quick_test", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-source", + "start": 1792215761.629251, + "returncode": 0, + "finish": 1792215783.7611156, + "log": "fixed-msan-build.log", + "log_sha256": "9b6ca7828898418b4dd26e4d10ec6331b7e26e97192aa3ae8fdbbddcaa3affe0", + "summaries": [], + "passed": true + }, + { + "name": "prefix", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/splinterdb_quick_test", + "test_branch_prefix_pack_initializes_free_gap" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-prefix", + "start": 1792215783.7615614, + "returncode": 0, + "finish": 1792215783.884295, + "log": "fixed-msan-prefix.log", + "log_sha256": "ee2607daa4d9b630f9fc13791e9be5e1d660823a2493f10c578fb78cf49c18ad", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-full", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "test_async_read_initializes_all_iovecs" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-io-full", + "start": 1792215783.8845968, + "returncode": 0, + "finish": 1792215783.9504895, + "log": "fixed-msan-io-full.log", + "log_sha256": "3679c51bb44abe80814b06fea24e0b0ac575eb479b24b70455f5904d38266adc", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-short", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "test_async_short_read_initializes_only_returned_bytes" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-io-short", + "start": 1792215783.9507773, + "returncode": 0, + "finish": 1792215784.0168004, + "log": "fixed-msan-io-short.log", + "log_sha256": "9ed82143f2fbde0fa6920b4013fb112ff8902f2f532972c7ecaa765a7629bcfb", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-eof", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "test_async_eof_read_keeps_buffer_poisoned" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-io-eof", + "start": 1792215784.017125, + "returncode": 0, + "finish": 1792215784.1334605, + "log": "fixed-msan-io-eof.log", + "log_sha256": "beff70bc343bccd2a58d95e3d8c38760082edcf37978564f05dedb31809ef092", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-failed", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "test_async_failed_read_keeps_buffer_poisoned" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-io-failed", + "start": 1792215784.1338096, + "returncode": 0, + "finish": 1792215784.2566495, + "log": "fixed-msan-io-failed.log", + "log_sha256": "2c30f0481808e9aad2281cf586034dbe8747ae3dc8a496aa3ea6932fc52c4add", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-write", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/platform_apis_test", + "test_async_write_does_not_initialize_source" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-io-write", + "start": 1792215784.256983, + "returncode": 0, + "finish": 1792215784.3792412, + "log": "fixed-msan-io-write.log", + "log_sha256": "68972ca1cce77b58f5568cb80b8b49b0fc4f066cf3457e0da639242f9648c02d", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-btree", + "start": 1792215784.3795784, + "returncode": 0, + "finish": 1792215784.4198349, + "log": "fixed-msan-btree.log", + "log_sha256": "b548b3cade464538b85250d6838ea1c6483836541d00b0603d89c617a9ab8d1e", + "summaries": [ + [ + "12", + "12", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/splinterdb_quick_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-quick", + "start": 1792215784.4201403, + "returncode": 0, + "finish": 1792215800.0895038, + "log": "fixed-msan-quick.log", + "log_sha256": "c5995b1b06d867228420f7820bdbab0ce4ec27d005c5ed44e6ae4ce574c2204b", + "summaries": [ + [ + "62", + "62", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "stress-full", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-build/release-msan/bin/unit/large_inserts_stress_test", + "--num-inserts", + "1000000", + "--db-capacity-gib", + "25" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-msan-stress-full", + "start": 1792215800.0898507, + "returncode": 0, + "finish": 1792215916.3166673, + "log": "fixed-msan-stress-full.log", + "log_sha256": "090439148121e6cc7ac9d4a060aa96bf3d4723657ca6c7f450bf04ad670d4d64", + "summaries": [ + [ + "13", + "11", + "0", + "2" + ] + ], + "passed": true + } + ] + }, + "fixed-release": { + "passed": true, + "executions_passed": 80, + "failed": 0, + "skipped": 0, + "commands": [ + { + "name": "build", + "command": [ + "make", + "-j6", + "CC=gcc", + "LD=gcc", + "BUILD_ROOT=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build", + "BUILD_MODE=release", + "BUILD_MSAN=0", + "BUILD_ASAN=0", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/large_inserts_stress_test", + "unit/splinterdb_quick_test", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-source", + "start": 1792215916.3403568, + "returncode": 0, + "finish": 1792215923.5729413, + "log": "fixed-release-build.log", + "log_sha256": "036441baf4f78d48e75c66d173bae4dbc2de8a513ef42d7957277c5a2a34f36e", + "summaries": [], + "passed": true + }, + { + "name": "prefix", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/splinterdb_quick_test", + "test_branch_prefix_pack_initializes_free_gap" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-prefix", + "start": 1792215923.5736613, + "returncode": 0, + "finish": 1792215923.6883385, + "log": "fixed-release-prefix.log", + "log_sha256": "4258734d4eae6a41b0c1e059fd8f0441303c38a0d8680c31e4a91578d38eed14", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-full", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "test_async_read_initializes_all_iovecs" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-io-full", + "start": 1792215923.6888468, + "returncode": 0, + "finish": 1792215923.7540054, + "log": "fixed-release-io-full.log", + "log_sha256": "017bcd59c7823d04aac79211ee95b003f7a03103abc8d4707d3d42cff8588393", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-short", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "test_async_short_read_initializes_only_returned_bytes" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-io-short", + "start": 1792215923.7545052, + "returncode": 0, + "finish": 1792215923.8701763, + "log": "fixed-release-io-short.log", + "log_sha256": "a3613dbdce5aa28f8b8d95dc59623c3d0fdcb547ca5ab95be339ec5d7b46c24b", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-eof", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "test_async_eof_read_keeps_buffer_poisoned" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-io-eof", + "start": 1792215923.870648, + "returncode": 0, + "finish": 1792215923.9855332, + "log": "fixed-release-io-eof.log", + "log_sha256": "159bedee6ef3dc3b6d88dc537632fb47d3bca03791261d2c2bf4e7fb3f45ed4f", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-failed", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "test_async_failed_read_keeps_buffer_poisoned" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-io-failed", + "start": 1792215923.9860263, + "returncode": 0, + "finish": 1792215924.1019366, + "log": "fixed-release-io-failed.log", + "log_sha256": "4ab6ba12a6aad22968f4c7fe4cb358c7f7b66744ddf7657017a21411b78958ed", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "io-write", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/platform_apis_test", + "test_async_write_does_not_initialize_source" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-io-write", + "start": 1792215924.1024857, + "returncode": 0, + "finish": 1792215924.2188904, + "log": "fixed-release-io-write.log", + "log_sha256": "1797d4300387fedc549cd1bbe3ea6332ef4ab0cad091935268fab674f0442c02", + "summaries": [ + [ + "1", + "1", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-btree", + "start": 1792215924.2194479, + "returncode": 0, + "finish": 1792215924.2250683, + "log": "fixed-release-btree.log", + "log_sha256": "ba511c6e3124b95d6bd07ce156076359221d79c420575cca9bd50c2e1868c6bb", + "summaries": [ + [ + "12", + "12", + "0", + "0" + ] + ], + "passed": true + }, + { + "name": "quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-build/release/bin/unit/splinterdb_quick_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-msan/fixed-release-quick", + "start": 1792215924.2256494, + "returncode": 0, + "finish": 1792215940.3486547, + "log": "fixed-release-quick.log", + "log_sha256": "3a52a0f4c80175e0f95bbd60294fbcf10fd568ce48f64e0fe46dc99b422a8d77", + "summaries": [ + [ + "62", + "62", + "0", + "0" + ] + ], + "passed": true + } + ] + } + }, + "checks": [ + { + "command": [ + "./format-check.sh" + ], + "returncode": 0, + "output": "Format OK\n" + }, + { + "command": [ + "git", + "diff", + "--check" + ], + "returncode": 0, + "output": "" + } + ], + "independent_review": "Source review passed for page initialization, callback ordering, exact byte bounds, tests, and Makefile dependency.", + "hosted_ci": "Not inspected: GitHub connector rejected by VMware SAML enforcement.", + "performance": "Prior benchmark results predate this fix. Nonlexical paths retain their early return; gap clear runs only after successful leaf compression; async-read shadow bookkeeping is MSan-only." +} diff --git a/benchmarks/branch-prefix-evaluation/preparation-checks.json b/benchmarks/branch-prefix-evaluation/preparation-checks.json new file mode 100644 index 000000000..de5be506e --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/preparation-checks.json @@ -0,0 +1,38 @@ +{ + "commands": [ + { + "command": [ + "bash", + "-n", + "format-check.sh" + ], + "returncode": 0, + "output": "" + }, + { + "command": [ + "./format-check.sh" + ], + "returncode": 0, + "output": "Format OK\n" + }, + { + "command": [ + "git", + "diff", + "--check" + ], + "returncode": 0, + "output": "" + } + ], + "validated_source_sha256": { + "tests/unit/splinter_test.c": "b8a8e05363eda8ab711f6543760d7ff0ad55378d077672da29b58a6ef2e342da", + "src/btree.c": "0c0cb6f104387df0118ba4588c40e0ac3c54cc589d6ada0ab8ae80fd1fc4ede3", + "src/platform_linux/platform_io.h": "aed5d9cefd9add9bd87c8a866c6e6f26992a1be327097d6d92b087ec5f1c841b", + "src/platform_linux/laio.c": "53dc4334861d8f228c1d1a06cc3096c1a8f9ccce712b0bfcdbeb7921d2d73290", + "tests/unit/splinterdb_quick_test.c": "5c881a35687d7869cdb0b27a507de25baf553ee93a365100c3ea6ac204bdec0a", + "benchmarks/btree_prefix_bench.c": "35a8e826c6a454169df149273b52427833ef08fde058e5f5f79974153c273685" + }, + "passed": true +} diff --git a/benchmarks/branch-prefix-evaluation/version-rejection.json b/benchmarks/branch-prefix-evaluation/version-rejection.json new file mode 100644 index 000000000..28c7fbdc2 --- /dev/null +++ b/benchmarks/branch-prefix-evaluation/version-rejection.json @@ -0,0 +1,32 @@ +{ + "passed": true, + "test_executions": 42, + "live_sources_match_validated_snapshot": true, + "new_test": "test_persisted_old_branch_version_rejected", + "test_sha256": "b8a8e05363eda8ab711f6543760d7ff0ad55378d077672da29b58a6ef2e342da", + "versions": { + "rejected_persisted_branch": 1, + "required_branch": 2 + }, + "clean_mount": "Succeeds lazily; selected sync/async point queries and range initialization reject the old branch with STATUS_INVALID_STATE.", + "recovery_mount": "Rejects old branch with STATUS_INVALID_STATE during allocation reconstruction.", + "current_version_controls": "After restoring version 2 and evicting cache, both clean and recovery paths remount and return the original tuple.", + "before_page_access": "Existing NULL-cache B-tree tests reject old and future versions in sync/async points, sync/async iterator initialization, root-height/count queries, and recovery allocation enumeration.", + "sanitizers": { + "address": true, + "undefined": true, + "leak": false + }, + "first_attempt": { + "archive": "../version-rejection", + "failure": "New fixture assumed an inflight bundle after clean unmount; unmount had moved the branch into the first pivot bundle. Failure preceded version mutation. Corrected only test page selection; production code unchanged." + }, + "production_changes": false, + "format_check": "clang-format-19 --Werror --dry-run tests/unit/splinter_test.c passed", + "diff_check": "git diff --check passed", + "independent_review": { + "reviewer": "/root/merge_io_review", + "passed": true, + "findings": "No actionable issues. First pivot bundle matches clean-unmount fixture; snapshot_tree correctly triggers allocation recovery; restoration precedes owning-tree cleanup and status assertions; failed recovery has no open owning contexts; current-version remount controls are sound." + } +} diff --git a/benchmarks/branch-prefix-history/.gitattributes b/benchmarks/branch-prefix-history/.gitattributes new file mode 100644 index 000000000..16fe43443 --- /dev/null +++ b/benchmarks/branch-prefix-history/.gitattributes @@ -0,0 +1,6 @@ +# Preserve archived raw measurements without normalizing their bytes. +*.csv whitespace=cr-at-eol +*.txt -whitespace +*.patch -whitespace +*.log -whitespace +*.diff -whitespace diff --git a/benchmarks/branch-prefix-history/results-20261011/README.md b/benchmarks/branch-prefix-history/results-20261011/README.md new file mode 100644 index 000000000..ba2b9dcbf --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/README.md @@ -0,0 +1,28 @@ +# Prefix experiment evidence, 2026-10-11 + +See ../../docs/branch-prefix-experiment.md for interpretation and validation. +Baseline is db3047a; the final implementation milestone is 1ef1644. Manifests +preserve absolute original paths, commands, timestamps and binary provenance. +No database images are included. Retained campaign runners document the original +workspace layout and fixture sources; the portable workload builder is at +../build_prefix_bench.py and accepts --build-root. + +The seven initial pattern/control directories measure the previous candidate. +The three *-fixed-final directories measure the final reconstruction path. +The resident common-prefix repeat includes the old candidate too, with identical +candidate images for both binaries. Incompatible baseline and candidate formats +use their own images, loaded serially with no background workers. File allocation +and live extent measurements come from the initial, format-identical images. + +Method correction: the three original *-fixed-final campaigns copied fixtures +with buffered cp without explicitly fsyncing before O_DIRECT open/warm/timing. +Pending copy writeback is a possible confound, not an established outlier cause. +The original files and runners remain unchanged. The initial seven matrices +created fresh O_DIRECT databases and did not use this copy path. + +`disk-common-fixed-final-fsynced` is one bounded followup: fsync each destination +before opening, then warm, point8 and range10000@8 in ABBA order, seven seconds +per measured phase. It reuses the same per-format images and verifies frozen +binary hashes against the earlier manifest. All four runs pass; the large gains +and read-I/O reductions remain. Its manifest records copy/fsync timestamps and +fixture size/mtime, and its archived runner shows the procedure change. diff --git a/benchmarks/branch-prefix-history/results-20261011/baseline-build.json b/benchmarks/branch-prefix-history/results-20261011/baseline-build.json new file mode 100644 index 000000000..88c9451f5 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/baseline-build.json @@ -0,0 +1,31 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/README.md b/benchmarks/branch-prefix-history/results-20261011/cache-errors/README.md new file mode 100644 index 000000000..23e8af756 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/README.md @@ -0,0 +1,37 @@ +# Project 1 measurement evidence + +See [the report](../../../docs/cache-errors-results.md) for interpretation and +validation. `environment.json` describes the machine and storage. Read campaigns +contain per-phase CSVs and manifests with exact commands and executable hashes. +Insertion campaigns contain one summary per run, an aggregate `summary.csv`, +and the command/hash manifest. Full interval traces, logs, database images, and +binary profiles remain in the original campaign directories named in those +manifests; they are not included in this compact export. + +`binaries/` records how the identical baseline benchmark sources were linked +against the original and project 1 libraries. The original source revision is +`db3047a8`. The measured project 1 implementation is `068fef0`, followed by +formatting-only commit `1a8190a`. Later report/comment commits do not change the +measured executable. The `resident-log0-repeat15` directory records the abandoned +16-byte receipt implementation (`c409c6b`); the directories containing `receipt` +record the final 8-byte implementation. + +For reproduction, build the libraries at the stated revisions, link the common +baseline sources using the commands in `binaries/`, and replay the manifest +commands with local executable/output paths. Each read run must start from a +copy of the same clean baseline fixture. Insertion runs start with a fresh file. +Keep database files on a real disk, use the recorded affinity and settings, and +serialize timed runs against other builds/tests. The campaign's +`coordination/run_job.py` enforces both constraints. Do not combine results from +different campaign directories as if they were contemporaneous samples. + +The profile text locates sampled functions. `cpu_core` stat counters are usable; +near-zero-runtime `cpu_atom` extrapolations are not. Counters include process +startup, warmup, and close; the report states the resulting attribution limit. + +`prefetch-admission/` records the later unpublished-prefetch race reproduction, +repair, corrected full-suite validation, and new release provenance. Its +`invalid-zero-selection/` logs are explicitly invalid validation. +`disk-log0-prefetch-guard/` compares that repair with this branch's own frozen +pre-guard executable; its exceptionally slow first baseline prevents causal +performance attribution. The earlier campaign binaries were preserved. diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..7b553bd44 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "baseline", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "0bab59a4e113b85ca5ba8226714b9a8821be3570d9b55c7ee931336657c501aa", + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-kvbench.json new file mode 100644 index 000000000..8b6c4da40 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..2d75f23ff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "cache-errors", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "5fae21d221198d22c079a821df15d7c409bdb2eb869bd321a65f9467a1f89e7b", + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-kvbench.json new file mode 100644 index 000000000..e7b27580b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/manifest.json new file mode 100644 index 000000000..78851170a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/manifest.json @@ -0,0 +1,278 @@ +{ + "project": "cache-errors", + "io": "O_DIRECT", + "baseline": "same branch before prefetch guard", + "candidate": "same branch with prefetch guard", + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5", + "provenance": { + "project": "cache-errors", + "command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=release", + "libs" + ], + "old_binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "head": "526a0a03b54bb7eb9c76042fae7233311c2fc1ac", + "new_provenance": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "a7494f0f43e2120a91e1765c753bb4e361970a88ca2e7d746f688dd5be603de1" + } + }, + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791785877.1270041, + "returncode": 0, + "finished": 1791785901.897291 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "a7494f0f43e2120a91e1765c753bb4e361970a88ca2e7d746f688dd5be603de1", + "started": 1791785902.2137768, + "returncode": 0, + "finished": 1791785926.984086 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "a7494f0f43e2120a91e1765c753bb4e361970a88ca2e7d746f688dd5be603de1", + "started": 1791785927.3029232, + "returncode": 0, + "finished": 1791785951.7710311 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-prefetch-guard/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791785952.097116, + "returncode": 0, + "finished": 1791785976.5700436 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/results.csv new file mode 100644 index 000000000..767680747 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.111,18002829.0,nan,nan,nan,0.000,nan,0.600,3331279.0,277409792,32768,138.70,0.02,nan,nan,nan,nan,nan,2000000,18002829.0,0.111,0.000,0.111,0.000,0,0,nan,0,0,0.520,0,0,0,0,2 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,26574,5.000,5314.6,80.896,1851.392,1982.464,3490.250,188.129,5.223,5087.7,712327168,0,26805.42,0.00,78.848,1851.392,187.743,nan,0.352,26574,5314.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.520,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,57122,5.000,11424.0,198.656,8781.824,9830.400,11985.892,699.777,40.549,1408.7,1530736640,0,26797.67,0.00,198.656,8781.824,698.855,nan,0.878,57122,11424.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.520,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,442,5.000,88.4,9830.400,30146.560,35833.322,35833.322,11322.707,1.362,324.5,1316200448,0,2977829.07,0.00,194.560,2326.528,452.942,1088.52,1.004,4412928,882551.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.520,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,1066,5.000,213.2,24903.680,124780.544,165675.008,167355.759,37381.145,7.703,138.4,3105206272,0,2912951.47,0.00,581.632,14024.704,1844.673,3556.36,1.386,10650367,2129999.8,5.000,0.048,5.048,0.007,0,274432,nan,2998669312,629571584,0.520,0,0,453,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.102,19527528.5,nan,nan,nan,0.000,nan,0.596,3357727.2,277463040,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,19527528.5,0.102,0.000,0.102,0.000,0,0,nan,0,0,0.515,0,0,0,0,4 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,61796,5.000,12358.7,72.704,153.600,1556.480,5438.968,80.862,5.430,11380.4,1654439936,0,26772.61,0.00,72.704,153.600,80.475,nan,0.353,61796,12358.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.515,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,333984,5.000,66793.1,117.760,219.136,1261.568,13050.018,119.699,42.697,7822.2,8958529536,0,26823.23,0.00,115.712,219.136,118.740,nan,0.909,333984,66793.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.515,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,701,5.000,140.2,7274.496,16121.856,30647.711,30647.711,7135.102,1.735,403.9,2078367744,0,2964861.26,0.00,161.792,532.480,180.986,695.99,1.001,6999917,1399940.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.515,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,3824,5.000,764.8,10878.976,23855.104,31719.424,35593.634,10463.839,14.092,271.4,11152441344,0,2916433.41,0.00,243.712,843.776,283.641,1019.39,1.270,38165785,7632841.2,5.000,0.092,5.092,0.008,0,274432,nan,2998669312,629567488,0.515,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.104,19247457.3,nan,nan,nan,0.000,nan,0.605,3306818.2,277471232,32768,138.74,0.02,nan,nan,nan,nan,nan,2000000,19247457.3,0.104,0.000,0.104,0.000,0,0,nan,0,0,0.186,0,0,0,0,5 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,63984,5.000,12796.4,74.752,137.216,198.656,2614.000,78.109,5.490,11654.1,1714896896,0,26801.96,0.00,74.752,133.120,77.694,nan,0.380,63984,12796.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.186,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,339071,5.000,67811.0,117.760,206.848,266.240,2165.759,117.902,42.794,7923.3,9093222400,0,26818.05,0.00,115.712,206.848,116.923,nan,0.928,339071,67811.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.186,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,702,5.000,140.4,7405.568,15597.568,17039.360,17140.401,7120.250,1.759,399.0,2084360192,0,2969174.06,0.00,161.792,438.272,176.363,694.96,1.002,7009917,1401927.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.186,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,3907,5.000,781.4,10616.832,22282.240,24903.680,28210.162,10237.186,14.675,266.2,11123900416,0,2847171.85,0.00,239.616,761.856,274.544,997.48,1.269,38995785,7798847.3,5.000,0.091,5.091,0.008,0,274432,nan,2998669312,629567488,0.186,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.105,19108218.5,nan,nan,nan,0.000,nan,0.620,3224111.2,277450752,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,19108218.5,0.105,0.000,0.105,0.000,0,0,nan,0,0,0.199,0,0,0,0,1 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,64299,5.000,12859.4,74.752,133.120,186.368,819.453,77.725,5.480,11733.2,1723584512,0,26805.77,0.00,74.752,133.120,77.299,nan,0.391,64299,12859.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.199,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,335560,5.000,67108.6,119.808,210.944,290.816,3737.435,119.133,42.810,7838.3,9013813248,0,26862.00,0.00,117.760,210.944,118.162,nan,0.920,335560,67108.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.199,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,698,5.000,139.6,7405.568,15859.712,46661.632,47119.766,7166.725,1.738,401.6,2068316160,0,2963203.67,0.00,161.792,565.248,184.287,698.74,0.979,6969917,1393929.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.199,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,3658,5.000,731.6,10616.832,37224.448,59244.544,75279.976,10898.089,13.968,261.9,10429493248,0,2851146.32,0.00,243.712,1785.856,313.657,1059.62,1.277,36521525,7303988.6,5.000,0.080,5.080,0.008,0,274432,nan,2998669312,629567488,0.199,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/summary.txt b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/summary.txt new file mode 100644 index 000000000..7c7be0903 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/summary.txt @@ -0,0 +1,8 @@ + + cache-errors/disk-log0-prefetch-guard +phase | baseline mean [min,max] ops/s | candidate mean [min,max] ops/s | delta | p99 us B/C | CPU efficiency delta | read bytes/op B/C +range:uniform:1@1 | 9087.0 [5314.6,12859.4] | 12577.5 [12358.7,12796.4] | +38.41% | 992.256/145.408 | +36.94% | 26806/26787 +range:uniform:1@8 | 39266.3 [11424.0,67108.6] | 67302.1 [66793.1,67811.0] | +71.40% | 4496.384/212.992 | +70.28% | 26830/26821 +range:uniform:10000@1 | 114.0 [88.4,139.6] | 140.3 [140.2,140.4] | +23.07% | 23003.136/15859.712 | +10.58% | 2970516/2967018 +range:uniform:10000@8 | 472.4 [213.2,731.6] | 773.1 [764.8,781.4] | +63.65% | 81002.496/23068.672 | +34.30% | 2882049/2881803 +samples 20 errors 0 violations 0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/manifest.json new file mode 100644 index 000000000..6d54f5ffa --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/manifest.json @@ -0,0 +1,257 @@ +{ + "project": "cache-errors", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/0-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763154.1224844, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791763190.6566198, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + ".cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/1-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763190.8884106, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791763227.2566218, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + ".cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/2-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763227.4900718, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791763263.8526666, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/3-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763264.0774357, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791763300.4723763, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/results.csv new file mode 100644 index 000000000..bd7a56671 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.104,19241604.1,nan,nan,nan,0.000,nan,0.604,3309581.6,277504000,32768,138.75,0.02,nan,nan,nan,nan,nan,2000000,19241604.1,0.104,0.000,0.104,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,point:uniform@1,1,0,2000000,131321,5.000,26263.5,45.568,70.656,206.848,2076.559,38.044,0.557,235855.0,422993920,0,3221.07,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,1000430,5.000,200079.2,47.616,72.704,107.520,1891.967,39.944,5.020,199270.9,3226382336,0,3225.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,65075,5.000,13014.6,72.704,133.120,1097.728,2103.832,76.802,5.457,11925.7,1744097280,0,26801.34,0.00,72.704,133.120,76.435,nan,0.335,65075,13014.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,336415,5.000,67280.0,113.664,215.040,1523.712,3213.616,118.834,42.673,7883.6,9020895232,0,26814.78,0.00,113.664,215.040,117.965,nan,0.822,336415,67280.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,684,5.000,136.8,7536.640,17039.360,38096.127,38096.127,7294.023,1.751,390.5,2026930176,0,2963348.21,0.00,157.696,1261.568,189.664,711.07,0.826,6829917,1365945.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.282,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,3663,5.000,732.6,10878.976,36175.872,57147.392,62395.818,10916.214,13.971,262.2,10505986048,0,2868137.06,0.00,243.712,1982.464,329.951,1059.95,1.203,36561543,7312016.3,5.000,0.104,5.104,0.009,0,278528,nan,2998669312,629575680,0.282,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.103,19476159.7,nan,nan,nan,0.000,nan,0.599,3339087.7,277458944,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,19476159.7,0.103,0.000,0.103,0.000,0,0,nan,0,0,0.153,0,0,0,0,3 +candidate,disk,1,0,point:uniform@1,1,0,2000000,134494,5.000,26898.0,45.568,70.656,169.984,589.548,37.148,0.556,241875.7,433119232,0,3220.36,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.153,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,1007833,5.000,201559.5,47.616,72.704,97.280,931.822,39.653,5.244,192203.3,3249913856,0,3224.66,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.153,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,66333,5.000,13266.1,72.704,128.000,190.464,5890.769,75.344,5.452,12167.5,1777750016,0,26800.39,0.00,72.704,128.000,74.958,nan,0.354,66333,13266.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.153,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,348349,5.000,69666.7,113.664,202.752,243.712,1931.041,114.762,42.768,8145.1,9343033344,0,26820.90,0.00,113.664,202.752,113.845,nan,0.869,348349,69666.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.153,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,702,5.000,140.4,7536.640,15597.568,18612.224,18748.938,7119.283,1.800,390.0,2082492416,0,2966513.41,0.00,161.792,495.616,180.880,694.41,0.966,7009917,1401927.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.153,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,3944,5.000,788.8,10616.832,22282.240,25427.968,26110.910,10140.282,14.697,268.4,11121831936,0,2819937.10,0.00,235.520,745.472,268.569,988.37,1.242,39365785,7872840.4,5.000,0.072,5.072,0.009,0,278528,nan,2998669312,629575680,0.153,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.103,19500492.2,nan,nan,nan,0.000,nan,0.579,3456595.5,277508096,32768,138.75,0.02,nan,nan,nan,nan,nan,2000000,19500492.2,0.103,0.000,0.103,0.000,0,0,nan,0,0,0.163,0,0,0,0,5 +candidate,disk,2,0,point:uniform@1,1,1,2000000,132890,5.000,26576.3,45.568,72.704,186.368,1497.704,37.597,0.569,233587.9,428081152,0,3221.32,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1007677,5.000,201528.3,47.616,72.704,95.232,665.826,39.658,5.241,192277.1,3249606656,0,3224.85,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,66627,5.000,13324.9,72.704,128.000,194.560,647.046,75.013,5.458,12206.9,1785344000,0,26796.10,0.00,70.656,128.000,74.644,nan,0.336,66627,13324.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,342909,5.000,68578.4,115.712,206.848,260.096,4193.805,116.583,42.794,8013.1,9190973440,0,26802.95,0.00,115.712,202.752,115.630,nan,0.902,342909,68578.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,716,5.000,143.2,7405.568,15335.424,16788.562,16788.562,6981.579,1.763,406.2,2114916352,0,2953793.79,0.00,157.696,454.656,174.882,681.23,0.847,7149917,1429935.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,3953,5.000,790.6,10616.832,21757.952,24903.680,27785.816,10118.959,14.154,279.3,11329495040,0,2866049.85,0.00,239.616,778.240,275.535,985.62,1.182,39455785,7890864.8,5.000,0.057,5.057,0.008,0,278528,nan,2998669312,629575680,0.163,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.099,20121016.6,nan,nan,nan,0.000,nan,0.556,3596760.0,277483520,32768,138.74,0.02,nan,nan,nan,nan,nan,2000000,20121016.6,0.099,0.000,0.099,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,134296,5.000,26857.9,45.568,70.656,169.984,578.995,37.201,0.543,247449.4,432594944,0,3221.20,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,1013285,5.000,202649.9,47.616,72.704,95.232,631.209,39.437,5.105,198480.5,3267481600,0,3224.64,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,66580,5.000,13315.6,72.704,130.048,190.464,605.575,75.065,5.460,12195.1,1784324096,0,26799.70,0.00,70.656,130.048,74.693,nan,0.340,66580,13315.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,349834,5.000,69963.5,113.664,202.752,266.240,735.264,114.275,42.788,8176.1,9391755264,0,26846.32,0.00,113.664,202.752,113.397,nan,0.829,349834,69963.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,711,5.000,142.2,7405.568,15335.424,16850.577,16850.577,7034.795,1.767,402.3,2103668736,0,2958746.46,0.00,157.696,471.040,176.871,686.28,0.906,7099917,1419941.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.169,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,3929,5.000,785.8,10616.832,21757.952,24903.680,27014.535,10181.810,14.163,277.4,11313496064,0,2879484.87,0.00,247.808,794.624,281.188,991.43,1.248,39215785,7842847.3,5.000,0.080,5.080,0.008,0,278528,nan,2998669312,629575680,0.169,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/environment.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/environment.json new file mode 100644 index 000000000..7a7b701cd --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/environment.json @@ -0,0 +1,12 @@ +{ + "cpu": "Intel Core i7-12800H", + "logical_cpus": 20, + "memory_kib": 65513444, + "compiler": "cc (Debian 14.2.0-19) 14.2.0", + "kernel": "6.12.107+deb13-amd64", + "database_mount": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "public_api_cpu_affinity": "0-11", + "base_commit": "db3047a8", + "benchmark_serialization": "exclusive benchmark.lock and machine.lock; shared machine.lock for all builds/tests" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/manifest.json new file mode 100644 index 000000000..614b760f2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/manifest.json @@ -0,0 +1,1058 @@ +{ + "io": "O_DIRECT", + "seconds": 0, + "records": 20000000, + "report_ms": 20, + "runs": [ + { + "wal": 0, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791765462.1312528, + "returncode": 0, + "finished": 1791765470.9188533, + "db_allocated_bytes": 2734628864 + }, + { + "wal": 0, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791765470.937163, + "returncode": 0, + "finished": 1791765479.5748777, + "db_allocated_bytes": 2711355392 + }, + { + "wal": 0, + "threads": 8, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791765479.5949254, + "returncode": 0, + "finished": 1791765487.9817867, + "db_allocated_bytes": 2728370176 + }, + { + "wal": 0, + "threads": 8, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791765488.000373, + "returncode": 0, + "finished": 1791765497.9879165, + "db_allocated_bytes": 2686201856 + }, + { + "wal": 0, + "threads": 8, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791765498.0118222, + "returncode": 0, + "finished": 1791765508.2535846, + "db_allocated_bytes": 2714095616 + }, + { + "wal": 0, + "threads": 8, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791765508.27424, + "returncode": 0, + "finished": 1791765516.310076, + "db_allocated_bytes": 2739109888 + }, + { + "wal": 0, + "threads": 8, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791765516.328283, + "returncode": 0, + "finished": 1791765524.7640958, + "db_allocated_bytes": 2734034944 + }, + { + "wal": 0, + "threads": 8, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791765524.7819712, + "returncode": 0, + "finished": 1791765534.1208608, + "db_allocated_bytes": 2718744576 + }, + { + "wal": 0, + "threads": 8, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791765534.1415615, + "returncode": 0, + "finished": 1791765542.0766406, + "db_allocated_bytes": 2717708288 + }, + { + "wal": 0, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791765542.0942702, + "returncode": 0, + "finished": 1791765550.430565, + "db_allocated_bytes": 2709753856 + }, + { + "wal": 1, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791765550.4497776, + "returncode": 0, + "finished": 1791765562.990327, + "db_allocated_bytes": 3948146688 + }, + { + "wal": 1, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791765563.0248113, + "returncode": 0, + "finished": 1791765576.5171497, + "db_allocated_bytes": 3951906816 + }, + { + "wal": 1, + "threads": 8, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791765576.5481987, + "returncode": 0, + "finished": 1791765589.9936721, + "db_allocated_bytes": 3965501440 + }, + { + "wal": 1, + "threads": 8, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791765590.02445, + "returncode": 0, + "finished": 1791765604.469434, + "db_allocated_bytes": 3947302912 + }, + { + "wal": 1, + "threads": 8, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791765604.5060363, + "returncode": 0, + "finished": 1791765618.850014, + "db_allocated_bytes": 3941081088 + }, + { + "wal": 1, + "threads": 8, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791765618.8820553, + "returncode": 0, + "finished": 1791765632.323647, + "db_allocated_bytes": 3950243840 + }, + { + "wal": 1, + "threads": 8, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791765632.3570917, + "returncode": 0, + "finished": 1791765646.1519227, + "db_allocated_bytes": 3958247424 + }, + { + "wal": 1, + "threads": 8, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791765646.1852846, + "returncode": 0, + "finished": 1791765660.5822716, + "db_allocated_bytes": 3944361984 + }, + { + "wal": 1, + "threads": 8, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791765660.6138303, + "returncode": 0, + "finished": 1791765674.8086379, + "db_allocated_bytes": 3966910464 + }, + { + "wal": 1, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791765674.8388753, + "returncode": 0, + "finished": 1791765687.1291275, + "db_allocated_bytes": 3983605760 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/summary.csv new file mode 100644 index 000000000..c1c7e5c67 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/summary.csv @@ -0,0 +1,21 @@ +wal,threads,version,index,ops_s,drain_ops_s,close_s,inserted,p99_us,max_ms,ops_per_cpu_s,read_B_op,write_B_op +0,8,baseline,0,2331892.938262,2291285.907457483,0.152,20000000,3.9360000000000004,1926.566175,382283.923684112,76.48740677580227,132.1971912154284 +0,8,cache-errors,1,2380489.399569,2337914.164416619,0.153,20000000,3.8080000000000003,1679.238995,377237.33452537394,75.87106684094383,131.2448375392043 +0,8,cache-handoff,2,2452581.221074,2404229.3278952874,0.164,20000000,3.8080000000000003,1818.758398,392240.5395193766,76.20175924051313,131.85357587263 +0,8,scalar,3,2047942.441716,2014119.1768415773,0.164,20000000,4.159999999999999,2224.304795,359911.6769028374,75.70579332351919,129.85767445455176 +0,8,simd,4,1995452.033172,1962556.001535504,0.168,20000000,4.159999999999999,2244.031038,352199.3637476336,76.51281077377433,131.2590727338787 +0,8,simd,5,2566947.974264,2514346.2310075713,0.163,20000000,4.159999999999999,1398.343965,351664.6021824603,75.4178927664038,132.69628596193851 +0,8,scalar,6,2428868.036783,2388262.739471105,0.14,20000000,4.159999999999999,1484.183704,353194.5277461832,75.6203946677633,132.25644685137019 +0,8,cache-handoff,7,2188411.429524,2152609.4631510396,0.152,20000000,3.872,2192.415639,383883.83104790404,76.45462327963156,131.4319579653079 +0,8,cache-errors,8,2599362.881939,2548682.0573930065,0.153,20000000,3.872,1592.865269,372830.70869023656,76.62291240573992,131.34091415684384 +0,8,baseline,9,2457789.956154,2406914.9704334564,0.172,20000000,3.8080000000000003,1599.934215,390069.1617904237,76.07766121069936,130.98244993014825 +1,8,baseline,0,1633578.64782,1601145.2671867134,0.248,20000000,60.928000000000004,2236.914521,361227.8679406637,83.85676762776862,193.8978260510048 +1,8,cache-errors,1,1512635.827817,1492542.5484701328,0.178,20000000,61.952,2673.190696,359673.741295889,83.81715791379169,194.0320601895338 +1,8,cache-handoff,2,1523936.638819,1495561.3608262376,0.249,20000000,60.928000000000004,2680.653164,359483.9940478347,83.4703233808597,194.71832598550938 +1,8,scalar,3,1406891.704344,1389010.909638937,0.183,20000000,57.855999999999995,2766.30571,306093.31859694555,83.31712525579059,193.79627017528935 +1,8,simd,4,1416980.556967,1399529.1983776656,0.176,20000000,56.832,2752.849974,326218.55721864087,83.39636972415877,193.50990045918002 +1,8,simd,5,1514574.128514,1495770.8574775679,0.166,20000000,56.832,2430.136871,329596.20925804507,83.29985375312282,193.92489372332852 +1,8,scalar,6,1478678.274842,1458088.0252115084,0.191,20000000,56.832,2659.321279,329376.56923380215,83.583033182362,194.34405121260258 +1,8,cache-handoff,7,1422981.983191,1395966.4387332664,0.272,20000000,59.903999999999996,3039.661419,357497.81249474833,83.16423135947653,193.6932300632621 +1,8,cache-errors,8,1431785.186499,1415570.826104485,0.16,20000000,62.976000000000006,2917.15503,353925.248523272,83.92980781932216,194.82741964155124 +1,8,baseline,9,1660999.821395,1639083.621129099,0.161,20000000,58.88,1969.066159,354911.1735351877,83.69358672699065,195.66276594310838 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv new file mode 100644 index 000000000..de4aa42ff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2331892.938262,8.576723,20000000,0.002836,0.001328,0.003936,0.009856,1926.566175,0.002836,0.001328,0.003936,0.009856,1926.566175,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..501c74ba0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2380489.399569,8.401634,20000000,0.002698,0.001296,0.003808,0.009344,1679.238995,0.002698,0.001296,0.003808,0.009344,1679.238995,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv new file mode 100644 index 000000000..2ceaf11a2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2452581.221074,8.154674,20000000,0.002736,0.001264,0.003808,0.009344,1818.758398,0.002736,0.001264,0.003808,0.009344,1818.758398,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv new file mode 100644 index 000000000..9f53df7f4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2047942.441716,9.765899,20000000,0.003387,0.001488,0.004160,0.009856,2224.304795,0.003387,0.001488,0.004160,0.009856,2224.304795,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv new file mode 100644 index 000000000..3cb0d19e4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1995452.033172,10.022792,20000000,0.003274,0.001488,0.004160,0.009856,2244.031038,0.003274,0.001488,0.004160,0.009856,2244.031038,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv new file mode 100644 index 000000000..16258596b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2566947.974264,7.791354,20000000,0.002730,0.001488,0.004160,0.009856,1398.343965,0.002730,0.001488,0.004160,0.009856,1398.343965,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv new file mode 100644 index 000000000..7d62e5d7f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2428868.036783,8.234288,20000000,0.002815,0.001488,0.004160,0.009600,1484.183704,0.002815,0.001488,0.004160,0.009600,1484.183704,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv new file mode 100644 index 000000000..1f2dc63d8 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2188411.429524,9.139049,20000000,0.003021,0.001296,0.003872,0.009600,2192.415639,0.003021,0.001296,0.003872,0.009600,2192.415639,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv new file mode 100644 index 000000000..0935782ef --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2599362.881939,7.694193,20000000,0.002636,0.001296,0.003872,0.009344,1592.865269,0.002636,0.001296,0.003872,0.009344,1592.865269,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv new file mode 100644 index 000000000..760604128 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2457789.956154,8.137392,20000000,0.002721,0.001264,0.003808,0.009088,1599.934215,0.002721,0.001264,0.003808,0.009088,1599.934215,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv new file mode 100644 index 000000000..6e0d4cdd0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1633578.647820,12.243059,20000000,0.004740,0.001264,0.060928,0.219136,2236.914521,0.004740,0.001264,0.060928,0.219136,2236.914521,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..375b56365 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1512635.827817,13.221953,20000000,0.005145,0.001264,0.061952,0.227328,2673.190696,0.005145,0.001264,0.061952,0.227328,2673.190696,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv new file mode 100644 index 000000000..e08128610 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1523936.638819,13.123905,20000000,0.005107,0.001264,0.060928,0.231424,2680.653164,0.005107,0.001264,0.060928,0.231424,2680.653164,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv new file mode 100644 index 000000000..b8b765586 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1406891.704344,14.215735,20000000,0.005503,0.001552,0.057856,0.231424,2766.305710,0.005503,0.001552,0.057856,0.231424,2766.305710,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv new file mode 100644 index 000000000..e4fcae5b1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1416980.556967,14.114520,20000000,0.005457,0.001520,0.056832,0.235520,2752.849974,0.005457,0.001520,0.056832,0.235520,2752.849974,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv new file mode 100644 index 000000000..184e33b1e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1514574.128514,13.205032,20000000,0.005130,0.001488,0.056832,0.223232,2430.136871,0.005130,0.001488,0.056832,0.223232,2430.136871,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv new file mode 100644 index 000000000..53ffdd441 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1478678.274842,13.525593,20000000,0.005249,0.001488,0.056832,0.223232,2659.321279,0.005249,0.001488,0.056832,0.223232,2659.321279,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv new file mode 100644 index 000000000..30e2a870e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1422981.983191,14.054992,20000000,0.005334,0.001296,0.059904,0.231424,3039.661419,0.005334,0.001296,0.059904,0.231424,3039.661419,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv new file mode 100644 index 000000000..4c6287bd9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1431785.186499,13.968576,20000000,0.005439,0.001296,0.062976,0.235520,2917.155030,0.005439,0.001296,0.062976,0.235520,2917.155030,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv new file mode 100644 index 000000000..fc490204e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1660999.821395,12.040940,20000000,0.004465,0.001296,0.058880,0.219136,1969.066159,0.004465,0.001296,0.058880,0.219136,1969.066159,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/manifest.json new file mode 100644 index 000000000..712571cec --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/manifest.json @@ -0,0 +1,2025 @@ +{ + "io": "O_DIRECT", + "runs": [ + { + "wal": 0, + "threads": 1, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764239.4390883, + "returncode": 0, + "finished": 1791764245.6705275, + "db_allocated_bytes": 348508160 + }, + { + "wal": 0, + "threads": 1, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764245.6864367, + "returncode": 0, + "finished": 1791764252.020152, + "db_allocated_bytes": 376832000 + }, + { + "wal": 0, + "threads": 1, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764252.033638, + "returncode": 0, + "finished": 1791764258.3161929, + "db_allocated_bytes": 383426560 + }, + { + "wal": 0, + "threads": 1, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764258.3256717, + "returncode": 0, + "finished": 1791764264.508286, + "db_allocated_bytes": 355164160 + }, + { + "wal": 0, + "threads": 1, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764264.5343823, + "returncode": 0, + "finished": 1791764270.762241, + "db_allocated_bytes": 350638080 + }, + { + "wal": 0, + "threads": 1, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764270.7670853, + "returncode": 0, + "finished": 1791764276.9990816, + "db_allocated_bytes": 354693120 + }, + { + "wal": 0, + "threads": 1, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764277.0041296, + "returncode": 0, + "finished": 1791764283.2865763, + "db_allocated_bytes": 374169600 + }, + { + "wal": 0, + "threads": 1, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764283.2918596, + "returncode": 0, + "finished": 1791764289.5242481, + "db_allocated_bytes": 389468160 + }, + { + "wal": 0, + "threads": 1, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764289.529364, + "returncode": 0, + "finished": 1791764295.7634227, + "db_allocated_bytes": 392544256 + }, + { + "wal": 0, + "threads": 1, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764295.7685165, + "returncode": 0, + "finished": 1791764302.051701, + "db_allocated_bytes": 387960832 + }, + { + "wal": 0, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764302.0565724, + "returncode": 0, + "finished": 1791764308.2867808, + "db_allocated_bytes": 2646523904 + }, + { + "wal": 0, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764308.3038325, + "returncode": 0, + "finished": 1791764317.3893774, + "db_allocated_bytes": 2596847616 + }, + { + "wal": 0, + "threads": 8, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764317.4052024, + "returncode": 0, + "finished": 1791764325.3387525, + "db_allocated_bytes": 2613960704 + }, + { + "wal": 0, + "threads": 8, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764325.356455, + "returncode": 0, + "finished": 1791764333.8935492, + "db_allocated_bytes": 2576396288 + }, + { + "wal": 0, + "threads": 8, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764333.9138834, + "returncode": 0, + "finished": 1791764344.0016816, + "db_allocated_bytes": 2569760768 + }, + { + "wal": 0, + "threads": 8, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764344.0193374, + "returncode": 0, + "finished": 1791764352.6067424, + "db_allocated_bytes": 2611773440 + }, + { + "wal": 0, + "threads": 8, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764352.6252277, + "returncode": 0, + "finished": 1791764359.8097963, + "db_allocated_bytes": 2619453440 + }, + { + "wal": 0, + "threads": 8, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764359.8287642, + "returncode": 0, + "finished": 1791764369.317056, + "db_allocated_bytes": 2616877056 + }, + { + "wal": 0, + "threads": 8, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764369.3354993, + "returncode": 0, + "finished": 1791764378.1724534, + "db_allocated_bytes": 2603999232 + }, + { + "wal": 0, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764378.1891448, + "returncode": 0, + "finished": 1791764387.2753887, + "db_allocated_bytes": 2582605824 + }, + { + "wal": 1, + "threads": 1, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764387.294969, + "returncode": 0, + "finished": 1791764393.5240884, + "db_allocated_bytes": 549924864 + }, + { + "wal": 1, + "threads": 1, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764393.5309565, + "returncode": 0, + "finished": 1791764399.7118957, + "db_allocated_bytes": 558755840 + }, + { + "wal": 1, + "threads": 1, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764399.7197104, + "returncode": 0, + "finished": 1791764405.9490159, + "db_allocated_bytes": 566243328 + }, + { + "wal": 1, + "threads": 1, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764405.9556415, + "returncode": 0, + "finished": 1791764412.1843102, + "db_allocated_bytes": 556552192 + }, + { + "wal": 1, + "threads": 1, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764412.1906826, + "returncode": 0, + "finished": 1791764418.419015, + "db_allocated_bytes": 549474304 + }, + { + "wal": 1, + "threads": 1, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764418.425337, + "returncode": 0, + "finished": 1791764424.7061207, + "db_allocated_bytes": 548372480 + }, + { + "wal": 1, + "threads": 1, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764424.712356, + "returncode": 0, + "finished": 1791764430.9929113, + "db_allocated_bytes": 543526912 + }, + { + "wal": 1, + "threads": 1, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764431.0004954, + "returncode": 0, + "finished": 1791764437.2298872, + "db_allocated_bytes": 569970688 + }, + { + "wal": 1, + "threads": 1, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764437.2377114, + "returncode": 0, + "finished": 1791764443.4248807, + "db_allocated_bytes": 568643584 + }, + { + "wal": 1, + "threads": 1, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "1", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764443.4326928, + "returncode": 0, + "finished": 1791764449.609277, + "db_allocated_bytes": 575111168 + }, + { + "wal": 1, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764449.6153672, + "returncode": 0, + "finished": 1791764455.992709, + "db_allocated_bytes": 1922781184 + }, + { + "wal": 1, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764456.0108812, + "returncode": 0, + "finished": 1791764462.538178, + "db_allocated_bytes": 1856237568 + }, + { + "wal": 1, + "threads": 8, + "index": 2, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764462.5539532, + "returncode": 0, + "finished": 1791764468.9318976, + "db_allocated_bytes": 1723772928 + }, + { + "wal": 1, + "threads": 8, + "index": 3, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-3-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764468.9479964, + "returncode": 0, + "finished": 1791764475.2250206, + "db_allocated_bytes": 1757024256 + }, + { + "wal": 1, + "threads": 8, + "index": 4, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-4-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764475.2416632, + "returncode": 0, + "finished": 1791764481.6198823, + "db_allocated_bytes": 1656233984 + }, + { + "wal": 1, + "threads": 8, + "index": 5, + "version": "simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-5-simd.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5f7879896cd00f7f0344debdf1dfda5db1c21b1c6c2bd9774bee0d401cdee923", + "started": 1791764481.6346211, + "returncode": 0, + "finished": 1791764488.0613432, + "db_allocated_bytes": 1698279424 + }, + { + "wal": 1, + "threads": 8, + "index": 6, + "version": "scalar", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-bucket/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-6-scalar.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "d45940bc5de3127f7e708e0a018ab4f10f2dd454353e6bc600d1b91978b6b4f0", + "started": 1791764488.08021, + "returncode": 0, + "finished": 1791764494.5094519, + "db_allocated_bytes": 1703403520 + }, + { + "wal": 1, + "threads": 8, + "index": 7, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791764494.524481, + "returncode": 0, + "finished": 1791764500.9515743, + "db_allocated_bytes": 1681952768 + }, + { + "wal": 1, + "threads": 8, + "index": 8, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-8-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791764500.9669187, + "returncode": 0, + "finished": 1791764507.443813, + "db_allocated_bytes": 1660809216 + }, + { + "wal": 1, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv", + "--records", + "100000000", + "--seconds", + "6", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791764507.4603062, + "returncode": 0, + "finished": 1791764513.9381745, + "db_allocated_bytes": 1655476224 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/summary.csv new file mode 100644 index 000000000..9be54e239 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/summary.csv @@ -0,0 +1,41 @@ +wal,threads,version,index,ops_s,drain_ops_s,close_s,inserted,p99_us,max_ms,ops_per_cpu_s,read_B_op,write_B_op +0,1,baseline,0,1176464.224544,1146678.3346733581,0.156,7065348,2.032,63.071237,872986.4513334255,0.315406365729756,29.933518497109805 +0,1,cache-errors,1,1229561.271929,1175685.8020059848,0.275,7378744,1.936,56.517172,893703.9200615461,0.2265540316050927,37.603066336696905 +0,1,cache-handoff,2,1231881.002159,1184510.6969329184,0.24,7392857,2.0,54.542071,900398.8401907856,0.2259927857564782,39.51259007761818 +0,1,scalar,3,1194184.411628,1161288.43559329,0.17,7166657,2.0,58.567223,885700.6691127379,0.23324924636076874,32.75363497728 +0,1,simd,4,1173494.134053,1140074.558989837,0.176,7045744,2.0799999999999996,57.577587,869835.8246472926,0.23725539051633784,29.350204846615345 +0,1,simd,5,1195390.943353,1164915.6992746387,0.157,7173912,2.0,53.204628,896007.3565689228,0.23301499156766015,33.24605139947819 +0,1,scalar,6,1214370.764812,1168047.272977306,0.238,7287642,2.0,54.389786,888684.3548414145,0.22925875522854058,37.446371707806314 +0,1,cache-handoff,7,1252882.12545,1219357.4574896316,0.165,7519019,1.9040000000000001,55.116945,905075.9095310228,0.22288470978740604,39.800834478372806 +0,1,cache-errors,8,1253114.873301,1215445.0133585546,0.186,7520470,1.8719999999999999,53.58832,906330.3085687257,0.22214975181222235,40.17105186586611 +0,1,baseline,9,1240770.382873,1201401.0716616556,0.197,7459110,1.9040000000000001,54.427614,923455.7113344192,0.2241059208963643,39.94065714182248 +0,8,baseline,0,3151663.131856,3084470.7384211873,0.131,18952660,3.424,1092.757844,380562.7231473727,81.5311611198357,133.78462104599203 +0,8,cache-errors,1,2992797.085974,2073901.460643119,2.762,18656185,3.552,2124.312995,431804.5807405321,41.78665940836385,94.93924084425738 +0,8,cache-handoff,2,3024698.835821,2369805.2696815743,1.704,18650640,3.552,1685.995756,407120.03427111305,53.22821119929459,101.72402972278209 +0,8,scalar,3,3094196.794397,2188977.489927291,2.488,18615973,3.872,1368.801354,375480.7095932843,41.89407744788942,92.59539361815109 +0,8,simd,4,2735615.551692,1857669.9305378024,3.21,18580658,3.9360000000000004,2313.441403,405572.49484854273,33.68293142992477,83.81382647226317 +0,8,simd,5,2982287.25097,2181870.890275897,2.29,18616497,3.9360000000000004,1779.441037,397243.5785554456,40.291371373004125,93.96013002314857 +0,8,scalar,6,3068380.563401,2610133.8132599397,1.063,18578293,4.064,1177.283329,376192.0228809474,50.80649959178448,102.13845225882608 +0,8,cache-handoff,7,2983802.316192,1986673.6075846541,3.143,18684856,3.7439999999999998,2148.434383,419558.45240833133,40.84430995155847,93.79458431964915 +0,8,cache-errors,8,2956108.13279,2124745.247452702,2.473,18683601,3.68,2118.335855,419467.74711742304,41.507803694169965,94.97358612167714 +0,8,baseline,9,2966799.001263,2068278.7942442927,2.733,18664183,3.7439999999999998,2019.578355,423194.8378423457,41.89844041554899,93.51228876376044 +1,1,baseline,0,818307.331584,797961.9030904584,0.153,4910482,20.224,48.05067,744151.0192127484,4.496817401496571,94.84005051305999 +1,1,cache-errors,1,836119.303961,818790.9660906922,0.127,5017497,19.712,49.998803,764647.3714984007,4.409818592165164,99.016692548898 +1,1,cache-handoff,2,840709.812994,819275.4003752246,0.157,5045025,19.712,56.763293,766982.8450437185,4.394766875187623,100.36982270092447 +1,1,scalar,3,824275.570285,804305.0543306643,0.149,4946423,19.712,51.306765,748450.6793069908,4.416058383227644,98.75538270842664 +1,1,simd,4,812018.813297,790032.8102106764,0.167,4872841,19.712,46.636067,738108.6660912873,4.4172132021374,94.56596287394825 +1,1,simd,5,818159.325792,788473.0980192698,0.226,4911093,19.712,47.765998,746379.404981092,4.404631257444295,97.20777623446847 +1,1,scalar,6,811138.475863,781323.0035412485,0.229,4867647,20.224,44.474181,743390.2975919,4.558341052059573,93.42979582899414 +1,1,cache-handoff,7,853963.381234,833816.8308551578,0.145,5124795,19.2,45.545676,774813.5372770221,4.304876904379497,100.71616128287155 +1,1,cache-errors,8,851195.793998,830437.9931580944,0.15,5107956,19.2,48.454339,774885.1262536878,4.350958478482568,100.89995377538281 +1,1,baseline,9,855237.378725,835468.3271939339,0.142,5132373,19.712,63.948389,784880.2219034751,4.351166147604203,101.45718817287377 +1,8,baseline,0,2493076.0488,2371786.507375948,0.307,14966701,56.832,129.908446,455947.1785848847,14.1347733113017,120.31704401352515 +1,8,cache-errors,1,2419906.800492,2248919.7120469036,0.457,14545383,58.88,227.366432,463674.92058942467,12.074265276779267,120.176484389823 +1,8,cache-handoff,2,2263863.694736,2157470.6261815536,0.296,13588572,59.903999999999996,262.145351,442002.264223733,12.694960109026201,120.83540407670512 +1,8,scalar,3,2315753.866519,2249046.162868904,0.178,13897423,56.832,210.185598,405511.4745326965,12.495721707470317,121.04284644645207 +1,8,simd,4,2160234.065146,2060076.8531766443,0.292,12974329,56.832,122.074904,398498.6455325058,13.141772019703808,119.16262848327511 +1,8,simd,5,2225544.125201,2110879.0323918923,0.326,13356281,56.832,211.362345,389153.46267501754,13.223461968382999,118.49545509806566 +1,8,scalar,6,2235420.243998,2107913.900806954,0.363,13414880,56.832,168.601299,397685.3158723362,13.025761500323108,119.73242302256033 +1,8,cache-handoff,7,2209922.79654,2085180.7471583802,0.359,13261785,60.928000000000004,117.309814,423551.3403710792,13.396002192515654,117.81101354685836 +1,8,cache-errors,8,2163385.237558,2031490.7077084633,0.392,13061953,60.928000000000004,192.286536,436477.6346732306,13.152247193200793,118.64248441035511 +1,8,baseline,9,2154201.489635,2027158.1577991145,0.378,12993129,60.928000000000004,259.003188,432559.9341656882,12.76045645411878,118.98952683760939 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv new file mode 100644 index 000000000..8f2a7f968 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1176464.224544,6.005578,7065348,0.000822,0.000680,0.002032,0.003680,63.071237,0.000822,0.000680,0.002032,0.003680,63.071237,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv new file mode 100644 index 000000000..97e6c07df --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1229561.271929,6.001119,7378744,0.000786,0.000664,0.001936,0.003552,56.517172,0.000786,0.000664,0.001936,0.003552,56.517172,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv new file mode 100644 index 000000000..3d7d85cd4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1231881.002159,6.001275,7392857,0.000785,0.000664,0.002000,0.003488,54.542071,0.000785,0.000664,0.002000,0.003488,54.542071,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv new file mode 100644 index 000000000..569c5b1f6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1194184.411628,6.001298,7166657,0.000811,0.000680,0.002000,0.003488,58.567223,0.000811,0.000680,0.002000,0.003488,58.567223,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv new file mode 100644 index 000000000..cc80c8510 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1173494.134053,6.004073,7045744,0.000825,0.000696,0.002080,0.003616,57.577587,0.000825,0.000696,0.002080,0.003616,57.577587,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv new file mode 100644 index 000000000..03099a706 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1195390.943353,6.001310,7173912,0.000811,0.000680,0.002000,0.003488,53.204628,0.000811,0.000680,0.002000,0.003488,53.204628,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv new file mode 100644 index 000000000..36d966084 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1214370.764812,6.001167,7287642,0.000797,0.000664,0.002000,0.003488,54.389786,0.000797,0.000664,0.002000,0.003488,54.389786,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv new file mode 100644 index 000000000..07bf5d394 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1252882.125450,6.001378,7519019,0.000772,0.000632,0.001904,0.003360,55.116945,0.000772,0.000632,0.001904,0.003360,55.116945,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv new file mode 100644 index 000000000..235ab0750 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1253114.873301,6.001421,7520470,0.000772,0.000632,0.001872,0.003360,53.588320,0.000772,0.000632,0.001872,0.003360,53.588320,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv new file mode 100644 index 000000000..b659322ab --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1240770.382873,6.011676,7459110,0.000779,0.000632,0.001904,0.003424,54.427614,0.000779,0.000632,0.001904,0.003424,54.427614,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv new file mode 100644 index 000000000..1567dca7f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,3151663.131856,6.013542,18952660,0.002487,0.001136,0.003424,0.008320,1092.757844,0.002487,0.001136,0.003424,0.008320,1092.757844,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..343713ec4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2992797.085974,6.233695,18656185,0.002601,0.001168,0.003552,0.008320,2124.312995,0.002601,0.001168,0.003552,0.008320,2124.312995,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv new file mode 100644 index 000000000..20166e4dc --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,3024698.835821,6.166115,18650640,0.002552,0.001200,0.003552,0.008576,1685.995756,0.002552,0.001200,0.003552,0.008576,1685.995756,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv new file mode 100644 index 000000000..6cb8859ca --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,3094196.794397,6.016415,18615973,0.002531,0.001360,0.003872,0.008832,1368.801354,0.002531,0.001360,0.003872,0.008832,1368.801354,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv new file mode 100644 index 000000000..942f7659a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2735615.551692,6.792131,18580658,0.002747,0.001392,0.003936,0.009088,2313.441403,0.002747,0.001392,0.003936,0.009088,2313.441403,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv new file mode 100644 index 000000000..ee809433e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2982287.250970,6.242355,18616497,0.002564,0.001392,0.003936,0.009088,1779.441037,0.002564,0.001392,0.003936,0.009088,1779.441037,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv new file mode 100644 index 000000000..95629e56d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,3068380.563401,6.054755,18578293,0.002543,0.001456,0.004064,0.009344,1177.283329,0.002543,0.001456,0.004064,0.009344,1177.283329,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv new file mode 100644 index 000000000..921cce707 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2983802.316192,6.262096,18684856,0.002585,0.001264,0.003744,0.009344,2148.434383,0.002585,0.001264,0.003744,0.009344,2148.434383,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv new file mode 100644 index 000000000..a3514cca8 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2956108.132790,6.320337,18683601,0.002617,0.001232,0.003680,0.009088,2118.335855,0.002617,0.001232,0.003680,0.009088,2118.335855,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv new file mode 100644 index 000000000..3018f4cb4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2966799.001263,6.291017,18664183,0.002614,0.001264,0.003744,0.008832,2019.578355,0.002614,0.001264,0.003744,0.008832,2019.578355,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv new file mode 100644 index 000000000..e7bdad2a9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,818307.331584,6.000780,4910482,0.001194,0.000760,0.020224,0.039424,48.050670,0.001194,0.000760,0.020224,0.039424,48.050670,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv new file mode 100644 index 000000000..fe3b75e59 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,836119.303961,6.000934,5017497,0.001167,0.000728,0.019712,0.039424,49.998803,0.001167,0.000728,0.019712,0.039424,49.998803,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv new file mode 100644 index 000000000..0dcf36503 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,840709.812994,6.000911,5045025,0.001162,0.000728,0.019712,0.039424,56.763293,0.001162,0.000728,0.019712,0.039424,56.763293,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv new file mode 100644 index 000000000..568210061 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,824275.570285,6.000934,4946423,0.001186,0.000760,0.019712,0.038400,51.306765,0.001186,0.000760,0.019712,0.038400,51.306765,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv new file mode 100644 index 000000000..118f07184 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,812018.813297,6.000897,4872841,0.001204,0.000776,0.019712,0.038400,46.636067,0.001204,0.000776,0.019712,0.038400,46.636067,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv new file mode 100644 index 000000000..1aff93a2d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,818159.325792,6.002612,4911093,0.001194,0.000760,0.019712,0.036352,47.765998,0.001194,0.000760,0.019712,0.036352,47.765998,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv new file mode 100644 index 000000000..7dc916e0f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,811138.475863,6.001006,4867647,0.001205,0.000760,0.020224,0.039424,44.474181,0.001205,0.000760,0.020224,0.039424,44.474181,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv new file mode 100644 index 000000000..e848d119c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,853963.381234,6.001188,5124795,0.001143,0.000728,0.019200,0.035328,45.545676,0.001143,0.000728,0.019200,0.035328,45.545676,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv new file mode 100644 index 000000000..151039014 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,851195.793998,6.000918,5107956,0.001146,0.000728,0.019200,0.038400,48.454339,0.001146,0.000728,0.019200,0.038400,48.454339,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv new file mode 100644 index 000000000..8d07a53d0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,855237.378725,6.001109,5132373,0.001142,0.000728,0.019712,0.037376,63.948389,0.001142,0.000728,0.019712,0.037376,63.948389,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv new file mode 100644 index 000000000..8f961b5f9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2493076.048800,6.003307,14966701,0.003163,0.001136,0.056832,0.194560,129.908446,0.003163,0.001136,0.056832,0.194560,129.908446,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..3cabd40f0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2419906.800492,6.010720,14545383,0.003255,0.001136,0.058880,0.202752,227.366432,0.003255,0.001136,0.058880,0.202752,227.366432,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv new file mode 100644 index 000000000..1b6e80cd5 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2263863.694736,6.002381,13588572,0.003486,0.001168,0.059904,0.206848,262.145351,0.003486,0.001168,0.059904,0.206848,262.145351,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv new file mode 100644 index 000000000..da39b7ed2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2315753.866519,6.001252,13897423,0.003404,0.001360,0.056832,0.194560,210.185598,0.003404,0.001360,0.056832,0.194560,210.185598,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv new file mode 100644 index 000000000..a3f9e6059 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2160234.065146,6.005983,12974329,0.003649,0.001392,0.056832,0.198656,122.074904,0.003649,0.001392,0.056832,0.198656,122.074904,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv new file mode 100644 index 000000000..606e7a570 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2225544.125201,6.001355,13356281,0.003542,0.001424,0.056832,0.190464,211.362345,0.003542,0.001424,0.056832,0.190464,211.362345,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv new file mode 100644 index 000000000..92c39074b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2235420.243998,6.001055,13414880,0.003527,0.001392,0.056832,0.194560,168.601299,0.003527,0.001392,0.056832,0.194560,168.601299,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv new file mode 100644 index 000000000..ded8c2832 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2209922.796540,6.001017,13261785,0.003571,0.001232,0.060928,0.206848,117.309814,0.003571,0.001232,0.060928,0.206848,117.309814,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv new file mode 100644 index 000000000..7f078ecb4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2163385.237558,6.037738,13061953,0.003630,0.001200,0.060928,0.210944,192.286536,0.003630,0.001200,0.060928,0.210944,192.286536,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv new file mode 100644 index 000000000..bf08ee602 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2154201.489635,6.031529,12993129,0.003650,0.001200,0.060928,0.206848,259.003188,0.003650,0.001200,0.060928,0.206848,259.003188,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/manifest.json new file mode 100644 index 000000000..2acf3987b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/manifest.json @@ -0,0 +1,1268 @@ +{ + "io": "O_DIRECT", + "seconds": 0, + "records": 20000000, + "report_ms": 20, + "runs": [ + { + "wal": 0, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791782944.7789512, + "returncode": 0, + "finished": 1791782954.213297, + "db_allocated_bytes": 2713325568 + }, + { + "wal": 0, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791782954.2311325, + "returncode": 0, + "finished": 1791782962.4247067, + "db_allocated_bytes": 2722643968 + }, + { + "wal": 0, + "threads": 8, + "index": 2, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791782962.4364188, + "returncode": 0, + "finished": 1791782970.3193345, + "db_allocated_bytes": 2718400512 + }, + { + "wal": 0, + "threads": 8, + "index": 3, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791782970.3302784, + "returncode": 0, + "finished": 1791782978.7640715, + "db_allocated_bytes": 2741964800 + }, + { + "wal": 0, + "threads": 8, + "index": 4, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791782978.775765, + "returncode": 0, + "finished": 1791782986.408334, + "db_allocated_bytes": 2752589824 + }, + { + "wal": 0, + "threads": 8, + "index": 5, + "version": "tagged", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "226c8c4010c54e5d93bdfa5507a238c44b54bc2ac3f4e005171306352b6b1475", + "started": 1791782986.423957, + "returncode": 0, + "finished": 1791782995.009183, + "db_allocated_bytes": 2736230400 + }, + { + "wal": 0, + "threads": 8, + "index": 6, + "version": "tagged", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "226c8c4010c54e5d93bdfa5507a238c44b54bc2ac3f4e005171306352b6b1475", + "started": 1791782995.0198617, + "returncode": 0, + "finished": 1791783003.5568717, + "db_allocated_bytes": 2653667328 + }, + { + "wal": 0, + "threads": 8, + "index": 7, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783003.5696874, + "returncode": 0, + "finished": 1791783012.1540043, + "db_allocated_bytes": 2721497088 + }, + { + "wal": 0, + "threads": 8, + "index": 8, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791783012.1655798, + "returncode": 0, + "finished": 1791783021.0982342, + "db_allocated_bytes": 2730708992 + }, + { + "wal": 0, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783021.1095326, + "returncode": 0, + "finished": 1791783029.7947285, + "db_allocated_bytes": 2710044672 + }, + { + "wal": 0, + "threads": 8, + "index": 10, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791783029.8068392, + "returncode": 0, + "finished": 1791783039.0411866, + "db_allocated_bytes": 2735824896 + }, + { + "wal": 0, + "threads": 8, + "index": 11, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42", + "--no-log" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783039.052778, + "returncode": 0, + "finished": 1791783048.0886765, + "db_allocated_bytes": 2726830080 + }, + { + "wal": 1, + "threads": 8, + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783048.105594, + "returncode": 0, + "finished": 1791783062.1977928, + "db_allocated_bytes": 3949584384 + }, + { + "wal": 1, + "threads": 8, + "index": 1, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791783062.216451, + "returncode": 0, + "finished": 1791783076.3594227, + "db_allocated_bytes": 3951767552 + }, + { + "wal": 1, + "threads": 8, + "index": 2, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783076.3791823, + "returncode": 0, + "finished": 1791783091.5259016, + "db_allocated_bytes": 3946409984 + }, + { + "wal": 1, + "threads": 8, + "index": 3, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791783091.5447302, + "returncode": 0, + "finished": 1791783106.7895453, + "db_allocated_bytes": 3941703680 + }, + { + "wal": 1, + "threads": 8, + "index": 4, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783106.8117566, + "returncode": 0, + "finished": 1791783121.956571, + "db_allocated_bytes": 3943370752 + }, + { + "wal": 1, + "threads": 8, + "index": 5, + "version": "tagged", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "226c8c4010c54e5d93bdfa5507a238c44b54bc2ac3f4e005171306352b6b1475", + "started": 1791783121.979153, + "returncode": 0, + "finished": 1791783137.4287403, + "db_allocated_bytes": 3960401920 + }, + { + "wal": 1, + "threads": 8, + "index": 6, + "version": "tagged", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "226c8c4010c54e5d93bdfa5507a238c44b54bc2ac3f4e005171306352b6b1475", + "started": 1791783137.4483266, + "returncode": 0, + "finished": 1791783151.3931983, + "db_allocated_bytes": 3961257984 + }, + { + "wal": 1, + "threads": 8, + "index": 7, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783151.4155097, + "returncode": 0, + "finished": 1791783165.2575212, + "db_allocated_bytes": 3945869312 + }, + { + "wal": 1, + "threads": 8, + "index": 8, + "version": "cache-handoff", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056", + "started": 1791783165.2803736, + "returncode": 0, + "finished": 1791783177.6683354, + "db_allocated_bytes": 3963809792 + }, + { + "wal": 1, + "threads": 8, + "index": 9, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783177.6907413, + "returncode": 0, + "finished": 1791783189.6282918, + "db_allocated_bytes": 3962748928 + }, + { + "wal": 1, + "threads": 8, + "index": 10, + "version": "cache-errors", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5", + "started": 1791783189.6509185, + "returncode": 0, + "finished": 1791783202.8913157, + "db_allocated_bytes": 3958951936 + }, + { + "wal": 1, + "threads": 8, + "index": 11, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/probe.db", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.csv", + "--summary", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv", + "--records", + "20000000", + "--seconds", + "0", + "--report-ms", + "20", + "--cache-mib", + "256", + "--disk-gib", + "16", + "--direct", + "--inserters", + "8", + "--readers", + "0", + "--memtable-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "8", + "--key-size", + "16", + "--value-size", + "16", + "--min-free-gib", + "12", + "--seed", + "42" + ], + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d", + "started": 1791783202.9121647, + "returncode": 0, + "finished": 1791783216.052874, + "db_allocated_bytes": 3953885184 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/summary.csv new file mode 100644 index 000000000..fb717dbd3 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/summary.csv @@ -0,0 +1,25 @@ +wal,threads,version,index,ops_s,drain_ops_s,close_s,inserted,p99_us,max_ms,ops_per_cpu_s,read_B_op,write_B_op +0,8,baseline,0,2177185.320831,2135115.898895003,0.181,20000000,4.288,2023.00337,354299.0229096001,76.3577612863275,131.17488811029298 +0,8,cache-errors,1,2508920.983828,2464099.912351966,0.145,20000000,4.159999999999999,1723.349799,367596.82851435326,77.2543320837587,131.6997742759772 +0,8,baseline,2,2595656.861076,2545766.841616007,0.151,20000000,3.9360000000000004,1465.940387,382408.76701966044,76.50463847767081,131.33425113321965 +0,8,cache-handoff,3,2433074.634986,2392043.4892642694,0.141,20000000,3.872,1764.848192,385322.8500763688,76.80791828685128,132.5889892901716 +0,8,baseline,4,2705172.339708,2642271.8041590415,0.176,20000000,3.872,1246.283066,383475.1446352973,75.58707038519296,133.23900072435384 +0,8,tagged,5,2407882.736279,2352650.0014351164,0.195,20000000,3.872,1682.941643,387289.92398413416,76.61884359610205,132.27395069053503 +0,8,tagged,6,2404451.608344,2359073.37956724,0.16,20000000,3.872,1744.576552,352336.66757948586,76.67391279818342,128.28026909769073 +0,8,baseline,7,2398603.255714,2350953.6525944066,0.169,20000000,3.9360000000000004,1644.603882,386043.69985339156,76.74283055440199,131.54653319305626 +0,8,cache-handoff,8,2298335.055254,2250490.6350895823,0.185,20000000,3.872,1952.142677,386782.5830280873,76.60809066045768,131.88146321990615 +0,8,baseline,9,2369595.247751,2321192.721668102,0.176,20000000,3.872,1772.863497,394510.6078766818,76.04168592116942,130.89141836595854 +0,8,cache-errors,10,2236605.815834,2183854.089719933,0.216,20000000,3.872,2216.317481,391046.8829460018,76.75238584842978,132.224407501013 +0,8,baseline,11,2276094.644052,2230156.375219796,0.181,20000000,3.9360000000000004,2121.950735,386553.1061808317,76.5118507492311,131.81679356870657 +1,8,baseline,0,1447973.529505,1426085.2526598808,0.212,20000000,59.903999999999996,2910.48428,359330.58809999475,84.16766169385534,193.97392346932838 +1,8,cache-errors,1,1441821.388343,1420924.4193250267,0.204,20000000,56.832,2909.001388,358637.37260155345,83.86896856555192,194.0223344354263 +1,8,baseline,2,1349606.259938,1327127.9484718686,0.251,20000000,57.855999999999995,3087.30699,363060.2721386162,83.69506187209605,193.8439605329068 +1,8,cache-handoff,3,1336810.184926,1319871.78501506,0.192,20000000,59.903999999999996,3258.538441,363381.18437946675,83.71380878673183,193.57142270565416 +1,8,baseline,4,1353443.901548,1325546.3670154223,0.311,20000000,58.88,3049.143595,367478.01343868766,83.65137371720581,193.65907580164506 +1,8,tagged,5,1320835.413857,1300564.9914435828,0.236,20000000,58.88,3236.016057,356722.9521094358,83.5151561617834,194.53419390542808 +1,8,tagged,6,1467639.247215,1446515.7666240644,0.199,20000000,57.855999999999995,2800.12111,358658.05399378017,83.52777155195699,194.4599294619681 +1,8,baseline,7,1472973.849553,1453702.412869802,0.18,20000000,58.88,2653.59734,346229.0764808025,83.67468228074537,193.75167916961956 +1,8,cache-handoff,8,1644025.382415,1622815.2241489184,0.159,20000000,56.832,2011.834098,350281.2241512587,83.68032332990381,194.71559642437387 +1,8,baseline,9,1712012.713746,1687456.695642548,0.17,20000000,58.88,2067.394733,353561.1824207648,83.63215510831104,194.66964986678477 +1,8,cache-errors,10,1539226.387157,1520618.8310394797,0.159,20000000,57.855999999999995,2454.985464,347002.68413646356,83.84008181907456,194.52614094838825 +1,8,baseline,11,1551614.794299,1532825.809598356,0.158,20000000,59.903999999999996,2348.529988,350142.4081003574,83.84811763965625,194.13136672602192 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv new file mode 100644 index 000000000..96f3e4c03 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2177185.320831,9.186173,20000000,0.003064,0.001392,0.004288,0.011392,2023.003370,0.003064,0.001392,0.004288,0.011392,2023.003370,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..fb4b30960 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2508920.983828,7.971554,20000000,0.002724,0.001360,0.004160,0.011136,1723.349799,0.002724,0.001360,0.004160,0.011136,1723.349799,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv new file mode 100644 index 000000000..cbfdbc8e5 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2236605.815834,8.942121,20000000,0.002922,0.001296,0.003872,0.009856,2216.317481,0.002922,0.001296,0.003872,0.009856,2216.317481,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv new file mode 100644 index 000000000..53154b8da --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2276094.644052,8.786981,20000000,0.002886,0.001296,0.003936,0.009856,2121.950735,0.002886,0.001296,0.003936,0.009856,2121.950735,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv new file mode 100644 index 000000000..f78abeca6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2595656.861076,7.705179,20000000,0.002644,0.001296,0.003936,0.010112,1465.940387,0.002644,0.001296,0.003936,0.010112,1465.940387,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv new file mode 100644 index 000000000..23bb59371 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2433074.634986,8.220052,20000000,0.002739,0.001296,0.003872,0.009600,1764.848192,0.002739,0.001296,0.003872,0.009600,1764.848192,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv new file mode 100644 index 000000000..1bc30250f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2705172.339708,7.393244,20000000,0.002526,0.001296,0.003872,0.009600,1246.283066,0.002526,0.001296,0.003872,0.009600,1246.283066,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv new file mode 100644 index 000000000..1fa4b369e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2407882.736279,8.306052,20000000,0.002765,0.001296,0.003872,0.009600,1682.941643,0.002765,0.001296,0.003872,0.009600,1682.941643,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv new file mode 100644 index 000000000..ef9f2983e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2404451.608344,8.317905,20000000,0.002920,0.001296,0.003872,0.009344,1744.576552,0.002920,0.001296,0.003872,0.009344,1744.576552,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv new file mode 100644 index 000000000..677779b20 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2398603.255714,8.338186,20000000,0.002786,0.001296,0.003936,0.009856,1644.603882,0.002786,0.001296,0.003936,0.009856,1644.603882,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv new file mode 100644 index 000000000..f95d2d821 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2298335.055254,8.701951,20000000,0.002843,0.001296,0.003872,0.009600,1952.142677,0.002843,0.001296,0.003872,0.009600,1952.142677,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv new file mode 100644 index 000000000..5c7410fcd --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,2369595.247751,8.440260,20000000,0.002682,0.001296,0.003872,0.009344,1772.863497,0.002682,0.001296,0.003872,0.009344,1772.863497,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv new file mode 100644 index 000000000..f7c74748a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1447973.529505,13.812407,20000000,0.005355,0.001296,0.059904,0.219136,2910.484280,0.005355,0.001296,0.059904,0.219136,2910.484280,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv new file mode 100644 index 000000000..438d0666f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1441821.388343,13.871344,20000000,0.005262,0.001296,0.056832,0.219136,2909.001388,0.005262,0.001296,0.056832,0.219136,2909.001388,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv new file mode 100644 index 000000000..6418828e3 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1539226.387157,12.993540,20000000,0.005029,0.001328,0.057856,0.215040,2454.985464,0.005029,0.001328,0.057856,0.215040,2454.985464,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv new file mode 100644 index 000000000..b01148ab8 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1551614.794299,12.889797,20000000,0.004879,0.001328,0.059904,0.215040,2348.529988,0.004879,0.001328,0.059904,0.215040,2348.529988,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv new file mode 100644 index 000000000..cd113ec52 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1349606.259938,14.819137,20000000,0.005757,0.001264,0.057856,0.239616,3087.306990,0.005757,0.001264,0.057856,0.239616,3087.306990,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv new file mode 100644 index 000000000..c577aafb9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1336810.184926,14.960987,20000000,0.005841,0.001296,0.059904,0.239616,3258.538441,0.005841,0.001296,0.059904,0.239616,3258.538441,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv new file mode 100644 index 000000000..fbfee5299 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1353443.901548,14.777118,20000000,0.005753,0.001264,0.058880,0.239616,3049.143595,0.005753,0.001264,0.058880,0.239616,3049.143595,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv new file mode 100644 index 000000000..de99b2820 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1320835.413857,15.141932,20000000,0.005863,0.001296,0.058880,0.239616,3236.016057,0.005863,0.001296,0.058880,0.239616,3236.016057,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv new file mode 100644 index 000000000..cc3d3a7af --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1467639.247215,13.627327,20000000,0.005047,0.001296,0.057856,0.219136,2800.121110,0.005047,0.001296,0.057856,0.219136,2800.121110,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv new file mode 100644 index 000000000..1df37c27e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1472973.849553,13.577974,20000000,0.005275,0.001328,0.058880,0.223232,2653.597340,0.005275,0.001328,0.058880,0.223232,2653.597340,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv new file mode 100644 index 000000000..ce15c849b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1644025.382415,12.165262,20000000,0.004696,0.001328,0.056832,0.210944,2011.834098,0.004696,0.001328,0.056832,0.210944,2011.834098,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv new file mode 100644 index 000000000..0f1798dbe --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv @@ -0,0 +1,2 @@ +target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted,insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms,insert_service_p999_ms,insert_service_max_ms,insert_response_mean_ms,insert_response_p50_ms,insert_response_p99_ms,insert_response_p999_ms,insert_response_max_ms,query_service_mean_ms,query_service_p99_ms,query_service_max_ms +0,1712012.713746,11.682156,20000000,0.004448,0.001328,0.058880,0.206848,2067.394733,0.004448,0.001328,0.058880,0.206848,2067.394733,0.000000,0.000000,0.000000 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/README.md b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/README.md new file mode 100644 index 000000000..8df17918d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/README.md @@ -0,0 +1,14 @@ +# Prefetch admission regression evidence + +The original library at `1da0450`, plus `old-test-and-hooks.diff`, fails the +scheduled stale-candidate interleaving with the expected assertion (signal 6). +The fix in `526a0a0` passes that test, the async cache driver, 14 writeback tests, +and 47 public quick tests. The corrected manifests record the source revision, +commands, driver and shared-library hashes. The old library hash was not +captured; the saved source patch reconstructs its test setup. The driver is +dynamically linked, so its unchanged hash alone does not identify the library. + +The first follow-up unit invocations selected zero tests because CTest treated +the supplied database path as a test filter. `invalid-zero-selection/` preserves +those logs and their original manifest; they are invalid validation. The +parent-directory `fixed-*` evidence contains the corrected complete-suite runs. diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-async.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-async.log new file mode 100644 index 000000000..6bb0adf35 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-async.log @@ -0,0 +1,29 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test: splinterdb_build_version 1da0450b-dirty +Dispatch test cache_test + +Started cache_test async performance. +cache_test: allocator recovery bootstrap test started +Invalid persisted allocator map: reserved extent 1 has refcount 0 (expected 2) +cache_test: allocator recovery bootstrap test passed +cache_test: mini_recover_allocations test started +cache_test: mini_recover_allocations test passed +cache_test: async test started with 1+0 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+2 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 1+0 threads (ws=80%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=80%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=96%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: prefetch early wakeup test passed +cache_test: idle and exited batch owners test passed diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-manifest.json new file mode 100644 index 000000000..a4f0e8abe --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-manifest.json @@ -0,0 +1,64 @@ +{ + "stage": "fixed", + "source_head": "526a0a03b54bb7eb9c76042fae7233311c2fc1ac", + "build_command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=debug", + "build-prefetch/debug/bin/driver_test", + "build-prefetch/debug/bin/unit/writeback_set_test", + "build-prefetch/debug/bin/unit/splinterdb_quick_test" + ], + "driver_sha256": "d6cdd0e5b03e291033bd862d3b637c2c5ee680492df9623a4964692eff26cb6e", + "runs": [ + { + "name": "regression", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test", + "cache_test", + "--prefetch-admission", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-regression.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + }, + { + "name": "writeback", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/unit/writeback_set_test" + ], + "returncode": 0 + }, + { + "name": "quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/unit/splinterdb_quick_test" + ], + "returncode": 0 + }, + { + "name": "async", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test", + "cache_test", + "--async", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-async.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + } + ], + "validated": true, + "library_sha256": "8629965cad93c59dc983da0b3f2775c3bf9ca3fc651d7645c052c8a1ea4ca13e" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-quick.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-quick.log new file mode 100644 index 000000000..d5bbcd2c0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-quick.log @@ -0,0 +1,51 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/47 splinterdb_quick:test_get_config_returns_effective_config [OK] +TEST 2/47 splinterdb_quick:test_get_cost_stats [OK] +TEST 3/47 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 4/47 splinterdb_quick:test_durable_barrier [OK] +TEST 5/47 splinterdb_quick:test_logged_oversized_value_failure_preserves_old_value [OK] +TEST 6/47 splinterdb_quick:test_basic_flow [OK] +TEST 7/47 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 8/47 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 9/47 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 10/47 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 11/47 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 12/47 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 13/47 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 14/47 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 15/47 splinterdb_quick:test_apis_for_large_key [OK] +TEST 16/47 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 17/47 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 18/47 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 19/47 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 20/47 splinterdb_quick:test_variable_length_values [OK] +TEST 21/47 splinterdb_quick:test_basic_iterator [OK] +TEST 22/47 splinterdb_quick:test_iterator_delete_current [OK] +TEST 23/47 splinterdb_quick:test_empty_iterator [OK] +TEST 24/47 splinterdb_quick:test_bounded_iterator [OK] +TEST 25/47 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 26/47 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 27/47 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 28/47 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 29/47 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 30/47 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 31/47 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 32/47 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 33/47 splinterdb_quick:test_close_and_reopen [OK] +TEST 34/47 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 35/47 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 36/47 splinterdb_quick:test_custom_data_config [OK] +TEST 37/47 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 38/47 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 39/47 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 40/47 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 41/47 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 42/47 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 43/47 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 44/47 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 45/47 splinterdb_quick:test_iterator_init_bug [OK] +TEST 46/47 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 47/47 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +RESULTS: 47 tests (47 ok, 0 failed, 0 skipped) ran in 11074 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-regression.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-regression.log new file mode 100644 index 000000000..37fcf0e3d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-regression.log @@ -0,0 +1,10 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test: splinterdb_build_version 1da0450b-dirty +Dispatch test cache_test + +Started cache_test basic +cache_test: allocator recovery bootstrap test started +Invalid persisted allocator map: reserved extent 1 has refcount 0 (expected 2) +cache_test: allocator recovery bootstrap test passed +cache_test: mini_recover_allocations test started +cache_test: mini_recover_allocations test passed +cache_test: unpublished prefetch admission race passed diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-writeback.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-writeback.log new file mode 100644 index 000000000..94694f8e8 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-writeback.log @@ -0,0 +1,95 @@ +Running 1 CTests, suite name 'writeback_set', test case 'all'. +TEST 1/14 writeback_set:test_rejected_page_submission clockcache_write_callback: async write failed: Input/output error +writeback_set_wait: writeback of addr 1179648 failed +[OK] +TEST 2/14 writeback_set:test_rejected_extent_submissions clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +writeback_set_wait: writeback of addr 1179648 failed +[OK] +TEST 3/14 writeback_set:test_rejected_cleaner_submission clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_writeback_dirty: writeback of addr 1179648 failed +clockcache_writeback_dirty: writeback of addr 1183744 failed +clockcache_writeback_dirty: writeback of addr 1187840 failed +clockcache_writeback_dirty: writeback of addr 1191936 failed +clockcache_writeback_dirty: writeback of addr 1196032 failed +clockcache_writeback_dirty: writeback of addr 1200128 failed +clockcache_writeback_dirty: writeback of addr 1204224 failed +clockcache_writeback_dirty: writeback of addr 1208320 failed +clockcache_writeback_dirty: writeback of addr 1212416 failed +clockcache_writeback_dirty: writeback of addr 1216512 failed +clockcache_writeback_dirty: writeback of addr 1220608 failed +clockcache_writeback_dirty: writeback of addr 1224704 failed +clockcache_writeback_dirty: writeback of addr 1228800 failed +clockcache_writeback_dirty: writeback of addr 1232896 failed +clockcache_writeback_dirty: writeback of addr 1236992 failed +clockcache_writeback_dirty: writeback of addr 1241088 failed +clockcache_writeback_dirty: writeback of addr 1245184 failed +clockcache_writeback_dirty: writeback of addr 1249280 failed +clockcache_writeback_dirty: writeback of addr 1253376 failed +clockcache_writeback_dirty: writeback of addr 1257472 failed +clockcache_writeback_dirty: writeback of addr 1261568 failed +clockcache_writeback_dirty: writeback of addr 1265664 failed +clockcache_writeback_dirty: writeback of addr 1269760 failed +clockcache_writeback_dirty: writeback of addr 1273856 failed +clockcache_writeback_dirty: writeback of addr 1277952 failed +clockcache_writeback_dirty: writeback of addr 1282048 failed +clockcache_writeback_dirty: writeback of addr 1286144 failed +clockcache_writeback_dirty: writeback of addr 1290240 failed +clockcache_writeback_dirty: writeback of addr 1294336 failed +clockcache_writeback_dirty: writeback of addr 1298432 failed +clockcache_writeback_dirty: writeback of addr 1302528 failed +clockcache_writeback_dirty: writeback of addr 1306624 failed +[OK] +TEST 4/14 writeback_set:test_wait_makes_pages_clean [OK] +TEST 5/14 writeback_set:test_add_extent [OK] +TEST 6/14 writeback_set:test_empty_set [OK] +TEST 7/14 writeback_set:test_add_clean_page [OK] +TEST 8/14 writeback_set:test_repeated_rounds [OK] +TEST 9/14 writeback_set:test_cache_sync_read_error_and_retry clockcache_get_from_disk: io_read failed for addr 1179648, type 8: Connection timed out +[OK] +TEST 10/14 writeback_set:test_cache_async_read_setup_failures clockcache_get_from_disk_async: async read failed for addr 1179648, entry 130: Connection timed out +[OK] +TEST 11/14 writeback_set:test_cache_failed_load_wakes_waiters clockcache_get_from_disk_async_callback: async read failed for addr 1179648, entry 128: Connection timed out +clockcache_get_from_disk_async: async read failed for addr 1179648, entry 128: Connection timed out +[OK] +TEST 12/14 writeback_set:test_partial_reclamation_requires_recovery WARNING: abandoned reclamation of mini allocator at 1179648 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +[OK] +TEST 13/14 writeback_set:test_failed_prefetch_leaves_demand_read_retryable clockcache_prefetch_pages: io_async_state_init failed for first addr 1179648, page addr 1179648, num pages 32, type 8: Cannot allocate memory +clockcache_prefetch_pages: io_async_state_append_page failed for first addr 1179648, page addr 1179648, entry 128, num pages 32, type 8: Cannot allocate memory +clockcache_prefetch_callback: async read failed: Connection timed out +[OK] +TEST 14/14 writeback_set:test_failed_load_releases_synchronous_waiter clockcache_get_from_disk_async_callback: async read failed for addr 1179648, entry 128: Connection timed out +clockcache_get_from_disk_async: async read failed for addr 1179648, entry 128: Connection timed out +[OK] +RESULTS: 14 tests (14 ok, 0 failed, 0 skipped) ran in 1664 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/README.md b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/README.md new file mode 100644 index 000000000..ac8daf0e0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/README.md @@ -0,0 +1 @@ +These first follow-up unit invocations selected zero tests because CTest interpreted database-path arguments as filters. They are invalid unit validation and are not counted as passing suites. The deterministic regression and async functional driver in this manifest did run. The corrected full-suite evidence is in the parent directory. diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-manifest.json new file mode 100644 index 000000000..b3a9ae0ad --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-manifest.json @@ -0,0 +1,65 @@ +{ + "stage": "fixed", + "build_command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=debug", + "build-prefetch/debug/bin/driver_test", + "build-prefetch/debug/bin/unit/writeback_set_test", + "build-prefetch/debug/bin/unit/splinterdb_quick_test" + ], + "driver_sha256": "d6cdd0e5b03e291033bd862d3b637c2c5ee680492df9623a4964692eff26cb6e", + "runs": [ + { + "name": "regression", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test", + "cache_test", + "--prefetch-admission", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-regression.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + }, + { + "name": "writeback", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/unit/writeback_set_test", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-writeback.db" + ], + "returncode": 0 + }, + { + "name": "quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/unit/splinterdb_quick_test", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-quick.db" + ], + "returncode": 0 + }, + { + "name": "async", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test", + "cache_test", + "--async", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-async.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-quick.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-quick.log new file mode 100644 index 000000000..5d88a5db6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-quick.log @@ -0,0 +1,2 @@ +Running 0 CTests, suite name 'all', test case '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-quick.db'. +RESULTS: 0 tests (0 ok, 0 failed, 0 skipped) ran in 0 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-writeback.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-writeback.log new file mode 100644 index 000000000..02b12c2c1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-writeback.log @@ -0,0 +1,2 @@ +Running 0 CTests, suite name 'all', test case '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/fixed-writeback.db'. +RESULTS: 0 tests (0 ok, 0 failed, 0 skipped) ran in 0 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-manifest.json new file mode 100644 index 000000000..5f152e07a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-manifest.json @@ -0,0 +1,30 @@ +{ + "stage": "old", + "build_command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=debug", + "build-prefetch/debug/bin/driver_test" + ], + "driver_sha256": "d6cdd0e5b03e291033bd862d3b637c2c5ee680492df9623a4964692eff26cb6e", + "runs": [ + { + "name": "regression", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test", + "cache_test", + "--prefetch-admission", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/old-regression.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": -6 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-regression.log b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-regression.log new file mode 100644 index 000000000..b13ca5787 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-regression.log @@ -0,0 +1,10 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/debug/bin/driver_test: splinterdb_build_version 1da0450b-dirty +Dispatch test cache_test + +Started cache_test basic +cache_test: allocator recovery bootstrap test started +Invalid persisted allocator map: reserved extent 1 has refcount 0 (expected 2) +cache_test: allocator recovery bootstrap test passed +cache_test: mini_recover_allocations test started +cache_test: mini_recover_allocations test passed +OS-pid=393, OS-tid=393, Thread-ID=0, Assertion failed at tests/functional/cache_test.c:2485:cache_admission_after_ref_attempt(): "!acquired". unpublished admission accepted a stale candidate read reference before losing duplicate publication diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-test-and-hooks.diff b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-test-and-hooks.diff new file mode 100644 index 000000000..b13333c7b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-test-and-hooks.diff @@ -0,0 +1,341 @@ +diff --git a/src/clockcache.c b/src/clockcache.c +index 24c5bfd..69029ef 100644 +--- a/src/clockcache.c ++++ b/src/clockcache.c +@@ -2183,7 +2183,17 @@ clockcache_get_in_cache(clockcache *cc, // IN + return TRUE; + } + } else { +- switch (clockcache_try_get_read(cc, entry_number, TRUE)) { ++ get_rc result = clockcache_try_get_read(cc, entry_number, TRUE); ++#ifdef SPLINTER_DEBUG ++ if (cc->after_candidate_ref_attempt != NULL) { ++ cc->after_candidate_ref_attempt(cc, ++ addr, ++ entry_number, ++ result == GET_RC_SUCCESS, ++ cc->after_candidate_ref_attempt_arg); ++ } ++#endif ++ switch (result) { + case GET_RC_CONFLICT: + clockcache_log(addr, + entry_number, +@@ -2406,6 +2416,12 @@ clockcache_get_internal(clockcache *cc, // IN + uint32 entry_number = clockcache_lookup(cc, addr); + + if (entry_number != CC_UNMAPPED_ENTRY) { ++#ifdef SPLINTER_DEBUG ++ if (cc->before_candidate_ref != NULL) { ++ cc->before_candidate_ref( ++ cc, addr, entry_number, cc->before_candidate_ref_arg); ++ } ++#endif + return clockcache_get_in_cache( + cc, addr, blocking, type, entry_number, page, rc); + } else if (blocking) { +@@ -3473,6 +3489,12 @@ clockcache_prefetch_pages(clockcache *cc, + clockcache_entry_set_addr(entry, addr); + entry->type = type; + uint64 lookup_no = clockcache_lookup_number(cc, addr); ++#ifdef SPLINTER_DEBUG ++ if (cc->before_prefetch_publish != NULL) { ++ cc->before_prefetch_publish( ++ cc, addr, free_entry_no, cc->before_prefetch_publish_arg); ++ } ++#endif + + if (state == NULL) { + state = TYPED_MALLOC(PROCESS_PRIVATE_HEAP_ID, state); +diff --git a/src/clockcache.h b/src/clockcache.h +index cdc7def..dfca387 100644 +--- a/src/clockcache.h ++++ b/src/clockcache.h +@@ -153,6 +153,20 @@ struct clockcache { + platform_log_handle *logfile; + platform_heap_id heap_id; + ++#ifdef SPLINTER_DEBUG ++ // Deterministic admission test; configure only on a quiescent cache. ++ void (*before_candidate_ref)(clockcache *, uint64, uint32, void *); ++ void *before_candidate_ref_arg; ++ void (*before_prefetch_publish)(clockcache *, uint64, uint32, void *); ++ void *before_prefetch_publish_arg; ++ void (*after_candidate_ref_attempt)(clockcache *, ++ uint64, ++ uint32, ++ bool32, ++ void *); ++ void *after_candidate_ref_attempt_arg; ++#endif ++ + // Distributed locks (the write bit is in the status uint32 of the entry) + buffer_handle rc_bh; + volatile uint16 *refcount; +diff --git a/tests/functional/cache_test.c b/tests/functional/cache_test.c +index 72eef72..a050d37 100644 +--- a/tests/functional/cache_test.c ++++ b/tests/functional/cache_test.c +@@ -2371,12 +2371,224 @@ test_cache_idle_batches(clockcache *main_cc, platform_heap_id hid) + "cache_test: idle and exited batch owners test passed\n"); + } + ++#ifdef SPLINTER_DEBUG ++typedef struct { ++ clockcache *clock; ++ platform_heap_id hid; ++ uint64 addr; ++ uint32 slot; ++ page_handle *guard_to_release; ++ page_handle winner; ++ platform_thread loader; ++ platform_condvar cv; ++ bool32 unpublished; ++ bool32 resume; ++ bool32 finished; ++ bool32 attempted; ++} cache_admission_race; ++ ++static void ++cache_admission_wait(cache_admission_race *test, const bool32 *condition) ++{ ++ timestamp start = platform_get_timestamp(); ++ while (TRUE) { ++ platform_assert_status_ok(platform_condvar_lock(&test->cv)); ++ bool32 complete = *condition; ++ platform_assert_status_ok(platform_condvar_unlock(&test->cv)); ++ if (complete) { ++ return; ++ } ++ platform_assert(platform_timestamp_elapsed(start) < SEC_TO_NSEC(10), ++ "unpublished cache admission did not make progress"); ++ platform_sleep_ns(SEC_TO_NSEC(1) / 1000); ++ } ++} ++ ++static void ++cache_admission_before_publish(clockcache *clock, ++ uint64 addr, ++ uint32 slot, ++ void *arg) ++{ ++ cache_admission_race *test = arg; ++ if (slot != test->slot) { ++ return; ++ } ++ platform_assert(addr == test->addr); ++ platform_assert_status_ok(platform_condvar_lock(&test->cv)); ++ platform_assert(!test->unpublished); ++ test->unpublished = TRUE; ++ platform_assert_status_ok(platform_condvar_signal(&test->cv)); ++ while (!test->resume) { ++ platform_assert_status_ok(platform_condvar_wait(&test->cv)); ++ } ++ platform_assert_status_ok(platform_condvar_unlock(&test->cv)); ++} ++ ++static void ++cache_admission_loader(void *arg) ++{ ++ cache_admission_race *test = arg; ++ cache *cc = (cache *)test->clock; ++ cache_prefetch_page(cc, test->addr, PAGE_TYPE_MISC); ++ platform_assert_status_ok(platform_condvar_lock(&test->cv)); ++ test->finished = TRUE; ++ platform_assert_status_ok(platform_condvar_signal(&test->cv)); ++ platform_assert_status_ok(platform_condvar_unlock(&test->cv)); ++} ++ ++static void ++cache_admission_save_candidate(clockcache *clock, ++ uint64 addr, ++ uint32 slot, ++ void *arg) ++{ ++ cache_admission_race *test = arg; ++ cache *cc = (cache *)clock; ++ platform_assert(addr == test->addr && slot == test->slot); ++ clock->before_candidate_ref = NULL; ++ cache_batch_test_discard(cc, addr); ++ platform_assert_status_ok(platform_thread_create( ++ &test->loader, FALSE, cache_admission_loader, test, test->hid)); ++ cache_admission_wait(test, &test->unpublished); ++ ++ // X now names A but has not published its mapping. Free one guard so a ++ // second loader must publish A in Y while X remains parked. ++ cache_unget(cc, test->guard_to_release); ++ test->winner = test_cache_get_page(cc, addr, TRUE, PAGE_TYPE_MISC); ++ platform_assert(test->winner.page != &clock->entry[slot].page); ++} ++ ++static void ++cache_admission_after_ref_attempt(clockcache *clock, ++ uint64 addr, ++ uint32 slot, ++ bool32 acquired, ++ void *arg) ++{ ++ cache_admission_race *test = arg; ++ platform_assert(addr == test->addr && slot == test->slot); ++ platform_assert(!test->attempted); ++ test->attempted = TRUE; ++ platform_assert_status_ok(platform_condvar_lock(&test->cv)); ++ test->resume = TRUE; ++ platform_assert_status_ok(platform_condvar_signal(&test->cv)); ++ platform_assert_status_ok(platform_condvar_unlock(&test->cv)); ++ cache_admission_wait(test, &test->finished); ++ ++ // The parked admission lost publication to Y and released X. An old ++ // implementation had already accepted a foreign reference to this now ++ // free slot, or could have enqueued an async waiter on it. ++ platform_assert( ++ __atomic_load_n(&clock->entry[slot].page.disk_addr, __ATOMIC_RELAXED) ++ == UINT64_MAX); ++ platform_assert(!acquired, ++ "unpublished admission accepted a stale candidate read " ++ "reference before losing duplicate publication"); ++} ++ ++static void ++test_cache_prefetch_unpublished_admission(clockcache *main_cc, ++ platform_heap_id hid) ++{ ++ clockcache_config cfg = *main_cc->cfg; ++ cfg.page_capacity = 64; ++ cfg.capacity = cfg.page_capacity * cache_page_size((cache *)main_cc); ++ clockcache clock; ++ platform_assert_status_ok(clockcache_init(&clock, ++ &cfg, ++ main_cc->io, ++ main_cc->al, ++ "unpublished admission", ++ hid, ++ platform_get_module_id())); ++ cache *cc = (cache *)&clock; ++ const uint64 page_size = cache_page_size(cc); ++ const uint64 pages_per_extent = cache_extent_size(cc) / page_size; ++ uint64 extents[66]; ++ uint64 num_extents = 2 + (cfg.page_capacity - 2) / pages_per_extent; ++ platform_assert(num_extents <= ARRAY_SIZE(extents)); ++ for (uint64 i = 0; i < num_extents; i++) { ++ platform_assert_status_ok( ++ allocator_alloc(clock.al, &extents[i], PAGE_TYPE_MISC)); ++ } ++ buffer_handle buffer; ++ platform_assert_status_ok(platform_buffer_init(&buffer, page_size)); ++ void *bytes = platform_buffer_getaddr(&buffer); ++ { ++ memset(bytes, 'A', page_size); ++ platform_assert_status_ok( ++ io_write(clock.io, bytes, page_size, extents[0])); ++ page_handle victim = ++ test_cache_get_page(cc, extents[0], TRUE, PAGE_TYPE_MISC); ++ cache_admission_race test = { ++ .clock = &clock, ++ .hid = hid, ++ .addr = extents[0], ++ .slot = (clockcache_entry *)victim.page - clock.entry, ++ }; ++ platform_assert_status_ok(platform_condvar_init(&test.cv, FALSE)); ++ cache_unget(cc, &victim); ++ page_handle guards[63]; ++ memset(bytes, 'G', page_size); ++ for (uint64 i = 0; i < ARRAY_SIZE(guards); i++) { ++ uint64 addr = extents[1 + i / pages_per_extent] ++ + (i % pages_per_extent) * page_size; ++ platform_assert_status_ok(io_write(clock.io, bytes, page_size, addr)); ++ guards[i] = test_cache_get_page(cc, addr, TRUE, PAGE_TYPE_MISC); ++ } ++ test.guard_to_release = &guards[0]; ++ clock.before_candidate_ref = cache_admission_save_candidate; ++ clock.before_candidate_ref_arg = &test; ++ clock.before_prefetch_publish = cache_admission_before_publish; ++ clock.before_prefetch_publish_arg = &test; ++ clock.after_candidate_ref_attempt = cache_admission_after_ref_attempt; ++ clock.after_candidate_ref_attempt_arg = &test; ++ page_handle result; ++ platform_status rc = ++ cache_get(cc, test.addr, FALSE, PAGE_TYPE_MISC, &result); ++ platform_assert(STATUS_IS_EQ(rc, STATUS_BUSY) ++ && page_handle_is_null(&result) && test.attempted); ++ platform_assert_status_ok(platform_thread_join(&test.loader)); ++ clock.before_prefetch_publish = NULL; ++ clock.after_candidate_ref_attempt = NULL; ++ platform_assert( ++ cache_get_read_ref( ++ cc, &(page_handle){.page = &clock.entry[test.slot].page}) ++ == 0); ++ platform_assert(page_handle_addr(&test.winner) == test.addr); ++ for (uint64 i = 0; i < page_size; i++) { ++ platform_assert(page_handle_data(&test.winner)[i] == 'A'); ++ } ++ cache_unget(cc, &test.winner); ++ for (uint64 i = 1; i < ARRAY_SIZE(guards); i++) { ++ cache_unget(cc, &guards[i]); ++ } ++ for (uint64 i = 0; i < num_extents; i++) { ++ cache_batch_test_discard(cc, extents[i]); ++ } ++ platform_condvar_destroy(&test.cv); ++ } ++ for (uint64 i = 0; i < num_extents; i++) { ++ platform_assert(allocator_dec_ref(clock.al, extents[i], PAGE_TYPE_MISC) ++ == AL_NO_REFS); ++ platform_assert(allocator_dec_ref(clock.al, extents[i], PAGE_TYPE_MISC) ++ == AL_FREE); ++ } ++ platform_buffer_deinit(&buffer); ++ clockcache_deinit(&clock); ++ platform_default_log( ++ "cache_test: unpublished prefetch admission race passed\n"); ++} ++#endif ++ + static void + usage(const char *argv0) + { +- platform_error_log("Usage:\n" +- "\t%s [--async | --batch | --perf]\n", +- argv0); ++ platform_error_log( ++ "Usage:\n" ++ "\t%s [--async | --batch | --prefetch-admission | --perf]\n", ++ argv0); + config_usage(); + } + +@@ -2389,6 +2601,7 @@ cache_test(int argc, char *argv[]) + platform_status rc; + task_system ts; + bool32 benchmark = FALSE, async = FALSE, batch = FALSE; ++ bool32 prefetch_admission = FALSE; + uint64 seed; + test_message_generator gen; + +@@ -2403,6 +2616,10 @@ cache_test(int argc, char *argv[]) + async = TRUE; + config_argc--; + config_argv++; ++ } else if (strcmp(argv[1], "--prefetch-admission") == 0) { ++ prefetch_admission = TRUE; ++ config_argc--; ++ config_argv++; + } else if (strcmp(argv[1], "--batch") == 0) { + batch = TRUE; + config_argc--; +@@ -2500,7 +2717,14 @@ cache_test(int argc, char *argv[]) + + cache *ccp = (cache *)cc; + +- if (batch) { ++ if (prefetch_admission) { ++#ifdef SPLINTER_DEBUG ++ test_cache_prefetch_unpublished_admission(cc, hid); ++#else ++ platform_error_log("--prefetch-admission requires SPLINTER_DEBUG\n"); ++ rc = STATUS_BAD_PARAM; ++#endif ++ } else if (batch) { + test_cache_idle_batches(cc, hid); + } else if (benchmark) { + rc = test_cache_flush(ccp, diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/release-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/release-manifest.json new file mode 100644 index 000000000..40e10d8b2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/release-manifest.json @@ -0,0 +1,48 @@ +{ + "builds": [ + { + "project": "cache-errors", + "command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=release", + "libs" + ], + "old_binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "head": "526a0a03b54bb7eb9c76042fae7233311c2fc1ac", + "new_provenance": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-prefetch/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "a7494f0f43e2120a91e1765c753bb4e361970a88ca2e7d746f688dd5be603de1" + } + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/manifest.json new file mode 100644 index 000000000..a7ea995b2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/manifest.json @@ -0,0 +1,462 @@ +[ + { + "command": [ + "perf", + "stat", + "-x,", + "-e", + "cycles:u,instructions:u,branches:u,branch-misses:u", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-baseline-point8.stat", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-baseline-point8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "baseline", + "--stag", + "stat", + "--otag", + "point8", + "warm", + "point:uniform@8" + ], + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "started": 1791764929.2898743, + "returncode": 0, + "finished": 1791764945.5564666 + }, + { + "command": [ + "perf", + "stat", + "-x,", + "-e", + "cycles:u,instructions:u,branches:u,branch-misses:u", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-baseline-range1_8.stat", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-baseline-range1_8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "baseline", + "--stag", + "stat", + "--otag", + "range1_8", + "warm", + "range:uniform:1@8" + ], + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "started": 1791764945.5762389, + "returncode": 0, + "finished": 1791764961.8409157 + }, + { + "command": [ + "perf", + "stat", + "-x,", + "-e", + "cycles:u,instructions:u,branches:u,branch-misses:u", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-candidate-point8.stat", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-candidate-point8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "candidate", + "--stag", + "stat", + "--otag", + "point8", + "warm", + "point:uniform@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791764961.8598073, + "returncode": 0, + "finished": 1791764978.025937 + }, + { + "command": [ + "perf", + "stat", + "-x,", + "-e", + "cycles:u,instructions:u,branches:u,branch-misses:u", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-candidate-range1_8.stat", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/stat-candidate-range1_8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "candidate", + "--stag", + "stat", + "--otag", + "range1_8", + "warm", + "range:uniform:1@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791764978.0449543, + "returncode": 0, + "finished": 1791764994.2141356 + }, + { + "command": [ + "perf", + "record", + "-e", + "cycles:u", + "-F", + "997", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-baseline-point8.perf", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-baseline-point8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "baseline", + "--stag", + "record", + "--otag", + "point8", + "warm", + "point:uniform@8" + ], + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "started": 1791764994.232991, + "returncode": 0, + "finished": 1791765010.7529511 + }, + { + "command": [ + "perf", + "record", + "-e", + "cycles:u", + "-F", + "997", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-baseline-range1_8.perf", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-baseline-range1_8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "baseline", + "--stag", + "record", + "--otag", + "range1_8", + "warm", + "range:uniform:1@8" + ], + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "started": 1791765010.8864229, + "returncode": 0, + "finished": 1791765027.393327 + }, + { + "command": [ + "perf", + "record", + "-e", + "cycles:u", + "-F", + "997", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-candidate-point8.perf", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-candidate-point8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "candidate", + "--stag", + "record", + "--otag", + "point8", + "warm", + "point:uniform@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791765027.5271795, + "returncode": 0, + "finished": 1791765044.0953574 + }, + { + "command": [ + "perf", + "record", + "-e", + "cycles:u", + "-F", + "997", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-candidate-range1_8.perf", + "--", + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/record-candidate-range1_8.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/profile-receipt/queries.csv", + "--vtag", + "candidate", + "--stag", + "record", + "--otag", + "range1_8", + "warm", + "range:uniform:1@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791765044.2292984, + "returncode": 0, + "finished": 1791765060.7471848 + } +] diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/queries.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/queries.csv new file mode 100644 index 000000000..bc8248ebc --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/queries.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,stat,point8,0,warm,8,1,200000,200000,0.056,3584884.9,nan,nan,nan,0.000,nan,0.094,2132287.1,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,3584884.9,0.056,0.000,0.056,0.000,0,0,nan,0,0,0.065,0,0,0,0,6 +baseline,stat,point8,0,point:uniform@8,8,1,200000,80132185,15.000,5342058.2,1.392,2.080,3.168,105.152,1.452,119.991,667821.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.098,15.098,0.011,0,307200,nan,162140160,28651520,0.065,0,0,0,0,0 +baseline,stat,range1_8,0,warm,8,1,200000,200000,0.058,3439871.5,nan,nan,nan,0.000,nan,0.110,1816464.4,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,3439871.5,0.058,0.000,0.058,0.000,0,0,nan,0,0,0.052,0,0,0,0,5 +baseline,stat,range1_8,0,range:uniform:1@8,8,1,200000,7436807,15.000,495778.9,14.720,21.760,32.000,1024.385,16.086,119.970,61988.8,0,0,0.00,0.00,13.952,20.736,15.375,nan,0.665,7436807,495778.9,15.000,0.099,15.099,0.012,0,307200,nan,162140160,28651520,0.052,0,0,0,0,0 +candidate,stat,point8,0,warm,8,1,200000,200000,0.036,5558261.8,nan,nan,nan,0.000,nan,0.088,2268473.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,5558261.8,0.036,0.000,0.036,0.000,0,0,nan,0,0,0.020,0,0,0,0,5 +candidate,stat,point8,0,point:uniform@8,8,1,200000,79096492,15.000,5273017.4,1.456,2.080,2.720,229.126,1.474,119.977,659263.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.067,15.067,0.006,0,307200,nan,162140160,28651520,0.020,0,0,0,0,0 +candidate,stat,range1_8,0,warm,8,1,200000,200000,0.024,8272757.8,nan,nan,nan,0.000,nan,0.080,2492336.1,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8272757.8,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.020,0,0,0,0,0 +candidate,stat,range1_8,0,range:uniform:1@8,8,1,200000,7576653,15.000,505102.5,14.464,21.760,31.488,131.125,15.789,119.985,63146.5,0,0,0.00,0.00,13.696,20.736,15.081,nan,0.664,7576653,505102.5,15.000,0.108,15.108,0.012,0,307200,nan,162140160,28651520,0.020,0,0,0,0,0 +baseline,record,point8,0,warm,8,1,200000,200000,0.024,8461237.3,nan,nan,nan,0.000,nan,0.076,2614720.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8461237.3,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.057,0,0,0,0,5 +baseline,record,point8,0,point:uniform@8,8,1,200000,78121365,15.000,5208001.8,1.456,2.080,5.056,446.239,1.487,119.972,651163.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.103,15.103,0.011,0,307200,nan,162140160,28651520,0.057,0,0,0,0,0 +baseline,record,range1_8,0,warm,8,1,200000,200000,0.021,9632485.5,nan,nan,nan,0.000,nan,0.055,3668311.3,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,9632485.5,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.057,0,0,0,0,6 +baseline,record,range1_8,0,range:uniform:1@8,8,1,200000,7683647,15.000,512234.5,14.464,21.760,29.952,1216.861,15.567,119.975,64043.7,0,0,0.00,0.00,13.696,20.736,14.873,nan,0.649,7683647,512234.5,15.000,0.111,15.111,0.012,0,307200,nan,162140160,28651520,0.057,0,0,0,0,0 +candidate,record,point8,0,warm,8,1,200000,200000,0.091,2197649.7,nan,nan,nan,0.000,nan,0.094,2119250.2,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,2197649.7,0.091,0.000,0.091,0.000,0,0,nan,0,0,0.058,0,0,0,0,6 +candidate,record,point8,0,point:uniform@8,8,1,200000,74413419,15.000,4960808.2,1.520,2.208,5.056,119.929,1.567,119.991,620158.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.087,15.087,0.012,0,307200,nan,162140160,28651520,0.058,0,0,0,0,0 +candidate,record,range1_8,0,warm,8,1,200000,200000,0.058,3460476.2,nan,nan,nan,0.000,nan,0.090,2210946.4,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,3460476.2,0.058,0.000,0.058,0.000,0,0,nan,0,0,0.040,0,0,0,0,6 +candidate,record,range1_8,0,range:uniform:1@8,8,1,200000,7241080,15.000,482729.9,14.976,22.784,32.512,1899.958,16.521,119.978,60353.5,0,0,0.00,0.00,14.464,21.760,15.768,nan,0.706,7241080,482729.9,15.000,0.083,15.083,0.012,0,307200,nan,162140160,28651520,0.040,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-point8.txt b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-point8.txt new file mode 100644 index 000000000..644c2cba1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-point8.txt @@ -0,0 +1,39 @@ +# To display the perf.data header info, please use --header/--header-only options. +# +# +# Total Lost Samples: 0 +# +# Samples: 127K of event 'cpu_core/cycles/u' +# Event count (approx.): 319738718787 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ............................................................... .................... +# + 15.15% [.] clockcache_try_get_read.constprop.0 - - + 14.67% [.] trunk_ondisk_bundle_merge_lookup.constprop.0 - - + 13.67% [.] btree_find_pivot_checked.lto_priv.0 - - + 8.16% [.] clockcache_unget_virtual - - + 7.55% [.] btree_find_tuple_checked.lto_priv.0 - - + 3.76% [.] batch_rwlock_get - - + 3.69% [.] clockcache_get_virtual - - + 3.26% [.] key_compare - - + 2.70% [.] core_lookup.constprop.0 - - + 2.68% [.] __vdso_clock_gettime - - + 2.64% [.] 0x0000000000162419 - - + 2.12% [.] 0x00000000001621f8 - - + 1.88% [.] __popcountdi2 - - + 1.75% [.] batch_rwlock_get.constprop.0 - - + 1.51% [.] 0x000000000016241d - - + 1.41% [.] point_worker - - + 1.17% [.] trunk_init_root_handle - - + 0.96% [.] 0x00000000001624c7 - - + 0.73% [.] routing_get_header.isra.0 - - + 0.71% [.] 0x00000000001621f4 - - + 0.66% [.] splinterdb_lookup.constprop.0 - - + 0.54% [.] trunk_ondisk_node_handle_init.lto_priv.0 - - + 0.53% [.] XXH32 - - + + +# +# (Tip: To count events every 1000 msec: perf stat -I 1000) +# diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-range1_8.txt b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-range1_8.txt new file mode 100644 index 000000000..bea95994c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-range1_8.txt @@ -0,0 +1,50 @@ +# To display the perf.data header info, please use --header/--header-only options. +# +# +# Total Lost Samples: 0 +# +# Samples: 1 of event 'cpu_atom/cycles/u' +# Event count (approx.): 451878 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ...................... .................... +# + 100.00% [.] 0x0000000000166b12 - - + + +# Samples: 127K of event 'cpu_core/cycles/u' +# Event count (approx.): 329342866548 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ......................................................... .................... +# + 17.08% [.] 0x0000000000163353 - - + 11.08% [.] clockcache_try_get_read.constprop.0 - - + 10.41% [.] btree_find_pivot_checked.lto_priv.0 - - + 9.60% [.] btree_find_tuple_checked.lto_priv.0 - - + 3.82% [.] clockcache_unget_virtual - - + 3.13% [.] key_compare - - + 2.60% [.] btree_lookup_node_async.constprop.0 - - + 2.60% [.] clockcache_get_internal_async.constprop.0 - - + 2.48% [.] btree_node_read_header.isra.0 - - + 2.29% [.] find_btree_node_and_get_idx_bounds_async.constprop.0 - - + 2.19% [.] 0x00000000001621f8 - - + 2.15% [.] 0x0000000000162419 - - + 2.15% [.] core_range_iterator_init - - + 2.01% [.] btree_iterator_init_async - - + 1.95% [.] rc_allocator_dec_ref_virtual - - + 1.85% [.] rc_allocator_inc_ref_virtual - - + 1.84% [.] 0x000000000016241d - - + 1.51% [.] merge_comp - - + 1.20% [.] merge_iterator_create - - + 1.19% [.] clockcache_get_in_cache_async.constprop.0 - - + 0.98% [.] setup_ordered_iterators - - + 0.91% [.] 0x00000000001624c7 - - + 0.63% [.] __vdso_clock_gettime - - + 0.59% [.] 0x00000000001621f4 - - + 0.51% [.] 0x0000000000162b87 - - + + +# +# (Tip: Print event counts in machine readable CSV format with: perf stat -x\;) +# diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-point8.txt b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-point8.txt new file mode 100644 index 000000000..bc26d8490 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-point8.txt @@ -0,0 +1,49 @@ +# To display the perf.data header info, please use --header/--header-only options. +# +# +# Total Lost Samples: 0 +# +# Samples: 1 of event 'cpu_atom/cycles/u' +# Event count (approx.): 501504 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ...................... .................... +# + 100.00% [.] 0x0000000000036713 - - + + +# Samples: 127K of event 'cpu_core/cycles/u' +# Event count (approx.): 318055498928 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ............................................................... .................... +# + 16.89% [.] clockcache_try_get_read.constprop.0 - - + 13.36% [.] btree_find_pivot_checked.lto_priv.0 - - + 10.57% [.] trunk_ondisk_bundle_merge_lookup.constprop.0 - - + 9.38% [.] clockcache_unget_virtual - - + 7.43% [.] btree_find_tuple_checked.lto_priv.0 - - + 3.84% [.] clockcache_get_virtual - - + 3.53% [.] batch_rwlock_get - - + 3.25% [.] key_compare - - + 2.54% [.] __vdso_clock_gettime - - + 2.52% [.] 0x0000000000162419 - - + 2.43% [.] core_lookup.constprop.0 - - + 2.34% [.] btree_node_read_header.isra.0 - - + 2.06% [.] 0x00000000001621f8 - - + 1.73% [.] __popcountdi2 - - + 1.48% [.] btree_lookup_node_internal.lto_priv.0 - - + 1.40% [.] 0x000000000016241d - - + 1.37% [.] batch_rwlock_get.constprop.0 - - + 1.28% [.] point_worker - - + 1.13% [.] trunk_init_root_handle - - + 0.97% [.] 0x00000000001624c7 - - + 0.69% [.] routing_get_header.isra.0 - - + 0.65% [.] 0x00000000001621f4 - - + 0.62% [.] XXH32 - - + 0.60% [.] splinterdb_lookup.constprop.0 - - + + +# +# (Tip: For memory address profiling, try: perf mem record / perf mem report) +# diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-range1_8.txt b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-range1_8.txt new file mode 100644 index 000000000..90b80b9ce --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-range1_8.txt @@ -0,0 +1,41 @@ +# To display the perf.data header info, please use --header/--header-only options. +# +# +# Total Lost Samples: 0 +# +# Samples: 127K of event 'cpu_core/cycles/u' +# Event count (approx.): 312312597038 +# +# Overhead Symbol IPC [IPC Coverage] +# ........ ......................................................... .................... +# + 16.68% [.] 0x0000000000163353 - - + 12.63% [.] clockcache_try_get_read.constprop.0 - - + 10.47% [.] btree_find_pivot_checked.lto_priv.0 - - + 9.41% [.] btree_find_tuple_checked.lto_priv.0 - - + 3.73% [.] clockcache_unget_virtual - - + 2.98% [.] key_compare - - + 2.84% [.] btree_lookup_node_async.constprop.0 - - + 2.43% [.] clockcache_get_internal_async.constprop.0 - - + 2.29% [.] find_btree_node_and_get_idx_bounds_async.constprop.0 - - + 2.17% [.] 0x00000000001621f8 - - + 2.17% [.] btree_node_read_header.isra.0 - - + 2.09% [.] core_range_iterator_init - - + 2.07% [.] 0x0000000000162419 - - + 1.99% [.] rc_allocator_dec_ref_virtual - - + 1.92% [.] btree_iterator_init_async - - + 1.82% [.] rc_allocator_inc_ref_virtual - - + 1.81% [.] 0x000000000016241d - - + 1.52% [.] merge_comp - - + 1.29% [.] clockcache_get_in_cache_async.constprop.0 - - + 1.26% [.] merge_iterator_create - - + 0.99% [.] setup_ordered_iterators - - + 0.91% [.] 0x00000000001624c7 - - + 0.63% [.] __vdso_clock_gettime - - + 0.53% [.] 0x0000000000162b87 - - + 0.52% [.] 0x00000000001621f4 - - + + +# +# (Tip: To record every process run by a user: perf record -u ) +# diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-point8.stat b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-point8.stat new file mode 100644 index 000000000..5aa3f503a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-point8.stat @@ -0,0 +1,10 @@ +# started on Sun Oct 11 17:28:49 2026 + +125377026053,,cpu_atom/cycles:u/,522992,0.00,, +332535915073,,cpu_core/cycles:u/,128092208477,99.00,, +88150945446,,cpu_atom/instructions:u/,522992,0.00,0.70,insn per cycle +473432723803,,cpu_core/instructions:u/,128092208477,99.00,1.42,insn per cycle +18927888726,,cpu_atom/branches:u/,522992,0.00,, +86313080126,,cpu_core/branches:u/,128092208477,99.00,, +1089907025,,cpu_atom/branch-misses:u/,522992,0.00,5.76,of all branches +988548732,,cpu_core/branch-misses:u/,128092208477,99.00,1.15,of all branches diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-range1_8.stat b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-range1_8.stat new file mode 100644 index 000000000..c466b0a1d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-range1_8.stat @@ -0,0 +1,10 @@ +# started on Sun Oct 11 17:29:05 2026 + +133517166379,,cpu_atom/cycles:u/,474877,0.00,, +320929064253,,cpu_core/cycles:u/,128108809636,99.00,, +97193498117,,cpu_atom/instructions:u/,474877,0.00,0.73,insn per cycle +384835356682,,cpu_core/instructions:u/,128108809636,99.00,1.20,insn per cycle +20873463612,,cpu_atom/branches:u/,474877,0.00,, +79194224915,,cpu_core/branches:u/,128108809636,99.00,, +1183496844,,cpu_atom/branch-misses:u/,474877,0.00,5.67,of all branches +564764309,,cpu_core/branch-misses:u/,128108809636,99.00,0.71,of all branches diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-point8.stat b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-point8.stat new file mode 100644 index 000000000..61539b352 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-point8.stat @@ -0,0 +1,10 @@ +# started on Sun Oct 11 17:29:21 2026 + +95958994203,,cpu_atom/cycles:u/,607989,0.00,, +336877313184,,cpu_core/cycles:u/,128076659249,99.00,, +75885257881,,cpu_atom/instructions:u/,607989,0.00,0.79,insn per cycle +482400693725,,cpu_core/instructions:u/,128076659249,99.00,1.43,insn per cycle +16297916466,,cpu_atom/branches:u/,607989,0.00,, +89858495784,,cpu_core/branches:u/,128076659249,99.00,, +941216420,,cpu_atom/branch-misses:u/,607989,0.00,5.78,of all branches +986604360,,cpu_core/branch-misses:u/,128076659249,99.00,1.10,of all branches diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-range1_8.stat b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-range1_8.stat new file mode 100644 index 000000000..c532e4e4b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-range1_8.stat @@ -0,0 +1,10 @@ +# started on Sun Oct 11 17:29:38 2026 + +106971129062,,cpu_atom/cycles:u/,554427,0.00,, +329407975879,,cpu_core/cycles:u/,128095451510,99.00,, +83166163251,,cpu_atom/instructions:u/,554427,0.00,0.78,insn per cycle +397477758626,,cpu_core/instructions:u/,128095451510,99.00,1.21,insn per cycle +17857016708,,cpu_atom/branches:u/,554427,0.00,, +81721621095,,cpu_core/branches:u/,128095451510,99.00,, +1032758409,,cpu_atom/branch-misses:u/,554427,0.00,5.78,of all branches +568926996,,cpu_core/branch-misses:u/,128095451510,99.00,0.70,of all branches diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/manifest.json new file mode 100644 index 000000000..2a13ed36d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/manifest.json @@ -0,0 +1,245 @@ +{ + "project": "cache-errors", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764514.1164002, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791764562.387285, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/1-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764562.406073, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764610.6112893, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764610.6239035, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764658.8193052, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/3-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764658.8313596, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791764707.0713384, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/results.csv new file mode 100644 index 000000000..13ff7c3df --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.082,2437914.8,nan,nan,nan,0.000,nan,0.092,2183310.8,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,2437914.8,0.082,0.000,0.082,0.000,0,0,nan,0,0,0.031,0,0,0,0,6 +baseline,resident,0,0,point:uniform@1,1,0,200000,18365189,15.000,1224332.9,0.776,1.104,1.360,52.837,0.791,15.000,1224350.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,81634012,15.000,5442181.2,1.392,2.000,2.592,438.922,1.423,119.984,680376.8,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,7799115,15.000,519932.0,13.952,20.736,31.488,503.917,15.338,119.981,65002.7,0,4096,0.00,0.00,13.440,19.712,14.653,nan,0.641,7799115,519932.0,15.000,0.148,15.148,0.012,0,311296,nan,162140160,28651520,0.031,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.050,4012976.8,nan,nan,nan,0.000,nan,0.100,1996725.4,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,4012976.8,0.050,0.000,0.050,0.000,0,0,nan,0,0,0.030,0,0,0,0,5 +candidate,resident,1,0,point:uniform@1,1,0,200000,18106065,15.000,1207055.4,0.792,1.104,1.392,106.898,0.803,14.999,1207121.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.030,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,79540746,15.000,5302631.0,1.424,2.080,2.720,489.340,1.463,119.989,662901.8,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.030,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,7997250,15.000,533140.4,13.696,21.248,29.952,215.201,14.959,119.986,66651.7,0,4096,0.00,0.00,13.184,20.224,14.305,nan,0.611,7997250,533140.4,15.000,0.114,15.114,0.011,0,311296,nan,162140160,28651520,0.030,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.027,7453549.9,nan,nan,nan,0.000,nan,0.070,2845921.8,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,7453549.9,0.027,0.000,0.027,0.000,0,0,nan,0,0,0.037,0,0,0,0,5 +candidate,resident,2,0,point:uniform@1,1,1,200000,17804749,15.000,1186968.5,0.792,1.136,1.424,40.037,0.817,15.000,1186976.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.037,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,80937450,15.000,5395750.5,1.424,2.032,3.296,574.487,1.441,119.983,674573.6,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.037,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,7680966,15.000,512056.5,14.208,21.248,31.488,599.222,15.575,119.978,64020.0,0,4096,0.00,0.00,13.696,20.224,14.870,nan,0.661,7680966,512056.5,15.000,0.122,15.122,0.011,0,311296,nan,162140160,28651520,0.037,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.086,2319394.0,nan,nan,nan,0.000,nan,0.132,1519987.8,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,2319394.0,0.086,0.000,0.086,0.000,0,0,nan,0,0,0.039,0,0,0,0,4 +baseline,resident,3,0,point:uniform@1,1,1,200000,18620372,15.000,1241339.4,0.760,1.072,1.360,49.682,0.780,15.003,1241082.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,82813699,15.000,5520836.2,1.360,2.000,2.528,1709.443,1.403,119.990,690171.2,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,7801021,15.000,520059.9,13.952,20.736,30.464,479.122,15.335,119.991,65013.6,0,4096,0.00,0.00,13.440,19.712,14.657,nan,0.634,7801021,520059.9,15.000,0.106,15.107,0.012,0,311296,nan,162140160,28651520,0.039,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/manifest.json new file mode 100644 index 000000000..2f7cba97c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/manifest.json @@ -0,0 +1,257 @@ +{ + "project": "cache-errors", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791762555.3075163, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791762651.4753485, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + ".cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/1-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791762651.4877596, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791762747.6713452, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + ".cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791762747.683862, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791762843.8113, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/3-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791762843.8237925, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791762939.9673088, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/results.csv new file mode 100644 index 000000000..fb4dc1b3c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.025,7995658.0,nan,nan,nan,0.000,nan,0.075,2665245.2,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,7995658.0,0.025,0.000,0.025,0.000,0,0,nan,0,0,0.018,0,0,0,0,5 +baseline,resident,0,0,point:uniform@1,1,0,200000,18993893,15.000,1266237.3,0.744,1.104,1.552,52.942,0.765,15.000,1266277.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.018,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,85318614,15.000,5687819.9,1.328,1.904,2.464,274.909,1.362,120.023,710852.7,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.018,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1719631,15.000,114640.6,8.576,10.624,15.488,47.831,8.696,15.000,114641.9,0,4096,0.00,0.00,8.320,10.368,8.421,nan,0.247,1719631,114640.6,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.018,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,8770117,15.000,584664.4,12.416,19.200,26.880,113.286,13.640,119.989,73091.0,0,8192,0.00,0.00,11.904,18.176,13.010,nan,0.591,8770117,584664.4,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.018,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,11685,15.000,779.0,1327.104,1392.640,1458.176,1614.258,1283.585,15.000,779.0,0,4096,0.00,0.35,11.392,16.640,11.549,130.38,0.426,113939456,7595887.2,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.018,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,61806,15.000,4120.3,1851.392,2326.528,2392.064,2466.899,1941.433,119.990,515.1,0,4096,0.00,0.07,15.744,22.784,16.145,197.26,0.865,602821919,40187479.4,15.000,0.111,15.111,0.012,0,311296,nan,162140160,28651520,0.018,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.030,6573921.8,nan,nan,nan,0.000,nan,0.083,2405407.4,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,6573921.8,0.030,0.000,0.030,0.000,0,0,nan,0,0,0.023,0,0,0,0,4 +candidate,resident,1,0,point:uniform@1,1,0,200000,18573831,15.000,1238233.6,0.760,1.136,1.680,677.131,0.783,14.999,1238338.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,82970805,15.000,5531293.0,1.392,1.968,2.528,163.156,1.405,119.990,691482.8,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1762410,15.000,117491.8,8.320,10.368,22.272,71.082,8.485,15.000,117496.8,0,4096,0.00,0.00,8.128,10.112,8.215,nan,0.243,1762410,117491.8,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,8255563,15.000,550362.5,13.184,19.712,28.928,106.358,14.491,119.993,68800.3,0,8192,0.00,0.00,12.672,18.688,13.834,nan,0.616,8255563,550362.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,11795,15.000,786.3,1294.336,1392.640,1425.408,1466.139,1271.678,15.000,786.3,0,4096,0.00,0.35,11.392,16.000,11.605,129.15,0.428,115015614,7667573.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,59526,15.000,3968.3,1884.160,2457.600,2523.136,10393.386,2015.790,119.976,496.1,0,4096,0.00,0.07,16.640,27.392,16.969,204.85,0.810,580595277,38705734.9,15.000,0.082,15.082,0.011,0,311296,nan,162140160,28651520,0.023,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.020,10019179.7,nan,nan,nan,0.000,nan,0.052,3809959.2,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,10019179.7,0.020,0.000,0.020,0.000,0,0,nan,0,0,0.011,0,0,0,0,5 +candidate,resident,2,0,point:uniform@1,1,1,200000,18360842,15.000,1224042.9,0.776,1.136,1.616,61.453,0.792,15.000,1224070.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,82069976,15.000,5471254.7,1.392,2.000,2.464,112.628,1.421,120.018,683813.3,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1783609,15.000,118905.1,8.320,10.112,33.280,50.084,8.384,15.000,118908.0,0,4096,0.00,0.00,8.000,9.856,8.126,nan,0.232,1783609,118905.1,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,8157287,15.000,543810.8,13.440,19.712,28.928,1072.171,14.666,119.986,67985.5,0,4096,0.00,0.00,12.928,19.200,14.015,nan,0.609,8157287,543810.8,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,11414,15.002,760.8,1327.104,1851.392,4653.056,8331.975,1314.300,15.000,760.9,0,4096,0.00,0.36,11.648,16.256,11.800,133.55,0.616,111299839,7418834.1,15.002,0.000,15.002,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,61021,15.000,4068.0,1851.392,2392.064,3112.960,5155.921,1966.445,119.990,508.6,0,4096,0.00,0.07,16.256,24.832,16.508,199.81,0.800,595131499,39674745.2,15.000,0.081,15.081,0.012,0,311296,nan,162140160,28651520,0.011,0,0,2,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.021,9609542.7,nan,nan,nan,0.000,nan,0.054,3697883.0,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,9609542.7,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.015,0,0,0,0,5 +baseline,resident,3,0,point:uniform@1,1,1,200000,18895793,15.000,1259697.7,0.744,1.072,1.456,58.389,0.768,14.999,1259793.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.015,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,89560603,15.000,5970621.6,1.264,1.840,2.336,444.448,1.299,119.980,746459.8,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.015,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1709314,15.000,113952.3,8.576,10.368,14.720,62.354,8.748,15.000,113955.6,0,4096,0.00,0.00,8.320,10.112,8.450,nan,0.271,1709314,113952.3,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.015,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,8600385,15.000,573350.9,12.672,18.688,27.904,879.680,13.909,119.985,71678.7,0,8192,0.00,0.00,12.160,18.176,13.290,nan,0.579,8600385,573350.9,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.015,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,11381,15.000,758.7,1359.872,1458.176,1622.016,1999.785,1317.843,14.999,758.8,0,4096,0.00,0.36,11.648,17.152,11.852,133.88,0.427,110964447,7397497.8,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.015,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,58688,15.000,3912.5,1916.928,2457.600,2457.600,2549.620,2044.630,119.992,489.1,0,4096,0.00,0.07,16.640,23.296,16.902,207.81,0.821,572466629,38163806.2,15.000,0.095,15.095,0.012,0,311296,nan,162140160,28651520,0.015,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/manifest.json new file mode 100644 index 000000000..37aae2bda --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/manifest.json @@ -0,0 +1,249 @@ +{ + "project": "cache-errors", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10000@8" + ], + "started": 1791757856.7446134, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791757920.9391978, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/1-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10000@8" + ], + "started": 1791757920.953318, + "binary_sha256": "86b024d59b3d4a5d01c5f2693cee07b4230b9a345f02d65a11db0777cbadbc35", + "returncode": 0, + "finished": 1791757985.083248, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10000@8" + ], + "started": 1791757985.0980372, + "binary_sha256": "86b024d59b3d4a5d01c5f2693cee07b4230b9a345f02d65a11db0777cbadbc35", + "returncode": 0, + "finished": 1791758049.2312331, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/3-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-errors/resident-log0-repeat15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10000@8" + ], + "started": 1791758049.2439613, + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e", + "returncode": 0, + "finished": 1791758113.3592525, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/results.csv new file mode 100644 index 000000000..3e885e73c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.067,3004020.8,nan,nan,nan,0.000,nan,0.087,2289954.0,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,3004020.8,0.067,0.000,0.067,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,resident,0,0,point:uniform@1,1,0,200000,19100585,15.000,1273358.2,0.744,1.104,1.680,129.200,0.760,14.999,1273496.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,86423200,15.000,5761447.0,1.328,1.936,3.168,1420.309,1.347,119.975,720345.5,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.016,0,0,13,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1764695,15.000,117644.8,8.320,13.184,26.880,161.252,8.474,15.000,117648.2,0,0,0.00,0.00,8.000,12.928,8.209,nan,0.238,1764695,117644.8,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,57301,15.000,3820.0,1982.464,2523.136,2654.208,5176.158,2094.170,119.977,477.6,0,8192,0.00,0.14,17.664,29.952,18.134,212.74,0.866,558920102,37260733.8,15.000,0.100,15.101,0.012,0,307200,nan,162140160,28651520,0.016,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.021,9445430.4,nan,nan,nan,0.000,nan,0.055,3658045.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,9445430.4,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.035,0,0,0,0,5 +candidate,resident,1,0,point:uniform@1,1,0,200000,17883074,15.000,1192183.2,0.792,1.328,3.296,173.122,0.814,14.998,1192352.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.035,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,87416683,15.000,5827690.1,1.296,1.872,2.400,350.969,1.334,119.986,728558.2,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.035,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1630554,15.000,108701.7,8.832,14.208,19.200,123.026,9.171,14.999,108709.4,0,4096,0.00,0.00,8.576,13.952,8.869,nan,0.274,1630554,108701.7,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.035,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,59217,15.000,3947.7,1916.928,2457.600,2588.672,4041.191,2026.327,119.986,493.5,0,8192,0.00,0.14,17.152,27.392,17.215,205.86,0.844,577647537,38509189.8,15.000,0.062,15.063,0.013,0,307200,nan,162140160,28651520,0.035,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.021,9340279.3,nan,nan,nan,0.000,nan,0.063,3176821.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,9340279.3,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.012,0,0,0,0,0 +candidate,resident,2,0,point:uniform@1,1,1,200000,17894388,15.000,1192938.1,0.792,1.200,1.744,85.132,0.814,14.999,1193071.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.012,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,78593631,15.000,5239495.7,1.456,2.336,4.928,4022.666,1.485,119.971,655105.6,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.012,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1671299,15.000,111418.5,8.832,10.880,23.296,156.032,8.948,14.999,111430.4,0,4096,0.00,0.00,8.576,10.368,8.655,nan,0.266,1671299,111418.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.012,0,0,1,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,61345,15.000,4089.6,1851.392,2392.064,2523.136,4515.381,1956.029,119.979,511.3,0,8192,0.00,0.13,16.000,25.856,16.393,198.80,0.786,598273396,39884311.0,15.000,0.089,15.089,0.012,0,307200,nan,162140160,28651520,0.012,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.020,10010327.7,nan,nan,nan,0.000,nan,0.052,3873941.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,10010327.7,0.020,0.000,0.020,0.000,0,0,nan,0,0,0.011,0,0,0,0,5 +baseline,resident,3,0,point:uniform@1,1,1,200000,18880097,15.000,1258658.9,0.744,1.104,1.776,191.758,0.769,14.999,1258782.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,85222924,15.000,5681446.0,1.328,1.968,2.912,489.270,1.365,119.976,710331.3,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1746818,15.000,116452.5,8.320,11.648,16.000,68.387,8.560,14.999,116463.2,0,4096,0.00,0.00,8.128,11.392,8.293,nan,0.241,1746818,116452.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,60859,15.000,4057.2,1884.160,2392.064,2523.136,2807.266,1971.649,119.981,507.2,0,4096,0.00,0.07,16.256,27.392,16.599,200.34,0.794,593646851,39575838.3,15.000,0.073,15.074,0.013,0,307200,nan,162140160,28651520,0.011,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/README.md b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/README.md new file mode 100644 index 000000000..1f388526e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/README.md @@ -0,0 +1,31 @@ +# Project 2 measurement evidence + +See [the report](../../../docs/cache-handoff-results.md) for implementation, +validation, and interpretation. Each read campaign contains per-phase CSVs and +the command/executable-hash manifest. `environment.json` records the machine and +disk. `binaries/` records the common-source builds for the project 1 baseline, +the earlier 16-byte handoff receipt, and the 8-byte tagged receipt experiment. + +Here `baseline` in a read CSV means project 1's compact implementation, not the +original database. In `resident-tagged10`, `unpacked` is the 16-byte handoff +receipt and `candidate` is the 8-byte tagged receipt. The other read directories +compare the 16-byte receipt with project 1. The branch retains the 16-byte +receipt; the tagged layout was reverted after mixed measurements. Shared insertion evidence lives in +the adjacent `cache-errors` directory inherited from project 1; its manifests +name all implementations explicitly. + +Full logs, interval traces, images, and executables remain in the original +campaign paths named by the manifests. To reproduce, build the stated revisions +and common baseline benchmark sources, then replay the recorded commands with +local executable/output paths. Preserve the ordering, storage, affinity, cache +sizes, and input fixture. Serialize benchmarks against other work and keep the +database on a real disk. The campaign's `coordination/run_job.py` enforces this. +The same-file disk campaign intentionally reopens one physical file; the other +read campaigns copy the baseline fixture separately for each run. + +`prefetch-admission/` records the later inherited prefetch repair, complete +handoff validation suites, and separate release provenance. The two +`disk-log0-prefetch-guard*` campaigns compare that repair against this branch's +own pre-guard binary, unlike the earlier project 1 comparisons. An initial +short-range loss reversed in the longer repeat. Neither copied-fixture control +explicitly synced the copy before timing; see the report's procedure limitation. diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..7b553bd44 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "baseline", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "0bab59a4e113b85ca5ba8226714b9a8821be3570d9b55c7ee931336657c501aa", + "binary_sha256": "5eed1251b5c19ed5525fe5162c711fa5ad29489eb1a8ad11fe4848203d48be0d" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-kvbench.json new file mode 100644 index 000000000..8b6c4da40 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "40a04c4e24b3018cade6ad4a4fd2b3a39a8b4f050a364d1001c82ccc788e0d3e" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..2d75f23ff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "cache-errors", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "5fae21d221198d22c079a821df15d7c409bdb2eb869bd321a65f9467a1f89e7b", + "binary_sha256": "25025d9cbc2d461bc1293b8469a371520de95cf4c2d5bafea211bf446d82ddc5" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-kvbench.json new file mode 100644 index 000000000..e7b27580b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..70e1f4291 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "cache-handoff", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "c425d3e05494e8ae8d33907d4fdb822b6e88d893b56a70ba3fa3cc7fc5fdb9f3", + "binary_sha256": "bef108ced09897a6dc4179f633b9fea8e06ff227e98f133aad8a68d38b1b1056" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-kvbench.json new file mode 100644 index 000000000..5976145c2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-insert_benchmark-cache-projects.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-insert_benchmark-cache-projects.json new file mode 100644 index 000000000..eb0fef403 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-insert_benchmark-cache-projects.json @@ -0,0 +1,36 @@ +{ + "version": "cache-handoff-tagged", + "command": [ + "cc", + "-D_GNU_SOURCE", + "-std=gnu11", + "-ggdb", + "-Wall", + "-Werror", + "-pthread", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/insert_benchmark-cache-projects" + ], + "source_sha256": "706d30ba3f4a827945cbe76a0c8a9e681b4cfeb9afa8b5e5171f876f4d6932e0", + "library_sha256": "3787943c78f88a265fa6187b1c69d70b419b9c490edccbaa56433e0d01526004", + "binary_sha256": "226c8c4010c54e5d93bdfa5507a238c44b54bc2ac3f4e005171306352b6b1475" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-kvbench.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-kvbench.json new file mode 100644 index 000000000..cda66fa4c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-kvbench.json @@ -0,0 +1,30 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "37ac9d894c527b8a234759692f17c9ef8216f64315b6d0bc7e2787128ab473f0" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/manifest.json new file mode 100644 index 000000000..f71062506 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/manifest.json @@ -0,0 +1,270 @@ +{ + "project": "cache-handoff", + "io": "O_DIRECT", + "baseline": "same branch before prefetch guard", + "candidate": "same branch with prefetch guard", + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5", + "provenance": { + "project": "cache-handoff", + "command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=release", + "libs" + ], + "old_binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "head": "65b9123c237ed27a95e27179564c7ef21dd162fd", + "new_provenance": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2" + } + }, + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791786123.5938604, + "returncode": 0, + "finished": 1791786146.8049495 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8" + ], + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2", + "started": 1791786147.1221611, + "returncode": 0, + "finished": 1791786169.6321745 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8" + ], + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2", + "started": 1791786169.9509933, + "returncode": 0, + "finished": 1791786192.4105654 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791786192.729908, + "returncode": 0, + "finished": 1791786215.138513 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/results.csv new file mode 100644 index 000000000..e0eb8706d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/results.csv @@ -0,0 +1,13 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.154,12946655.4,nan,nan,nan,0.000,nan,0.575,3478763.0,277438464,32768,138.72,0.02,nan,nan,nan,nan,nan,2000000,12946655.4,0.154,0.000,0.154,0.000,0,0,nan,0,0,0.899,0,0,0,0,2 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,124371,10.000,12436.7,72.704,141.312,1523.712,2706.782,80.372,10.861,11451.4,3332562944,0,26795.34,0.00,72.704,141.312,80.029,nan,0.311,124371,12436.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.899,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,663289,10.000,66327.5,115.712,219.136,1589.248,6614.444,120.545,85.274,7778.4,17796792320,0,26831.13,0.00,113.664,219.136,119.621,nan,0.875,663289,66327.5,10.000,0.088,10.088,0.009,0,274432,nan,2998669312,629567488,0.899,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.108,18507029.3,nan,nan,nan,0.000,nan,0.613,3263462.6,277463040,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,18507029.3,0.108,0.000,0.108,0.000,0,0,nan,0,0,0.291,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,127810,10.000,12780.7,72.704,133.120,1359.872,6935.303,78.206,10.905,11720.5,3425054720,0,26798.02,0.00,72.704,133.120,77.816,nan,0.358,127810,12780.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.291,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,668208,10.000,66819.2,117.760,215.040,1196.032,8138.461,119.653,85.352,7828.9,17933242368,0,26837.81,0.00,115.712,215.040,118.700,nan,0.903,668208,66819.2,10.000,0.065,10.066,0.009,0,274432,nan,2998669312,629567488,0.291,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.105,19046086.3,nan,nan,nan,0.000,nan,0.611,3275944.2,277487616,32768,138.74,0.02,nan,nan,nan,nan,nan,2000000,19046086.3,0.105,0.000,0.105,0.000,0,0,nan,0,0,0.221,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,130078,10.000,13007.6,72.704,133.120,223.232,2244.878,76.843,10.928,11902.9,3485810688,0,26797.85,0.00,72.704,133.120,76.453,nan,0.357,130078,13007.6,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.221,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,683155,10.000,68313.9,115.712,206.848,290.816,2590.009,117.038,85.513,7988.9,18334273536,0,26837.65,0.00,115.712,206.848,116.102,nan,0.887,683155,68313.9,10.000,0.072,10.073,0.009,0,274432,nan,2998669312,629567488,0.221,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.102,19703696.8,nan,nan,nan,0.000,nan,0.574,3481688.1,277458944,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,19703696.8,0.102,0.000,0.102,0.000,0,0,nan,0,0,0.207,0,0,0,0,3 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,129285,10.000,12928.3,74.752,133.120,202.752,5480.151,77.314,10.987,11766.8,3464450048,0,26797.00,0.00,74.752,133.120,76.935,nan,0.345,129285,12928.3,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.207,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,672057,10.000,67204.1,117.760,210.944,307.200,6151.457,118.967,85.536,7857.0,18028134400,0,26825.31,0.00,117.760,210.944,117.990,nan,0.926,672057,67204.1,10.000,0.068,10.068,0.009,0,274432,nan,2998669312,629567488,0.207,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/summary.txt b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/summary.txt new file mode 100644 index 000000000..43d5c19bf --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/summary.txt @@ -0,0 +1,6 @@ + + cache-handoff/disk-log0-prefetch-guard-short10 +phase | baseline mean [min,max] ops/s | candidate mean [min,max] ops/s | delta | p99 us B/C | CPU efficiency delta | read bytes/op B/C +range:uniform:1@1 | 12682.5 [12436.7,12928.3] | 12894.2 [12780.7,13007.6] | +1.67% | 137.216/133.120 | +1.75% | 26796/26798 +range:uniform:1@8 | 66765.8 [66327.5,67204.1] | 67566.5 [66819.2,68313.9] | +1.20% | 215.040/210.944 | +1.17% | 26828/26838 +samples 12 errors 0 violations 0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/manifest.json new file mode 100644 index 000000000..64acce7c9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/manifest.json @@ -0,0 +1,278 @@ +{ + "project": "cache-handoff", + "io": "O_DIRECT", + "baseline": "same branch before prefetch guard", + "candidate": "same branch with prefetch guard", + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5", + "provenance": { + "project": "cache-handoff", + "command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=release", + "libs" + ], + "old_binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "head": "65b9123c237ed27a95e27179564c7ef21dd162fd", + "new_provenance": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2" + } + }, + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791785774.742246, + "returncode": 0, + "finished": 1791785799.3632796 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2", + "started": 1791785799.6795883, + "returncode": 0, + "finished": 1791785824.2968516 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2", + "started": 1791785824.6195035, + "returncode": 0, + "finished": 1791785850.0510948 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/probe.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-prefetch-guard/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "warm", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791785850.3700776, + "returncode": 0, + "finished": 1791785874.9410698 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/results.csv new file mode 100644 index 000000000..252dca288 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.097,20557909.0,nan,nan,nan,0.000,nan,0.509,3930346.4,277467136,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,20557909.0,0.097,0.000,0.097,0.000,0,0,nan,0,0,0.360,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,56547,5.000,11309.0,84.992,157.696,260.096,2062.078,88.391,5.351,10566.6,1514545152,0,26783.83,0.00,84.992,157.696,88.062,nan,0.299,56547,11309.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.360,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,303031,5.000,60603.5,130.048,247.808,614.400,2085.562,131.937,42.576,7117.5,8136093696,0,26849.05,0.00,128.000,247.808,131.087,nan,0.806,303031,60603.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.360,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,642,5.000,128.4,8192.000,18087.936,20709.376,20768.733,7799.586,1.591,403.6,1897922560,0,2956265.67,0.00,182.272,679.936,206.391,759.94,0.941,6409917,1281945.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.360,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,3693,5.000,738.6,11141.120,24379.392,29097.984,39327.524,10832.826,12.926,285.7,10585755648,0,2866438.03,0.00,266.240,974.848,310.853,1053.79,1.188,36865767,7372887.9,5.000,0.086,5.086,0.007,0,274432,nan,2998669312,629567488,0.360,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.101,19720092.8,nan,nan,nan,0.000,nan,0.574,3483841.1,277463040,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,19720092.8,0.101,0.000,0.101,0.000,0,0,nan,0,0,0.369,0,0,0,0,3 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,55582,5.000,11116.0,87.040,157.696,206.848,2300.512,89.925,5.381,10329.9,1488883712,0,26787.16,0.00,87.040,157.696,89.527,nan,0.365,55582,11116.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.369,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,297440,5.000,59485.3,133.120,251.904,339.968,2361.518,134.415,42.661,6972.2,7982960640,0,26838.89,0.00,133.120,251.904,133.511,nan,0.856,297440,59485.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.369,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,643,5.000,128.6,8060.928,17563.648,21030.996,21030.996,7783.655,1.610,399.5,1900507136,0,2955687.61,0.00,182.272,565.248,202.466,758.81,0.923,6419917,1283937.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.369,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,3621,5.000,724.2,11665.408,24903.680,27491.566,27491.566,11039.971,13.099,276.4,10434215936,0,2881584.08,0.00,266.240,909.312,308.175,1074.68,1.248,36151525,7230037.6,5.000,0.060,5.061,0.007,0,274432,nan,2998669312,629567488,0.369,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.157,12745366.1,nan,nan,nan,0.000,nan,0.587,3404568.2,277344256,32768,138.67,0.02,nan,nan,nan,nan,nan,2000000,12745366.1,0.157,0.000,0.157,0.000,0,0,nan,0,0,1.151,0,0,0,0,3 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,53956,5.000,10790.8,87.040,161.792,1622.016,2251.146,92.633,5.362,10062.1,1445765120,0,26795.26,0.00,87.040,161.792,92.240,nan,0.359,53956,10790.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,1.151,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,278388,5.000,55675.0,133.120,299.008,1753.088,4612.266,143.614,42.392,6567.1,7459999744,0,26797.13,0.00,133.120,299.008,142.653,nan,0.911,278388,55675.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,1.151,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,628,5.000,125.6,8192.000,18612.224,48758.784,48888.692,7996.030,1.581,397.1,1856356352,0,2955981.45,0.00,178.176,761.856,211.851,779.05,1.011,6269917,1253939.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,1.151,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,3463,5.000,692.6,11665.408,32243.712,46661.632,72704.913,11541.139,12.897,268.5,9900785664,0,2859019.83,0.00,266.240,1589.248,337.743,1121.63,1.229,34581427,6916003.0,5.000,0.061,5.061,0.008,0,274432,nan,2998669312,629563392,1.151,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.108,18594307.7,nan,nan,nan,0.000,nan,0.594,3365938.1,277467136,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,18594307.7,0.108,0.000,0.108,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,57870,5.000,11573.5,82.944,153.600,239.616,2160.635,86.367,5.401,10715.4,1550319616,0,26789.69,0.00,82.944,153.600,86.006,nan,0.328,57870,11573.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,310319,5.000,62061.0,125.952,239.616,323.584,2019.517,128.830,42.670,7272.6,8328687616,0,26839.12,0.00,125.952,239.616,127.903,nan,0.878,310319,62061.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,649,5.000,129.8,8060.928,17563.648,27847.237,27847.237,7699.574,1.645,394.5,1917386752,0,2954370.96,0.00,178.176,532.480,199.503,750.58,0.978,6479917,1295940.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,3689,5.000,737.8,11403.264,24379.392,30146.560,31712.667,10846.373,13.627,270.7,10415308800,0,2823342.04,0.00,256.000,909.312,297.802,1055.95,1.305,36831525,7366023.8,5.000,0.074,5.074,0.008,0,274432,nan,2998669312,629567488,0.335,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/summary.txt b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/summary.txt new file mode 100644 index 000000000..d75d8374b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/summary.txt @@ -0,0 +1,8 @@ + + cache-handoff/disk-log0-prefetch-guard +phase | baseline mean [min,max] ops/s | candidate mean [min,max] ops/s | delta | p99 us B/C | CPU efficiency delta | read bytes/op B/C +range:uniform:1@1 | 11441.2 [11309.0,11573.5] | 10953.4 [10790.8,11116.0] | -4.26% | 155.648/159.744 | -4.18% | 26787/26791 +range:uniform:1@8 | 61332.2 [60603.5,62061.0] | 57580.2 [55675.0,59485.3] | -6.12% | 243.712/275.456 | -5.91% | 26844/26818 +range:uniform:10000@1 | 129.1 [128.4,129.8] | 127.1 [125.6,128.6] | -1.55% | 17825.792/18087.936 | -0.19% | 2955318/2955835 +range:uniform:10000@8 | 738.2 [737.8,738.6] | 708.4 [692.6,724.2] | -4.04% | 24379.392/28573.696 | -2.07% | 2844890/2870302 +samples 20 errors 0 violations 0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/manifest.json new file mode 100644 index 000000000..195adf3b2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/manifest.json @@ -0,0 +1,245 @@ +{ + "project": "cache-handoff", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/0-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764794.1961753, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764828.060472, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/1-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764828.2886717, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764861.8446643, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/2-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764862.0791063, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764895.6125653, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/3-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt-repeat10", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "started": 1791764895.8462899, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764929.2606378, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/results.csv new file mode 100644 index 000000000..9d0590cd5 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.145,13762163.5,nan,nan,nan,0.000,nan,0.582,3433989.3,277413888,32768,138.71,0.02,nan,nan,nan,nan,nan,2000000,13762163.5,0.145,0.000,0.145,0.000,0,0,nan,0,0,0.608,0,0,0,0,0 +baseline,disk,0,0,point:uniform@1,1,0,2000000,195614,10.000,19561.1,57.856,107.520,827.392,3688.135,51.093,0.829,235838.6,630185984,0,3221.58,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.608,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,1511822,10.000,151180.0,59.904,103.424,532.480,3139.263,52.883,7.442,203142.2,4872089600,0,3222.66,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.608,0,0,1,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,517770,10.000,51775.9,145.408,307.200,1916.928,4125.936,154.441,84.859,6101.5,13895458816,0,26837.13,0.00,145.408,307.200,153.510,nan,0.884,517770,51775.9,10.000,0.083,10.084,0.009,0,278528,nan,2998669312,629575680,0.608,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.109,18425864.6,nan,nan,nan,0.000,nan,0.578,3458077.7,277479424,32768,138.74,0.02,nan,nan,nan,nan,nan,2000000,18425864.6,0.109,0.000,0.109,0.000,0,0,nan,0,0,0.351,0,0,0,0,3 +candidate,disk,1,0,point:uniform@1,1,0,2000000,201723,10.000,20171.8,57.856,91.136,202.752,2975.524,49.547,0.845,238707.1,649613312,0,3220.32,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.351,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,1542187,10.000,154215.7,60.928,101.376,133.120,3626.742,51.841,7.580,203452.5,4970053632,0,3222.73,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.351,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,545731,10.000,54571.9,145.408,274.432,356.352,4197.219,146.523,85.160,6408.3,14649163776,4096,26843.20,0.01,145.408,274.432,145.605,nan,0.870,545731,54571.9,10.000,0.069,10.069,0.010,0,274432,nan,2998669312,629575680,0.351,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.111,18086347.6,nan,nan,nan,0.000,nan,0.600,3335774.0,277483520,32768,138.74,0.02,nan,nan,nan,nan,nan,2000000,18086347.6,0.111,0.000,0.111,0.000,0,0,nan,0,0,0.335,0,0,0,0,3 +candidate,disk,2,0,point:uniform@1,1,1,2000000,217298,10.000,21729.4,57.856,91.136,202.752,1754.220,45.992,0.909,239097.5,699944960,0,3221.13,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1659204,10.000,165917.5,59.904,97.280,128.000,8243.740,48.179,8.247,201200.5,5348564992,0,3223.57,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.335,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,576125,10.000,57611.1,137.216,256.000,339.968,4218.428,138.790,85.165,6764.8,15461036032,0,26836.25,0.00,137.216,256.000,137.851,nan,0.889,576125,57611.1,10.000,0.059,10.060,0.011,0,278528,nan,2998669312,629575680,0.335,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.106,18846394.8,nan,nan,nan,0.000,nan,0.609,3282299.1,277467136,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,18846394.8,0.106,0.000,0.106,0.000,0,0,nan,0,0,0.202,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,265994,10.000,26599.0,45.568,70.656,165.888,1879.964,37.569,1.066,249530.9,855437312,0,3216.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.202,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,1991772,10.000,199173.6,48.640,74.752,101.376,4076.119,40.129,10.466,190316.3,6419857408,0,3223.19,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.202,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,675679,10.000,67565.9,117.760,206.848,260.096,4152.858,118.331,85.546,7898.4,18142334976,0,26850.52,0.00,117.760,206.848,117.348,nan,0.932,675679,67565.9,10.000,0.076,10.076,0.009,0,274432,nan,2998669312,629575680,0.202,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/manifest.json new file mode 100644 index 000000000..39b91bb40 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/manifest.json @@ -0,0 +1,257 @@ +{ + "project": "cache-handoff", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/0-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791764092.6407669, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764129.140754, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/1-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791764129.3628802, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764165.8685963, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/2-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791764166.102388, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764202.6368299, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/3-baseline.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-log0-receipt", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791764202.870778, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764239.396529, + "db_allocated_bytes": 629575680, + "db_apparent_bytes": 2998669312 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/results.csv new file mode 100644 index 000000000..79a45cfcd --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.101,19827211.2,nan,nan,nan,0.000,nan,0.500,4003042.3,277401600,32768,138.70,0.02,nan,nan,nan,nan,nan,2000000,19827211.2,0.101,0.000,0.101,0.000,0,0,nan,0,0,0.270,0,0,0,0,5 +baseline,disk,0,0,point:uniform@1,1,0,2000000,101692,5.000,20337.7,57.856,91.136,202.752,1244.974,49.143,0.423,240577.8,328056832,0,3225.98,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.270,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,779075,5.000,155810.0,59.904,101.376,137.216,1490.918,51.306,3.707,210161.8,2511470592,0,3223.66,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.270,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,52081,5.000,10415.9,89.088,169.984,223.232,1512.822,95.971,5.349,9737.5,1394786304,0,26781.10,0.00,89.088,169.984,95.588,nan,0.351,52081,10415.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.270,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,280152,5.000,56028.0,141.312,266.240,331.776,1553.371,142.718,42.534,6586.6,7516835840,0,26831.28,0.00,141.312,266.240,141.851,nan,0.822,280152,56028.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.270,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,592,5.000,118.4,8781.824,19660.800,21757.952,21798.382,8455.561,1.454,407.1,1754669056,0,2963968.00,0.00,198.656,581.632,219.917,824.31,0.843,5909917,1181921.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.270,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,3414,5.000,682.8,12189.696,27000.832,31195.136,33063.967,11722.556,11.699,291.8,9859624960,0,2887997.94,0.00,290.816,991.232,333.971,1139.82,1.052,34094438,6818645.2,5.000,0.078,5.079,0.007,0,278528,nan,2998669312,629575680,0.270,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.108,18603912.4,nan,nan,nan,0.000,nan,0.575,3477414.2,277417984,32768,138.71,0.02,nan,nan,nan,nan,nan,2000000,18603912.4,0.108,0.000,0.108,0.000,0,0,nan,0,0,0.285,0,0,0,0,1 +candidate,disk,1,0,point:uniform@1,1,0,2000000,101746,5.000,20348.2,57.856,89.088,186.368,1440.734,49.117,0.426,238653.3,328265728,0,3226.33,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.285,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,777264,5.000,155447.3,59.904,101.376,133.120,1558.732,51.431,3.760,206722.9,2506059776,0,3224.21,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.285,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,51832,5.000,10366.0,91.136,174.080,227.328,1606.761,96.434,5.346,9694.9,1388150784,0,26781.73,0.00,91.136,174.080,96.089,nan,0.313,51832,10366.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.285,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,279252,5.000,55848.0,141.312,266.240,356.352,1735.674,143.177,42.509,6569.2,7489052672,0,26818.26,0.00,141.312,266.240,142.321,nan,0.811,279252,55848.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.285,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,586,5.000,117.2,8781.824,19660.800,21199.374,21199.374,8518.865,1.520,385.5,1736937472,0,2964057.12,0.00,194.560,598.016,217.009,830.96,0.851,5849917,1169939.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.285,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,3394,5.000,678.8,12189.696,26476.544,31719.424,34864.410,11781.142,12.157,279.2,9799012352,0,2887157.44,0.00,282.624,892.928,324.653,1146.98,1.168,33894438,6778648.3,5.000,0.070,5.070,0.008,0,278528,nan,2998669312,629575680,0.285,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.107,18648725.8,nan,nan,nan,0.000,nan,0.561,3567905.3,277458944,32768,138.73,0.02,nan,nan,nan,nan,nan,2000000,18648725.8,0.107,0.000,0.107,0.000,0,0,nan,0,0,0.283,0,0,0,0,1 +candidate,disk,2,0,point:uniform@1,1,1,2000000,101083,5.000,20216.0,57.856,101.376,223.232,1401.576,49.435,0.428,236447.6,326303744,0,3228.08,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.283,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,770500,5.000,154094.7,59.904,103.424,133.120,2432.183,51.879,3.991,193041.4,2484457472,0,3224.47,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.283,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,52657,5.000,10531.0,89.088,169.984,210.944,1486.974,94.923,5.347,9847.3,1410658304,0,26789.57,0.00,89.088,169.984,94.579,nan,0.312,52657,10531.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.283,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,278649,5.000,55727.1,141.312,266.240,339.968,1970.956,143.486,42.546,6549.3,7480115200,0,26844.22,0.00,141.312,266.240,142.598,nan,0.841,278649,55727.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.283,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,594,5.000,118.8,8781.824,19136.512,21233.664,21346.053,8435.803,1.499,396.3,1753268224,0,2951630.01,0.00,198.656,532.480,218.945,822.37,0.859,5929917,1185938.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.283,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,3394,5.000,678.8,12451.840,26476.544,29622.272,31834.600,11777.372,12.000,282.8,9797615616,0,2886745.91,0.00,282.624,1024.000,327.958,1146.05,1.118,33894438,6778617.2,5.000,0.083,5.083,0.008,0,278528,nan,2998669312,629575680,0.283,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.107,18648499.2,nan,nan,nan,0.000,nan,0.571,3501535.4,277442560,32768,138.72,0.02,nan,nan,nan,nan,nan,2000000,18648499.2,0.107,0.000,0.107,0.000,0,0,nan,0,0,0.295,0,0,0,0,4 +baseline,disk,3,0,point:uniform@1,1,1,2000000,110846,5.000,22168.6,56.832,87.040,202.752,1053.826,45.082,0.464,238832.5,357724160,0,3227.22,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.295,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,844781,5.000,168950.5,58.880,97.280,125.952,1529.415,47.314,4.164,202887.9,2724392960,0,3224.97,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.295,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,55142,5.000,11028.0,87.040,161.792,206.848,1585.904,90.642,5.368,10272.1,1477521408,0,26794.85,0.00,87.040,157.696,90.267,nan,0.343,55142,11028.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.295,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,295849,5.000,59166.9,133.120,256.000,323.584,1583.340,135.141,42.539,6954.8,7940321280,0,26839.10,0.00,133.120,251.904,134.261,nan,0.834,295849,59166.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.295,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,621,5.000,124.2,8519.680,18087.936,19660.800,19753.958,8035.092,1.601,387.9,1843523584,0,2968637.01,0.00,190.464,548.864,214.221,782.82,0.849,6199917,1239947.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.295,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,3570,5.000,714.0,11665.408,25427.968,28049.408,29710.233,11202.234,13.114,272.2,10162421760,0,2846616.74,0.00,274.432,909.312,314.302,1089.83,1.216,35641525,7128065.8,5.000,0.074,5.074,0.008,0,278528,nan,2998669312,629575680,0.295,0,0,1,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/manifest.json new file mode 100644 index 000000000..3ebbf2b17 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/manifest.json @@ -0,0 +1,288 @@ +{ + "io": "O_DIRECT", + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/disk-log0/0-baseline.db", + "fixture_sha256": "d9c46231fb503c7a33143ab5cf6cbba3159cda8cc9e3cec57530bf6bb820ebd5", + "shared_file": true, + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/shared.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk-shared", + "--otag", + "0", + "--rep", + "0", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791765294.559733, + "returncode": 0, + "finished": 1791765328.942645, + "db_allocated_bytes": 629575680 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/shared.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk-shared", + "--otag", + "1", + "--rep", + "0", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791765328.9460835, + "returncode": 0, + "finished": 1791765362.2461033, + "db_allocated_bytes": 629575680 + }, + { + "index": 2, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/shared.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk-shared", + "--otag", + "2", + "--rep", + "1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791765362.2494988, + "returncode": 0, + "finished": 1791765395.5552711, + "db_allocated_bytes": 629575680 + }, + { + "index": 3, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/shared.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/results.csv", + "--vtag", + "candidate", + "--stag", + "disk-shared", + "--otag", + "3", + "--rep", + "1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791765395.558011, + "returncode": 0, + "finished": 1791765428.814905, + "db_allocated_bytes": 629575680 + }, + { + "index": 4, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/shared.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/disk-shared-bracket10/results.csv", + "--vtag", + "baseline", + "--stag", + "disk-shared", + "--otag", + "4", + "--rep", + "2", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791765428.8176455, + "returncode": 0, + "finished": 1791765462.0675228, + "db_allocated_bytes": 629575680 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/results.csv new file mode 100644 index 000000000..f1cd50952 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk-shared,0,0,warm,8,0,2000000,2000000,0.165,12146788.3,nan,nan,nan,0.000,nan,0.553,3613970.2,277377024,32768,138.69,0.02,nan,nan,nan,nan,nan,2000000,12146788.3,0.165,0.000,0.165,0.000,0,0,nan,0,0,1.112,0,0,0,0,0 +baseline,disk-shared,0,0,point:uniform@1,1,0,2000000,163279,10.000,16327.7,46.592,581.632,1818.624,3513.669,61.210,0.808,202085.2,525926400,0,3221.03,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,1.112,0,0,0,0,0 +baseline,disk-shared,0,0,point:uniform@8,8,0,2000000,1154879,10.000,115486.0,49.664,712.704,1785.856,4808.232,69.229,6.452,178982.7,3725516800,0,3225.89,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,1.112,0,0,0,0,0 +baseline,disk-shared,0,0,range:uniform:1@8,8,0,2000000,556877,10.000,55686.4,133.120,290.816,1753.088,15114.142,143.589,85.003,6551.3,14948937728,4096,26844.24,0.01,133.120,290.816,142.664,nan,0.877,556877,55686.4,10.000,0.072,10.072,0.009,0,274432,nan,2998669312,629575680,1.112,0,0,0,0,0 +candidate,disk-shared,1,0,warm,8,0,2000000,2000000,0.167,12010252.2,nan,nan,nan,0.000,nan,0.627,3190321.8,277192704,32768,138.60,0.02,nan,nan,nan,nan,nan,2000000,12010252.2,0.167,0.000,0.167,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +candidate,disk-shared,1,0,point:uniform@1,1,0,2000000,211172,10.000,21116.7,47.616,113.664,1327.104,2238.537,47.324,0.992,212912.8,679997440,4096,3220.11,0.02,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.022,0,0,2,0,0 +candidate,disk-shared,1,0,point:uniform@8,8,0,2000000,1601800,10.000,160177.4,49.664,105.472,1392.640,3127.839,49.906,8.443,189714.0,5162872832,4096,3223.17,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +candidate,disk-shared,1,0,range:uniform:1@8,8,0,2000000,531661,10.000,53165.0,133.120,958.464,1818.624,16893.982,150.403,84.790,6270.3,14256369664,4096,26814.77,0.01,133.120,958.464,149.487,nan,0.868,531661,53165.0,10.000,0.073,10.073,0.008,0,278528,nan,2998669312,629575680,0.022,0,0,0,0,0 +baseline,disk-shared,2,0,warm,8,1,2000000,2000000,0.187,10711027.1,nan,nan,nan,0.000,nan,0.616,3248572.7,277323776,32768,138.66,0.02,nan,nan,nan,nan,nan,2000000,10711027.1,0.187,0.000,0.187,0.000,0,0,nan,0,0,0.017,0,0,0,0,4 +baseline,disk-shared,2,0,point:uniform@1,1,1,2000000,209249,10.000,20924.3,46.592,111.616,1392.640,5936.558,47.761,0.889,235508.2,673832960,4096,3220.24,0.02,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.017,0,0,0,0,0 +baseline,disk-shared,2,0,point:uniform@8,8,1,2000000,1605368,10.000,160534.0,49.664,105.472,1392.640,2769.080,49.794,8.375,191682.7,5174562816,4096,3223.29,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.017,0,0,0,0,0 +baseline,disk-shared,2,0,range:uniform:1@8,8,1,2000000,567094,10.000,56708.1,133.120,266.240,1720.320,3927.968,140.998,85.105,6663.5,15209684992,4096,26820.39,0.01,133.120,266.240,140.047,nan,0.901,567094,56708.1,10.000,0.069,10.069,0.008,0,274432,nan,2998669312,629575680,0.017,0,0,0,0,0 +candidate,disk-shared,3,0,warm,8,1,2000000,2000000,0.119,16764851.1,nan,nan,nan,0.000,nan,0.615,3250853.8,277512192,32768,138.76,0.02,nan,nan,nan,nan,nan,2000000,16764851.1,0.119,0.000,0.119,0.000,0,0,nan,0,0,0.017,0,0,0,0,0 +candidate,disk-shared,3,0,point:uniform@1,1,1,2000000,227527,10.000,22752.4,46.592,84.992,206.848,2147.421,43.926,0.916,248497.7,732913664,4096,3221.22,0.02,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.017,0,0,0,0,0 +candidate,disk-shared,3,0,point:uniform@8,8,1,2000000,1714303,10.000,171427.4,49.664,97.280,145.408,2572.439,46.629,8.828,194198.3,5525655552,4096,3223.27,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.017,0,0,0,0,0 +candidate,disk-shared,3,0,range:uniform:1@8,8,1,2000000,581144,10.000,58113.0,133.120,256.000,1294.336,3876.489,137.589,85.204,6820.6,15587172352,4096,26821.53,0.01,133.120,251.904,136.647,nan,0.892,581144,58113.0,10.000,0.070,10.070,0.008,0,278528,nan,2998669312,629575680,0.017,0,0,0,0,0 +baseline,disk-shared,4,0,warm,8,2,2000000,2000000,0.116,17286271.2,nan,nan,nan,0.000,nan,0.627,3191620.1,277430272,32768,138.72,0.02,nan,nan,nan,nan,nan,2000000,17286271.2,0.116,0.000,0.116,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,disk-shared,4,0,point:uniform@1,1,2,2000000,229076,10.000,22907.2,46.592,84.992,190.464,1957.246,43.627,0.967,236848.7,737722368,4096,3220.43,0.02,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,disk-shared,4,0,point:uniform@8,8,2,2000000,1725537,10.000,172550.2,49.664,97.280,125.952,4330.656,46.326,8.996,191809.3,5561831424,4096,3223.25,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +baseline,disk-shared,4,0,range:uniform:1@8,8,2,2000000,585117,10.000,58510.2,133.120,251.904,348.160,4213.799,136.655,85.227,6865.4,15707340800,4096,26844.79,0.01,133.120,251.904,135.690,nan,0.914,585117,58510.2,10.000,0.065,10.066,0.009,0,274432,nan,2998669312,629575680,0.016,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/environment.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/environment.json new file mode 100644 index 000000000..7a7b701cd --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/environment.json @@ -0,0 +1,12 @@ +{ + "cpu": "Intel Core i7-12800H", + "logical_cpus": 20, + "memory_kib": 65513444, + "compiler": "cc (Debian 14.2.0-19) 14.2.0", + "kernel": "6.12.107+deb13-amd64", + "database_mount": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "public_api_cpu_affinity": "0-11", + "base_commit": "db3047a8", + "benchmark_serialization": "exclusive benchmark.lock and machine.lock; shared machine.lock for all builds/tests" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/README.md b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/README.md new file mode 100644 index 000000000..2a034f012 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/README.md @@ -0,0 +1,7 @@ +# Prefetch admission repair on the handoff stack + +The merge `65b9123` inherits project 1's narrow unpublished-prefetch guard. +These runs passed the deterministic regression, the async cache driver, +16 writeback tests (including cache handle transfer), and 48 public quick +tests (including iterator transfer). The manifest records source, exact +commands, and the debug executable/shared-library hashes. diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-async.log b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-async.log new file mode 100644 index 000000000..d261fa391 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-async.log @@ -0,0 +1,29 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/driver_test: splinterdb_build_version 65b9123c +Dispatch test cache_test + +Started cache_test async performance. +cache_test: allocator recovery bootstrap test started +Invalid persisted allocator map: reserved extent 1 has refcount 0 (expected 2) +cache_test: allocator recovery bootstrap test passed +cache_test: mini_recover_allocations test started +cache_test: mini_recover_allocations test passed +cache_test: async test started with 1+0 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+2 threads (ws=10%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 1+0 threads (ws=80%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=80%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: async test started with 8+0 threads (ws=96%) +cache_test: 32768 pages allocated + test 1% complete test 2% complete test 3% complete test 4% complete test 5% complete test 6% complete test 7% complete test 8% complete test 9% complete test 10% complete test 11% complete test 12% complete test 13% complete test 14% complete test 15% complete test 16% complete test 17% complete test 18% complete test 19% complete test 20% complete test 21% complete test 22% complete test 23% complete test 24% complete test 25% complete test 26% complete test 27% complete test 28% complete test 29% complete test 30% complete test 31% complete test 32% complete test 33% complete test 34% complete test 35% complete test 36% complete test 37% complete test 38% complete test 39% complete test 40% complete test 41% complete test 42% complete test 43% complete test 44% complete test 45% complete test 46% complete test 47% complete test 48% complete test 49% complete test 50% complete test 51% complete test 52% complete test 53% complete test 54% complete test 55% complete test 56% complete test 57% complete test 58% complete test 59% complete test 60% complete test 61% complete test 62% complete test 63% complete test 64% complete test 65% complete test 66% complete test 67% complete test 68% complete test 69% complete test 70% complete test 71% complete test 72% complete test 73% complete test 74% complete test 75% complete test 76% complete test 77% complete test 78% complete test 79% complete test 80% complete test 81% complete test 82% complete test 83% complete test 84% complete test 85% complete test 86% complete test 87% complete test 88% complete test 89% complete test 90% complete test 91% complete test 92% complete test 93% complete test 94% complete test 95% complete test 96% complete test 97% complete test 98% complete test 99% complete +cache_test: prefetch early wakeup test passed +cache_test: idle and exited batch owners test passed diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-manifest.json new file mode 100644 index 000000000..26663b9a1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-manifest.json @@ -0,0 +1,64 @@ +{ + "stage": "handoff", + "source_head": "65b9123c237ed27a95e27179564c7ef21dd162fd", + "build_command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=debug", + "build-prefetch/debug/bin/driver_test", + "build-prefetch/debug/bin/unit/writeback_set_test", + "build-prefetch/debug/bin/unit/splinterdb_quick_test" + ], + "driver_sha256": "c21773106dd89a2887dcce3a9d04bb75815feca59febaa90157026191b2a9d9b", + "runs": [ + { + "name": "regression", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/driver_test", + "cache_test", + "--prefetch-admission", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/handoff-regression.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + }, + { + "name": "writeback", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/unit/writeback_set_test" + ], + "returncode": 0 + }, + { + "name": "quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/unit/splinterdb_quick_test" + ], + "returncode": 0 + }, + { + "name": "async", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/driver_test", + "cache_test", + "--async", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/cache-prefetch-validation/handoff-async.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "2" + ], + "returncode": 0 + } + ], + "validated": true, + "library_sha256": "ee5d3842c72ac546d5dd134193af2bc2d6b1e9b04a6476afc777b5e216408346" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-quick.log b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-quick.log new file mode 100644 index 000000000..94964eb4a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-quick.log @@ -0,0 +1,52 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/48 splinterdb_quick:test_get_config_returns_effective_config [OK] +TEST 2/48 splinterdb_quick:test_get_cost_stats [OK] +TEST 3/48 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 4/48 splinterdb_quick:test_durable_barrier [OK] +TEST 5/48 splinterdb_quick:test_logged_oversized_value_failure_preserves_old_value [OK] +TEST 6/48 splinterdb_quick:test_basic_flow [OK] +TEST 7/48 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 8/48 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 9/48 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 10/48 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 11/48 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 12/48 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 13/48 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 14/48 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 15/48 splinterdb_quick:test_apis_for_large_key [OK] +TEST 16/48 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 17/48 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 18/48 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 19/48 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 20/48 splinterdb_quick:test_variable_length_values [OK] +TEST 21/48 splinterdb_quick:test_basic_iterator [OK] +TEST 22/48 splinterdb_quick:test_iterator_delete_current [OK] +TEST 23/48 splinterdb_quick:test_empty_iterator [OK] +TEST 24/48 splinterdb_quick:test_bounded_iterator [OK] +TEST 25/48 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 26/48 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 27/48 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 28/48 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 29/48 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 30/48 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 31/48 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 32/48 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 33/48 splinterdb_quick:test_close_and_reopen [OK] +TEST 34/48 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 35/48 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 36/48 splinterdb_quick:test_custom_data_config [OK] +TEST 37/48 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 38/48 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 39/48 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 40/48 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 41/48 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 42/48 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 43/48 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 44/48 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 45/48 splinterdb_quick:test_iterator_init_bug [OK] +TEST 46/48 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 47/48 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 48/48 splinterdb_quick:test_iterator_thread_handoff [OK] +RESULTS: 48 tests (48 ok, 0 failed, 0 skipped) ran in 11205 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-regression.log b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-regression.log new file mode 100644 index 000000000..db3eebb7c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-regression.log @@ -0,0 +1,10 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/debug/bin/driver_test: splinterdb_build_version 65b9123c +Dispatch test cache_test + +Started cache_test basic +cache_test: allocator recovery bootstrap test started +Invalid persisted allocator map: reserved extent 1 has refcount 0 (expected 2) +cache_test: allocator recovery bootstrap test passed +cache_test: mini_recover_allocations test started +cache_test: mini_recover_allocations test passed +cache_test: unpublished prefetch admission race passed diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-writeback.log b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-writeback.log new file mode 100644 index 000000000..76eb44277 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-writeback.log @@ -0,0 +1,97 @@ +Running 1 CTests, suite name 'writeback_set', test case 'all'. +TEST 1/16 writeback_set:test_rejected_page_submission clockcache_write_callback: async write failed: Input/output error +writeback_set_wait: writeback of addr 1179648 failed +[OK] +TEST 2/16 writeback_set:test_rejected_extent_submissions clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +writeback_set_wait: writeback of addr 1179648 failed +[OK] +TEST 3/16 writeback_set:test_rejected_cleaner_submission clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_write_callback: async write failed: Input/output error +clockcache_writeback_dirty: writeback of addr 1179648 failed +clockcache_writeback_dirty: writeback of addr 1183744 failed +clockcache_writeback_dirty: writeback of addr 1187840 failed +clockcache_writeback_dirty: writeback of addr 1191936 failed +clockcache_writeback_dirty: writeback of addr 1196032 failed +clockcache_writeback_dirty: writeback of addr 1200128 failed +clockcache_writeback_dirty: writeback of addr 1204224 failed +clockcache_writeback_dirty: writeback of addr 1208320 failed +clockcache_writeback_dirty: writeback of addr 1212416 failed +clockcache_writeback_dirty: writeback of addr 1216512 failed +clockcache_writeback_dirty: writeback of addr 1220608 failed +clockcache_writeback_dirty: writeback of addr 1224704 failed +clockcache_writeback_dirty: writeback of addr 1228800 failed +clockcache_writeback_dirty: writeback of addr 1232896 failed +clockcache_writeback_dirty: writeback of addr 1236992 failed +clockcache_writeback_dirty: writeback of addr 1241088 failed +clockcache_writeback_dirty: writeback of addr 1245184 failed +clockcache_writeback_dirty: writeback of addr 1249280 failed +clockcache_writeback_dirty: writeback of addr 1253376 failed +clockcache_writeback_dirty: writeback of addr 1257472 failed +clockcache_writeback_dirty: writeback of addr 1261568 failed +clockcache_writeback_dirty: writeback of addr 1265664 failed +clockcache_writeback_dirty: writeback of addr 1269760 failed +clockcache_writeback_dirty: writeback of addr 1273856 failed +clockcache_writeback_dirty: writeback of addr 1277952 failed +clockcache_writeback_dirty: writeback of addr 1282048 failed +clockcache_writeback_dirty: writeback of addr 1286144 failed +clockcache_writeback_dirty: writeback of addr 1290240 failed +clockcache_writeback_dirty: writeback of addr 1294336 failed +clockcache_writeback_dirty: writeback of addr 1298432 failed +clockcache_writeback_dirty: writeback of addr 1302528 failed +clockcache_writeback_dirty: writeback of addr 1306624 failed +[OK] +TEST 4/16 writeback_set:test_wait_makes_pages_clean [OK] +TEST 5/16 writeback_set:test_add_extent [OK] +TEST 6/16 writeback_set:test_empty_set [OK] +TEST 7/16 writeback_set:test_add_clean_page [OK] +TEST 8/16 writeback_set:test_repeated_rounds [OK] +TEST 9/16 writeback_set:test_cache_sync_read_error_and_retry clockcache_get_from_disk: io_read failed for addr 1179648, type 8: Connection timed out +[OK] +TEST 10/16 writeback_set:test_cache_async_read_setup_failures clockcache_get_from_disk_async: async read failed for addr 1179648, entry 130: Connection timed out +[OK] +TEST 11/16 writeback_set:test_cache_failed_load_wakes_waiters clockcache_get_from_disk_async_callback: async read failed for addr 1179648, entry 128: Connection timed out +clockcache_get_from_disk_async: async read failed for addr 1179648, entry 128: Connection timed out +[OK] +TEST 12/16 writeback_set:test_partial_reclamation_requires_recovery WARNING: abandoned reclamation of mini allocator at 1179648 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +[OK] +TEST 13/16 writeback_set:test_failed_prefetch_leaves_demand_read_retryable clockcache_prefetch_pages: io_async_state_init failed for first addr 1179648, page addr 1179648, num pages 32, type 8: Cannot allocate memory +clockcache_prefetch_pages: io_async_state_append_page failed for first addr 1179648, page addr 1179648, entry 128, num pages 32, type 8: Cannot allocate memory +clockcache_prefetch_callback: async read failed: Connection timed out +[OK] +TEST 14/16 writeback_set:test_failed_load_releases_synchronous_waiter clockcache_get_from_disk_async_callback: async read failed for addr 1179648, entry 128: Connection timed out +clockcache_get_from_disk_async: async read failed for addr 1179648, entry 128: Connection timed out +[OK] +TEST 15/16 writeback_set:test_page_handle_thread_handoff [OK] +TEST 16/16 writeback_set:test_page_handle_outlives_acquiring_thread [OK] +RESULTS: 16 tests (16 ok, 0 failed, 0 skipped) ran in 1549 ms diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/release-manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/release-manifest.json new file mode 100644 index 000000000..a2009ca92 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/release-manifest.json @@ -0,0 +1,48 @@ +{ + "builds": [ + { + "project": "cache-handoff", + "command": [ + "make", + "--jobserver-style=pipe", + "-j4", + "CC=cc", + "BUILD_ROOT=build-prefetch", + "BUILD_MODE=release", + "libs" + ], + "old_binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "head": "65b9123c237ed27a95e27179564c7ef21dd162fd", + "new_provenance": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/benchmarks/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-prefetch/release/bin/kvbench" + ], + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "binary_sha256": "faaaaee52d118c8aa49d2bade20632b3776dbf848da6a14921f729ac85a830d2" + } + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/manifest.json new file mode 100644 index 000000000..1d9c60c92 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/manifest.json @@ -0,0 +1,237 @@ +{ + "project": "cache-handoff", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "20", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20", + "warm", + "range:uniform:1@8" + ], + "started": 1791764707.2615035, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764728.4832768, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/1-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "20", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20", + "warm", + "range:uniform:1@8" + ], + "started": 1791764728.4957845, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764749.6712813, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "20", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20", + "warm", + "range:uniform:1@8" + ], + "started": 1791764749.6837692, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791764770.8193402, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/3-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "20", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt-short-repeat20", + "warm", + "range:uniform:1@8" + ], + "started": 1791764770.8325636, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764792.0912716, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/results.csv new file mode 100644 index 000000000..f0b14a60c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/results.csv @@ -0,0 +1,9 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.029,6989912.9,nan,nan,nan,0.000,nan,0.079,2533216.8,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,6989912.9,0.029,0.000,0.029,0.000,0,0,nan,0,0,0.066,0,0,0,0,1 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,9798455,20.000,489916.9,14.976,21.760,33.280,128.571,16.279,159.987,61245.2,0,4096,0.00,0.00,14.208,21.248,15.540,nan,0.693,9798455,489916.9,20.000,0.119,20.120,0.012,0,307200,nan,162140160,28651520,0.066,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.025,7902162.7,nan,nan,nan,0.000,nan,0.060,3342581.1,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,7902162.7,0.025,0.000,0.025,0.000,0,0,nan,0,0,0.062,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,9759061,20.000,487947.1,14.976,21.760,32.512,1751.646,16.345,159.987,60999.3,0,4096,0.00,0.00,14.464,20.736,15.620,nan,0.679,9759061,487947.1,20.000,0.080,20.080,0.005,0,307200,nan,162140160,28651520,0.062,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.025,8101633.4,nan,nan,nan,0.000,nan,0.056,3545219.3,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8101633.4,0.025,0.000,0.025,0.000,0,0,nan,0,0,0.020,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,10482056,20.000,524096.5,13.952,20.224,29.952,627.593,15.217,159.978,65521.9,0,4096,0.00,0.00,13.440,19.712,14.542,nan,0.633,10482056,524096.5,20.000,0.083,20.084,0.006,0,307200,nan,162140160,28651520,0.020,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.099,2014257.9,nan,nan,nan,0.000,nan,0.121,1652742.3,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,2014257.9,0.099,0.000,0.099,0.000,0,0,nan,0,0,0.038,0,0,0,0,1 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,9739102,20.000,486949.1,14.976,21.760,32.512,122.659,16.378,159.988,60873.9,0,4096,0.00,0.00,14.464,21.248,15.652,nan,0.681,9739102,486949.1,20.000,0.114,20.114,0.011,0,307200,nan,162140160,28651520,0.038,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/manifest.json new file mode 100644 index 000000000..f3a72ab31 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/manifest.json @@ -0,0 +1,257 @@ +{ + "project": "cache-handoff", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763705.718111, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791763801.9153378, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/1-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763801.927759, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791763898.095091, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763898.1100152, + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "returncode": 0, + "finished": 1791763994.251194, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/3-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-log0-receipt15", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "started": 1791763994.2670398, + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "returncode": 0, + "finished": 1791764090.4073572, + "db_allocated_bytes": 28651520, + "db_apparent_bytes": 162140160 + } + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/results.csv new file mode 100644 index 000000000..a1349c440 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.027,7362978.6,nan,nan,nan,0.000,nan,0.079,2517972.0,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,7362978.6,0.027,0.000,0.027,0.000,0,0,nan,0,0,0.072,0,0,0,0,2 +baseline,resident,0,0,point:uniform@1,1,0,200000,18120646,15.000,1208028.7,0.776,1.136,1.520,66.192,0.803,14.997,1208272.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,82240853,15.000,5482630.3,1.392,2.000,3.168,84.511,1.418,119.989,685403.4,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1671839,15.000,111454.0,8.832,11.904,16.256,60.215,8.944,15.000,111457.2,0,4096,0.00,0.00,8.576,11.648,8.668,nan,0.248,1671839,111454.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,8129365,15.000,541948.9,13.696,20.224,29.952,1716.051,14.715,120.013,67737.5,0,8192,0.00,0.00,13.184,19.200,14.055,nan,0.618,8129365,541948.9,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,11440,15.000,762.7,1327.104,1458.176,1589.248,1781.664,1311.096,14.999,762.7,0,4096,0.00,0.36,11.648,17.664,11.943,133.16,0.435,111551455,7436636.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,60222,15.000,4014.7,1884.160,2392.064,2457.600,2791.869,1992.472,119.993,501.9,0,4096,0.00,0.07,16.640,24.832,16.839,202.49,0.804,587350049,39156001.7,15.000,0.084,15.084,0.005,0,311296,nan,162140160,28651520,0.072,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.024,8173922.8,nan,nan,nan,0.000,nan,0.056,3542393.6,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8173922.8,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,point:uniform@1,1,0,200000,18200213,15.000,1213327.2,0.776,1.136,1.616,114.103,0.799,14.999,1213404.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,84981614,15.000,5665356.0,1.328,1.904,2.720,1216.481,1.370,119.979,708304.8,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1664919,15.000,110993.4,8.832,11.904,15.488,126.369,8.982,15.000,110994.4,0,4096,0.00,0.00,8.576,11.648,8.705,nan,0.249,1664919,110993.4,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,8053324,15.000,536880.1,13.696,20.224,29.952,120.303,14.856,120.021,67099.3,0,8192,0.00,0.00,13.184,19.200,14.203,nan,0.611,8053324,536880.1,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,11430,15.000,762.0,1327.104,1458.176,1753.088,2191.892,1312.362,14.999,762.0,0,4096,0.00,0.36,11.904,17.664,12.186,133.27,0.468,111451455,7430004.8,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.026,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,61625,15.000,4108.3,1818.624,2392.064,2457.600,4334.326,1947.191,119.989,513.6,0,4096,0.00,0.07,16.256,25.344,16.566,197.82,0.802,601149931,40075990.2,15.000,0.083,15.084,0.013,0,311296,nan,162140160,28651520,0.026,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.024,8248121.0,nan,nan,nan,0.000,nan,0.054,3698019.7,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8248121.0,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,point:uniform@1,1,1,200000,18159468,15.000,1210616.4,0.776,1.104,1.392,111.364,0.801,15.000,1210658.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,86305819,15.000,5753625.2,1.328,1.936,2.400,254.536,1.351,119.988,719286.4,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1706346,15.000,113754.4,8.576,11.648,17.152,174.814,8.764,14.999,113761.1,0,4096,0.00,0.00,8.320,11.392,8.495,nan,0.243,1706346,113754.4,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,7989453,15.000,532621.1,13.952,19.712,28.928,104.689,14.974,119.991,66583.7,0,4096,0.00,0.00,13.184,19.200,14.313,nan,0.619,7989453,532621.1,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,11556,15.000,770.4,1327.104,1392.640,1425.408,1442.734,1297.902,15.000,770.4,0,4096,0.00,0.35,11.136,15.744,11.239,131.88,0.444,112686256,7512327.9,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,61458,15.000,4097.1,1818.624,2392.064,2457.600,4216.008,1952.432,119.986,512.2,0,4096,0.00,0.07,16.000,23.296,16.498,198.38,0.819,599474088,39964168.8,15.000,0.082,15.082,0.006,0,311296,nan,162140160,28651520,0.023,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.025,8003584.0,nan,nan,nan,0.000,nan,0.058,3445365.1,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8003584.0,0.025,0.000,0.025,0.000,0,0,nan,0,0,0.023,0,0,0,0,2 +baseline,resident,3,0,point:uniform@1,1,1,200000,18290640,15.000,1219355.0,0.776,1.136,1.488,31.956,0.795,15.000,1219370.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,83059670,15.000,5537230.9,1.360,1.968,3.296,487.738,1.404,120.020,692047.4,0,8192,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1760536,15.000,117367.6,8.320,10.624,16.640,305.713,8.494,15.000,117372.3,0,4096,0.00,0.00,8.128,10.368,8.231,nan,0.236,1760536,117367.6,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,8422931,15.000,561520.2,12.928,19.200,27.904,504.309,14.203,119.990,70197.2,0,8192,0.00,0.00,12.416,18.688,13.565,nan,0.597,8422931,561520.2,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,11601,15.000,773.4,1327.104,1425.408,1490.944,1528.217,1292.878,15.000,773.4,0,4096,0.00,0.35,11.392,16.256,11.660,131.32,0.424,113119978,7541206.2,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.023,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,60700,15.000,4046.6,1884.160,2392.064,2457.600,2532.513,1976.892,119.990,505.9,0,4096,0.00,0.07,16.256,23.296,16.577,200.89,0.791,592047308,39469177.2,15.000,0.079,15.080,0.005,0,311296,nan,162140160,28651520,0.023,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/manifest.json b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/manifest.json new file mode 100644 index 000000000..247be7dfd --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/manifest.json @@ -0,0 +1,355 @@ +{ + "io": "O_DIRECT", + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/lazy-merge/resident-log0/0-baseline.db", + "fixture_sha256": "bee9590d7cace8f04306219a1bea4afb231488e6df20f5dab10abf50a95ebf54", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/0-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791783216.2715325, + "returncode": 0, + "finished": 1791783282.5214508 + }, + { + "index": 1, + "version": "unpacked", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/1-unpacked.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "unpacked", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791783282.5571408, + "returncode": 0, + "finished": 1791783348.8240645 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/2-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "0", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "37ac9d894c527b8a234759692f17c9ef8216f64315b6d0bc7e2787128ab473f0", + "started": 1791783348.8812327, + "returncode": 0, + "finished": 1791783415.0989327 + }, + { + "index": 3, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-tagged/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/3-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "37ac9d894c527b8a234759692f17c9ef8216f64315b6d0bc7e2787128ab473f0", + "started": 1791783415.1179562, + "returncode": 0, + "finished": 1791783481.3759484 + }, + { + "index": 4, + "version": "unpacked", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/4-unpacked.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "unpacked", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "c9d8a578c124feb4e259bf6d9dcffd2e60729ce33067853a7ac6d8af66fe3ff7", + "started": 1791783481.395233, + "returncode": 0, + "finished": 1791783547.611047 + }, + { + "index": 5, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors/build-receipt/release/bin/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/5-baseline.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "1", + "--normal-bg", + "3", + "--memtable-mib", + "4", + "--secs", + "10", + "--warmup", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/cache-handoff/resident-tagged10/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "binary_sha256": "61f4474690a12185843a3df8bf69c1ee8e6dc40c291e65bbefe9641406abf5c4", + "started": 1791783547.6303923, + "returncode": 0, + "finished": 1791783613.899841 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/results.csv b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/results.csv new file mode 100644 index 000000000..36b7c3b16 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/results.csv @@ -0,0 +1,43 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.085,2360269.1,nan,nan,nan,0.000,nan,0.120,1659875.0,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,2360269.1,0.085,0.000,0.085,0.000,0,0,nan,0,0,0.032,0,0,0,0,6 +baseline,resident,0,0,point:uniform@1,1,0,200000,10903538,10.000,1090332.8,0.872,1.200,1.520,111.303,0.890,10.000,1090371.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.032,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,47666750,10.000,4766557.2,1.616,2.208,5.440,127.896,1.631,79.989,595916.8,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.032,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1067025,10.000,106700.7,9.344,12.416,15.744,159.866,9.344,10.000,106701.2,0,4096,0.00,0.00,9.088,12.160,9.049,nan,0.266,1067025,106700.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.032,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,5002527,10.000,500241.7,14.976,21.760,32.512,684.176,15.942,79.986,62542.8,0,4096,0.00,0.00,14.208,20.736,15.214,nan,0.683,5002527,500241.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.032,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,7085,10.000,708.5,1458.176,1622.016,1785.856,1949.658,1411.292,10.000,708.5,0,4096,0.00,0.58,13.952,21.248,14.117,143.26,0.480,69061574,6906020.4,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.032,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,36263,10.000,3626.2,2080.768,2654.208,2785.280,3282.703,2205.814,79.989,453.3,0,4096,0.00,0.11,19.200,29.952,19.357,224.07,0.947,353688439,35367884.7,10.000,0.080,10.080,0.005,0,311296,nan,162140160,28651520,0.032,0,0,0,0,0 +unpacked,resident,1,0,warm,8,0,200000,200000,0.027,7323523.5,nan,nan,nan,0.000,nan,0.088,2265082.6,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,7323523.5,0.027,0.000,0.027,0.000,0,0,nan,0,0,0.065,0,0,0,0,1 +unpacked,resident,1,0,point:uniform@1,1,0,200000,11008336,10.000,1100805.1,0.872,1.264,1.712,152.920,0.882,10.000,1100846.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.065,0,0,0,0,0 +unpacked,resident,1,0,point:uniform@8,8,0,200000,52936650,10.000,5293548.5,1.424,2.032,4.288,1642.810,1.468,79.981,661862.7,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.065,0,0,0,0,0 +unpacked,resident,1,0,range:uniform:1@1,1,0,200000,1070282,10.000,107025.4,9.344,11.648,17.152,69.190,9.316,10.000,107024.3,0,4096,0.00,0.00,8.832,11.392,9.038,nan,0.250,1070282,107025.4,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.065,0,0,0,0,0 +unpacked,resident,1,0,range:uniform:1@8,8,0,200000,4870846,10.000,487073.3,15.232,22.784,35.328,487.642,16.375,79.983,60898.5,0,4096,0.00,0.00,14.720,21.760,15.659,nan,0.670,4870846,487073.3,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.065,0,0,0,0,0 +unpacked,resident,1,0,range:uniform:10000@1,1,0,200000,6730,10.000,673.0,1458.176,1949.696,2195.456,2535.347,1485.914,9.999,673.0,0,4096,0.00,0.61,14.720,33.280,15.948,150.75,0.566,65595183,6559343.5,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.065,0,0,3,0,0 +unpacked,resident,1,0,range:uniform:10000@8,8,0,200000,36819,10.000,3681.8,2080.768,2654.208,2916.352,7009.829,2172.530,79.954,460.5,0,4096,0.00,0.11,20.224,36.352,21.206,220.46,0.998,359106252,35909719.8,10.000,0.114,10.115,0.012,0,311296,nan,162140160,28651520,0.065,0,0,0,0,0 +candidate,resident,2,0,warm,8,0,200000,200000,0.024,8293693.3,nan,nan,nan,0.000,nan,0.059,3412911.0,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8293693.3,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.033,0,0,0,0,5 +candidate,resident,2,0,point:uniform@1,1,0,200000,11424320,10.000,1142412.7,0.840,1.200,1.584,73.662,0.849,10.004,1141951.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.033,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,0,200000,51571896,10.000,5157069.8,1.488,2.080,4.672,565.081,1.508,79.982,644794.2,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.033,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,0,200000,1059657,10.000,105962.7,9.344,12.416,16.000,59.943,9.408,10.000,105965.0,0,4096,0.00,0.00,9.088,11.904,9.114,nan,0.265,1059657,105962.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.033,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,0,200000,5320595,10.000,532047.5,13.952,20.224,30.464,461.056,14.988,79.973,66530.1,0,4096,0.00,0.00,13.440,19.712,14.304,nan,0.641,5320595,532047.5,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.033,0,0,1,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,0,200000,7345,10.000,734.5,1392.640,1523.712,1654.784,1699.043,1361.489,10.000,734.5,0,4096,0.00,0.56,13.184,19.712,13.254,138.20,0.482,71610391,7160834.4,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.033,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,0,200000,36617,10.000,3661.6,2048.000,2654.208,2719.744,3380.653,2184.737,79.991,457.8,0,4096,0.00,0.11,18.688,27.392,18.972,221.93,0.909,357171288,35716194.0,10.000,0.125,10.125,0.013,0,311296,nan,162140160,28651520,0.033,0,0,0,0,0 +candidate,resident,3,0,warm,8,1,200000,200000,0.061,3305126.7,nan,nan,nan,0.000,nan,0.080,2486974.5,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,3305126.7,0.061,0.000,0.061,0.000,0,0,nan,0,0,0.070,0,0,0,0,5 +candidate,resident,3,0,point:uniform@1,1,1,200000,10290099,10.000,1028986.9,0.888,1.712,3.552,89.852,0.944,10.000,1029038.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.070,0,0,0,0,0 +candidate,resident,3,0,point:uniform@8,8,1,200000,49309594,10.000,4930851.9,1.552,2.272,5.440,520.432,1.578,79.983,616498.0,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.070,0,0,0,0,0 +candidate,resident,3,0,range:uniform:1@1,1,1,200000,1092626,10.000,109259.8,9.088,11.392,15.744,49.504,9.125,10.000,109258.6,0,4096,0.00,0.00,8.832,11.136,8.841,nan,0.255,1092626,109259.8,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.070,0,0,0,0,0 +candidate,resident,3,0,range:uniform:1@8,8,1,200000,5032882,10.000,503276.7,14.464,21.760,32.512,138.090,15.845,79.988,62920.2,0,4096,0.00,0.00,13.952,20.736,15.135,nan,0.665,5032882,503276.7,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.070,0,0,0,0,0 +candidate,resident,3,0,range:uniform:10000@1,1,1,200000,7307,10.000,730.7,1392.640,1490.944,1556.480,1592.548,1368.617,10.000,730.7,0,4096,0.00,0.56,13.440,17.152,13.477,138.91,0.472,71247896,7124677.6,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.070,0,0,0,0,0 +candidate,resident,3,0,range:uniform:10000@8,8,1,200000,39128,10.000,3912.7,1916.928,2457.600,2588.672,2817.009,2044.548,79.987,489.2,0,4096,0.00,0.10,17.664,27.904,17.750,207.70,0.882,381624753,38161516.7,10.000,0.104,10.104,0.012,0,311296,nan,162140160,28651520,0.070,0,0,0,0,0 +unpacked,resident,4,0,warm,8,1,200000,200000,0.024,8474523.5,nan,nan,nan,0.000,nan,0.057,3482257.9,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,8474523.5,0.024,0.000,0.024,0.000,0,0,nan,0,0,0.031,0,0,0,0,4 +unpacked,resident,4,0,point:uniform@1,1,1,200000,11345529,10.000,1134523.2,0.840,1.200,1.584,128.379,0.855,10.000,1134607.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +unpacked,resident,4,0,point:uniform@8,8,1,200000,50473147,10.000,5047196.0,1.488,2.144,4.160,1549.739,1.538,79.979,631083.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +unpacked,resident,4,0,range:uniform:1@1,1,1,200000,1058360,10.000,105834.4,9.344,12.416,16.000,63.535,9.421,10.000,105835.6,0,4096,0.00,0.00,9.088,12.160,9.137,nan,0.255,1058360,105834.4,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +unpacked,resident,4,0,range:uniform:1@8,8,1,200000,5306499,10.000,530637.6,14.208,20.224,30.976,443.335,15.030,79.982,66346.4,0,4096,0.00,0.00,13.696,19.712,14.371,nan,0.616,5306499,530637.6,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +unpacked,resident,4,0,range:uniform:10000@1,1,1,200000,7183,10.000,718.3,1425.408,1556.480,1818.624,2314.701,1391.937,9.999,718.3,0,4096,0.00,0.57,12.928,17.664,13.123,141.36,0.474,70024778,7002294.4,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.031,0,0,0,0,0 +unpacked,resident,4,0,range:uniform:10000@8,8,1,200000,39007,10.000,3900.6,1916.928,2523.136,2654.208,3428.223,2050.845,79.990,487.6,0,4096,0.00,0.11,17.664,27.904,17.987,208.31,0.874,380469058,38045989.2,10.000,0.115,10.116,0.012,0,311296,nan,162140160,28651520,0.031,0,0,0,0,0 +baseline,resident,5,0,warm,8,1,200000,200000,0.040,4952136.7,nan,nan,nan,0.000,nan,0.095,2103491.8,27664384,0,138.32,0.00,nan,nan,nan,nan,nan,200000,4952136.7,0.040,0.000,0.040,0.000,0,0,nan,0,0,0.054,0,0,0,0,1 +baseline,resident,5,0,point:uniform@1,1,1,200000,11325890,10.000,1132567.5,0.840,1.200,1.616,50.570,0.857,9.999,1132736.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.054,0,0,0,0,0 +baseline,resident,5,0,point:uniform@8,8,1,200000,53485752,10.000,5348445.2,1.424,2.032,2.976,367.122,1.451,79.979,668746.3,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.054,0,0,0,0,0 +baseline,resident,5,0,range:uniform:1@1,1,1,200000,1091810,10.000,109178.1,9.088,11.648,16.000,47.676,9.132,10.004,109135.3,0,4096,0.00,0.00,8.832,11.392,8.843,nan,0.261,1091810,109178.1,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.054,0,0,0,0,0 +baseline,resident,5,0,range:uniform:1@8,8,1,200000,5108326,10.000,510821.0,14.720,20.736,31.488,159.155,15.611,79.993,63859.7,0,4096,0.00,0.00,14.208,19.712,14.899,nan,0.667,5108326,510821.0,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.054,0,0,0,0,0 +baseline,resident,5,0,range:uniform:10000@1,1,1,200000,7364,10.000,736.4,1392.640,1458.176,1654.784,1937.519,1358.013,10.000,736.4,0,4096,0.00,0.56,13.184,17.152,13.119,137.89,0.456,71791788,7178989.3,10.000,0.000,10.000,0.000,0,0,nan,0,0,0.054,0,0,0,0,0 +baseline,resident,5,0,range:uniform:10000@8,8,1,200000,36994,10.000,3699.3,2048.000,2588.672,2654.208,2755.911,2162.405,79.990,462.5,0,4096,0.00,0.11,18.688,28.416,18.959,219.69,0.887,360790122,36078091.0,10.000,0.142,10.143,0.012,0,311296,nan,162140160,28651520,0.054,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/0-baseline.log b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/0-baseline.log new file mode 100644 index 000000000..f9ed76200 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/0-baseline.log @@ -0,0 +1,17 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=baseline splinter=splinterdb_build_version db3047a8 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.046 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.22 ops/s= 8988857 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.74s ops/cpu-s=2695930 rd=188.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1132900 notfound=0 +== point:uniform@8 T=8 ops=1132900 secs= 7.00 ops/s= 161839 lat us p50=49.66 p99=99.33 p99.9=1425.41 max=16305.9 mean=49.37 + cpu=7.13s ops/cpu-s=158893 rd=3528.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 2342 ops (+234 ops/s) +close took 0.076 s +== range:uniform:10000@8 T=8 ops=5882 secs= 7.00 ops/s= 840 lat us p50=7274.50 p99=40370.18 p99.9=82837.50 max=99125.3 mean=9516.59 + cpu=23.53s ops/cpu-s=250 rd=2549464.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + startup us p50=348.16 p99=2850.82 mean=450.99 per-tuple=908.5 ns deinit mean=1.22 us tuples/s=8389231 + insert/run=7.00s drain(close)=0.08s total=7.08s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=833306624 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/1-candidate.log b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/1-candidate.log new file mode 100644 index 000000000..ab6bf7a42 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/1-candidate.log @@ -0,0 +1,17 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version db3047a8-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.15 ops/s= 13062539 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.64s ops/cpu-s=3109767 rd=134.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1310393 notfound=0 +== point:uniform@8 T=8 ops=1310393 secs= 7.00 ops/s= 187194 lat us p50=49.66 p99=76.80 p99.9=843.78 max=2452.1 mean=42.67 + cpu=8.09s ops/cpu-s=161938 rd=3208.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=4 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 2992 ops (+299 ops/s) +close took 0.082 s +== range:uniform:10000@8 T=8 ops=7349 secs= 7.00 ops/s= 1050 lat us p50=5832.70 p99=26476.54 p99.9=64487.42 max=76801.4 mean=7619.79 + cpu=25.77s ops/cpu-s=285 rd=1815383.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=282.62 p99=1949.70 mean=347.74 per-tuple=728.6 ns deinit mean=1.52 us tuples/s=10481210 + insert/run=7.00s drain(close)=0.08s total=7.08s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=542765056 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/2-candidate.log b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/2-candidate.log new file mode 100644 index 000000000..7bf530e11 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/2-candidate.log @@ -0,0 +1,17 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version db3047a8-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.14 ops/s= 14356344 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.58s ops/cpu-s=3430538 rd=134.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1187895 notfound=0 +== point:uniform@8 T=8 ops=1187895 secs= 7.00 ops/s= 169695 lat us p50=50.69 p99=99.33 p99.9=141.31 max=3244.8 mean=47.08 + cpu=6.90s ops/cpu-s=172082 rd=3207.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 2982 ops (+298 ops/s) +close took 0.071 s +== range:uniform:10000@8 T=8 ops=7275 secs= 7.00 ops/s= 1039 lat us p50=6094.85 p99=22282.24 p99.9=29097.98 max=36203.9 mean=7696.60 + cpu=24.49s ops/cpu-s=297 rd=1803161.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=315.39 p99=1294.34 mean=361.28 per-tuple=734.9 ns deinit mean=1.38 us tuples/s=10375508 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=542765056 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/3-baseline.log b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/3-baseline.log new file mode 100644 index 000000000..b45546cc0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/3-baseline.log @@ -0,0 +1,17 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=baseline splinter=splinterdb_build_version db3047a8 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.15 ops/s= 13223540 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.60s ops/cpu-s=3340549 rd=187.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=972163 notfound=0 +== point:uniform@8 T=8 ops=972163 secs= 7.00 ops/s= 138877 lat us p50=61.95 p99=117.76 p99.9=161.79 max=3300.3 mean=57.54 + cpu=5.94s ops/cpu-s=163674 rd=3528.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 2286 ops (+229 ops/s) +close took 0.057 s +== range:uniform:10000@8 T=8 ops=5675 secs= 7.00 ops/s= 811 lat us p50=8060.93 p99=27525.12 p99.9=37224.45 max=46886.3 mean=9863.72 + cpu=21.73s ops/cpu-s=261 rd=2547022.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1359.87 mean=450.48 per-tuple=943.4 ns deinit mean=1.12 us tuples/s=8093301 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=833306624 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/README.md b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/README.md new file mode 100644 index 000000000..f1a40d026 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/README.md @@ -0,0 +1,13 @@ +# Bounded fsynced-fixture control + +One ABBA campaign, using frozen baseline/final-prefix binaries and the same +per-format disk-common images as disk-common-fixed-final. Each buffered copy is +fsynced before any O_DIRECT open/warm/timing. Seven seconds per point8 and +range10000@8 phase; 2M common-prefix keys, 64MiB cache, zero background workers. +All4 runs have zero errors/violations. No databases are archived. + +Manifest includes commands, checked binary hashes, fixture path/size/mtime and +copy/fsync timestamps. summary.csv derives means/ranges from the individual +results.csv samples; old campaigns remain preserved separately. This control +checks persistence of the large common-prefix disk gains, not a full matrix or +proof that previous outliers were caused by buffered-copy writeback. diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/manifest.json new file mode 100644 index 000000000..4a47bf3a2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/manifest.json @@ -0,0 +1,259 @@ +{ + "io": "O_DIRECT", + "fixture_copy_sync": "fsync destination before warm/open/timing", + "note": "Frozen final binaries and the same incompatible per-format images as the earlier fixed-final comparison; only point8 and range10000@8 are repeated.", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced", + "warm", + "point:uniform@8", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/0-baseline.db", + "fixture_size": 3671330816, + "fixture_mtime_ns": 1791761274819324224, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "copy_started": 1791786365.5759044, + "copied_at": 1791786366.974513, + "synced_at": 1791786368.287166, + "started": 1791786368.2872157, + "fixture_copy_allocated_bytes": 833130496, + "returncode": 0, + "finished": 1791786384.687846 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced", + "warm", + "point:uniform@8", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/1-candidate.db", + "fixture_size": 3250065408, + "fixture_mtime_ns": 1791761326962406481, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "copy_started": 1791786384.8306432, + "copied_at": 1791786385.6462572, + "synced_at": 1791786385.959061, + "started": 1791786385.959108, + "fixture_copy_allocated_bytes": 542584832, + "returncode": 0, + "finished": 1791786402.2654066 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced", + "warm", + "point:uniform@8", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/1-candidate.db", + "fixture_size": 3250065408, + "fixture_mtime_ns": 1791761326962406481, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "copy_started": 1791786402.318701, + "copied_at": 1791786402.530488, + "synced_at": 1791786402.8776414, + "started": 1791786402.8776965, + "fixture_copy_allocated_bytes": 542584832, + "returncode": 0, + "finished": 1791786419.1753364 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final-fsynced", + "warm", + "point:uniform@8", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/0-baseline.db", + "fixture_size": 3671330816, + "fixture_mtime_ns": 1791761274819324224, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "copy_started": 1791786419.2292047, + "copied_at": 1791786419.5437512, + "synced_at": 1791786420.0150888, + "started": 1791786420.0151353, + "fixture_copy_allocated_bytes": 833130496, + "returncode": 0, + "finished": 1791786436.3065357 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/prefix_synced_disk_compare.py b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/prefix_synced_disk_compare.py new file mode 100644 index 000000000..2883e2ee4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/prefix_synced_disk_compare.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +"""Bounded P7 disk control: fsync copied fixture before any O_DIRECT access.""" +import csv +import hashlib +import json +import os +from pathlib import Path +import subprocess +import time + +root = Path(__file__).resolve().parent.parent +out = root / 'benchmarks/branch-prefix/disk-common-fixed-final-fsynced' +out.mkdir(exist_ok=False) +old = json.loads((root / 'benchmarks/branch-prefix/disk-common-fixed-final/manifest.json').read_text()) +profiles = { + version: next(row for row in old['runs'] if row['version'] == version) + for version in ['baseline', 'candidate'] +} +manifest = dict(io='O_DIRECT', fixture_copy_sync='fsync destination before warm/open/timing', + note='Frozen final binaries and the same incompatible per-format images as the earlier fixed-final comparison; only point8 and range10000@8 are repeated.', + runs=[]) +for index, version in enumerate(['baseline', 'candidate', 'candidate', 'baseline']): + profile = profiles[version] + binary = Path(profile['command'][3]) + source = Path(profile['fixture']) + source_stat = source.stat() + digest = hashlib.sha256(binary.read_bytes()).hexdigest() + assert digest == profile['binary_sha256'] + db = out / 'scratch.db' + copy_started = time.time() + subprocess.run(['cp', '--reflink=auto', '--sparse=always', str(source), str(db)], check=True) + copied_at = time.time() + with db.open('rb') as stream: + os.fsync(stream.fileno()) + synced_at = time.time() + argv = ['taskset', '-c', '0-11', str(binary), '--db', str(db), '--open', + '--n', '2000000', '--cache-mib', '64', '--disk-gib', '8', '--log', '0', + '--threads', '8', '--mt-bg', '0', '--normal-bg', '0', '--memtable-mib', '4', + '--secs', '7', '--warmup', '1', '--csv', str(out / 'results.csv'), + '--vtag', version, '--stag', 'disk', '--otag', str(index), '--rep', str(index // 2), + '--seed', '42', '--hang-secs', '60', '--hang-dir', str(out), + 'warm', 'point:uniform@8', 'range:uniform:10000@8'] + record = dict(index=index, version=version, command=argv, fixture=str(source), + fixture_size=source_stat.st_size, fixture_mtime_ns=source_stat.st_mtime_ns, + binary_sha256=digest, copy_started=copy_started, copied_at=copied_at, + synced_at=synced_at, started=time.time(), + fixture_copy_allocated_bytes=db.stat().st_blocks * 512) + print('Prefix fsynced disk control', index, version, flush=True) + with (out / f'{index}-{version}.log').open('w') as stream: + result = subprocess.run(argv, env=dict(os.environ, PREFIX_PATTERN='common'), + stdout=stream, stderr=subprocess.STDOUT, timeout=90) + record.update(returncode=result.returncode, finished=time.time()) + manifest['runs'].append(record) + (out / 'manifest.json').write_text(json.dumps(manifest, indent=2) + '\n') + assert result.returncode == 0, record + rows = list(csv.DictReader((out / 'results.csv').open())) + assert all(int(row[key]) == 0 for row in rows for key in ['violations', 'errors']) + assert source.stat().st_mtime_ns == source_stat.st_mtime_ns + db.unlink() +print('Completed', out, flush=True) diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/results.csv new file mode 100644 index 000000000..fba878fce --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/results.csv @@ -0,0 +1,13 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.222,8988856.6,nan,nan,nan,0.000,nan,0.742,2695930.1,377094144,32768,188.55,0.02,nan,nan,nan,nan,nan,2000000,8988856.6,0.222,0.000,0.222,0.000,0,0,nan,0,0,0.046,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,1132900,7.000,161838.7,49.664,99.328,1425.408,16305.883,49.371,7.130,158893.2,3997618176,0,3528.66,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.046,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,5882,7.000,840.3,7274.496,40370.176,82837.504,99125.251,9516.587,23.530,250.0,14995947520,0,2549464.05,0.00,348.160,2850.816,450.993,908.45,1.224,58726565,8389231.0,7.000,0.076,7.076,0.008,0,274432,nan,3671330816,833306624,0.046,0,0,1,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.153,13062538.7,nan,nan,nan,0.000,nan,0.643,3109767.0,268894208,32768,134.45,0.02,nan,nan,nan,nan,nan,2000000,13062538.7,0.153,0.000,0.153,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,disk,1,0,point:uniform@8,8,0,2000000,1310393,7.000,187194.0,49.664,76.800,843.776,2452.069,42.671,8.092,161937.6,4204449792,0,3208.54,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,4,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,7349,7.000,1049.8,5832.704,26476.544,64487.424,76801.375,7619.793,25.769,285.2,13341249536,0,1815382.98,0.00,282.624,1949.696,347.737,728.58,1.520,73370664,10481209.7,7.000,0.082,7.082,0.009,0,274432,nan,3250065408,542765056,0.006,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.139,14356343.9,nan,nan,nan,0.000,nan,0.583,3430537.6,268263424,32768,134.13,0.02,nan,nan,nan,nan,nan,2000000,14356343.9,0.139,0.000,0.139,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1187895,7.000,169695.1,50.688,99.328,141.312,3244.849,47.084,6.903,172081.7,3810705408,0,3207.95,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,7275,7.000,1039.3,6094.848,22282.240,29097.984,36203.863,7696.601,24.490,297.1,13117997056,0,1803161.11,0.00,315.392,1294.336,361.281,734.90,1.383,72630692,10375508.1,7.000,0.071,7.071,0.007,0,274432,nan,3250065408,542765056,0.006,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.151,13223539.7,nan,nan,nan,0.000,nan,0.599,3340548.9,375537664,32768,187.77,0.02,nan,nan,nan,nan,nan,2000000,13223539.7,0.151,0.000,0.151,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +baseline,disk,3,0,point:uniform@8,8,1,2000000,972163,7.000,138877.1,61.952,117.760,161.792,3300.336,57.545,5.940,163674.5,3430461440,0,3528.69,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,5675,7.000,810.7,8060.928,27525.120,37224.448,46886.281,9863.717,21.730,261.2,14454353920,0,2547022.72,0.00,405.504,1359.872,450.475,943.37,1.120,56654795,8093300.5,7.000,0.057,7.058,0.008,0,274432,nan,3671330816,833306624,0.007,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/summary.csv b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/summary.csv new file mode 100644 index 000000000..2d7f3720a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/summary.csv @@ -0,0 +1,5 @@ +phase,version,n,ops_s_mean,ops_s_min,ops_s_max,throughput_delta_percent,rd_B_op_mean,read_delta_percent,ops_per_cpu_s_mean,cpu_efficiency_delta_percent +point:uniform@8,baseline,2,150357.90000000002,138877.1,161838.7,0.0,3528.675,0.0,161283.85,0.0 +point:uniform@8,candidate,2,178444.55,169695.1,187194.0,18.679863179786338,3208.245,-9.080745605645191,167009.65000000002,3.550138467056696 +range:uniform:10000@8,baseline,2,825.5,810.7,840.3,0.0,2548243.385,0.0,255.6,0.0 +range:uniform:10000@8,candidate,2,1044.55,1039.3,1049.8,26.535433070866144,1809272.045,-28.999244905329157,291.15,13.90845070422535 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/manifest.json new file mode 100644 index 000000000..41b5210c4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/manifest.json @@ -0,0 +1,250 @@ +{ + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/0-baseline.db", + "started": 1791782445.7997713, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782494.2788715 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/1-candidate.db", + "started": 1791782495.1071756, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782543.4871998 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/1-candidate.db", + "started": 1791782543.76991, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782592.150627 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/0-baseline.db", + "started": 1791782592.5009682, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782642.0354667 + } + ], + "io": "O_DIRECT", + "note": "Identical candidate image for old/new reconstruction; own incompatible baseline image, serial load with no background workers." +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/results.csv new file mode 100644 index 000000000..3c3c4d2a2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.149,13412081.5,nan,nan,nan,0.000,nan,0.578,3461381.4,376782848,32768,188.39,0.02,nan,nan,nan,nan,nan,2000000,13412081.5,0.149,0.000,0.149,0.000,0,0,nan,0,0,0.163,0,0,0,0,4 +baseline,disk,0,0,point:uniform@1,1,0,2000000,163169,7.000,23309.3,47.616,93.184,182.272,664.112,42.848,0.991,164683.1,575610880,0,3527.70,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,1220364,7.000,174333.6,49.664,97.280,323.584,1340.022,45.823,8.178,149231.9,4303204352,0,3526.16,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,104191,7.000,14884.1,59.904,133.120,215.040,919.422,67.147,7.425,14033.4,1472147456,0,14129.31,0.00,58.880,133.120,66.842,nan,0.273,104191,14884.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,528135,7.000,75445.6,99.328,260.096,380.928,8209.812,105.969,58.642,9006.1,7469146112,0,14142.49,0.00,97.280,260.096,105.315,nan,0.612,528135,75445.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,1340,7.000,191.4,3440.640,15335.424,18612.224,25105.659,5224.281,3.124,428.9,3474710528,0,2593067.56,0.00,231.424,712.704,237.486,500.39,1.024,13363972,1909035.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.163,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,6743,7.000,963.3,6750.208,22282.240,30670.848,35481.605,8304.638,23.332,289.0,17170210816,0,2546375.62,0.00,331.776,1097.728,366.239,795.45,1.145,67331618,9618542.3,7.000,0.074,7.074,0.008,0,274432,nan,3671330816,833294336,0.163,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.127,15742975.4,nan,nan,nan,0.000,nan,0.515,3886241.9,268337152,32768,134.17,0.02,nan,nan,nan,nan,nan,2000000,15742975.4,0.127,0.000,0.127,0.000,0,0,nan,0,0,0.103,0,0,0,0,5 +candidate,disk,1,0,point:uniform@1,1,0,2000000,183350,7.000,26192.3,45.568,91.136,202.752,599.443,38.134,0.872,210240.4,587169792,0,3202.45,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.103,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,1405438,7.000,200772.1,48.640,74.752,101.376,1350.047,39.789,7.783,180588.6,4507848704,0,3207.43,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.103,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,120412,7.000,17201.3,52.736,117.760,174.080,616.070,58.096,7.377,16321.9,1315053568,0,10921.28,0.00,51.712,117.760,57.667,nan,0.397,120412,17201.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.103,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,573050,7.000,81861.9,87.040,274.432,892.928,4300.432,97.655,58.584,9781.6,6275198976,4096,10950.53,0.01,87.040,274.432,96.711,nan,0.898,573050,81861.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.103,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,1677,7.000,239.6,2785.280,12713.984,15073.280,16561.329,4174.915,3.216,521.5,3101749248,0,1849582.14,0.00,190.464,614.400,204.249,398.32,1.186,16729203,2389825.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.103,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,7500,7.000,1071.4,5963.776,20709.376,26476.544,28766.293,7464.861,26.431,283.8,13464543232,0,1795272.43,0.00,282.624,1130.496,325.841,715.28,2.007,74869799,10695375.7,7.000,0.061,7.061,0.009,0,278528,nan,3250065408,542756864,0.103,0,0,1,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.131,15238087.5,nan,nan,nan,0.000,nan,0.570,3508058.0,268136448,32768,134.07,0.02,nan,nan,nan,nan,nan,2000000,15238087.5,0.131,0.000,0.131,0.000,0,0,nan,0,0,0.118,0,0,0,0,3 +candidate,disk,2,0,point:uniform@1,1,1,2000000,167237,7.000,23890.4,46.592,133.120,339.968,3233.682,41.792,1.142,146496.5,536150016,0,3205.93,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.118,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1287406,7.000,183910.2,49.664,103.424,811.008,2524.550,43.431,8.480,151823.3,4129902592,0,3207.93,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.118,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,113086,7.000,16154.7,53.760,141.312,274.432,912.796,61.857,7.400,15281.2,1234812928,0,10919.24,0.00,53.760,137.216,61.391,nan,0.432,113086,16154.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.118,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,532626,7.000,76087.1,89.088,348.160,991.232,14724.309,105.055,57.532,9257.9,5825519616,4096,10937.35,0.01,89.088,348.160,104.051,nan,0.956,532626,76087.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.118,0,0,1,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,1616,7.000,230.9,2850.816,13500.416,16384.000,16847.875,4331.122,3.308,488.5,2987319296,0,1848588.67,0.00,190.464,663.552,207.389,413.70,1.216,16119203,2302692.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.118,0,0,3,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,8080,7.000,1154.3,5439.488,19136.512,23330.816,25859.053,6929.457,26.288,307.4,14614159360,0,1808683.09,0.00,274.432,925.696,304.473,664.13,1.559,80641279,11519888.0,7.000,0.055,7.055,0.008,0,278528,nan,3250065408,542756864,0.118,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.197,10131047.3,nan,nan,nan,0.000,nan,0.681,2935706.6,375799808,32768,187.90,0.02,nan,nan,nan,nan,nan,2000000,10131047.3,0.197,0.000,0.197,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,152708,7.000,21814.6,46.592,117.760,1294.336,2924.091,45.790,0.874,174634.2,538640384,0,3527.26,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,1142829,7.000,163257.2,49.664,99.328,1425.408,3012.596,48.939,7.373,154994.2,4032393216,0,3528.43,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,95464,7.000,13637.2,60.928,157.696,1523.712,2640.396,73.290,7.392,12915.2,1349660672,0,14137.90,0.00,60.928,157.696,72.978,nan,0.279,95464,13637.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,479004,7.000,68427.0,101.376,356.352,1720.320,4194.731,116.840,58.671,8164.3,6765563904,0,14124.23,0.00,101.376,356.352,116.145,nan,0.648,479004,68427.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,1312,7.000,187.4,3309.568,17039.360,62390.272,69768.818,5336.223,2.992,438.4,3391115264,0,2584691.51,0.00,235.520,925.696,252.643,510.26,0.967,13083972,1869092.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.180,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,6277,7.000,896.7,7012.352,32768.000,66584.576,80489.077,8931.009,23.455,267.6,15912615936,0,2535067.06,0.00,331.776,2195.456,414.144,853.46,1.281,62671618,8952869.0,7.000,0.067,7.067,0.007,0,278528,nan,3671330816,833294336,1.180,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-common/manifest.json new file mode 100644 index 000000000..c4b5c4fa9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "common", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/0-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761222.7155974, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791761274.921949, + "db_allocated_bytes": 833753088, + "db_apparent_bytes": 3671330816, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/1-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761274.922609, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791761327.0636742, + "db_allocated_bytes": 543129600, + "db_apparent_bytes": 3250065408, + "preclose_live_extents": [ + 2547, + 2585 + ], + "preclose_branch_extents": [ + 2236, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/2-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761327.0641093, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791761378.9871957, + "db_allocated_bytes": 547315712, + "db_apparent_bytes": 3250065408, + "preclose_live_extents": [ + 2547, + 2585 + ], + "preclose_branch_extents": [ + 2236, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/3-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761378.9876037, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791761431.279278, + "db_allocated_bytes": 834072576, + "db_apparent_bytes": 3671330816, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-common/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-common/results.csv new file mode 100644 index 000000000..8541c9aff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-common/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,load:random@1,1,0,2000000,2000000,3.623,552006.1,0.600,1.584,12.672,77653.931,1.758,2.765,723330.2,350765056,749961216,175.38,374.98,nan,nan,nan,nan,nan,0,0.0,3.623,0.238,3.861,0.094,46182400,83574784,2.5413,3671330816,833753088,0.008,0,0,0,0,0 +baseline,disk,0,0,warm,8,0,2000000,2000000,0.141,14141898.2,nan,nan,nan,0.000,nan,0.518,3858850.9,376389632,32768,188.19,0.02,nan,nan,nan,nan,nan,2000000,14141898.2,0.141,0.000,0.141,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,point:uniform@1,1,0,2000000,121229,5.000,24245.1,45.568,91.136,190.464,1917.092,41.205,0.558,217269.9,427462656,0,3526.08,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,914667,5.000,182927.1,48.640,82.944,113.664,2056.493,43.676,5.195,176056.2,3227820032,0,3528.96,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,75616,5.000,15122.7,58.880,125.952,186.368,2035.076,66.090,5.285,14308.4,1067855872,4096,14122.09,0.05,58.880,123.904,65.794,nan,0.265,75616,15122.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@1,1,0,2000000,43792,5.000,8758.1,95.232,532.480,909.312,1996.396,114.144,4.524,9679.2,1319915520,0,30140.56,0.00,76.800,479.232,91.665,2465.54,0.275,437920,87581.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,992,5.000,198.4,3375.104,14286.848,18950.794,18950.794,5040.854,2.172,456.8,2559967232,0,2580612.13,0.00,235.520,925.696,266.283,478.49,0.710,9903951,1980736.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,377953,5.000,75587.2,99.328,260.096,380.928,3720.602,105.771,42.041,8990.2,5344919552,0,14141.76,0.00,97.280,260.096,105.131,nan,0.598,377953,75587.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@8,8,0,2000000,183813,5.000,36760.7,165.888,860.160,1392.640,3310.434,217.542,36.877,4984.5,5511774208,0,29985.77,0.00,137.216,778.240,182.363,3839.81,0.599,1838127,367606.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,4584,5.000,916.8,6881.280,29622.272,50855.936,69958.815,8725.108,16.480,278.2,11560890368,0,2522009.24,0.00,339.968,2015.232,413.570,832.63,1.040,45768346,9153255.4,5.000,0.079,5.079,0.007,0,290816,nan,3671330816,833753088,0.039,0,0,0,0,0 +candidate,disk,1,0,load:random@1,1,0,2000000,2000000,3.570,560249.3,0.632,1.584,6.720,37939.304,1.729,2.844,703349.6,216444928,469794816,108.22,234.90,nan,nan,nan,nan,nan,0,0.0,3.570,0.228,3.798,0.095,32186368,73134080,1.6553,3250065408,543129600,0.014,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.125,15998305.7,nan,nan,nan,0.000,nan,0.520,3842894.8,268226560,32768,134.11,0.02,nan,nan,nan,nan,nan,2000000,15998305.7,0.125,0.000,0.125,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,point:uniform@1,1,0,2000000,129359,5.000,25871.0,45.568,72.704,892.928,1964.614,38.615,0.544,237609.7,414285824,0,3202.61,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,980786,5.000,196150.6,48.640,74.752,389.120,2078.220,40.728,5.215,188062.8,3146534912,4096,3208.18,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,6,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,81802,5.000,16359.7,50.688,121.856,1425.408,1858.920,61.091,5.244,15600.4,893890560,4096,10927.49,0.05,50.688,121.856,60.680,nan,0.380,81802,16359.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@1,1,0,2000000,46416,5.000,9282.8,78.848,696.320,1720.320,3840.479,107.690,4.664,9951.8,1073344512,0,23124.45,0.00,62.976,630.784,90.981,1811.99,0.385,464160,92828.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,730,5.000,146.0,4259.840,30670.848,51644.449,51644.449,6843.136,1.946,375.1,1363886080,0,1868337.10,0.00,243.712,2850.816,502.101,635.10,0.921,7292042,1458367.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,155777,5.000,31154.2,115.712,1851.392,2654.208,7934.521,256.695,40.678,3829.5,1699528704,0,10910.01,0.00,115.712,1851.392,255.846,nan,0.810,155777,31154.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@8,8,0,2000000,60359,5.000,12071.3,282.624,7536.640,10878.976,13036.040,662.628,37.108,1626.6,1402855424,0,23241.86,0.00,239.616,7274.496,595.980,7309.58,0.841,603590,120713.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,4002,5.000,800.4,6488.064,59244.544,87031.808,101032.207,9974.450,15.350,260.7,7276466176,4096,1818207.44,1.02,307.200,8060.928,609.849,938.20,1.255,39961525,7991968.2,5.000,0.070,5.070,0.007,0,286720,nan,3250065408,543129600,0.006,0,0,0,0,0 +candidate,disk,2,0,load:random@1,1,1,2000000,2000000,3.450,579774.4,0.632,1.616,7.232,38709.014,1.668,2.820,709253.3,219430912,473784320,109.72,236.89,nan,nan,nan,nan,nan,0,0.0,3.450,0.216,3.666,0.089,32018432,73334784,1.6680,3250065408,547315712,0.010,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.121,16589370.2,nan,nan,nan,0.000,nan,0.537,3727122.5,268480512,32768,134.24,0.02,nan,nan,nan,nan,nan,2000000,16589370.2,0.121,0.000,0.121,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,disk,2,0,point:uniform@1,1,1,2000000,134765,5.000,26951.5,45.568,70.656,165.888,591.179,37.065,0.571,235897.6,431677440,0,3203.19,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1010671,5.000,202127.1,47.616,72.704,99.328,632.694,39.523,5.414,186685.9,3241500672,0,3207.28,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,87598,5.000,17518.6,50.688,115.712,165.888,615.333,57.047,5.258,16659.2,957194240,4096,10927.12,0.05,50.688,113.664,56.630,nan,0.386,87598,17518.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@1,1,1,2000000,52231,5.000,10445.7,76.800,487.424,778.240,1336.476,95.696,4.682,11156.3,1212817408,0,23220.26,0.00,61.952,438.272,80.077,1690.09,0.393,522308,104456.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,1202,5.000,240.4,2850.816,12451.840,15073.280,15258.888,4165.395,2.326,516.8,2214821888,0,1842613.88,0.00,182.272,778.240,211.062,396.98,0.924,11983972,2396699.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,417877,5.000,83571.5,89.088,256.000,364.544,1627.893,95.663,41.958,9959.4,4568178688,0,10931.87,0.00,87.040,251.904,94.713,nan,0.905,417877,83571.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@8,8,1,2000000,203154,5.000,40629.3,145.408,778.240,1130.496,2059.231,196.840,37.889,5361.8,4706906112,0,23169.15,0.00,119.808,729.088,170.944,2779.38,0.860,2031537,406292.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,5752,5.000,1150.4,5570.560,18612.224,23855.104,26768.385,6952.628,18.418,312.3,10458636288,4096,1818260.83,0.71,274.432,1007.616,307.883,665.69,1.367,57433637,11486240.5,5.000,0.064,5.064,0.008,0,286720,nan,3250065408,547315712,0.006,0,0,0,0,0 +baseline,disk,3,0,load:random@1,1,1,2000000,2000000,3.749,533545.4,0.632,1.680,13.184,49825.939,1.818,2.899,689944.5,347979776,749744128,173.99,374.87,nan,nan,nan,nan,nan,0,0.0,3.749,0.232,3.980,0.097,44695552,84099072,2.5422,3671330816,834072576,0.008,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.131,15305791.7,nan,nan,nan,0.000,nan,0.523,3826857.7,375713792,32768,187.86,0.02,nan,nan,nan,nan,nan,2000000,15305791.7,0.131,0.000,0.131,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,122879,5.000,24575.1,45.568,89.088,178.176,621.208,40.654,0.559,219748.6,433233920,0,3525.70,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,923267,5.000,184647.1,48.640,78.848,105.472,2066.065,43.270,5.271,175160.9,3257929728,0,3528.70,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,76096,5.000,15218.6,58.880,125.952,190.464,596.680,65.673,5.291,14381.4,1074393088,4096,14118.92,0.05,58.880,125.952,65.374,nan,0.268,76096,15218.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@1,1,1,2000000,44198,5.000,8839.3,95.232,532.480,860.160,1513.442,113.092,4.524,9769.9,1333145600,0,30163.03,0.00,74.752,479.232,90.687,2458.06,0.268,441980,88393.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,993,5.000,198.6,3309.568,14548.992,18355.269,18355.269,5041.143,2.204,450.6,2563846144,0,2581919.58,0.00,231.424,827.392,246.248,480.56,0.679,9913951,1982696.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,29,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,379587,5.000,75913.9,99.328,260.096,364.544,7312.355,105.317,42.036,9030.1,5371990016,0,14152.20,0.00,97.280,260.096,104.665,nan,0.608,379587,75913.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@8,8,1,2000000,187198,5.000,37437.9,165.888,811.008,1163.264,4263.431,213.606,36.881,5075.8,5602111488,0,29926.13,0.00,133.120,729.088,178.186,3863.90,0.623,1871977,374378.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,4843,5.000,968.6,6750.208,21757.952,30670.848,34039.133,8262.363,16.988,285.1,12196876288,0,2518454.74,0.00,323.584,1064.960,362.938,791.56,1.065,48352165,9669990.5,5.000,0.085,5.085,0.008,0,290816,nan,3671330816,834072576,0.005,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/manifest.json new file mode 100644 index 000000000..49e28e0c2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/manifest.json @@ -0,0 +1,250 @@ +{ + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/0-baseline.db", + "started": 1791782747.3825905, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782795.8199513 + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/1-candidate.db", + "started": 1791782797.2660391, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782846.8482606 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/1-candidate.db", + "started": 1791782847.2312615, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782895.6604657 + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/0-baseline.db", + "started": 1791782896.0853186, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782944.6652558 + } + ], + "io": "O_DIRECT", + "note": "Identical candidate image for old/new reconstruction; own incompatible baseline image, serial load with no background workers." +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/results.csv new file mode 100644 index 000000000..2bc3920f3 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/results.csv @@ -0,0 +1,29 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,warm,8,0,2000000,2000000,0.130,15417703.7,nan,nan,nan,0.000,nan,0.534,3745409.5,374820864,32768,187.41,0.02,nan,nan,nan,nan,nan,2000000,15417703.7,0.130,0.000,0.130,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,point:uniform@1,1,0,2000000,167167,7.000,23880.4,45.568,93.184,219.136,667.827,41.822,0.860,194303.6,589660160,0,3527.37,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,1287727,7.000,183956.9,47.616,87.040,121.856,2744.659,43.422,7.368,174783.1,4541366272,0,3526.65,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,106226,7.000,15174.8,58.880,125.952,190.464,606.040,65.855,7.399,14357.3,1501253632,0,14132.64,0.00,58.880,125.952,65.565,nan,0.260,106226,15174.8,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,527640,7.000,75374.6,99.328,260.096,372.736,8289.869,106.054,58.737,8983.1,7482429440,0,14180.94,0.00,99.328,260.096,105.397,nan,0.614,527640,75374.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,1405,7.000,200.7,3244.032,13762.560,16384.000,19374.760,4981.410,3.108,452.1,3648409600,0,2596732.81,0.00,227.328,581.632,228.248,476.93,0.827,14013972,2001944.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.178,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,6676,7.000,953.7,6750.208,22806.528,29622.272,32574.803,8386.976,23.964,278.6,17065017344,0,2556173.96,0.00,331.776,1040.384,361.712,804.09,1.117,66661618,9522831.2,7.000,0.052,7.052,0.008,0,278528,nan,3671461888,835055616,0.178,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.254,7881302.9,nan,nan,nan,0.000,nan,0.910,2198645.4,374669312,32768,187.33,0.02,nan,nan,nan,nan,nan,2000000,7881302.9,0.254,0.000,0.254,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,point:uniform@1,1,0,2000000,161625,7.000,23088.4,46.592,105.472,315.392,2616.613,43.258,0.843,191683.2,571371520,0,3535.17,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,1213581,7.000,173364.7,48.640,95.232,1064.960,2438.970,46.076,7.388,164267.2,4280258560,0,3526.97,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,100525,7.000,14360.3,59.904,133.120,1392.640,2851.576,69.585,7.400,13584.9,1421537280,0,14141.13,0.00,59.904,133.120,69.278,nan,0.276,100525,14360.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,485869,7.000,69407.6,99.328,323.584,1785.856,16309.871,115.178,58.703,8276.8,6872526848,0,14144.81,0.00,99.328,323.584,114.481,nan,0.654,485869,69407.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,1339,7.000,191.3,3309.568,15073.280,39321.600,81823.234,5224.860,3.053,438.6,3480641536,0,2599433.56,0.00,231.424,860.160,242.943,499.99,0.928,13353972,1907661.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,1.226,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,6271,7.000,895.8,7012.352,31195.136,52953.088,76089.478,8928.044,23.719,264.4,16045367296,0,2558661.66,0.00,331.776,2326.528,413.507,853.17,1.210,62611618,8944263.4,7.000,0.056,7.056,0.008,0,278528,nan,3671461888,834215936,1.226,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.153,13113240.7,nan,nan,nan,0.000,nan,0.579,3452049.3,377217024,32768,188.61,0.02,nan,nan,nan,nan,nan,2000000,13113240.7,0.153,0.000,0.153,0.000,0,0,nan,0,0,0.164,0,0,0,0,2 +candidate,disk,2,0,point:uniform@1,1,1,2000000,166832,7.000,23832.5,45.568,95.232,206.848,723.865,41.906,0.861,193837.0,588550144,0,3527.80,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.164,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,1277288,7.000,182465.3,48.640,82.944,109.568,642.288,43.775,7.726,165317.2,4504461312,0,3526.58,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.164,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,103202,7.000,14742.8,60.928,133.120,194.560,2043.399,67.780,7.431,13888.9,1458741248,0,14134.82,0.00,59.904,133.120,67.450,nan,0.297,103202,14742.8,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.164,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,522063,7.000,74577.9,101.376,260.096,372.736,7794.440,107.185,58.817,8876.1,7400509440,4096,14175.51,0.01,99.328,260.096,106.456,nan,0.683,522063,74577.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.164,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,1420,7.000,202.9,3244.032,13238.272,16646.144,20266.295,4932.976,3.074,461.9,3684495360,0,2594715.04,0.00,231.424,614.400,229.217,471.98,0.856,14163972,2023372.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.164,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,6569,7.000,938.4,7012.352,22806.528,31195.136,32660.662,8523.533,23.869,275.2,16801136640,0,2557639.92,0.00,331.776,1064.960,367.389,817.21,1.256,65591618,9369954.0,7.000,0.061,7.061,0.008,0,278528,nan,3671461888,834215936,0.164,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.160,12509995.0,nan,nan,nan,0.000,nan,0.611,3271271.9,376922112,32768,188.46,0.02,nan,nan,nan,nan,nan,2000000,12509995.0,0.160,0.000,0.160,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,161406,7.000,23057.4,46.592,95.232,266.240,2526.059,43.319,0.826,195463.1,569368576,0,3527.56,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,1238696,7.000,176952.2,48.640,93.184,133.120,3286.469,45.140,7.571,163617.6,4368064512,0,3526.34,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,100427,7.000,14346.2,62.976,137.216,548.864,2880.465,69.657,7.413,13547.3,1420034048,0,14139.96,0.00,62.976,133.120,69.341,nan,0.283,100427,14346.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,506767,7.000,72393.0,101.376,274.432,1359.872,3785.186,110.413,58.900,8603.8,7170400256,4096,14149.30,0.01,99.328,274.432,109.719,nan,0.649,506767,72393.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,1343,7.000,191.9,3309.568,15073.280,42467.328,50598.834,5213.208,3.000,447.7,3487039488,0,2596455.31,0.00,235.520,909.312,246.903,498.37,0.962,13393972,1913375.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.299,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,6313,7.000,901.8,7012.352,26476.544,46661.632,74246.794,8844.990,23.819,265.0,15976460288,0,2530723.95,0.00,339.968,1818.624,407.609,845.41,1.303,63031618,9004255.6,7.000,0.063,7.063,0.007,0,278528,nan,3671461888,835059712,0.299,0,0,3,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/manifest.json new file mode 100644 index 000000000..1e419a067 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "nonlexical", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/0-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763300.5089808, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791763352.8485532, + "db_allocated_bytes": 835346432, + "db_apparent_bytes": 3671461888, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/1-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763352.8491957, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763405.3924327, + "db_allocated_bytes": 834498560, + "db_apparent_bytes": 3671461888, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/2-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763405.3928556, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763458.1511865, + "db_allocated_bytes": 834019328, + "db_apparent_bytes": 3671461888, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/3-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763458.151594, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791763510.9457915, + "db_allocated_bytes": 834527232, + "db_apparent_bytes": 3671461888, + "preclose_live_extents": [ + 3376, + 3414 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/results.csv new file mode 100644 index 000000000..0d39c408e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,load:random@1,1,0,2000000,2000000,3.777,529571.7,0.616,1.648,8.576,60412.293,1.819,2.907,688111.0,343019520,750571520,171.51,375.29,nan,nan,nan,nan,nan,0,0.0,3.777,0.256,4.033,0.116,46129152,84529152,2.5460,3671461888,835346432,0.012,0,0,0,0,0 +baseline,disk,0,0,warm,8,0,2000000,2000000,0.140,14260822.7,nan,nan,nan,0.000,nan,0.566,3535592.8,376008704,32768,188.00,0.02,nan,nan,nan,nan,nan,2000000,14260822.7,0.140,0.000,0.140,0.000,0,0,nan,0,0,0.005,0,0,0,0,1 +baseline,disk,0,0,point:uniform@1,1,0,2000000,116830,5.000,23365.2,45.568,91.136,974.848,1679.333,42.753,0.555,210635.8,412000256,0,3526.49,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,866678,5.000,173329.6,48.640,95.232,1228.800,7014.251,46.089,5.037,172056.8,3059060736,4096,3529.64,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,69883,5.000,13976.1,58.880,141.312,1687.552,1978.967,71.504,5.274,13249.9,986677248,0,14118.99,0.00,58.880,141.312,71.205,nan,0.267,69883,13976.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@1,1,0,2000000,41294,5.000,8258.5,95.232,630.784,1720.320,3032.326,121.038,4.524,9127.3,1245675520,0,30166.02,0.00,76.800,565.248,97.572,2574.96,0.277,412940,82585.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,922,5.000,184.4,3506.176,22806.528,55050.240,55241.525,5429.886,2.163,426.2,2353700864,0,2552820.89,0.00,231.424,1490.944,265.595,517.66,0.819,9203951,1840732.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,341147,5.000,68226.3,101.376,356.352,1687.552,8175.388,117.171,41.824,8156.6,4832608256,0,14165.77,0.00,99.328,356.352,116.500,nan,0.626,341147,68226.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@8,8,0,2000000,170338,5.000,34066.1,169.984,1228.800,2457.600,4822.144,234.740,36.830,4625.0,5100109824,4096,29941.12,0.02,137.216,1097.728,197.252,4094.94,0.612,1703380,340661.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,4478,5.000,895.6,7012.352,29622.272,52953.088,65050.290,8931.855,16.888,265.2,11480690688,0,2563798.72,0.00,331.776,1916.928,400.013,854.65,1.094,44708346,8941348.2,5.000,0.056,5.056,0.008,0,290816,nan,3671461888,835346432,0.005,0,0,0,0,0 +candidate,disk,1,0,load:random@1,1,0,2000000,2000000,3.820,523554.6,0.600,1.616,12.672,66925.067,1.842,2.885,693226.5,347205632,748740608,173.60,374.37,nan,nan,nan,nan,nan,0,0.0,3.820,0.306,4.126,0.120,46383104,85516288,2.5435,3671461888,834498560,0.028,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.209,9549971.4,nan,nan,nan,0.000,nan,0.702,2847939.9,376336384,32768,188.17,0.02,nan,nan,nan,nan,nan,2000000,9549971.4,0.209,0.000,0.209,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,point:uniform@1,1,0,2000000,114739,5.000,22947.2,45.568,93.184,1163.264,1939.917,43.529,0.554,207083.9,404443136,0,3524.90,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,851573,5.000,170308.9,48.640,95.232,1261.568,4070.610,46.906,5.007,170083.8,3005128704,4096,3528.91,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,68262,5.000,13651.7,59.904,153.600,1654.784,3346.348,73.205,5.265,12965.9,964448256,0,14128.63,0.00,58.880,153.600,72.884,nan,0.290,68262,13651.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@1,1,0,2000000,38863,5.000,7772.3,95.232,778.240,1916.928,3537.447,128.614,4.522,8593.3,1169874944,4096,30102.54,0.11,78.848,696.320,104.288,2667.87,0.299,388630,77723.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,935,5.000,187.0,3571.712,16646.144,34849.061,34849.061,5353.423,2.204,424.2,2391461888,0,2557713.25,0.00,231.424,1294.336,266.503,509.93,0.789,9333951,1866721.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,340307,5.000,68058.6,101.376,339.968,1982.464,16856.646,117.463,41.831,8135.3,4811571200,0,14138.91,0.00,99.328,339.968,116.754,nan,0.665,340307,68058.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@8,8,0,2000000,166523,5.000,33303.1,169.984,1261.568,3178.496,13775.593,240.054,36.690,4538.7,4981403648,4096,29914.21,0.02,137.216,1097.728,201.454,4211.77,0.671,1665230,333031.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,4529,5.000,905.8,7012.352,25427.968,72351.744,87213.895,8817.510,17.131,264.4,11568021504,0,2554210.97,0.00,339.968,1556.480,394.117,843.68,1.131,45218346,9043243.0,5.000,0.084,5.085,0.008,0,290816,nan,3671461888,834498560,0.041,0,0,0,0,0 +candidate,disk,2,0,load:random@1,1,1,2000000,2000000,4.134,483743.0,0.616,1.648,8.832,82278.379,1.998,3.053,655003.5,350724096,749801472,175.36,374.90,nan,nan,nan,nan,nan,0,0.0,4.134,0.319,4.453,0.125,45891584,83968000,2.5420,3671461888,834019328,0.016,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.144,13858362.0,nan,nan,nan,0.000,nan,0.581,3439931.1,374956032,32768,187.48,0.02,nan,nan,nan,nan,nan,2000000,13858362.0,0.144,0.000,0.144,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,point:uniform@1,1,1,2000000,101267,5.000,20252.3,46.592,109.568,1064.960,1932.816,49.329,0.483,209651.7,357101568,0,3526.34,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,762433,5.000,152481.6,50.688,109.568,1163.264,3095.548,52.400,4.382,173986.1,2689818624,0,3527.94,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,61720,5.000,12343.6,70.656,157.696,1490.944,2711.674,80.968,5.241,11776.1,871374848,4096,14118.19,0.07,70.656,157.696,80.641,nan,0.295,61720,12343.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@1,1,1,2000000,37162,5.000,7432.2,109.568,630.784,1654.784,3183.574,134.507,4.498,8261.3,1118965760,0,30110.48,0.00,89.088,565.248,108.717,2830.05,0.303,371620,74321.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,816,5.000,163.2,3833.856,31195.136,50855.936,51225.460,6128.873,2.041,399.9,2115223552,0,2592185.73,0.00,260.096,1884.160,313.069,582.52,0.775,8152042,1630356.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,86385,5.000,17276.3,231.424,2080.768,3506.176,7396.735,462.973,40.542,2130.7,1221963776,0,14145.56,0.00,231.424,2080.768,462.297,nan,0.636,86385,17276.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@8,8,1,2000000,39556,5.000,7910.9,495.616,9830.400,11927.552,14225.574,1011.232,35.817,1104.4,1175543808,0,29718.47,0.00,413.696,9568.256,878.708,14648.90,0.662,395560,79108.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,1546,5.000,309.2,15597.568,112197.632,153092.096,155278.900,25697.114,11.727,131.8,3950587904,4096,2555360.87,2.65,614.400,13762.560,1851.859,2388.81,1.200,15444664,3088817.9,5.000,0.086,5.087,0.007,0,286720,nan,3671461888,834019328,0.005,0,0,0,0,0 +baseline,disk,3,0,load:random@1,1,1,2000000,2000000,4.104,487290.3,0.600,1.648,9.088,63103.588,1.983,3.046,656591.7,350400512,752828416,175.20,376.41,nan,nan,nan,nan,nan,0,0.0,4.104,0.325,4.429,0.135,46231552,81453056,2.5435,3671461888,834527232,0.019,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.178,11230916.9,nan,nan,nan,0.000,nan,0.638,3134560.4,376643584,32768,188.32,0.02,nan,nan,nan,nan,nan,2000000,11230916.9,0.178,0.000,0.178,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,91507,5.000,18300.8,57.856,121.856,1130.496,5409.962,54.595,0.442,206850.6,322838528,0,3528.02,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,708789,5.000,141753.1,60.928,113.664,356.352,3113.837,56.372,3.977,178210.3,2499878912,0,3526.97,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,58701,5.000,11739.8,74.752,161.792,1130.496,2315.135,85.133,5.239,11204.3,828620800,4096,14115.96,0.07,74.752,161.792,84.835,nan,0.266,58701,11739.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@1,1,1,2000000,34176,5.000,6834.9,121.856,663.552,1851.392,3579.937,146.262,4.455,7671.2,1031192576,0,30173.00,0.00,95.232,598.016,117.973,3111.38,0.272,341760,68349.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,842,5.000,168.4,3964.928,17563.648,53598.119,53598.119,5938.991,2.021,416.7,2176815104,0,2585291.10,0.00,299.008,1163.264,310.460,564.35,0.704,8403951,1680735.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,287775,5.000,57552.6,125.952,364.544,1556.480,6180.136,138.921,41.816,6881.9,4071735296,0,14149.02,0.00,125.952,364.544,138.251,nan,0.626,287775,57552.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@8,8,1,2000000,145243,5.000,29047.4,210.944,1040.384,2195.456,5225.831,275.379,36.562,3972.5,4351766528,0,29961.97,0.00,174.080,942.080,232.265,4721.37,0.600,1452430,290474.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.043,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,3892,5.000,778.4,8192.000,32768.000,59244.544,77987.994,10272.245,15.372,253.2,9922105344,0,2549359.03,0.00,413.696,1753.088,477.378,981.57,1.119,38855767,7770820.8,5.000,0.075,5.075,0.008,0,290816,nan,3671461888,834527232,0.043,0,0,11,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-random/manifest.json b/benchmarks/branch-prefix-history/results-20261011/disk-random/manifest.json new file mode 100644 index 000000000..390f3b14a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-random/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "random", + "regime": "disk", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/0-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762940.013043, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791762992.6656344, + "db_allocated_bytes": 835305472, + "db_apparent_bytes": 3671592960, + "preclose_live_extents": [ + 3377, + 3415 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/1-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762992.6662693, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763045.9102073, + "db_allocated_bytes": 834510848, + "db_apparent_bytes": 3671592960, + "preclose_live_extents": [ + 3377, + 3415 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/2-candidate.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/results.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763045.91067, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763099.1506274, + "db_allocated_bytes": 835530752, + "db_apparent_bytes": 3671592960, + "preclose_live_extents": [ + 3377, + 3415 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/3-baseline.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random/results.csv", + "--vtag", + "baseline", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/disk-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763099.151079, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791763152.0496871, + "db_allocated_bytes": 834215936, + "db_apparent_bytes": 3671592960, + "preclose_live_extents": [ + 3377, + 3415 + ], + "preclose_branch_extents": [ + 3065, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/disk-random/results.csv b/benchmarks/branch-prefix-history/results-20261011/disk-random/results.csv new file mode 100644 index 000000000..f39340c40 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/disk-random/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,disk,0,0,load:random@1,1,0,2000000,2000000,3.670,544994.5,0.568,1.456,7.104,58446.601,1.677,2.861,699142.3,347443200,751497216,173.72,375.75,nan,nan,nan,nan,nan,0,0.0,3.670,0.213,3.883,0.099,45887488,83558400,2.5459,3671592960,835305472,0.033,0,0,0,0,0 +baseline,disk,0,0,warm,8,0,2000000,2000000,0.139,14372085.9,nan,nan,nan,0.000,nan,0.570,3511383.9,375541760,32768,187.77,0.02,nan,nan,nan,nan,nan,2000000,14372085.9,0.139,0.000,0.139,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,point:uniform@1,1,0,2000000,122159,5.000,24431.0,45.568,89.088,186.368,1974.940,40.753,0.563,217006.4,430669824,0,3525.49,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,point:uniform@8,8,0,2000000,923611,5.000,184716.3,47.616,84.992,113.664,1828.102,43.141,5.070,182175.6,3260198912,0,3529.84,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@1,1,0,2000000,77421,5.000,15483.6,56.832,121.856,182.272,2037.381,64.439,5.274,14678.4,1093115904,0,14119.11,0.00,56.832,121.856,64.153,nan,0.256,77421,15483.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@1,1,0,2000000,44189,5.000,8837.5,95.232,532.480,811.008,1861.366,113.001,4.518,9781.3,1333288960,0,30172.42,0.00,74.752,479.232,90.662,2451.15,0.265,441890,88375.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@1,1,0,2000000,988,5.000,197.6,3506.176,14024.704,19136.512,19307.216,5063.488,2.190,451.1,2546626560,0,2577557.25,0.00,231.424,876.544,250.287,482.40,0.700,9863951,1972722.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:1@8,8,0,2000000,380910,5.000,76178.5,97.280,260.096,389.120,7874.954,104.830,41.946,9081.0,5390983168,0,14152.91,0.00,97.280,260.096,104.203,nan,0.586,380910,76178.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10@8,8,0,2000000,179299,5.000,35858.3,165.888,909.312,1982.464,17013.041,222.906,36.832,4868.0,5359915008,0,29893.73,0.00,133.120,811.008,187.173,3901.36,0.600,1792987,358582.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,disk,0,0,range:uniform:10000@8,8,0,2000000,4392,5.000,878.4,7012.352,37224.448,58195.968,68548.996,9103.032,16.398,267.8,11117711360,4096,2531355.05,0.93,339.968,2392.064,433.966,868.36,1.026,43848346,8769290.0,5.000,0.051,5.051,0.007,0,286720,nan,3671592960,835305472,0.005,0,0,0,0,0 +candidate,disk,1,0,load:random@1,1,0,2000000,2000000,4.186,477802.6,0.584,1.488,7.488,56644.969,1.935,3.103,644543.6,348160000,750514176,174.08,375.26,nan,nan,nan,nan,nan,0,0.0,4.186,0.255,4.441,0.116,46215168,83750912,2.5435,3671592960,834510848,0.012,0,0,0,0,0 +candidate,disk,1,0,warm,8,0,2000000,2000000,0.157,12759575.1,nan,nan,nan,0.000,nan,0.571,3501989.1,376700928,32768,188.35,0.02,nan,nan,nan,nan,nan,2000000,12759575.1,0.157,0.000,0.157,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,point:uniform@1,1,0,2000000,115743,5.000,23147.8,45.568,91.136,1097.728,1778.982,43.026,0.557,207967.4,408203264,0,3526.81,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,0,2000000,869673,5.000,173929.2,48.640,93.184,1228.800,2142.694,45.831,4.951,175651.0,3068805120,0,3528.69,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@1,1,0,2000000,74891,5.000,14977.7,58.880,125.952,430.080,1774.654,66.619,5.282,14179.2,1058463744,0,14133.39,0.00,57.856,125.952,66.218,nan,0.371,74891,14977.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@1,1,0,2000000,40683,5.000,8136.3,95.232,663.552,1687.552,3765.423,122.752,4.517,9006.6,1222152192,0,30040.86,0.00,76.800,598.016,98.895,2605.41,0.392,406830,81362.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@1,1,0,2000000,972,5.000,194.4,3440.640,14548.992,33167.986,33167.986,5135.997,2.214,439.0,2504081408,0,2576215.44,0.00,231.424,794.624,242.632,490.39,0.896,9703951,1940718.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,0,2000000,354866,5.000,70969.9,99.328,299.008,1589.248,3647.665,112.534,42.008,8447.6,5022883840,0,14154.31,0.00,99.328,299.008,111.641,nan,0.848,354866,70969.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10@8,8,0,2000000,170754,5.000,34149.4,169.984,1097.728,2260.992,5653.885,234.064,36.740,4647.6,5116100608,0,29961.82,0.00,137.216,991.232,196.386,4091.20,0.835,1707540,341493.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,0,2000000,4323,5.000,864.6,7405.568,40370.176,59244.544,66678.645,9249.398,16.491,262.1,11105349632,0,2568898.83,0.00,339.968,2785.280,440.797,882.56,1.419,43158346,8631217.6,5.000,0.083,5.083,0.009,0,290816,nan,3671592960,834510848,0.005,0,0,0,0,0 +candidate,disk,2,0,load:random@1,1,1,2000000,2000000,4.224,473436.7,0.600,1.648,9.600,72566.317,1.947,3.222,620825.1,350138368,751349760,175.07,375.67,nan,nan,nan,nan,nan,0,0.0,4.224,0.222,4.446,0.104,45744128,83931136,2.5466,3671592960,835530752,0.012,0,0,0,0,0 +candidate,disk,2,0,warm,8,1,2000000,2000000,0.154,13024178.9,nan,nan,nan,0.000,nan,0.597,3351616.4,376754176,32768,188.38,0.02,nan,nan,nan,nan,nan,2000000,13024178.9,0.154,0.000,0.154,0.000,0,0,nan,0,0,0.005,0,0,0,0,1 +candidate,disk,2,0,point:uniform@1,1,1,2000000,113218,5.000,22642.6,45.568,95.232,1294.336,2278.180,43.988,0.547,207142.0,399073280,0,3524.82,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,1,2000000,877789,5.000,175551.9,48.640,93.184,892.928,2847.822,45.406,5.160,170106.1,3098099712,0,3529.44,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@1,1,1,2000000,71025,5.000,14204.5,58.880,133.120,1458.176,3160.368,70.250,5.272,13473.2,1003364352,0,14126.92,0.00,58.880,133.120,69.839,nan,0.379,71025,14204.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@1,1,1,2000000,40119,5.000,8023.6,95.232,679.936,1851.392,16391.889,124.486,4.509,8897.6,1207398400,0,30095.43,0.00,78.848,614.400,99.988,2676.76,0.391,401190,80235.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@1,1,1,2000000,854,5.000,170.8,3637.248,30146.560,78643.200,79464.573,5841.683,2.103,406.1,2203643904,0,2580379.28,0.00,235.520,2588.672,311.610,554.39,0.947,8523951,1704699.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,1,2000000,356521,5.000,71301.1,99.328,290.816,1851.392,6222.876,112.012,41.970,8494.7,5044506624,0,14149.26,0.00,97.280,290.816,111.137,nan,0.833,356521,71301.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10@8,8,1,2000000,168613,5.000,33721.3,169.984,1196.032,2654.208,5533.256,237.042,36.837,4577.3,5048901632,0,29943.73,0.00,137.216,1064.960,199.153,4113.27,0.847,1686130,337212.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,1,2000000,4415,5.000,883.0,7143.424,35127.296,68157.440,74322.646,9057.638,16.721,264.0,11060895744,4096,2505299.15,0.93,331.776,2392.064,417.384,865.73,1.417,44078346,8815302.0,5.000,0.054,5.054,0.008,0,286720,nan,3671592960,835530752,0.005,0,0,0,0,0 +baseline,disk,3,0,load:random@1,1,1,2000000,2000000,3.856,518699.1,0.600,1.552,7.232,53935.182,1.767,3.022,661899.4,348721152,748158976,174.36,374.08,nan,nan,nan,nan,nan,0,0.0,3.856,0.234,4.089,0.098,46358528,85815296,2.5426,3671592960,834215936,0.027,0,0,0,0,0 +baseline,disk,3,0,warm,8,1,2000000,2000000,0.154,12999873.9,nan,nan,nan,0.000,nan,0.577,3467887.4,375754752,32768,187.88,0.02,nan,nan,nan,nan,nan,2000000,12999873.9,0.154,0.000,0.154,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,point:uniform@1,1,1,2000000,120535,5.000,24105.7,45.568,91.136,198.656,1993.095,41.316,0.575,209653.8,424980480,0,3525.78,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,point:uniform@8,8,1,2000000,901802,5.000,180354.2,48.640,89.088,130.048,2561.034,44.199,5.330,169184.6,3182759936,4096,3529.33,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@1,1,1,2000000,75472,5.000,15093.8,57.856,125.952,198.656,3194.742,66.107,5.284,14284.3,1065975808,0,14124.12,0.00,57.856,125.952,65.807,nan,0.269,75472,15093.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@1,1,1,2000000,43210,5.000,8641.7,95.232,548.864,942.080,2607.506,115.572,4.527,9545.1,1304866816,0,30198.26,0.00,76.800,495.616,92.792,2498.82,0.276,432100,86416.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@1,1,1,2000000,974,5.000,194.8,3440.640,14548.992,24379.392,24637.245,5131.593,2.221,438.6,2508279808,0,2575235.94,0.00,231.424,827.392,250.948,489.18,0.740,9723951,1944708.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:1@8,8,1,2000000,370067,5.000,74010.0,99.328,274.432,1359.872,5944.635,107.907,42.063,8797.8,5233364992,0,14141.67,0.00,97.280,266.240,107.257,nan,0.607,370067,74010.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10@8,8,1,2000000,175155,5.000,35029.7,165.888,958.464,2195.456,18037.535,228.192,36.832,4755.5,5238026240,4096,29905.09,0.02,137.216,860.160,191.622,3992.73,0.613,1751547,350296.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.022,0,0,0,0,0 +baseline,disk,3,0,range:uniform:10000@8,8,1,2000000,4450,5.000,890.0,7143.424,32243.712,49807.360,71245.890,8990.069,16.764,265.4,11343630336,0,2549130.41,0.00,339.968,2048.000,413.612,859.18,1.087,44428346,8885268.2,5.000,0.058,5.058,0.008,0,290816,nan,3671592960,834215936,0.022,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/final-candidate-build.json b/benchmarks/branch-prefix-history/results-20261011/final-candidate-build.json new file mode 100644 index 000000000..db13bf1db --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/final-candidate-build.json @@ -0,0 +1,32 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/final-implementation.json b/benchmarks/branch-prefix-history/results-20261011/final-implementation.json new file mode 100644 index 000000000..dd1456242 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/final-implementation.json @@ -0,0 +1,4 @@ +{ + "commit": "1ef1644", + "library_sha256": "674f5eef25ee83b6d2816061d6a01cba93cca6a92093e1c4793f32a29ca07c41" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/prefix-pre-reconstruct.json b/benchmarks/branch-prefix-history/results-20261011/prefix-pre-reconstruct.json new file mode 100644 index 000000000..6edfd13c1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/prefix-pre-reconstruct.json @@ -0,0 +1,6 @@ +{ + "src/btree.c": "9f3721e407abe4735f22b9852a8ac47bc669ca419bced6044b066681ae881754", + "src/btree_private.h": "ab6204f802643538066777378c8238ee1ff08cd8304704af73b023d579c7fff3", + "build/release/bin/prefix_kvbench": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build/release/lib/libsplinterdb.a": "56bb3229c990ef18fd7a109762e0433991c3970965449f2b16b73e018989bc15" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/prefix_compare.py b/benchmarks/branch-prefix-history/results-20261011/prefix_compare.py new file mode 100644 index 000000000..c523c4096 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/prefix_compare.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""Prefix workload ABBA; invoke once per pattern/regime under benchmark lock.""" +import argparse, csv, hashlib, json, os, re, subprocess, time +from pathlib import Path +p=argparse.ArgumentParser() +p.add_argument('--pattern', choices=['common','random','nonlexical'], required=True) +p.add_argument('--regime', choices=['resident','disk'], required=True) +p.add_argument('--seconds',type=int,default=5) +p.add_argument('--disabled', action='store_true') +a=p.parse_args() +root=Path(__file__).resolve().parent.parent +out=root/'benchmarks/branch-prefix'/(a.regime+'-'+a.pattern+('-disabled' if a.disabled else '')) +out.mkdir(parents=True,exist_ok=False) +env=dict(os.environ,PREFIX_PATTERN=a.pattern,KVBENCH_STATS_BEFORE_CLOSE='1') +if a.disabled: env['PREFIX_DISABLE']='1' +phases=['load:random@1','warm','point:uniform@1','point:uniform@8'] +phases += [f'range:uniform:{length}@{threads}' for threads in [1,8] for length in [1,10,10000]] +manifest=dict(pattern=a.pattern,regime=a.regime,io='O_DIRECT',runs=[],source='same generated kvbench source',loading_threads=1) +for index,version in enumerate(['baseline','candidate','candidate','baseline']): + tree=root/('baseline' if version=='baseline' else 'worktrees/branch-prefix') + binary=tree/'build/release/bin/prefix_kvbench' + db=out/f'{index}-{version}.db' + argv=['taskset','-c','0-11',str(binary),'--db',str(db),'--create', + '--n','200000' if a.regime=='resident' else '2000000', + '--cache-mib','128' if a.regime=='resident' else '64','--disk-gib','8', + '--log','0','--threads','8','--mt-bg','0','--normal-bg','0','--memtable-mib','4', + '--secs',str(a.seconds),'--warmup','1','--csv',str(out/'results.csv'), + '--vtag',version,'--stag',a.regime,'--otag',str(index),'--rep',str(index//2), + '--seed','42','--hang-secs','60','--hang-dir',str(out),*phases] + record=dict(index=index,version=version,command=argv,started=time.time(), + binary_sha256=hashlib.sha256(binary.read_bytes()).hexdigest(), + build=json.loads(binary.with_suffix('.json').read_text())) + print(f'prefix {a.pattern} {a.regime}: {index+1}/4 {version}',flush=True) + with (out/f'{index}-{version}.log').open('w') as log: + result=subprocess.run(argv,env=env,stdout=log,stderr=subprocess.STDOUT,timeout=900) + record.update(returncode=result.returncode,finished=time.time(), + db_allocated_bytes=db.stat().st_blocks*512,db_apparent_bytes=db.stat().st_size) + printed=(out/f'{index}-{version}.log').read_text() + live=re.findall(r'Currently Allocated:\s+(\d+) extents',printed) + branch=re.findall(r'\| branch\s*\|\s+[-0-9]+ \|\s+[-0-9]+ \|\s+([0-9]+)',printed) + record['preclose_live_extents']=[int(n) for n in live] + record['preclose_branch_extents']=[int(n) for n in branch] + manifest['runs'].append(record) + (out/'manifest.json').write_text(json.dumps(manifest,indent=2)+'\n') + if result.returncode: raise SystemExit(result.returncode) +with (out/'results.csv').open() as f: rows=list(csv.DictReader(f)) +assert rows and all(int(r[x])==0 for r in rows for x in ['violations','errors']) +print('Completed',out,flush=True) diff --git a/benchmarks/branch-prefix-history/results-20261011/prefix_fixed_compare.py b/benchmarks/branch-prefix-history/results-20261011/prefix_fixed_compare.py new file mode 100644 index 000000000..aac5e5b50 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/prefix_fixed_compare.py @@ -0,0 +1,20 @@ +import argparse,csv,hashlib,json,os,subprocess,time +from pathlib import Path +p=argparse.ArgumentParser();p.add_argument('--pattern',default='common');p.add_argument('--regime',default='resident');a=p.parse_args() +root=Path(__file__).resolve().parent.parent +out=root/'benchmarks/branch-prefix'/(a.regime+'-'+a.pattern+'-fixed-final');out.mkdir(exist_ok=False) +profiles={'baseline':(root/'baseline/build/release/bin/prefix_kvbench','0-baseline.db'), 'pre-reconstruct':(root/'worktrees/branch-prefix/build/release/bin/prefix_kvbench','1-candidate.db'), 'candidate':(root/'worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench','1-candidate.db')} +manifest=dict(runs=[],io='O_DIRECT',note='Identical candidate image for old/new reconstruction; own incompatible baseline image, serial load with no background workers.') +order=['baseline','pre-reconstruct','candidate','candidate','pre-reconstruct','baseline'] if a.regime=='resident' else ['baseline','candidate','candidate','baseline'] +phases=['warm','point:uniform@1','point:uniform@8','range:uniform:1@1','range:uniform:1@8','range:uniform:10000@1','range:uniform:10000@8'] +for index,version in enumerate(order): + binary,fixture=profiles[version];source=root/'benchmarks/branch-prefix'/(a.regime+'-'+a.pattern)/fixture;db=out/'scratch.db' + subprocess.run(['cp','--reflink=auto','--sparse=always',str(source),str(db)],check=True) + argv=['taskset','-c','0-11',str(binary),'--db',str(db),'--open','--n','200000' if a.regime=='resident' else '2000000','--cache-mib','128' if a.regime=='resident' else '64','--disk-gib','8','--log','0','--threads','8','--mt-bg','0','--normal-bg','0','--memtable-mib','4','--secs','7','--warmup','1','--csv',str(out/'results.csv'),'--vtag',version,'--stag',a.regime,'--otag',str(index),'--rep',str(index//2),'--seed','42','--hang-secs','60','--hang-dir',str(out),*phases] + record=dict(index=index,version=version,command=argv,fixture=str(source),started=time.time(),binary_sha256=hashlib.sha256(binary.read_bytes()).hexdigest()) + print('Prefix fixed comparison',a.regime,a.pattern,index,version,flush=True) + with (out/f'{index}-{version}.log').open('w') as f:result=subprocess.run(argv,env=dict(os.environ,PREFIX_PATTERN=a.pattern),stdout=f,stderr=subprocess.STDOUT,timeout=180) + record.update(returncode=result.returncode,finished=time.time());manifest['runs'].append(record);(out/'manifest.json').write_text(json.dumps(manifest,indent=2)+'\n') + if result.returncode:raise SystemExit(result.returncode) + rows=list(csv.DictReader((out/'results.csv').open()));assert all(int(r[x])==0 for r in rows for x in ['violations','errors']);db.unlink() +print('Completed',out,flush=True) diff --git a/benchmarks/branch-prefix-history/results-20261011/previous-candidate-build.json b/benchmarks/branch-prefix-history/results-20261011/previous-candidate-build.json new file mode 100644 index 000000000..3d7cc3781 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/previous-candidate-build.json @@ -0,0 +1,32 @@ +{ + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/manifest.json b/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/manifest.json new file mode 100644 index 000000000..14e2053b6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "common", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/0-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763510.9775028, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791763559.6422205, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/1-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763559.6429765, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763608.266232, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/2-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763608.2667253, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791763656.9448879, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/3-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-disabled", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791763656.945295, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791763705.5595763, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/results.csv b/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/results.csv new file mode 100644 index 000000000..4e32b5036 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,load:random@1,1,0,200000,200000,0.267,747749.0,0.648,2.848,4.800,40091.384,1.296,0.267,748262.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.267,0.161,0.428,0.027,0,37261312,1.1360,237375488,37408768,0.021,0,0,0,0,0 +baseline,resident,0,0,warm,8,0,200000,200000,0.016,12477622.2,nan,nan,nan,0.000,nan,0.065,3060537.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12477622.2,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.040,0,0,0,0,1 +baseline,resident,0,0,point:uniform@1,1,0,200000,4881363,5.000,976218.9,0.968,1.328,1.872,36.304,0.987,5.000,976261.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,22757514,5.000,4551299.8,1.648,2.336,5.824,332.154,1.687,39.995,569009.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1206899,5.000,241370.8,4.064,4.672,8.576,32.858,4.114,5.000,241380.0,0,0,0.00,0.00,3.872,4.416,3.925,nan,0.161,1206899,241370.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@1,1,0,200000,1032183,5.000,206424.8,4.672,6.592,9.856,153.938,4.816,5.000,206442.7,0,0,0.00,0.00,3.872,5.184,3.887,84.11,0.158,10321558,2064193.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,7262,5.000,1452.3,696.320,745.472,794.624,848.901,688.455,5.004,1451.3,0,0,0.00,0.00,5.824,7.360,5.866,69.94,0.283,70848568,14168902.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,5855620,5.000,1171073.3,5.824,9.600,16.640,108.525,6.785,39.997,146403.1,0,0,0.00,0.00,5.568,9.088,6.388,nan,0.356,5855620,1171073.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@8,8,0,200000,4703476,5.000,940652.4,7.360,13.184,19.712,158.270,8.458,39.998,117592.9,0,0,0.00,0.00,5.824,9.600,6.667,156.25,0.364,47033597,9406291.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,21577,5.000,4315.2,991.232,4161.536,4259.840,4334.268,1853.723,39.998,539.5,0,0,0.00,0.00,7.104,12.672,7.720,189.09,0.534,210398935,42077572.6,5.000,0.095,5.095,0.012,0,323584,nan,237375488,37408768,0.040,0,0,0,0,0 +candidate,resident,1,0,load:random@1,1,0,200000,200000,0.255,784484.7,0.616,2.720,4.544,38293.050,1.236,0.255,784486.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.255,0.146,0.401,0.026,0,37261312,1.1360,237375488,37408768,0.043,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.015,13439923.6,nan,nan,nan,0.000,nan,0.062,3229765.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13439923.6,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,2 +candidate,resident,1,0,point:uniform@1,1,0,200000,4955896,5.000,991126.0,0.968,1.264,1.520,37.118,0.973,5.000,991159.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,22796494,5.000,4559067.6,1.648,2.336,6.720,75.122,1.683,39.997,569960.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1248907,5.000,249773.6,3.936,5.312,8.576,43.691,3.976,5.000,249778.6,0,0,0.00,0.00,3.744,5.056,3.792,nan,0.157,1248907,249773.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@1,1,0,200000,1069789,5.000,213946.9,4.544,6.208,9.600,34.761,4.647,5.000,213957.2,0,0,0.00,0.00,3.744,4.288,3.749,80.93,0.156,10697600,2139411.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,7156,5.000,1431.1,712.704,778.240,827.392,901.511,698.633,5.000,1431.2,0,0,0.00,0.00,5.696,7.616,5.778,70.99,0.264,69823061,13963887.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,5817247,5.000,1163400.4,5.952,9.600,17.664,443.260,6.827,39.991,145462.5,0,0,0.00,0.00,5.568,9.088,6.431,nan,0.356,5817247,1163400.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@8,8,0,200000,4522655,5.000,904491.0,7.872,13.440,21.248,112.672,8.798,39.997,113074.0,0,0,0.00,0.00,6.080,9.856,6.848,170.80,0.391,45225472,9044694.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,19182,5.000,3836.2,2129.920,4390.912,4390.912,4612.035,2085.358,39.997,479.6,0,0,0.00,0.00,7.488,12.672,7.953,212.99,0.566,187045472,37407161.1,5.000,0.114,5.114,0.012,0,323584,nan,237375488,37408768,0.007,0,0,0,0,0 +candidate,resident,2,0,load:random@1,1,1,200000,200000,0.247,809579.1,0.616,2.656,4.288,37059.162,1.197,0.247,809775.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.247,0.173,0.420,0.025,0,37261312,1.1360,237375488,37408768,0.045,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.035,5647187.4,nan,nan,nan,0.000,nan,0.146,1367493.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5647187.4,0.035,0.000,0.035,0.000,0,0,nan,0,0,0.040,0,0,0,0,1 +candidate,resident,2,0,point:uniform@1,1,1,200000,5063428,5.000,1012635.1,0.936,1.264,1.488,77.916,0.952,5.000,1012719.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,23123298,5.000,4624451.6,1.616,2.272,4.544,114.975,1.661,39.996,578134.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1276506,5.000,255291.4,3.872,4.416,8.000,34.543,3.890,5.000,255297.2,0,0,0.00,0.00,3.680,4.160,3.709,nan,0.155,1276506,255291.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@1,1,1,200000,1080125,5.000,216014.1,4.544,6.080,9.344,41.679,4.603,5.000,216022.5,0,0,0.00,0.00,3.680,4.160,3.711,80.30,0.155,10800958,2160082.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,7133,5.000,1426.5,712.704,860.160,909.312,1039.640,700.981,5.000,1426.7,0,0,0.00,0.00,5.696,8.576,5.809,71.23,0.255,69593652,13918164.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,5858433,5.000,1171635.5,5.952,9.600,16.640,153.387,6.780,40.030,146351.1,0,0,0.00,0.00,5.568,9.088,6.384,nan,0.357,5858433,1171635.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@8,8,1,200000,4828258,5.000,965608.4,7.360,12.672,19.200,111.763,8.241,39.998,120712.5,0,4096,0.00,0.00,5.696,9.088,6.429,158.24,0.367,48281373,9655842.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,20346,5.000,4069.0,1064.960,4784.128,5046.272,5288.969,1965.472,39.999,508.7,0,0,0.00,0.00,7.360,12.928,8.008,200.40,0.557,198494600,39696940.5,5.000,0.096,5.096,0.013,0,323584,nan,237375488,37408768,0.040,0,0,0,0,0 +baseline,resident,3,0,load:random@1,1,1,200000,200000,0.248,806231.7,0.616,2.656,4.416,37032.049,1.202,0.248,806526.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.248,0.148,0.396,0.025,0,37261312,1.1360,237375488,37408768,0.047,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.028,7024233.9,nan,nan,nan,0.000,nan,0.142,1412050.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,7024233.9,0.028,0.000,0.028,0.000,0,0,nan,0,0,0.009,0,0,0,0,2 +baseline,resident,3,0,point:uniform@1,1,1,200000,5029390,5.000,1005827.1,0.952,1.296,1.776,221.425,0.958,4.999,1006017.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,23014756,5.000,4602743.6,1.648,2.272,3.872,79.903,1.668,39.998,575396.8,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1241280,5.000,248243.2,4.000,4.544,8.832,43.483,4.000,5.004,248060.1,0,0,0.00,0.00,3.808,4.288,3.814,nan,0.158,1241280,248243.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@1,1,1,200000,1055724,5.000,211135.2,4.672,6.336,9.600,43.469,4.708,5.000,211149.4,0,4096,0.00,0.00,3.744,4.800,3.796,82.32,0.157,10556962,2111296.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,7375,5.000,1474.9,696.320,729.088,794.624,859.288,677.925,5.000,1475.0,0,0,0.00,0.00,5.568,7.232,5.643,68.91,0.285,71932102,14385620.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,6205406,5.000,1241028.5,5.568,9.088,15.488,77.430,6.402,39.997,155145.5,0,0,0.00,0.00,5.184,8.576,6.027,nan,0.337,6205406,1241028.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@8,8,1,200000,4761544,5.000,952267.1,7.488,12.928,19.712,1620.962,8.355,39.996,119051.9,0,0,0.00,0.00,5.824,9.600,6.575,153.98,0.373,47614258,9522434.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,20960,5.000,4191.8,974.848,4521.984,4784.128,4882.841,1907.876,39.998,524.0,0,0,0.00,0.00,7.104,13.440,7.852,194.64,0.548,204378051,40873476.2,5.000,0.102,5.103,0.013,0,323584,nan,237375488,37408768,0.009,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/manifest.json b/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/manifest.json new file mode 100644 index 000000000..ee22a80d7 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/manifest.json @@ -0,0 +1,372 @@ +{ + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/0-baseline.db", + "started": 1791782139.4229414, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782187.5676143 + }, + { + "index": 1, + "version": "pre-reconstruct", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "pre-reconstruct", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/1-candidate.db", + "started": 1791782187.6038043, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "returncode": 0, + "finished": 1791782235.7525835 + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/1-candidate.db", + "started": 1791782235.769608, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782283.9218976 + }, + { + "index": 3, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-reconstruct/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/1-candidate.db", + "started": 1791782283.935439, + "binary_sha256": "08ea74f21d805fe2dc225ece121d9572e06bc80660958838a1b3ceba7da62e56", + "returncode": 0, + "finished": 1791782332.0819576 + }, + { + "index": 4, + "version": "pre-reconstruct", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "pre-reconstruct", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/1-candidate.db", + "started": 1791782332.0984194, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "returncode": 0, + "finished": 1791782380.2059798 + }, + { + "index": 5, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common-fixed-final", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:1@8", + "range:uniform:10000@1", + "range:uniform:10000@8" + ], + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/0-baseline.db", + "started": 1791782380.2274806, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "returncode": 0, + "finished": 1791782428.3337078 + } + ], + "io": "O_DIRECT", + "note": "Identical candidate image for old/new reconstruction; own incompatible baseline image, serial load with no background workers." +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/results.csv b/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/results.csv new file mode 100644 index 000000000..6e1de347a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/results.csv @@ -0,0 +1,43 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,warm,8,0,200000,200000,0.012,16739952.8,nan,nan,nan,0.000,nan,0.057,3511667.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,16739952.8,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.013,0,0,0,0,2 +baseline,resident,0,0,point:uniform@1,1,0,200000,7643965,7.000,1091955.5,0.856,1.232,5.568,165.442,0.884,6.999,1092152.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,37307198,7.000,5329434.4,1.392,2.784,5.568,736.381,1.441,55.987,666355.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1837168,7.000,262445.7,3.616,7.360,29.440,54.469,3.785,7.000,262435.9,0,4096,0.00,0.00,3.424,7.104,3.618,nan,0.142,1837168,262445.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,8694276,7.000,1242004.0,5.568,9.088,16.000,167.054,6.397,55.991,155280.3,0,4096,0.00,0.00,5.312,8.576,6.023,nan,0.337,8694276,1242004.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,10212,7.000,1458.8,663.552,1163.264,1523.712,2070.263,685.341,7.000,1458.8,0,0,0.00,0.00,5.696,17.152,6.312,69.56,0.328,99649826,14235177.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,33,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,30855,7.000,4407.7,1884.160,4030.464,4161.536,4604.111,1814.677,55.993,551.1,0,0,0.00,0.00,6.720,12.416,7.328,185.20,0.506,301007604,42999624.4,7.000,0.085,7.085,0.012,0,307200,nan,237375488,37285888,0.013,0,0,0,0,0 +pre-reconstruct,resident,1,0,warm,8,0,200000,200000,0.012,17018695.5,nan,nan,nan,0.000,nan,0.049,4107788.4,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17018695.5,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.011,0,0,0,0,1 +pre-reconstruct,resident,1,0,point:uniform@1,1,0,200000,7576959,7.000,1082383.2,0.872,1.232,1.552,58.830,0.889,7.000,1082403.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,1,0,point:uniform@8,8,0,200000,34775582,7.000,4967785.6,1.520,2.144,2.976,80.905,1.541,56.025,620718.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,1,0,range:uniform:1@1,1,0,200000,1972506,7.000,281779.5,3.424,4.000,28.928,141.240,3.523,7.000,281798.0,0,4096,0.00,0.00,3.232,3.808,3.346,nan,0.152,1972506,281779.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,1,0,range:uniform:1@8,8,0,200000,9014632,7.000,1287765.1,5.184,8.832,16.640,88.066,6.166,55.994,160993.4,0,4096,0.00,0.00,4.928,8.320,5.742,nan,0.386,9014632,1287765.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,1,0,range:uniform:10000@1,1,0,200000,10383,7.000,1483.2,679.936,811.008,925.696,1118.802,674.187,7.000,1483.2,0,0,0.00,0.00,4.928,7.616,4.950,68.56,0.269,101313493,14472836.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,1,0,range:uniform:10000@8,8,0,200000,24881,7.000,3554.3,2392.064,2981.888,3112.960,3290.100,2250.436,55.996,444.3,0,0,0.00,0.00,7.104,9.600,7.026,229.86,0.590,242727787,34674429.3,7.000,0.091,7.092,0.012,0,307200,nan,207360000,26005504,0.011,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.010,20433077.0,nan,nan,nan,0.000,nan,0.043,4613503.7,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,20433077.0,0.010,0.000,0.010,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,point:uniform@1,1,1,200000,7632145,7.000,1090272.2,0.872,1.232,1.840,1525.789,0.883,6.998,1090585.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,35893762,7.000,5127533.8,1.456,2.080,4.928,154.199,1.496,55.988,641098.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1901475,7.000,271633.4,3.616,4.160,8.576,31.321,3.654,7.000,271631.2,0,4096,0.00,0.00,3.424,3.936,3.465,nan,0.163,1901475,271633.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,8618758,7.000,1231213.9,5.440,9.088,17.152,116.294,6.445,55.993,153926.3,0,4096,0.00,0.00,5.056,8.576,6.004,nan,0.401,8618758,1231213.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,10350,7.000,1478.5,696.320,811.008,876.544,1138.644,676.284,7.000,1478.5,0,0,0.00,0.00,5.056,7.616,5.147,68.75,0.280,101005797,14429098.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,27837,7.000,3976.6,1851.392,2785.280,3047.424,3408.392,2011.444,55.993,497.2,0,0,0.00,0.00,7.104,12.928,7.024,205.43,0.577,271574215,38794995.5,7.000,0.076,7.076,0.012,0,311296,nan,207360000,26005504,0.011,0,0,0,0,0 +candidate,resident,3,0,warm,8,1,200000,200000,0.011,17803031.2,nan,nan,nan,0.000,nan,0.051,3933600.8,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17803031.2,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.011,0,0,0,0,2 +candidate,resident,3,0,point:uniform@1,1,1,200000,7442764,7.000,1063207.9,0.888,1.296,1.648,52.510,0.905,7.000,1063215.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,3,0,point:uniform@8,8,1,200000,35973902,7.000,5138982.5,1.456,2.080,3.488,176.468,1.490,55.984,642569.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,3,0,range:uniform:1@1,1,1,200000,1931057,7.000,275858.1,3.488,4.544,27.904,40.492,3.599,7.000,275863.9,0,4096,0.00,0.00,3.360,4.416,3.415,nan,0.158,1931057,275858.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,3,0,range:uniform:1@8,8,1,200000,8869323,7.000,1267014.2,5.312,9.088,17.664,1647.677,6.264,56.021,158322.6,0,4096,0.00,0.00,5.056,8.576,5.834,nan,0.391,8869323,1267014.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,1,0,0 +candidate,resident,3,0,range:uniform:10000@1,1,1,200000,10347,7.000,1478.1,696.320,729.088,761.856,880.678,676.467,7.000,1478.1,0,0,0.00,0.00,5.056,6.720,5.137,68.78,0.281,100961009,14422612.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +candidate,resident,3,0,range:uniform:10000@8,8,1,200000,28647,7.000,4092.3,1024.000,4390.912,4915.200,5163.759,1954.586,55.987,511.7,0,0,0.00,0.00,6.208,14.464,7.038,199.45,0.576,279365417,39908119.3,7.000,0.081,7.082,0.012,0,311296,nan,207360000,26005504,0.011,0,0,0,0,0 +pre-reconstruct,resident,4,0,warm,8,2,200000,200000,0.011,17648448.4,nan,nan,nan,0.000,nan,0.050,4018646.5,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17648448.4,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,4,0,point:uniform@1,1,2,200000,7219580,7.000,1031330.9,0.920,1.296,1.936,51.781,0.934,7.000,1031362.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,4,0,point:uniform@8,8,2,200000,33147694,7.000,4735233.4,1.584,2.272,4.160,182.180,1.620,55.983,592099.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,15,0,0 +pre-reconstruct,resident,4,0,range:uniform:1@1,1,2,200000,1747887,7.000,249689.3,3.808,6.592,12.928,134.638,3.977,7.000,249706.8,0,4096,0.00,0.00,3.616,6.336,3.779,nan,0.170,1747887,249689.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,51,0,0 +pre-reconstruct,resident,4,0,range:uniform:1@8,8,2,200000,8447066,7.000,1206685.1,5.568,9.344,17.664,4001.398,6.583,55.977,150901.9,0,4096,0.00,0.00,5.184,8.832,6.137,nan,0.406,8447066,1206685.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,4,0,range:uniform:10000@1,1,2,200000,10022,7.000,1431.7,712.704,811.008,909.312,1192.547,698.398,7.000,1431.8,0,0,0.00,0.00,5.184,9.088,5.415,71.02,0.282,97765866,13966238.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.011,0,0,0,0,0 +pre-reconstruct,resident,4,0,range:uniform:10000@8,8,2,200000,26402,7.000,3771.6,2048.000,4521.984,4653.056,4882.203,2121.119,55.995,471.5,0,0,0.00,0.00,7.744,13.696,7.799,216.64,0.622,257557532,36792618.3,7.000,0.069,7.069,0.012,0,311296,nan,207360000,26005504,0.011,0,0,0,0,0 +baseline,resident,5,0,warm,8,2,200000,200000,0.012,16191332.3,nan,nan,nan,0.000,nan,0.058,3457814.7,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,16191332.3,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,5,0,point:uniform@1,1,2,200000,7299553,7.000,1042771.2,0.920,1.232,2.720,41.170,0.925,7.000,1042756.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,3,0,0 +baseline,resident,5,0,point:uniform@8,8,2,200000,33874783,7.000,4839098.6,1.552,2.144,5.056,88.522,1.585,55.997,604942.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,5,0,range:uniform:1@1,1,2,200000,1823465,7.000,260489.6,3.680,5.056,28.928,45.834,3.813,7.000,260484.8,0,4096,0.00,0.00,3.552,4.928,3.644,nan,0.144,1823465,260489.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,5,0,range:uniform:1@8,8,2,200000,8470941,7.000,1210098.7,5.696,9.344,16.256,687.671,6.565,55.987,151302.2,0,0,0.00,0.00,5.312,8.832,6.180,nan,0.346,8470941,1210098.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,0,0,0 +baseline,resident,5,0,range:uniform:10000@1,1,2,200000,10317,7.000,1473.8,679.936,827.392,1097.728,1499.220,678.396,7.002,1473.4,0,0,0.00,0.00,5.568,9.344,5.770,68.91,0.298,100678205,14382213.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.013,0,0,43,0,0 +baseline,resident,5,0,range:uniform:10000@8,8,2,200000,27291,7.000,3898.6,1982.464,4784.128,5308.416,6133.186,2051.742,55.984,487.5,0,0,0.00,0.00,7.616,17.664,8.599,209.33,0.617,266242019,38033297.5,7.000,0.050,7.050,0.013,0,311296,nan,237375488,37285888,0.013,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common/manifest.json b/benchmarks/branch-prefix-history/results-20261011/resident-common/manifest.json new file mode 100644 index 000000000..85b6f5575 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "common", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/0-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791757560.3043447, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791757608.8109066, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/1-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791757608.811556, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791757657.3247614, + "db_allocated_bytes": 26128384, + "db_apparent_bytes": 207360000, + "preclose_live_extents": [ + 279, + 256 + ], + "preclose_branch_extents": [ + 179, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/2-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791757657.3251767, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791757705.7938395, + "db_allocated_bytes": 26128384, + "db_apparent_bytes": 207360000, + "preclose_live_extents": [ + 279, + 256 + ], + "preclose_branch_extents": [ + 179, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/3-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-common", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791757705.794274, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791757754.2970247, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-common/results.csv b/benchmarks/branch-prefix-history/results-20261011/resident-common/results.csv new file mode 100644 index 000000000..a95a4ec4c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-common/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,load:random@1,1,0,200000,200000,0.243,822812.1,0.600,2.592,4.416,36446.069,1.178,0.243,823333.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.243,0.116,0.359,0.022,0,37261312,1.1360,237375488,37408768,0.008,0,0,0,0,0 +baseline,resident,0,0,warm,8,0,200000,200000,0.013,15578329.5,nan,nan,nan,0.000,nan,0.058,3452681.0,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15578329.5,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.006,0,0,0,0,2 +baseline,resident,0,0,point:uniform@1,1,0,200000,5027454,5.000,1005453.0,0.952,1.296,1.648,170.860,0.959,5.000,1005551.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,24426068,5.000,4885006.7,1.552,2.208,2.976,118.408,1.571,39.996,610713.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1220121,5.000,244010.7,3.872,5.824,16.640,80.983,4.070,5.000,244037.4,0,0,0.00,0.00,3.680,5.568,3.887,nan,0.157,1220121,244010.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,9,0,0 +baseline,resident,0,0,range:uniform:10@1,1,0,200000,1023611,5.000,204711.1,4.672,9.856,16.640,81.699,4.857,5.000,204740.0,0,0,0.00,0.00,3.744,7.872,3.922,85.23,0.155,10235845,2047058.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,7372,5.000,1474.3,696.320,811.008,860.160,1058.460,678.133,5.000,1474.4,0,0,0.00,0.00,5.824,8.576,5.851,68.89,0.284,71919660,14383192.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,5751321,5.000,1150214.5,5.952,9.856,17.664,97.685,6.907,39.994,143806.2,0,0,0.00,0.00,5.696,9.344,6.502,nan,0.364,5751321,1150214.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,1,0,0 +baseline,resident,0,0,range:uniform:10@8,8,0,200000,4732487,5.000,946454.5,7.744,13.952,21.248,504.168,8.406,39.987,118349.4,0,0,0.00,0.00,5.824,10.368,6.628,154.52,0.366,47323706,9464311.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,19433,5.000,3886.4,1982.464,4653.056,4784.128,4803.534,2058.072,39.997,485.9,0,0,0.00,0.00,7.872,13.440,8.534,210.02,0.613,189602484,37918687.6,5.000,0.085,5.085,0.006,0,323584,nan,237375488,37408768,0.006,0,0,0,0,0 +candidate,resident,1,0,load:random@1,1,0,200000,200000,0.258,774695.5,0.632,2.784,5.184,42892.527,1.251,0.258,775293.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.258,0.104,0.362,0.024,0,25980928,0.7921,207360000,26128384,0.009,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.011,18367588.0,nan,nan,nan,0.000,nan,0.055,3639672.4,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,18367588.0,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.008,0,0,0,0,1 +candidate,resident,1,0,point:uniform@1,1,0,200000,5111205,5.000,1022208.4,0.936,1.264,1.488,144.962,0.941,5.000,1022191.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,22606277,5.000,4521061.6,1.648,2.592,5.696,150.967,1.693,39.992,565274.5,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1282282,5.000,256446.8,3.872,4.288,8.576,163.296,3.870,5.000,256457.2,0,0,0.00,0.00,3.616,4.064,3.651,nan,0.191,1282282,256446.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@1,1,0,200000,1047442,5.000,209481.4,4.672,6.336,9.600,53.512,4.744,5.000,209478.8,0,4096,0.00,0.00,3.680,4.544,3.713,91.72,0.191,10474142,2094758.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,6446,5.000,1289.1,778.240,942.080,1196.032,1975.063,775.591,4.995,1290.4,0,0,0.00,0.00,5.312,10.624,5.671,78.89,0.336,62880141,12575534.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,1,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,6103720,5.000,1220691.4,5.440,9.344,17.664,147.643,6.505,39.995,152613.1,0,0,0.00,0.00,5.056,8.832,6.050,nan,0.414,6103720,1220691.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@8,8,0,200000,4801534,5.000,960264.2,7.488,12.928,21.760,183.035,8.285,39.991,120066.1,0,4096,0.00,0.00,5.440,9.344,6.289,171.83,0.428,48014124,9602398.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,23000,5.000,4599.8,1490.944,4784.128,4915.200,5095.770,1739.195,39.992,575.1,0,0,0.00,0.00,7.104,13.696,7.733,177.25,0.624,224442924,44886164.7,5.000,0.068,5.069,0.013,0,323584,nan,207360000,26128384,0.008,0,0,0,0,0 +candidate,resident,2,0,load:random@1,1,1,200000,200000,0.253,789486.3,0.616,2.720,4.416,42710.370,1.228,0.253,789958.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.253,0.096,0.349,0.021,0,25980928,0.7921,207360000,26128384,0.009,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.012,17358297.9,nan,nan,nan,0.000,nan,0.047,4237647.3,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17358297.9,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,point:uniform@1,1,1,200000,5134547,5.000,1026841.3,0.920,1.296,2.720,161.135,0.937,5.000,1026891.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,23056572,5.000,4611111.2,1.616,2.336,4.672,185.357,1.664,40.026,576046.0,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,40,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1387714,5.000,277527.0,3.552,4.000,7.744,64.252,3.576,5.000,277540.9,0,0,0.00,0.00,3.360,3.808,3.388,nan,0.162,1387714,277527.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@1,1,1,200000,1152935,5.000,230573.9,4.288,5.696,8.832,651.890,4.309,4.999,230614.4,0,4096,0.00,0.00,3.360,3.808,3.412,80.11,0.162,11529050,2305678.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,7323,5.000,1464.6,696.320,729.088,778.240,876.514,682.787,5.000,1464.7,0,0,0.00,0.00,4.672,6.208,4.756,69.50,0.270,71428057,14285158.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,6446497,5.000,1289243.9,5.184,8.832,15.232,90.780,6.158,39.996,161176.6,0,0,0.00,0.00,4.928,8.320,5.723,nan,0.397,6446497,1289243.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@8,8,1,200000,5094898,5.000,1018933.5,6.976,12.160,18.688,2351.963,7.808,39.993,127393.8,0,4096,0.00,0.00,5.184,8.832,5.937,160.56,0.405,50947799,10189098.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,20036,5.000,4007.0,2129.920,4161.536,4259.840,4432.587,1996.158,39.997,500.9,0,0,0.00,0.00,6.336,10.880,6.893,203.75,0.583,195591520,39116301.8,5.000,0.050,5.050,0.012,0,323584,nan,207360000,26128384,0.007,0,0,0,0,0 +baseline,resident,3,0,load:random@1,1,1,200000,200000,0.252,794622.6,0.616,2.720,4.416,37924.337,1.220,0.252,794953.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.252,0.090,0.342,0.027,0,37261312,1.1360,237375488,37408768,0.008,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.015,13551920.4,nan,nan,nan,0.000,nan,0.059,3408722.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13551920.4,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.005,0,0,0,0,1 +baseline,resident,3,0,point:uniform@1,1,1,200000,5098004,5.000,1019568.1,0.936,1.264,1.552,62.858,0.946,5.000,1019620.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,24194047,5.000,4838605.4,1.552,2.208,2.784,77.426,1.585,39.997,604900.3,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1291253,5.000,258235.9,3.808,5.056,11.904,39.863,3.845,5.000,258246.2,0,0,0.00,0.00,3.616,4.800,3.670,nan,0.150,1291253,258235.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@1,1,1,200000,1054180,5.000,210825.0,4.672,6.336,9.600,37.830,4.715,5.000,210834.3,0,0,0.00,0.00,3.808,4.288,3.802,82.56,0.157,10541522,2108194.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,7254,5.000,1450.7,696.320,811.008,942.080,1084.494,689.275,4.999,1451.0,0,0,0.00,0.00,5.824,8.832,5.946,69.99,0.292,70794526,14158390.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,5801521,5.000,1160256.3,5.952,9.856,18.688,511.762,6.848,39.992,145067.8,0,0,0.00,0.00,5.568,9.344,6.451,nan,0.356,5801521,1160256.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,15,0,0 +baseline,resident,3,0,range:uniform:10@8,8,1,200000,4757030,5.000,951361.2,7.744,12.672,18.176,100.962,8.363,39.997,118935.2,0,0,0.00,0.00,5.824,9.344,6.525,160.82,0.370,47569095,9513371.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,19977,5.000,3995.2,1851.392,4259.840,4390.912,4465.066,2002.151,39.998,499.5,0,0,0.00,0.00,7.232,11.648,7.735,204.44,0.536,194757854,38949492.7,5.000,0.100,5.100,0.013,0,323584,nan,237375488,37408768,0.005,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/manifest.json b/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/manifest.json new file mode 100644 index 000000000..9ba380a6d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "nonlexical", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/0-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762334.2292933, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791762382.8055072, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/1-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762382.8061142, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791762431.4837275, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/2-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762431.484146, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791762480.1029687, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/3-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-nonlexical", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791762480.103382, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791762528.7290916, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/results.csv b/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/results.csv new file mode 100644 index 000000000..7155afd82 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,load:random@1,1,0,200000,200000,0.242,825505.0,0.584,2.592,5.056,36931.255,1.163,0.242,826111.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.242,0.157,0.399,0.024,0,37261312,1.1360,237375488,37408768,0.022,0,0,0,0,0 +baseline,resident,0,0,warm,8,0,200000,200000,0.022,9077724.1,nan,nan,nan,0.000,nan,0.095,2095842.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,9077724.1,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,point:uniform@1,1,0,200000,5334856,5.000,1066906.1,0.888,1.200,1.424,51.468,0.894,5.000,1067001.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,23660713,5.000,4731933.9,1.552,2.208,3.424,91.370,1.605,39.996,591574.5,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1268348,5.000,253661.3,3.872,4.800,8.320,81.829,3.904,5.000,253690.6,0,0,0.00,0.00,3.680,4.672,3.722,nan,0.155,1268348,253661.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@1,1,0,200000,1077502,5.000,215489.3,4.544,6.208,9.856,115.485,4.603,5.000,215505.2,0,0,0.00,0.00,3.616,4.160,3.652,87.10,0.154,10774728,2154834.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,6808,5.000,1361.5,745.472,794.624,860.160,990.088,734.356,5.000,1361.6,0,0,0.00,0.00,5.568,7.104,5.668,74.66,0.282,66433883,13286088.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,6324194,5.000,1264787.8,5.440,8.832,15.488,101.636,6.267,39.998,158114.1,0,0,0.00,0.00,5.184,8.320,5.899,nan,0.331,6324194,1264787.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@8,8,0,200000,4793878,5.000,958731.3,7.744,12.416,19.712,108.556,8.280,39.998,119854.3,0,0,0.00,0.00,5.568,9.088,6.316,175.14,0.368,47937569,9587071.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,4,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,24837,5.000,4967.2,1523.712,4653.056,5046.272,8357.935,1610.462,39.994,621.0,0,0,0.00,0.00,8.128,12.416,8.323,164.13,0.567,242279353,48453451.9,5.000,0.106,5.106,0.012,0,323584,nan,237375488,37408768,0.007,0,0,0,0,0 +candidate,resident,1,0,load:random@1,1,0,200000,200000,0.239,837685.0,0.568,2.592,4.544,36122.031,1.146,0.239,837738.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.239,0.163,0.402,0.023,0,37261312,1.1360,237375488,37408768,0.051,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.029,6932756.5,nan,nan,nan,0.000,nan,0.136,1469961.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,6932756.5,0.029,0.000,0.029,0.000,0,0,nan,0,0,0.040,0,0,0,0,2 +candidate,resident,1,0,point:uniform@1,1,0,200000,5226767,5.000,1045319.5,0.904,1.200,1.488,128.505,0.913,4.999,1045508.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,23509063,5.000,4701612.4,1.584,2.208,5.312,444.300,1.615,39.996,587785.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1254739,5.000,250934.5,3.936,4.416,8.320,33.389,3.947,5.000,250949.2,0,0,0.00,0.00,3.744,4.288,3.761,nan,0.159,1254739,250934.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@1,1,0,200000,1052371,5.000,210463.1,4.672,6.208,9.856,136.094,4.713,5.000,210478.1,0,0,0.00,0.00,3.744,4.160,3.746,88.18,0.159,10523432,2104575.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,6716,5.000,1343.2,761.856,811.008,860.160,1153.090,744.377,5.000,1343.2,0,0,0.00,0.00,5.696,7.104,5.753,75.68,0.277,65533889,13106368.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,5966447,5.000,1193239.7,5.824,9.344,15.488,101.131,6.637,39.998,149168.8,0,0,0.00,0.00,5.440,8.832,6.237,nan,0.359,5966447,1193239.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@8,8,0,200000,4820634,5.000,964087.1,7.360,12.672,19.712,88.657,8.236,39.998,120521.5,0,0,0.00,0.00,5.568,9.088,6.291,172.69,0.370,48205142,9640631.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,22502,5.000,4500.2,1622.016,4653.056,4915.200,4957.439,1777.292,39.998,562.6,0,0,0.00,0.00,7.744,12.160,8.168,181.45,0.564,219444000,43886662.2,5.000,0.104,5.104,0.013,0,323584,nan,237375488,37408768,0.040,0,0,0,0,0 +candidate,resident,2,0,load:random@1,1,1,200000,200000,0.239,837864.2,0.568,2.592,4.416,36068.875,1.146,0.239,837913.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.239,0.176,0.414,0.025,0,37261312,1.1360,237375488,37408768,0.041,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.019,10452486.0,nan,nan,nan,0.000,nan,0.088,2280579.7,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,10452486.0,0.019,0.000,0.019,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,point:uniform@1,1,1,200000,5223030,5.000,1044549.6,0.904,1.264,1.744,49.508,0.914,4.999,1044738.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,23712709,5.000,4742328.2,1.552,2.208,2.720,92.845,1.604,39.997,592861.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1304173,5.000,260821.6,3.680,4.288,28.928,38.995,3.798,5.000,260826.1,0,0,0.00,0.00,3.552,4.160,3.622,nan,0.151,1304173,260821.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@1,1,1,200000,1088889,5.000,217766.6,4.416,6.208,29.952,153.757,4.556,5.000,217776.1,0,0,0.00,0.00,3.552,4.064,3.601,87.65,0.152,10888598,2177608.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,6650,5.000,1329.9,761.856,860.160,1024.000,1112.175,751.858,5.000,1330.0,0,0,0.00,0.00,5.696,8.320,5.768,76.45,0.279,64891394,12977601.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,5999323,5.000,1199806.1,5.696,9.344,15.744,126.936,6.602,39.997,149993.6,0,0,0.00,0.00,5.440,8.832,6.205,nan,0.357,5999323,1199806.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@8,8,1,200000,4786477,5.000,957252.5,7.488,12.672,18.688,254.832,8.294,39.996,119674.5,0,4096,0.00,0.00,5.696,9.088,6.314,175.89,0.376,47863595,9572290.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,20010,5.000,4001.8,1523.712,4030.464,4096.000,4264.930,1998.823,39.996,500.3,0,0,0.00,0.00,6.976,12.160,7.556,204.07,0.545,195248007,39047849.6,5.000,0.076,5.077,0.005,0,323584,nan,237375488,37408768,0.041,0,0,0,0,0 +baseline,resident,3,0,load:random@1,1,1,200000,200000,0.248,806630.7,0.600,2.784,5.056,36215.146,1.190,0.248,806842.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.248,0.160,0.408,0.024,0,37261312,1.1360,237375488,37408768,0.018,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.036,5519552.1,nan,nan,nan,0.000,nan,0.158,1266399.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5519552.1,0.036,0.000,0.036,0.000,0,0,nan,0,0,0.041,0,0,0,0,1 +baseline,resident,3,0,point:uniform@1,1,1,200000,5290270,5.000,1057999.5,0.888,1.200,1.424,42.830,0.902,5.001,1057767.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,25035905,5.000,5006964.1,1.488,2.080,2.656,85.002,1.517,39.997,625951.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1266327,5.000,253255.6,3.872,4.928,8.832,34.150,3.910,5.000,253256.6,0,0,0.00,0.00,3.680,4.672,3.729,nan,0.153,1266327,253255.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@1,1,1,200000,1072989,5.000,214586.2,4.544,6.208,9.600,45.786,4.622,5.004,214421.7,0,0,0.00,0.00,3.616,4.160,3.663,88.23,0.152,10729600,2145803.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,6711,5.000,1342.1,761.856,909.312,1196.032,1459.046,744.966,5.000,1342.2,0,0,0.00,0.00,5.696,9.088,5.759,75.74,0.302,65492202,13097948.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,6130619,5.000,1226070.7,5.568,9.088,16.256,97.180,6.464,39.998,153274.9,0,0,0.00,0.00,5.312,8.576,6.085,nan,0.341,6130619,1226070.7,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@8,8,1,200000,4793071,5.000,958572.9,7.616,12.672,19.712,138.540,8.282,39.997,119837.2,0,0,0.00,0.00,5.568,9.088,6.313,175.67,0.368,47929518,9585491.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,22825,5.000,4564.8,1589.248,4784.128,4915.200,4953.734,1752.282,39.998,570.7,0,0,0.00,0.00,7.744,12.928,8.246,178.80,0.584,222582219,44514306.7,5.000,0.107,5.107,0.012,0,323584,nan,237375488,37408768,0.041,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-random/manifest.json b/benchmarks/branch-prefix-history/results-20261011/resident-random/manifest.json new file mode 100644 index 000000000..5b1fda53f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-random/manifest.json @@ -0,0 +1,427 @@ +{ + "pattern": "random", + "regime": "resident", + "io": "O_DIRECT", + "runs": [ + { + "index": 0, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/0-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761744.7202158, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791761793.3403068, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 1, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/1-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761793.3409536, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791761842.0734682, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 2, + "version": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/2-candidate.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/results.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761842.0739107, + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "6b4f7b374f7970aba6c302060d7423beb82a339194d3938ee1aea74b6bc1b896" + }, + "returncode": 0, + "finished": 1791761890.7501183, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + }, + { + "index": 3, + "version": "baseline", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/3-baseline.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random/results.csv", + "--vtag", + "baseline", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/branch-prefix/resident-random", + "load:random@1", + "warm", + "point:uniform@1", + "point:uniform@8", + "range:uniform:1@1", + "range:uniform:10@1", + "range:uniform:10000@1", + "range:uniform:1@8", + "range:uniform:10@8", + "range:uniform:10000@8" + ], + "started": 1791761890.7505662, + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840", + "build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/baseline/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "5f223e0567e75eff8dfe04cfb1015444d620be3839a829ba3e3ac44639cdb840" + }, + "returncode": 0, + "finished": 1791761939.4765873, + "db_allocated_bytes": 37408768, + "db_apparent_bytes": 237375488, + "preclose_live_extents": [ + 358, + 342 + ], + "preclose_branch_extents": [ + 258, + 0 + ] + } + ], + "source": "same generated kvbench source", + "loading_threads": 1 +} diff --git a/benchmarks/branch-prefix-history/results-20261011/resident-random/results.csv b/benchmarks/branch-prefix-history/results-20261011/resident-random/results.csv new file mode 100644 index 000000000..3d0c23504 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261011/resident-random/results.csv @@ -0,0 +1,41 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +baseline,resident,0,0,load:random@1,1,0,200000,200000,0.253,789356.6,0.584,2.656,4.288,35836.985,1.165,0.253,789886.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.253,0.109,0.363,0.026,0,37261312,1.1360,237375488,37408768,0.022,0,0,0,0,0 +baseline,resident,0,0,warm,8,0,200000,200000,0.040,5058335.9,nan,nan,nan,0.000,nan,0.145,1374929.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5058335.9,0.040,0.000,0.040,0.000,0,0,nan,0,0,0.010,0,0,0,0,2 +baseline,resident,0,0,point:uniform@1,1,0,200000,4967009,5.000,993349.6,0.904,1.200,1.456,48.788,0.907,5.000,993412.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,point:uniform@8,8,0,200000,23046686,5.000,4609127.9,1.552,2.208,2.784,89.922,1.597,39.997,576205.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@1,1,0,200000,1300433,5.000,260078.5,3.616,4.160,27.392,72.785,3.700,5.000,260096.2,0,0,0.00,0.00,3.488,3.936,3.527,nan,0.148,1300433,260078.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@1,1,0,200000,1097622,5.000,219515.9,4.288,6.080,29.440,43.068,4.459,5.000,219532.8,0,4096,0.00,0.00,3.488,3.936,3.525,85.89,0.148,10975928,2195100.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@1,1,0,200000,7048,5.000,1409.5,729.088,761.856,811.008,915.710,709.326,5.000,1409.6,0,0,0.00,0.00,5.696,6.976,5.679,72.12,0.265,68746797,13748619.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:1@8,8,0,200000,5965675,5.000,1193082.8,5.696,9.088,16.640,163.624,6.569,39.995,149158.7,0,0,0.00,0.00,5.440,8.576,6.174,nan,0.356,5965675,1193082.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10@8,8,0,200000,4791561,5.000,958270.6,7.232,12.672,19.712,87.503,8.231,39.999,119792.4,0,4096,0.00,0.00,5.568,9.088,6.309,170.68,0.365,47914342,9582452.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +baseline,resident,0,0,range:uniform:10000@8,8,0,200000,18565,5.000,3712.8,2392.064,4259.840,4390.912,4586.705,2154.341,40.001,464.1,0,0,0.00,0.00,7.616,12.416,8.023,219.93,0.560,181070929,36212241.9,5.000,0.113,5.114,0.012,0,323584,nan,237375488,37408768,0.010,0,0,0,0,0 +candidate,resident,1,0,load:random@1,1,0,200000,200000,0.254,788582.4,0.568,2.592,4.288,37302.283,1.169,0.254,788659.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.254,0.152,0.405,0.025,0,37261312,1.1360,237375488,37408768,0.044,0,0,0,0,0 +candidate,resident,1,0,warm,8,0,200000,200000,0.038,5252275.9,nan,nan,nan,0.000,nan,0.170,1177045.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5252275.9,0.038,0.000,0.038,0.000,0,0,nan,0,0,0.042,0,0,0,0,2 +candidate,resident,1,0,point:uniform@1,1,0,200000,5053047,5.000,1010576.8,0.888,1.200,1.456,30.700,0.893,5.000,1010562.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,0,200000,23189650,5.000,4637734.0,1.552,2.208,5.440,254.150,1.588,39.997,579789.6,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@1,1,0,200000,1292975,5.000,258586.6,3.744,4.416,8.320,33.184,3.750,5.000,258597.3,0,0,0.00,0.00,3.552,4.160,3.556,nan,0.167,1292975,258586.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@1,1,0,200000,1071350,5.000,214259.2,4.544,6.208,9.600,32.694,4.568,5.000,214263.4,0,0,0.00,0.00,3.552,4.000,3.553,92.63,0.166,10713210,2142534.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,0,200000,6596,5.000,1319.1,778.240,860.160,892.928,965.207,757.962,5.000,1319.2,0,0,0.00,0.00,5.440,7.104,5.537,77.12,0.304,64337051,12866689.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,0,200000,6207336,5.000,1241414.8,5.440,9.088,16.000,101.468,6.304,40.028,155074.1,0,0,0.00,0.00,5.056,8.576,5.880,nan,0.381,6207336,1241414.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10@8,8,0,200000,4880957,5.000,976147.1,6.976,12.672,19.712,151.200,8.074,39.995,122039.2,0,0,0.00,0.00,5.312,8.832,6.047,178.60,0.399,48808403,9761237.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.042,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,0,200000,19616,5.000,3923.0,1982.464,4521.984,4521.984,4681.172,2038.809,39.996,490.5,0,0,0.00,0.00,7.232,14.976,7.875,208.19,0.589,191403931,38278877.0,5.000,0.125,5.125,0.013,0,323584,nan,237375488,37408768,0.042,0,0,0,0,0 +candidate,resident,2,0,load:random@1,1,1,200000,200000,0.259,770875.1,0.584,2.656,4.288,38410.357,1.195,0.259,770810.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.259,0.159,0.418,0.023,0,37261312,1.1360,237375488,37408768,0.033,0,0,0,0,0 +candidate,resident,2,0,warm,8,1,200000,200000,0.020,9922779.9,nan,nan,nan,0.000,nan,0.088,2271952.7,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,9922779.9,0.020,0.000,0.020,0.000,0,0,nan,0,0,0.040,0,0,0,0,2 +candidate,resident,2,0,point:uniform@1,1,1,200000,5000580,5.000,1000082.3,0.888,1.232,1.424,140.162,0.906,5.000,1000146.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,1,200000,23321331,5.000,4664072.3,1.552,2.208,5.184,510.708,1.587,39.994,583115.9,0,4096,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@1,1,1,200000,1292256,5.000,258438.1,3.680,4.800,8.320,141.397,3.754,5.000,258457.8,0,0,0.00,0.00,3.488,4.544,3.560,nan,0.167,1292256,258438.1,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@1,1,1,200000,1074232,5.000,214835.5,4.544,6.208,9.600,54.210,4.563,5.000,214838.0,0,0,0.00,0.00,3.552,4.000,3.550,92.39,0.166,10742030,2148297.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,1,200000,6623,5.000,1324.5,778.240,811.008,843.776,906.170,754.830,5.000,1324.6,0,0,0.00,0.00,5.440,6.720,5.485,76.80,0.295,64607051,12920760.6,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,1,200000,6401888,5.000,1280319.5,5.184,8.576,14.976,83.083,6.121,39.998,160055.6,0,0,0.00,0.00,4.928,8.128,5.711,nan,0.368,6401888,1280319.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10@8,8,1,200000,4792633,5.000,958485.7,7.360,12.928,20.224,118.896,8.228,39.997,119824.0,0,4096,0.00,0.00,5.312,9.088,6.139,184.70,0.406,47925090,9584609.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,1,200000,17444,5.000,3488.6,2326.528,4521.984,4653.056,4753.799,2292.838,39.997,436.1,0,0,0.00,0.00,7.872,12.416,8.305,234.19,0.656,170093085,34016821.6,5.000,0.100,5.100,0.012,0,323584,nan,237375488,37408768,0.040,0,0,0,0,0 +baseline,resident,3,0,load:random@1,1,1,200000,200000,0.252,794015.2,0.584,2.592,4.288,35762.922,1.161,0.252,793849.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.252,0.168,0.420,0.025,0,37261312,1.1360,237375488,37408768,0.025,0,0,0,0,0 +baseline,resident,3,0,warm,8,1,200000,200000,0.052,3853674.6,nan,nan,nan,0.000,nan,0.214,934230.2,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,3853674.6,0.052,0.000,0.052,0.000,0,0,nan,0,0,0.040,0,0,0,0,1 +baseline,resident,3,0,point:uniform@1,1,1,200000,5036920,5.000,1007343.6,0.888,1.232,1.616,211.877,0.899,5.000,1007409.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,point:uniform@8,8,1,200000,23313709,5.000,4662545.3,1.552,2.144,2.528,144.444,1.585,39.998,582878.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@1,1,1,200000,1267616,5.000,253515.5,3.808,4.288,8.320,33.579,3.833,5.000,253516.2,0,0,0.00,0.00,3.616,4.160,3.652,nan,0.154,1267616,253515.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@1,1,1,200000,1070269,5.000,214042.7,4.544,6.208,9.856,74.686,4.588,5.000,214061.9,0,0,0.00,0.00,3.616,4.672,3.646,85.91,0.155,10702400,2140368.8,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@1,1,1,200000,7002,5.000,1400.3,729.088,761.856,811.008,886.602,713.980,5.000,1400.4,0,0,0.00,0.00,5.568,6.848,5.592,72.61,0.261,68298809,13659027.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:1@8,8,1,200000,6310900,5.000,1262128.3,5.312,8.832,15.744,89.323,6.219,39.998,157779.4,0,0,0.00,0.00,5.056,8.320,5.845,nan,0.337,6310900,1262128.3,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10@8,8,1,200000,5015406,5.000,1003038.8,6.976,12.160,18.688,86.911,7.874,39.998,125391.7,0,0,0.00,0.00,5.312,8.576,6.008,165.79,0.354,50152849,10030146.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +baseline,resident,3,0,range:uniform:10000@8,8,1,200000,17961,5.000,3592.0,1884.160,5832.704,5963.776,6156.402,2226.778,39.999,449.0,0,0,0.00,0.00,7.360,12.672,7.954,227.49,0.588,175226858,35043687.5,5.000,0.108,5.109,0.012,0,323584,nan,237375488,37408768,0.040,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/.gitattributes b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/.gitattributes new file mode 100644 index 000000000..b56614d96 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/.gitattributes @@ -0,0 +1,3 @@ +*.csv whitespace=cr-at-eol +*.patch -whitespace +*.log -whitespace diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/README.md b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/README.md new file mode 100644 index 000000000..46e6e0cd0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/README.md @@ -0,0 +1,11 @@ +# branch-prefix: main integration evidence + +Source merge: `3024eec0dda2d74ae6ee96adbaffcdf465585a38`; main: `7bb5fab305b9c6179e31f75998dabea833537a08`. + +[Correctness checks](tests/README.md) include exact commands, hashes and retained initial failures. [Benchmark report](benchmarks/report.md), [project summary](benchmarks/summary.csv), and [verification status](benchmarks/status.json) describe the fresh real-disk screening. + +Common-prefix resident point throughput improved 10.61%, while the random-key resident long-range workload lost 10.88%, both with non-overlapping sample ranges. Common-prefix disk long-range throughput improved about 14.4%. The experiment retains a workload-dependent cost; it is not performance neutral. + +The campaign ran 133 comparison processes, 12 fixture creators and one recorded warmup through 11 exclusive jobs. These compare each updated feature with main; they do not isolate merge cost. Main controls drifted; sample-range overlap is descriptive, not a statistical confidence interval. Query/hash/barrier runs validate data, while insert-only runs check API returns, positive counts and successful close without readback. All benchmark databases were on ext4 `/dev/mapper/snafu-root_crypt` with O_DIRECT and fsynced fixture copies. + +`tests/archive-manifest.json` and `benchmarks/inventory.json` verify the small archived files. No database images, executables or core dumps are committed. Archived scripts retain original paths and must be adapted before replay outside the original campaign. diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.json new file mode 100644 index 000000000..188de621f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.json @@ -0,0 +1,90 @@ +{ + "complete": true, + "scope": "new main versus updated feature; merge cost not isolated", + "counts": { + "fixtures": { + "runs": 12, + "runner": "run_matrix-fixtures.py", + "verified": true + }, + "resident": { + "runs": 23, + "runner": "run_matrix.py", + "verified": true + }, + "disk": { + "runs": 23, + "runner": "run_matrix.py", + "verified": true + }, + "prefix-resident-common": { + "runs": 4, + "runner": "run_matrix.py", + "verified": true + }, + "prefix-resident-random": { + "runs": 4, + "runner": "run_matrix.py", + "verified": true + }, + "prefix-disk-common": { + "runs": 4, + "runner": "run_matrix.py", + "verified": true + }, + "prefix-disk-random": { + "runs": 4, + "runner": "run_matrix.py", + "verified": true + }, + "insert": { + "runs": 31, + "runner": "run_matrix.py", + "verified": true + }, + "hash": { + "runs": 4, + "runner": "run_matrix.py", + "verified": true + }, + "barrier": { + "runs": 24, + "runner": "run_matrix.py", + "verified": true + }, + "repeat-warmup": { + "runs": 1, + "runner": "repeat.py", + "verified": true + }, + "repeat-cache-invalid-addresses": { + "runs": 4, + "runner": "repeat.py", + "verified": true + }, + "repeat-directory-bucket-atomic": { + "runs": 4, + "runner": "repeat.py", + "verified": true + }, + "repeat-async-durable-barrier": { + "runs": 4, + "runner": "repeat.py", + "verified": true + } + }, + "total_processes": 146, + "comparison_processes": 133, + "fixture_processes": 12, + "recorded_warmup_processes": 1, + "exclusive_benchmark_jobs": 11, + "source_and_binary_hashes_verified": true, + "runner_hashes_verified": true, + "all_processes_serial": true, + "no_overlapping_build_test_jobs": true, + "resident_physical_read_bytes": 0, + "errors": 0, + "violations": 0, + "insert_verification": "API return, positive insert count and successful close; no readback", + "storage": "ext4 /dev/mapper/snafu-root_crypt; O_DIRECT; fsynced fixture copies" +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.py new file mode 100644 index 000000000..ad764439d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.py @@ -0,0 +1,62 @@ +"""Validate final matrix coverage, provenance, row counts and exclusive scheduling.""" +import csv,hashlib,json +from pathlib import Path +C=Path(__file__).resolve().parent +P=C.parents[2] +O=P/'benchmarks/main-7bb5fab' +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def readcsv(p):return list(csv.DictReader(p.open())) +expected={'fixtures':12,'resident':23,'disk':23,'prefix-resident-common':4,'prefix-resident-random':4,'prefix-disk-common':4,'prefix-disk-random':4,'insert':31,'hash':4,'barrier':24,'repeat-warmup':1,'repeat-cache-invalid-addresses':4,'repeat-directory-bucket-atomic':4,'repeat-async-durable-barrier':4} +known_runner_hashes={sha(C/n):n for n in ['run_matrix.py','run_matrix-fixtures.py','repeat.py']} +builds={p.name.removesuffix('-build.json'):json.loads(p.read_text()) for p in C.glob('*-build.json')} +for profile,b in builds.items(): + assert sha(Path(b['library']))==b['library_sha256'],profile + for f,h in b['source_files_sha256'].items():assert sha(Path(b['tree'])/f)==h,(profile,f) + for exe,v in b['binaries'].items(): + assert sha(Path(v['binary']))==v['binary_sha256'] + assert sha(Path(v['source']))==v['source_sha256'] +runs=[];counts={} +for mode,count in expected.items(): + folder=O/mode;m=json.loads((folder/'manifest.json').read_text()) + assert m['complete'] and len(m['runs'])==count,mode + assert m['runner_sha256'] in known_runner_hashes,mode + if 'shared_runner_sha256' in m:assert m['shared_runner_sha256']==sha(C/'run_matrix.py') + for r in m['runs']: + assert r['verified'] and r['returncode']==0,(mode,r['label']) + log=folder/(r['label']+'.log');assert sha(log)==r['log_sha256'] + assert 'FINDING: splinterdb_close' not in log.read_text(errors='replace') + b=builds[r['profile']];assert r['source_head']==b['head'] and r['library_sha256']==b['library_sha256'] + assert r['binary_sha256'] in {v['binary_sha256'] for v in b['binaries'].values()} + assert r['finished']>=r['started'] and r['process_cpu_s']>0 + runs.append(dict(mode=mode,label=r['label'],started=r['started'],finished=r['finished'])) + counts[mode]=dict(runs=count,runner=known_runner_hashes[m['runner_sha256']],verified=True) + if (folder/'results.csv').exists(): + rows=readcsv(folder/'results.csv') + if 'phase' in rows[0]: + for r in rows: + assert int(r['errors'])==0 and int(r['violations'])==0 and int(r['ops'])>0 + if r['phase']=='warm':assert int(r['ops'])==int(r['n']) + elif mode=='resident' or mode.startswith('repeat-'):assert int(r['rd_bytes'])==0 + if mode=='barrier':assert len(rows)==count and all(int(r['verified'])==1 for r in rows) + if mode=='insert':assert len(rows)==count and all(int(r['errors'])==0 and int(r['violations'])==0 and int(r['inserted'])>0 for r in rows) + if mode=='fixtures': + for r in m['runs']: + rows=readcsv(folder/(r['label']+'.csv'));assert len(rows)==1 and int(rows[0]['ops'])==int(rows[0]['n']) and int(rows[0]['errors'])==int(rows[0]['violations'])==0 + if mode=='hash': + for r in m['runs']:assert [int(x['limit']) for x in r['rows']]==[1,2,10,100] and all(int(x['queries'])==1000 for x in r['rows']) + for i in range(4):assert len({r['rows'][i]['checksum'] for r in m['runs']})==1 +runs.sort(key=lambda r:r['started']) +assert all(a['finished']<=b['started'] for a,b in zip(runs,runs[1:])), 'Benchmark subprocesses overlap' +jobs=[json.loads(line) for line in (P/'coordination/jobs.jsonl').read_text().splitlines()] +ours=[j for j in jobs if j['mode']=='benchmark' and j['name'].startswith('main-7bb5fab-benchmark-')] +assert len(ours)==11 and all(j['mode']=='benchmark' and j['returncode']==0 for j in ours) +for j in ours: + for k in jobs: + if j is k:continue + assert min(j['finished'],k['finished'])<=max(j['started'],k['started']),(j['name'],k['name']) +for r in runs:assert sum(j['started']<=r['started'] and j['finished']>=r['finished'] for j in ours)==1 +(C/'run_job.py').write_bytes((P/'coordination/run_job.py').read_bytes()) +(C/'benchmark-jobs.json').write_text(json.dumps(ours,indent=2)+'\n') +result=dict(complete=True,scope='new main versus updated feature; merge cost not isolated',counts=counts,total_processes=len(runs),comparison_processes=len(runs)-13,fixture_processes=12,recorded_warmup_processes=1,exclusive_benchmark_jobs=len(ours),source_and_binary_hashes_verified=True,runner_hashes_verified=True,all_processes_serial=True,no_overlapping_build_test_jobs=True,resident_physical_read_bytes=0,errors=0,violations=0,insert_verification='API return, positive insert count and successful close; no readback',storage='ext4 /dev/mapper/snafu-root_crypt; O_DIRECT; fsynced fixture copies') +(C/'audit.json').write_text(json.dumps(result,indent=2)+'\n') +print(json.dumps(result,indent=2)) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/benchmark-jobs.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/benchmark-jobs.json new file mode 100644 index 000000000..079868d9d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/benchmark-jobs.json @@ -0,0 +1,167 @@ +[ + { + "name": "main-7bb5fab-benchmark-fixtures", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "fixtures" + ], + "started": 1791905953.791713, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791905996.8644083 + }, + { + "name": "main-7bb5fab-benchmark-resident", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "resident" + ], + "started": 1791906087.9268048, + "pid": 5, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791906898.088736 + }, + { + "name": "main-7bb5fab-benchmark-disk", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "disk" + ], + "started": 1791906929.7655535, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791907361.8222167 + }, + { + "name": "main-7bb5fab-benchmark-prefix", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "prefix" + ], + "started": 1791907361.8244245, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791907746.3817344 + }, + { + "name": "main-7bb5fab-benchmark-insert", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "insert" + ], + "started": 1791907746.3838046, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791907918.6362858 + }, + { + "name": "main-7bb5fab-benchmark-hash", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "hash" + ], + "started": 1791907918.6382897, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791907922.146424 + }, + { + "name": "main-7bb5fab-benchmark-barrier", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/run_matrix.py", + "barrier" + ], + "started": 1791908012.5013723, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791908144.8841226 + }, + { + "name": "main-7bb5fab-benchmark-repeat-warmup", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/repeat.py", + "warmup" + ], + "started": 1791908144.8859186, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791908167.146525 + }, + { + "name": "main-7bb5fab-benchmark-repeat-invalid", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/repeat.py", + "cache-invalid-addresses" + ], + "started": 1791908236.5269575, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791908369.5229552 + }, + { + "name": "main-7bb5fab-benchmark-repeat-atomic", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/repeat.py", + "directory-bucket-atomic" + ], + "started": 1791908442.7619998, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791908531.8354392 + }, + { + "name": "main-7bb5fab-benchmark-repeat-async", + "mode": "benchmark", + "cwd": "/home/rob/projects/splinterdb", + "command": [ + "python3", + ".cache/projects-20261011/coordination/main-7bb5fab/benchmarks/repeat.py", + "async-durable-barrier" + ], + "started": 1791908542.3013017, + "pid": 3, + "db_dir": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab", + "returncode": 0, + "finished": 1791908631.2491326 + } +] diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/branch-prefix-build.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/branch-prefix-build.json new file mode 100644 index 000000000..d0923473a --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/branch-prefix-build.json @@ -0,0 +1,231 @@ +{ + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/lib/libsplinterdb.a", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "binaries": { + "kvbench": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/kvbench", + "binary_sha256": "c5b7993b93aa17de1bf50fc7ac90fc86895a2cfc59cb45509475154e5e7cbf3c", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + }, + "insert_benchmark": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/insert_benchmark", + "binary_sha256": "92cebc8480a0006bfcb8803338c1a7002910d00531eccc6f8eb367a21051010a", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/insert_benchmark.c", + "source_sha256": "75acbda52b2a8949f1d61710a8d89250d4dac63b12ec9803b89170f9c2cc0b26" + }, + "prefix_kvbench": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/prefix_kvbench.c", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51" + } + }, + "source_files_sha256": { + "include/splinterdb/data.h": "58b47863d92bea53e50ff28d97d594b05675e122a6d7193fdfb19f5deda4df4d", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "364073691c390663f6b732f57c3ee4bfecc9f68aca33ef6750d6106e04462dc8", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "bc0621be7903d64e25059140005dafeea3f2a4a4ae0e658686501e52e4be934f", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "7d46871423a15992f697cabb363316183cb842a11c26017f8566267174e5ae45", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "2c26b56a2c779faec79eccf7928032204d5907687e63455850eeb51e0ee106c3", + "src/btree.h": "47789ba7191a88faa21ae5b13fa02f7ab59dd698b2207654fe5fcaf422ecbc87", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "70caf9f8d7794dea8d2aeec339883ccfcfdfc29ce6c2e1edd2d0353c4a3975ea", + "src/core.h": "7cf4d086f6d4dcaa4cbd161fef786dbe3cc502ced4512b7fe547c2aa2020462e", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "49a2b0aec91a1c40784b8b3b54f016ef5504c79492b1393674123e27656a09bb", + "src/log_data.h": "06ab1d39b77abb01ec66a901fa52354908be26db8daef52899f5c03a6db2462e", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "df98421e597d1edeac871755f0473055b590791af8efad495575d20260e46a12", + "src/merge.h": "c17e2a0b6272ec52e6d1e80acd9df7dc85221f186e6c60e323c37b467dc5c41a", + "src/mini_allocator.c": "d9444da13fca2000f4128500b84be2b778300a4befc93f72e52b071b83c6491e", + "src/mini_allocator.h": "8d5242f5e4df5443baeab7a494a3c3b2f1491216abfd914c6dbc273370e45683", + "src/notification.c": "2f3bcda49d8ce35ad532fef8ec8f4aeca48bec280cdf6210c21d55cf2aa4a661", + "src/notification.h": "47eb73f5813d6f54658f339ce44d6a475f8f64f2b2eb6368261e839a090f083f", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "a145d39af39caf9dec6f1e1e24b6606ed615587d8dee52a23e0df410b2d07545", + "src/rc_allocator.h": "65f01decb7244b8f6a6c9e7acb47d4ccb4f2f3f369461e70aff33211f03ee39b", + "src/routing_filter.c": "3e722a880217cc4f5831f162dd6b3853a5d0d3f67ca3d3421b2144650657f73a", + "src/routing_filter.h": "579a3a4cc00b9cb125479b23eaa93e4a8309a195fe4082d988b629d4b95a2c91", + "src/shard_log.c": "ed1fcdb429d4fc26382546ecbce04154910275494e9fef522cf34b647cf5e734", + "src/shard_log.h": "07c5867b959eefd35e3e9f08e6c015a594f6331850844590e9c2b1126cd2716b", + "src/splinterdb.c": "e054c2dc9224c7de8bdb63206bb5150947f853d903e3b8012ba46fe1a66dba5f", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "34dd4c724e53c98f170c024c70dd22dae0a466806c167134200f92128420dfba", + "src/superblock.h": "cee4253a99b71e75e67d2d5abc28e2eb34faec5a3297cd0371b67ec66a3dbc6c", + "src/task.c": "35886e598b4464af16e76497917955d3d55c6c077fbcf80fb3fd2284c8ddc08d", + "src/task.h": "35405e04fbdcef9bc5c5d6ef43debc4b0889d6bc4d8d530649b0c45a34012825", + "src/trunk.c": "892373ec383717289a6220b4351b670637e7c41877a97eb0edcb27a9e4e270f2", + "src/trunk.h": "05c5c5313f5a42b68482d03b58d2f17081c6da468a0ce888b0b0b38cc069baf2", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9" + }, + "library_build_configuration": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": { + "sha256": "19ceedfc17adeaaf3fc4d1a84ef3508a897c35ff28a12b03c4400bb602180354", + "text": "BUILD_ROOT=build-main-7bb5fab\nMAKEFLAGS= -j8 --jobserver-auth=fifo:/tmp/splinter-main-7bb5fab-prefix-release-build-gcmpao4r/GMfifo7 -- BUILD_MODE=release BUILD_ROOT=build-main-7bb5fab\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/build_all.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/build_all.py new file mode 100644 index 000000000..f3e172154 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/build_all.py @@ -0,0 +1,44 @@ +import hashlib,json,subprocess,sys +from pathlib import Path +ROOT=Path('/home/rob/projects/splinterdb') +CAMP=ROOT/'.cache/projects-20261011' +OUT=Path(__file__).resolve().parent +SOURCES=OUT/'sources' +def sha(p):return hashlib.sha256(Path(p).read_bytes()).hexdigest() +profiles={'main':(ROOT,'build-main-7bb5fab')} +for name in ['disk-format','filtered-ranges','log-group-limit','branch-prefix','lazy-merge','async-durable-barrier','cache-invalid-addresses']: + profiles[name]=(CAMP/'worktrees'/name,'build-main-7bb5fab') +for opt in ['direct','bucket','bucket-simd','bucket-atomic']: + profiles['directory-'+opt]=(CAMP/'worktrees/cache-directory',f'build-main-7bb5fab/{opt}') +flags=['cc','-D_GNU_SOURCE','-ggdb','-Wall','-pthread','-Werror','-DXXH_STATIC_LINKING_ONLY','-fPIC','-DSPLINTERDB_PLATFORM_DIR=platform_linux','-O3','-ffast-math','-flto','-march=native'] +manifest={} +for name,(tree,buildroot) in profiles.items(): + if len(sys.argv)>1 and name not in sys.argv[1:]:continue + head=subprocess.check_output(['git','rev-parse','HEAD'],cwd=tree,text=True).strip() + subprocess.run(['git','merge-base','--is-ancestor','7bb5fab',head],cwd=tree,check=True) + lib=tree/buildroot/'release/lib/libsplinterdb.a' + header=(tree/'include/splinterdb/splinterdb.h').read_text() + record=dict(tree=str(tree),head=head,library=str(lib),library_sha256=sha(lib),binaries={},source_files_sha256={}) + for filename in subprocess.check_output(['git','ls-files','src','include'],cwd=tree,text=True).splitlines(): + if (tree/filename).is_file():record['source_files_sha256'][filename]=sha(tree/filename) + bins=['kvbench','insert_benchmark'] + if name in ['main','branch-prefix']:bins+=['prefix_kvbench'] + if name in ['main','filtered-ranges']:bins+=['hash_range_benchmark'] + if name in ['main','async-durable-barrier']:bins+=['barrier_bench'] + for binaryname in bins: + source=SOURCES/(binaryname+'.c');binary=OUT/'bin'/name/binaryname;binary.parent.mkdir(parents=True,exist_ok=True) + macros=[] + if binaryname in ['kvbench','prefix_kvbench']:macros+=['-DKVBENCH_CLOSE_HAS_FORCE'] + if binaryname=='prefix_kvbench': + macros+=['-DKVBENCH_SPACE_MODE'] + if name=='branch-prefix':macros+=['-DKVBENCH_PREFIX_SUPPORT'] + if binaryname=='hash_range_benchmark' and name=='filtered-ranges':macros+=['-DHASH_RANGE_FILTER_API'] + if binaryname=='insert_benchmark' and name!='log-group-limit':macros+=['-DKVBENCH_NO_LOG_GROUP_LIMIT'] + if '#define SPLINTERDB_NOTIFICATION_BLOCKING' in header:macros+=['-DHAVE_SENTINEL_NOTIFICATION','-DHAVE_ASYNC_BARRIER'] + command=flags+macros+['-I',str(tree/'include'),'-I',str(tree/'src'),'-I',str(tree/'src/platform_linux'),str(source),str(lib),'-laio','-lxxhash','-lm','-lpthread','-o',str(binary)] + print('build',name,binaryname,flush=True) + subprocess.run(command,check=True) + record['binaries'][binaryname]=dict(command=command,binary=str(binary),binary_sha256=sha(binary),source=str(source),source_sha256=sha(source)) + (OUT/(name+'-build.json')).write_text(json.dumps(record,indent=2)+'\n') + manifest[name]=record +(OUT/'builds-last.json').write_text(json.dumps(manifest,indent=2)+'\n') diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/control-drift.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/control-drift.csv new file mode 100644 index 000000000..cfb613d57 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/control-drift.csv @@ -0,0 +1,69 @@ +workload,phase,order,ops_s,change_from_first_pct,cpu_us_op,read_bytes +repeat-warmup,point:uniform@8,0,5725282.1,0.0,1.397020051521282,0 +repeat-warmup,range:uniform:1@8,0,531558.3,0.0,15.047298523902287,0 +repeat-directory-bucket-atomic,point:uniform@8,0,6058373.4,0.0,1.320094818123589,0 +repeat-directory-bucket-atomic,point:uniform@8,3,5103421.5,-15.762513086433405,1.5670903540638217,0 +repeat-directory-bucket-atomic,range:uniform:1@8,0,566747.0,0.0,14.112342596291334,0 +repeat-directory-bucket-atomic,range:uniform:1@8,3,498451.0,-12.050526954708186,16.044938184918625,0 +disk,point:uniform@8,0,153061.5,0.0,5.361065052728681,2471006208 +disk,point:uniform@8,11,162899.9,6.427743096729088,6.005865909099279,2630258688 +disk,point:uniform@8,22,168110.0,9.831668969662521,6.042270913585652,2714718208 +disk,range:uniform:1@8,0,63458.1,0.0,132.9297233243934,6286577664 +disk,range:uniform:1@8,11,63625.4,0.2636385268389718,133.28995634011335,6302711808 +disk,range:uniform:1@8,22,64975.4,2.391026519861139,130.54799748839613,6439641088 +disk,range:uniform:10000@8,0,841.4,0.0,3017.1143332541005,9990152192 +disk,range:uniform:10000@8,11,835.2,-0.7368671262181992,3448.754789272031,9911496704 +disk,range:uniform:10000@8,22,840.0,-0.16638935108153063,3655.0,9932713984 +repeat-async-durable-barrier,point:uniform@8,0,5568429.8,0.0,1.4363332788847318,0 +repeat-async-durable-barrier,point:uniform@8,3,4940084.1,-11.284073294773334,1.6189229334750765,0 +repeat-async-durable-barrier,range:uniform:1@8,0,506930.4,0.0,15.778718800936517,0 +repeat-async-durable-barrier,range:uniform:1@8,3,489239.4,-3.4898281894319205,16.345419991652534,0 +prefix-resident-common,point:uniform@8,0,3798858.3,0.0,2.105459146011521,0 +prefix-resident-common,point:uniform@8,3,3979950.2,4.767008550963858,2.009371623828547,0 +prefix-resident-common,range:uniform:1@8,0,992358.5,0.0,8.06011032205677,0 +prefix-resident-common,range:uniform:1@8,3,996704.2,0.43791633769447724,8.02499213268852,0 +prefix-resident-common,range:uniform:10000@8,0,3472.3,0.0,2305.0155987521,0 +prefix-resident-common,range:uniform:10000@8,3,3609.2,3.9426316850502463,2216.3834503140006,0 +prefix-resident-common,ow:uniform@8,0,2274316.9,0.0,3.0310520336583586,2005544960 +prefix-resident-common,ow:uniform@8,3,2304559.8,1.3297575197194433,3.037911263890554,2003456000 +resident,point:uniform@1,0,1261757.3,0.0,0.79252082249396,0 +resident,point:uniform@1,11,1152531.0,-8.656680646904125,0.8676282687172,0 +resident,point:uniform@1,22,1148133.5,-9.005202506060407,0.8709404196916726,0 +resident,point:uniform@8,0,6445634.1,0.0,1.2407480739199983,0 +resident,point:uniform@8,11,5270841.2,-18.22618041567081,1.5171993153252339,0 +resident,point:uniform@8,22,5463995.8,-15.229507055015734,1.4638320892600838,0 +resident,range:uniform:1@1,0,114690.1,0.0,8.718775883865906,0 +resident,range:uniform:1@1,11,105447.5,-8.058760084785,9.481407022468359,0 +resident,range:uniform:1@1,22,105112.6,-8.350764364143027,9.519536136660204,0 +resident,range:uniform:1@8,0,600376.6,0.0,13.32092671033598,0 +resident,range:uniform:1@8,11,532530.7,-11.300557017045643,15.020171795914191,0 +resident,range:uniform:1@8,22,549552.3,-8.465403215248546,14.554061799643964,0 +resident,range:uniform:10000@8,0,4305.3,0.0,1857.8562304029729,0 +resident,range:uniform:10000@8,11,3785.8,-12.06652265811906,2112.651875330164,0 +resident,range:uniform:10000@8,22,3929.7,-8.724130722597733,2035.4552780016115,0 +repeat-cache-invalid-addresses,point:uniform@1,0,1237297.9,0.0,0.8081970578394306,0 +repeat-cache-invalid-addresses,point:uniform@1,3,1167884.0,-5.610120246708572,0.8562318264794829,0 +repeat-cache-invalid-addresses,point:uniform@8,0,6207307.6,0.0,1.2885781245675567,0 +repeat-cache-invalid-addresses,point:uniform@8,3,5328062.8,-14.164672619091723,1.5011880792761536,0 +repeat-cache-invalid-addresses,range:uniform:1@8,0,546650.2,0.0,14.631325678521693,0 +repeat-cache-invalid-addresses,range:uniform:1@8,3,516913.3,-5.439840687884134,15.472656757810807,0 +prefix-disk-random,point:uniform@8,0,135623.0,0.0,6.979415663796549,2392637440 +prefix-disk-random,point:uniform@8,3,173077.1,27.616333512752256,6.5078303110978615,3054764032 +prefix-disk-random,range:uniform:1@8,0,56431.4,0.0,148.08803203742426,3998134272 +prefix-disk-random,range:uniform:1@8,3,70766.5,25.402701332945842,118.96633582781307,5010862080 +prefix-disk-random,range:uniform:10000@8,0,813.8,0.0,3910.2973703612683,10312994816 +prefix-disk-random,range:uniform:10000@8,3,912.4,12.11599901695748,3859.710653222271,11551866880 +prefix-disk-common,point:uniform@8,0,166767.1,0.0,6.629322760954632,2942513152 +prefix-disk-common,point:uniform@8,3,137171.0,-17.74696567848215,6.595905989385899,2419056640 +prefix-disk-common,range:uniform:1@8,0,67364.5,0.0,124.38620345685463,4767051776 +prefix-disk-common,range:uniform:1@8,3,56813.9,-15.661958449925406,147.16173499200934,4020363264 +prefix-disk-common,range:uniform:10000@8,0,899.2,0.0,3836.7437722419927,11408752640 +prefix-disk-common,range:uniform:10000@8,3,812.8,-9.608540925266917,3834.399606299213,10284527616 +prefix-resident-random,point:uniform@8,0,4089596.1,0.0,1.955655773286237,0 +prefix-resident-random,point:uniform@8,3,3861855.4,-5.568782208101187,2.0713343968861757,0 +prefix-resident-random,range:uniform:1@8,0,987903.4,0.0,8.096649643019639,0 +prefix-resident-random,range:uniform:1@8,3,1027722.4,4.0306572484718695,7.782304346965907,0 +prefix-resident-random,range:uniform:10000@8,0,4617.6,0.0,1732.1976395856643,0 +prefix-resident-random,range:uniform:10000@8,3,4063.2,-12.006237006237019,1968.7448728465956,0 +prefix-resident-random,ow:uniform@8,0,2181154.0,0.0,3.049805026119027,1722953728 +prefix-resident-random,ow:uniform@8,3,2346979.3,7.602640620515544,3.0134031679362994,2000707584 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/feature-summaries.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/feature-summaries.json new file mode 100644 index 000000000..4d9a23e69 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/feature-summaries.json @@ -0,0 +1,354 @@ +{ + "hash": [ + { + "profile": "main", + "limit": 1, + "samples": 2, + "ns_per_query_mean": 27787.25, + "ns_per_query_min": 26622.0, + "ns_per_query_max": 28952.5, + "latency_delta_main_pct": 0.0, + "visited_mean": 16404.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "filtered-ranges", + "limit": 1, + "samples": 2, + "ns_per_query_mean": 26204.55, + "ns_per_query_min": 25561.8, + "ns_per_query_max": 26847.3, + "latency_delta_main_pct": -5.6957777397907305, + "visited_mean": 1000.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "main", + "limit": 2, + "samples": 2, + "ns_per_query_mean": 24743.4, + "ns_per_query_min": 23851.0, + "ns_per_query_max": 25635.8, + "latency_delta_main_pct": 0.0, + "visited_mean": 48404.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "filtered-ranges", + "limit": 2, + "samples": 2, + "ns_per_query_mean": 20609.85, + "ns_per_query_min": 20525.1, + "ns_per_query_max": 20694.6, + "latency_delta_main_pct": -16.70566696573633, + "visited_mean": 2000.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "main", + "limit": 10, + "samples": 2, + "ns_per_query_mean": 33161.2, + "ns_per_query_min": 32551.2, + "ns_per_query_max": 33771.2, + "latency_delta_main_pct": 0.0, + "visited_mean": 304404.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "filtered-ranges", + "limit": 10, + "samples": 2, + "ns_per_query_mean": 33346.8, + "ns_per_query_min": 33010.8, + "ns_per_query_max": 33682.8, + "latency_delta_main_pct": 0.5596902404014559, + "visited_mean": 10000.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "main", + "limit": 100, + "samples": 2, + "ns_per_query_mean": 152074.95, + "ns_per_query_min": 150518.6, + "ns_per_query_max": 153631.3, + "latency_delta_main_pct": 0.0, + "visited_mean": 3184404.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + }, + { + "profile": "filtered-ranges", + "limit": 100, + "samples": 2, + "ns_per_query_mean": 137488.2, + "ns_per_query_min": 136036.1, + "ns_per_query_max": 138940.3, + "latency_delta_main_pct": -9.59181640368778, + "visited_mean": 100000.0, + "verified": true, + "verification_kind": "successful process with harness assertions and matching result checksums" + } + ], + "barrier": [ + { + "workload": "barrier", + "phase": "wal0-workers0-sync", + "version": "main", + "samples": 2, + "ops_s_mean": 35984.341, + "ops_s_min": 31071.613, + "ops_s_max": 40897.069, + "baseline_ops_s_mean": 35984.341, + "baseline_ops_s_min": 31071.613, + "baseline_ops_s_max": 40897.069, + "delta_pct": 0.0, + "ranges_overlap": true, + "launch_p99_us": 18830.339, + "completion_p99_us": 18830.339, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 9.038776397705078, + "read_bytes_update": 0.0, + "write_bytes_update": 5924.65625 + }, + { + "workload": "barrier", + "phase": "wal0-workers0-sync", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 58274.859500000006, + "ops_s_min": 57551.641, + "ops_s_max": 58998.078, + "baseline_ops_s_mean": 35984.341, + "baseline_ops_s_min": 31071.613, + "baseline_ops_s_max": 40897.069, + "delta_pct": 61.945051321073265, + "ranges_overlap": false, + "launch_p99_us": 15769.339, + "completion_p99_us": 15769.339, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 8.89599609375, + "read_bytes_update": 0.03125, + "write_bytes_update": 5924.65625 + }, + { + "workload": "barrier", + "phase": "wal0-workers0-async", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 59874.4315, + "ops_s_min": 59568.233, + "ops_s_max": 60180.63, + "baseline_ops_s_mean": 35984.341, + "baseline_ops_s_min": 31071.613, + "baseline_ops_s_max": 40897.069, + "delta_pct": 66.39024041040517, + "ranges_overlap": false, + "launch_p99_us": 0.9764999999999999, + "completion_p99_us": 14594.8035, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 8.942153930664062, + "read_bytes_update": 0.0, + "write_bytes_update": 5924.65625 + }, + { + "workload": "barrier", + "phase": "wal0-workers1-sync", + "version": "main", + "samples": 2, + "ops_s_mean": 32877.4345, + "ops_s_min": 32685.772, + "ops_s_max": 33069.097, + "baseline_ops_s_mean": 32877.4345, + "baseline_ops_s_min": 32685.772, + "baseline_ops_s_max": 33069.097, + "delta_pct": 0.0, + "ranges_overlap": true, + "launch_p99_us": 21590.944499999998, + "completion_p99_us": 21590.944499999998, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 9.591472625732422, + "read_bytes_update": 0.046875, + "write_bytes_update": 5944.890625 + }, + { + "workload": "barrier", + "phase": "wal0-workers1-sync", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 32816.2485, + "ops_s_min": 32566.888, + "ops_s_max": 33065.609, + "baseline_ops_s_mean": 32877.4345, + "baseline_ops_s_min": 32685.772, + "baseline_ops_s_max": 33069.097, + "delta_pct": -0.18610332871319413, + "ranges_overlap": true, + "launch_p99_us": 21671.515, + "completion_p99_us": 21671.515, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 9.660575866699219, + "read_bytes_update": 0.015625, + "write_bytes_update": 5946.984375 + }, + { + "workload": "barrier", + "phase": "wal0-workers1-async", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 32623.6835, + "ops_s_min": 31925.049, + "ops_s_max": 33322.318, + "baseline_ops_s_mean": 32877.4345, + "baseline_ops_s_min": 32685.772, + "baseline_ops_s_max": 33069.097, + "delta_pct": -0.7718090047445836, + "ranges_overlap": true, + "launch_p99_us": 2.8975, + "completion_p99_us": 23050.2955, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 9.739543914794922, + "read_bytes_update": 0.03125, + "write_bytes_update": 5946.421875 + }, + { + "workload": "barrier", + "phase": "wal1-workers0-sync", + "version": "main", + "samples": 2, + "ops_s_mean": 63924.082500000004, + "ops_s_min": 63287.752, + "ops_s_max": 64560.413, + "baseline_ops_s_mean": 63924.082500000004, + "baseline_ops_s_min": 63287.752, + "baseline_ops_s_max": 64560.413, + "delta_pct": 0.0, + "ranges_overlap": true, + "launch_p99_us": 4813.8705, + "completion_p99_us": 4813.8705, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.2700424194335938, + "read_bytes_update": 0.0, + "write_bytes_update": 206.3828125 + }, + { + "workload": "barrier", + "phase": "wal1-workers0-sync", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 127121.751, + "ops_s_min": 60090.385, + "ops_s_max": 194153.117, + "baseline_ops_s_mean": 63924.082500000004, + "baseline_ops_s_min": 63287.752, + "baseline_ops_s_max": 64560.413, + "delta_pct": 98.86363015065565, + "ranges_overlap": true, + "launch_p99_us": 4118.6775, + "completion_p99_us": 4118.6775, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.2528772354125977, + "read_bytes_update": 0.0, + "write_bytes_update": 206.3828125 + }, + { + "workload": "barrier", + "phase": "wal1-workers0-async", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 236974.144, + "ops_s_min": 200297.973, + "ops_s_max": 273650.315, + "baseline_ops_s_mean": 63924.082500000004, + "baseline_ops_s_min": 63287.752, + "baseline_ops_s_max": 64560.413, + "delta_pct": 270.7118424421656, + "ranges_overlap": false, + "launch_p99_us": 3.5060000000000002, + "completion_p99_us": 2190.8725, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.2635889053344727, + "read_bytes_update": 0.0, + "write_bytes_update": 206.3828125 + }, + { + "workload": "barrier", + "phase": "wal1-workers1-sync", + "version": "main", + "samples": 2, + "ops_s_mean": 62594.769, + "ops_s_min": 61606.519, + "ops_s_max": 63583.019, + "baseline_ops_s_mean": 62594.769, + "baseline_ops_s_min": 61606.519, + "baseline_ops_s_max": 63583.019, + "delta_pct": 0.0, + "ranges_overlap": true, + "launch_p99_us": 5467.197, + "completion_p99_us": 5467.197, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.2778234481811523, + "read_bytes_update": 0.0, + "write_bytes_update": 206.6484375 + }, + { + "workload": "barrier", + "phase": "wal1-workers1-sync", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 68395.2785, + "ops_s_min": 67544.975, + "ops_s_max": 69245.582, + "baseline_ops_s_mean": 62594.769, + "baseline_ops_s_min": 61606.519, + "baseline_ops_s_max": 63583.019, + "delta_pct": 9.266763968727165, + "ranges_overlap": false, + "launch_p99_us": 4940.577, + "completion_p99_us": 4940.577, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.2629365921020508, + "read_bytes_update": 0.0, + "write_bytes_update": 206.6484375 + }, + { + "workload": "barrier", + "phase": "wal1-workers1-async", + "version": "async-durable-barrier", + "samples": 2, + "ops_s_mean": 79283.9895, + "ops_s_min": 78489.093, + "ops_s_max": 80078.886, + "baseline_ops_s_mean": 62594.769, + "baseline_ops_s_min": 61606.519, + "baseline_ops_s_max": 63583.019, + "delta_pct": 26.66232461054372, + "ranges_overlap": false, + "launch_p99_us": 6.167, + "completion_p99_us": 4128.316, + "verified": true, + "verification_kind": "crash after completed final barrier, reopen and full key/value readback", + "cpu_us_update": 1.3590545654296875, + "read_bytes_update": 0.0, + "write_bytes_update": 206.6484375 + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.csv new file mode 100644 index 000000000..4a1a55dbf --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,disk,0,0,load:random,1,0,2000000,2000000,3.203,624472.2,0.568,1.648,22.272,33045.745,1.551,2.589,772553.9,220004352,476119040,110.00,238.06,nan,nan,nan,nan,nan,0,0.0,3.203,0.231,3.433,0.092,31068160,74362880,1.6783,3250065408,550690816,0.011,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.log new file mode 100644 index 000000000..47980c678 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.011 s +phase load:random: T=1 dist=random (fixed count) +close took 0.231 s +== load:random T=1 ops=2000000 secs= 3.20 ops/s= 624472 lat us p50=0.57 p99=1.65 p99.9=22.27 max=33045.7 mean=1.55 + cpu=2.59s ops/cpu-s=772554 rd=110.0 B/op wr=238.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=3.20s drain(close)=0.23s total=3.43s drain_cpu=0.09s drain_rd=31068160 drain_wr=74362880 wamp=1.678 db_apparent=3250065408 db_alloc=550690816 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.csv new file mode 100644 index 000000000..4e2eb810d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,disk,0,0,load:random,1,0,2000000,2000000,4.028,496567.7,0.552,1.520,19.200,43517.444,1.842,3.062,653156.1,345690112,752869376,172.85,376.43,nan,nan,nan,nan,nan,0,0.0,4.028,0.307,4.335,0.115,45817856,81063936,2.5425,3671592960,834170880,0.020,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.log new file mode 100644 index 000000000..327ae95f9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.020 s +phase load:random: T=1 dist=random (fixed count) +close took 0.307 s +== load:random T=1 ops=2000000 secs= 4.03 ops/s= 496568 lat us p50=0.55 p99=1.52 p99.9=19.20 max=43517.4 mean=1.84 + cpu=3.06s ops/cpu-s=653156 rd=172.8 B/op wr=376.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=4.03s drain(close)=0.31s total=4.34s drain_cpu=0.12s drain_rd=45817856 drain_wr=81063936 wamp=2.542 db_apparent=3671592960 db_alloc=834170880 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.csv new file mode 100644 index 000000000..47cb035cc --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,load:random,1,0,2000000,2000000,3.508,570177.3,0.552,1.648,25.344,60061.189,1.704,2.667,749838.5,347615232,752930816,173.81,376.47,nan,nan,nan,nan,nan,0,0.0,3.508,0.262,3.769,0.097,45633536,81440768,2.5438,3671330816,834621440,0.010,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.log new file mode 100644 index 000000000..48f0dbad9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.010 s +phase load:random: T=1 dist=random (fixed count) +close took 0.262 s +== load:random T=1 ops=2000000 secs= 3.51 ops/s= 570177 lat us p50=0.55 p99=1.65 p99.9=25.34 max=60061.2 mean=1.70 + cpu=2.67s ops/cpu-s=749839 rd=173.8 B/op wr=376.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=3.51s drain(close)=0.26s total=3.77s drain_cpu=0.10s drain_rd=45633536 drain_wr=81440768 wamp=2.544 db_apparent=3671330816 db_alloc=834621440 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.csv new file mode 100644 index 000000000..52bf9d262 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,load:random,1,0,2000000,2000000,3.993,500818.6,0.552,1.584,16.640,69283.628,1.827,2.960,675641.9,351236096,749301760,175.62,374.65,nan,nan,nan,nan,nan,0,0.0,3.993,0.306,4.300,0.107,46366720,83800064,2.5399,3671592960,833347584,0.008,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.log new file mode 100644 index 000000000..8ef3965d0 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random: T=1 dist=random (fixed count) +close took 0.306 s +== load:random T=1 ops=2000000 secs= 3.99 ops/s= 500819 lat us p50=0.55 p99=1.58 p99.9=16.64 max=69283.6 mean=1.83 + cpu=2.96s ops/cpu-s=675642 rd=175.6 B/op wr=374.7 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=3.99s drain(close)=0.31s total=4.30s drain_cpu=0.11s drain_rd=46366720 drain_wr=83800064 wamp=2.540 db_apparent=3671592960 db_alloc=833347584 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/manifest.json new file mode 100644 index 000000000..0b2f33e9b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/manifest.json @@ -0,0 +1,531 @@ +{ + "mode": "fixtures", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Updated feature branches versus fresh main; not an isolation of merge cost", + "runner_sha256": "776d2ee23705f3a60a54f4e78b4f305a24d4a124eeecfe75dfacf5a90e4329c5", + "runs": [ + { + "label": "resident-main-common", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905954.9236379, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791905955.3385847, + "log_sha256": "a47d1404ca64590e9328650770b461a74beede07946a715b48cba9efe68aeff1", + "process_cpu_s": 0.260466, + "process_read_bytes": 24576, + "process_write_bytes": 37306368, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.db", + "fixture_sha256": "f46e09ff5cf4059f0d4b8e82c586323274ca1af83a3e6197389ebb28aabda858", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + { + "label": "resident-branch-prefix-common", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905955.5802932, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791905955.9456637, + "log_sha256": "a5f29c881b0aea3aa1d4796ff0aa76f008d8c77255987e1dd998d611a06167db", + "process_cpu_s": 0.265332, + "process_read_bytes": 16384, + "process_write_bytes": 26025984, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.db", + "fixture_sha256": "f37cb48c6fb00b08adccea6eebc85a25e2c12f3ada74432d96dd06abb1eaaa30", + "allocated_bytes": 26128384, + "apparent_bytes": 207360000 + }, + { + "label": "resident-main-random", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905956.151964, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791905956.6169322, + "log_sha256": "6e5d5621436b2a3040731eec91b9115fa68fbe1c1efa5a79511abc3c9df1543f", + "process_cpu_s": 0.3098989999999998, + "process_read_bytes": 49152, + "process_write_bytes": 37306368, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.db", + "fixture_sha256": "33cccf3217cbc9ae09c4a0a2ac62c0bacb8f6fa1858a0c1957a702d8e2f078b8", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + { + "label": "resident-branch-prefix-random", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905956.853846, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791905957.3194685, + "log_sha256": "8b1cf60c008ef9d5236f48e4ba5bec86187504809e77e5492da049123147e707", + "process_cpu_s": 0.3124360000000001, + "process_read_bytes": 8192, + "process_write_bytes": 37306368, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.db", + "fixture_sha256": "8cca25877ee38aef2c506b684adb204c7c347d6ebc68850441050aff549651dd", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + { + "label": "disk-main-common", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905967.4049842, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791905971.229656, + "log_sha256": "da29089bd2140d5730ff76b4639a024cb8b1b329befc7188ae63815d98cf030c", + "process_cpu_s": 2.788083999999999, + "process_read_bytes": 393248768, + "process_write_bytes": 834424832, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.db", + "fixture_sha256": "830b8a8131e519c61ce4f699bdf857dff08a5be7071e6be4a3065d17d5b9dc58", + "allocated_bytes": 834621440, + "apparent_bytes": 3671330816 + }, + { + "label": "disk-branch-prefix-common", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905974.3834143, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791905977.8563876, + "log_sha256": "b11a5b04f6ddd933f929c3865df4e2bd06ce651a72bf7e584dd5390996a3e75e", + "process_cpu_s": 2.7054929999999997, + "process_read_bytes": 251072512, + "process_write_bytes": 550535168, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.db", + "fixture_sha256": "878befa71de3feeeb30ca8cf2837ba163e5495378a72f3332b4f495ca3234b08", + "allocated_bytes": 550690816, + "apparent_bytes": 3250065408 + }, + { + "label": "disk-main-random", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905980.6008859, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791905985.4755645, + "log_sha256": "9f44a160497eabf26a2aa9695eaa55dd74985dd18d52d45ad58f87979dd97275", + "process_cpu_s": 3.628277000000001, + "process_read_bytes": 397602816, + "process_write_bytes": 833155072, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.db", + "fixture_sha256": "ca874e9d980e52ea52e0ccf8f41b266a6263675b49dfefc880e5c1bbabd27b63", + "allocated_bytes": 833347584, + "apparent_bytes": 3671592960 + }, + { + "label": "disk-branch-prefix-random", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures", + "load:random" + ], + "started": 1791905988.720692, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791905993.5974793, + "log_sha256": "1c81c74b950464070a27ea33b414070bdd799e5ee1ef7a75c60f45110f6dcd21", + "process_cpu_s": 3.654647000000002, + "process_read_bytes": 391507968, + "process_write_bytes": 833986560, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.db", + "fixture_sha256": "16b2a30021c7181c624f3fd92abee235b4443bf13e228376e34ab11e68224549", + "allocated_bytes": 834170880, + "apparent_bytes": 3671592960 + } + ], + "complete": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.csv new file mode 100644 index 000000000..ec5dd2c1d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,resident,0,0,load:random,1,0,200000,200000,0.232,862437.4,0.552,2.528,6.976,37785.603,1.125,0.232,863129.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.232,0.119,0.351,0.026,8192,25972736,0.7919,207360000,26128384,0.008,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.log new file mode 100644 index 000000000..46675d244 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random: T=1 dist=random (fixed count) +close took 0.119 s +== load:random T=1 ops=200000 secs= 0.23 ops/s= 862437 lat us p50=0.55 p99=2.53 p99.9=6.98 max=37785.6 mean=1.12 + cpu=0.23s ops/cpu-s=863129 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.23s drain(close)=0.12s total=0.35s drain_cpu=0.03s drain_rd=8192 drain_wr=25972736 wamp=0.792 db_apparent=207360000 db_alloc=26128384 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.csv new file mode 100644 index 000000000..395198a17 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,resident,0,0,load:random,1,0,200000,200000,0.244,820046.6,0.520,2.400,4.160,34532.169,1.095,0.244,820674.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.244,0.115,0.359,0.021,8192,37253120,1.1358,237375488,37408768,0.027,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.log new file mode 100644 index 000000000..eb8daf3e3 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.027 s +phase load:random: T=1 dist=random (fixed count) +close took 0.115 s +== load:random T=1 ops=200000 secs= 0.24 ops/s= 820047 lat us p50=0.52 p99=2.40 p99.9=4.16 max=34532.2 mean=1.09 + cpu=0.24s ops/cpu-s=820674 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.24s drain(close)=0.12s total=0.36s drain_cpu=0.02s drain_rd=8192 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.csv new file mode 100644 index 000000000..01af5a0ff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random,1,0,200000,200000,0.227,882137.6,0.552,2.464,5.952,32714.139,1.100,0.227,882266.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.227,0.138,0.365,0.025,20480,37253120,1.1358,237375488,37408768,0.009,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.log new file mode 100644 index 000000000..246638821 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.009 s +phase load:random: T=1 dist=random (fixed count) +close took 0.138 s +== load:random T=1 ops=200000 secs= 0.23 ops/s= 882138 lat us p50=0.55 p99=2.46 p99.9=5.95 max=32714.1 mean=1.10 + cpu=0.23s ops/cpu-s=882266 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.23s drain(close)=0.14s total=0.36s drain_cpu=0.02s drain_rd=20480 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.csv new file mode 100644 index 000000000..c271d6019 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random,1,0,200000,200000,0.243,822358.1,0.520,2.400,4.672,32858.527,1.086,0.243,822750.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.243,0.129,0.372,0.024,49152,37253120,1.1358,237375488,37408768,0.029,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.log new file mode 100644 index 000000000..4de3260b4 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.029 s +phase load:random: T=1 dist=random (fixed count) +close took 0.129 s +== load:random T=1 ops=200000 secs= 0.24 ops/s= 822358 lat us p50=0.52 p99=2.40 p99.9=4.67 max=32858.5 mean=1.09 + cpu=0.24s ops/cpu-s=822751 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.24s drain(close)=0.13s total=0.37s drain_cpu=0.02s drain_rd=49152 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/host.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/host.json new file mode 100644 index 000000000..989b69784 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/host.json @@ -0,0 +1,7 @@ +{ + "cpu": "{\n \"lscpu\": [\n {\n \"field\": \"Architecture:\",\n \"data\": \"x86_64\"\n },{\n \"field\": \"CPU op-mode(s):\",\n \"data\": \"32-bit, 64-bit\"\n },{\n \"field\": \"Address sizes:\",\n \"data\": \"46 bits physical, 48 bits virtual\"\n },{\n \"field\": \"Byte Order:\",\n \"data\": \"Little Endian\"\n },{\n \"field\": \"CPU(s):\",\n \"data\": \"20\"\n },{\n \"field\": \"On-line CPU(s) list:\",\n \"data\": \"0-19\"\n },{\n \"field\": \"Vendor ID:\",\n \"data\": \"GenuineIntel\"\n },{\n \"field\": \"Model name:\",\n \"data\": \"12th Gen Intel(R) Core(TM) i7-12800H\"\n },{\n \"field\": \"CPU family:\",\n \"data\": \"6\"\n },{\n \"field\": \"Model:\",\n \"data\": \"154\"\n },{\n \"field\": \"Thread(s) per core:\",\n \"data\": \"2\"\n },{\n \"field\": \"Core(s) per socket:\",\n \"data\": \"14\"\n },{\n \"field\": \"Socket(s):\",\n \"data\": \"1\"\n },{\n \"field\": \"Stepping:\",\n \"data\": \"3\"\n },{\n \"field\": \"CPU(s) scaling MHz:\",\n \"data\": \"31%\"\n },{\n \"field\": \"CPU max MHz:\",\n \"data\": \"4800.0000\"\n },{\n \"field\": \"CPU min MHz:\",\n \"data\": \"400.0000\"\n },{\n \"field\": \"BogoMIPS:\",\n \"data\": \"5606.40\"\n },{\n \"field\": \"Flags:\",\n \"data\": \"fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities\"\n },{\n \"field\": \"Virtualization:\",\n \"data\": \"VT-x\"\n },{\n \"field\": \"L1d cache:\",\n \"data\": \"544 KiB (14 instances)\"\n },{\n \"field\": \"L1i cache:\",\n \"data\": \"704 KiB (14 instances)\"\n },{\n \"field\": \"L2 cache:\",\n \"data\": \"11.5 MiB (8 instances)\"\n },{\n \"field\": \"L3 cache:\",\n \"data\": \"24 MiB (1 instance)\"\n },{\n \"field\": \"NUMA node(s):\",\n \"data\": \"1\"\n },{\n \"field\": \"NUMA node0 CPU(s):\",\n \"data\": \"0-19\"\n },{\n \"field\": \"Vulnerability Gather data sampling:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Indirect target selection:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Itlb multihit:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability L1tf:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Mds:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Meltdown:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Mmio stale data:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Reg file data sampling:\",\n \"data\": \"Mitigation; Clear Register File\"\n },{\n \"field\": \"Vulnerability Retbleed:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Spec rstack overflow:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Spec store bypass:\",\n \"data\": \"Mitigation; Speculative Store Bypass disabled via prctl\"\n },{\n \"field\": \"Vulnerability Spectre v1:\",\n \"data\": \"Mitigation; usercopy/swapgs barriers and __user pointer sanitization\"\n },{\n \"field\": \"Vulnerability Spectre v2:\",\n \"data\": \"Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S\"\n },{\n \"field\": \"Vulnerability Srbds:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Tsa:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Tsx async abort:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Vmscape:\",\n \"data\": \"Mitigation; IBPB before exit to userspace\"\n }\n ]\n}", + "kernel": "Linux snafu 6.12.107+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.107-1 (2026-08-29) x86_64 GNU/Linux", + "compiler": "cc (Debian 14.2.0-19) 14.2.0\nCopyright (C) 2024 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "space": "Filesystem 1B-blocks Used Available Use% Mounted on\n/dev/mapper/snafu-root_crypt 830432124928 706181464064 81991790592 90% /home/rob/projects/splinterdb" +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/insert_benchmark.c b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/insert_benchmark.c new file mode 100644 index 000000000..7da615cbe --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/insert_benchmark.c @@ -0,0 +1,1002 @@ +// Copyright 2026 VMware, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/* Concurrent random insertion and point queries, sampled independently. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" +#ifndef KVBENCH_NO_TRACE +# include "platform_trace.h" +#endif +#include "platform_threads.h" + +#define GIB (UINT64_C(1) << 30) +#define MAX_WORKERS 64 +#define MAX_RECORD_PART 1024 +#define HIST_SUB_BITS 5 +#define HIST_SUB (1u << HIST_SUB_BITS) +#define HIST_BUCKETS (64 * HIST_SUB) + +typedef struct latency_histogram { + uint64_t buckets[HIST_BUCKETS]; + uint64_t count; + uint64_t sum_ns; + uint64_t max_ns; +} latency_histogram; + +typedef struct options { + const char *filename; + const char *csv; + const char *summary; + const char *trace; + uint64_t records, data_gib, cache_mib, disk_gib, seed, id_base; + uint64_t inserts, queries, memtable_bg, normal_bg, memtable_mib; + uint64_t key_size, value_size, report_ms, seconds, min_free_gib; + uint64_t queue_scale, barrier_ms, target_insert_ops_s; + uint64_t log_group_size_pages; + bool full_query_range, direct, use_log, open_existing; +} options; + +typedef struct benchmark benchmark; +typedef struct worker { + _Alignas(64) atomic_uint_fast64_t completed; + atomic_uint_fast64_t hits, max_ns, response_max_ns, active_since_ns; + atomic_bool done; + pthread_t thread; + benchmark *bench; + uint64_t index; + bool query; + latency_histogram service_latency; + latency_histogram response_latency; +} worker; + +struct benchmark { + options opt; + splinterdb *db; + atomic_bool start, stop; + uint64_t start_ns; + atomic_uint_fast64_t arrival_sequence; + atomic_int error; + worker workers[MAX_WORKERS]; + pthread_t barrier_thread; + atomic_bool barrier_started, barrier_done; + atomic_uint_fast64_t barrier_count, barrier_sum_ns, barrier_max_ns; +}; + +static volatile sig_atomic_t interrupted; + +static void +handle_signal(int signo) +{ + interrupted = signo; +} + +static uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec; +} + +/* A bijection on 64-bit integers, so the random insertion keys are unique. */ +static uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static uint64_t +next_random(uint64_t *state) +{ + *state += UINT64_C(0x9e3779b97f4a7c15); + return mix(*state); +} + +static void +make_key(const options *opt, uint64_t id, char *key) +{ + uint64_t x = mix(id + opt->seed); + for (uint64_t i = 0; i < opt->key_size; i++) { + key[i] = (char)(x >> (56 - 8 * (i % 8))); + } +} + +static void +record_max(atomic_uint_fast64_t *slot, uint64_t ns) +{ + uint64_t old = atomic_load_explicit(slot, memory_order_relaxed); + while (old < ns + && !atomic_compare_exchange_weak_explicit( + slot, &old, ns, memory_order_relaxed, memory_order_relaxed)) + { + } +} + +static void +record_latency(worker *w, uint64_t ns) +{ + record_max(&w->max_ns, ns); +} + +static unsigned +histogram_index(uint64_t value) +{ + if (value < HIST_SUB) { + return (unsigned)value; + } + unsigned exponent = 63 - __builtin_clzll(value); + unsigned sub = + (unsigned)((value >> (exponent - HIST_SUB_BITS)) & (HIST_SUB - 1)); + return (exponent - HIST_SUB_BITS + 1) * HIST_SUB + sub; +} + +static uint64_t +histogram_value(unsigned index) +{ + if (index < HIST_SUB) { + return index; + } + unsigned exponent = index / HIST_SUB + HIST_SUB_BITS - 1; + unsigned sub = index % HIST_SUB; + uint64_t low = + (UINT64_C(1) << exponent) | ((uint64_t)sub << (exponent - HIST_SUB_BITS)); + uint64_t width = UINT64_C(1) << (exponent - HIST_SUB_BITS); + return low + width / 2; +} + +static void +histogram_add(latency_histogram *histogram, uint64_t value) +{ + histogram->buckets[histogram_index(value)]++; + histogram->count++; + histogram->sum_ns += value; + histogram->max_ns = MAX(histogram->max_ns, value); +} + +static void +histogram_merge(latency_histogram *result, const latency_histogram *source) +{ + for (unsigned i = 0; i < HIST_BUCKETS; i++) { + result->buckets[i] += source->buckets[i]; + } + result->count += source->count; + result->sum_ns += source->sum_ns; + result->max_ns = MAX(result->max_ns, source->max_ns); +} + +static double +histogram_percentile_ms(const latency_histogram *histogram, double percentile) +{ + if (histogram->count == 0) { + return 0; + } + uint64_t target = (uint64_t)(percentile * histogram->count); + if (target == 0) { + target = 1; + } + uint64_t cumulative = 0; + for (unsigned i = 0; i < HIST_BUCKETS; i++) { + cumulative += histogram->buckets[i]; + if (cumulative >= target) { + return histogram_value(i) / 1e6; + } + } + return histogram->max_ns / 1e6; +} + +static void +wait_until(benchmark *b, uint64_t deadline) +{ + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t now = now_ns(); + if (now >= deadline) { + return; + } + uint64_t remaining = deadline - now; + if (remaining > UINT64_C(10000000)) { + remaining = UINT64_C(10000000); + } + struct timespec delay = {.tv_sec = remaining / UINT64_C(1000000000), + .tv_nsec = remaining % UINT64_C(1000000000)}; + nanosleep(&delay, NULL); + } +} + +static void * +run_worker(void *arg) +{ + worker *w = arg; + benchmark *b = w->bench; + const options *o = &b->opt; + char key[MAX_RECORD_PART], value[MAX_RECORD_PART]; + memset(value, 'v', o->value_size); + int rc = platform_register_thread(); + if (rc) { + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + atomic_store(&w->done, true); + return NULL; + } + splinterdb_lookup_result result; + fprintf(stderr, + "worker=%lu kind=%s tid=%lu os_tid=%d\n", + w->index, + w->query ? "query" : "insert", + platform_get_tid(), + gettid()); + if (w->query) { + splinterdb_lookup_result_init( + b->db, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(value), value); + } + while (!atomic_load_explicit(&b->start, memory_order_acquire)) { + struct timespec delay = {.tv_nsec = 1000000}; + nanosleep(&delay, NULL); + } + uint64_t completed = 0, hits = 0; + uint64_t random = o->seed + w->index + 1; + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t scheduled = 0; + uint64_t arrival = UINT64_MAX; + if (!w->query && o->target_insert_ops_s != 0) { + arrival = atomic_fetch_add_explicit( + &b->arrival_sequence, 1, memory_order_relaxed); + if (arrival >= o->records) { + break; + } + scheduled = b->start_ns + + (uint64_t)((__uint128_t)arrival * UINT64_C(1000000000) + / o->target_insert_ops_s); + wait_until(b, scheduled); + if (atomic_load_explicit(&b->stop, memory_order_relaxed)) { + break; + } + } + uint64_t id; + if (!w->query) { + uint64_t offset = o->target_insert_ops_s != 0 + ? arrival + : completed * o->inserts + w->index; + if (offset >= o->records) { + break; + } + id = o->id_base + offset; + } else if (o->full_query_range) { + id = o->id_base + next_random(&random) % o->records; + } else { + uint64_t source = next_random(&random) % o->inserts; + uint64_t available = atomic_load_explicit( + &b->workers[source].completed, memory_order_acquire); + if (!available) { + struct timespec delay = {.tv_nsec = 100000}; + nanosleep(&delay, NULL); + continue; + } + id = o->id_base + (next_random(&random) % available) * o->inserts + + source; + } + make_key(o, id, key); + uint64_t start = now_ns(); + atomic_store_explicit(&w->active_since_ns, start, memory_order_relaxed); + if (w->query) { + rc = splinterdb_lookup(b->db, slice_create(o->key_size, key), &result); + if (!rc && splinterdb_lookup_found(&result)) { + hits++; + } + } else { + rc = splinterdb_insert(b->db, + slice_create(o->key_size, key), + slice_create(o->value_size, value), + NULL); + } + uint64_t end = now_ns(); + record_latency(w, end - start); + histogram_add(&w->service_latency, end - start); + if (!w->query) { + uint64_t response = scheduled == 0 ? end - start : end - scheduled; + histogram_add(&w->response_latency, response); + record_max(&w->response_max_ns, response); + } + atomic_store_explicit(&w->active_since_ns, 0, memory_order_relaxed); + if (rc) { + fprintf(stderr, "worker %lu: operation failed: %d\n", w->index, rc); + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + break; + } + completed++; + atomic_store_explicit(&w->hits, hits, memory_order_relaxed); + atomic_store_explicit(&w->completed, completed, memory_order_release); + } + if (w->query) { + splinterdb_lookup_result_deinit(&result); + } + platform_deregister_thread(); + atomic_store(&w->done, true); + return NULL; +} + +/* + * Dedicated thread that calls splinterdb_durable_barrier() on a fixed period, + * independent of insert/query progress. If a barrier call takes longer than + * the period, the next call follows immediately (no attempt to catch up on + * skipped slots). + */ +static void * +run_barrier(void *arg) +{ + benchmark *b = arg; + const options *o = &b->opt; + int rc = platform_register_thread(); + if (rc) { + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + atomic_store(&b->barrier_done, true); + return NULL; + } + while (!atomic_load_explicit(&b->start, memory_order_acquire)) { + struct timespec delay = {.tv_nsec = 1000000}; + nanosleep(&delay, NULL); + } + uint64_t period_ns = o->barrier_ms * UINT64_C(1000000); + uint64_t next = now_ns() + period_ns; + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t now = now_ns(); + if (now < next) { + uint64_t remaining = next - now; + struct timespec delay = {.tv_sec = remaining / 1000000000, + .tv_nsec = remaining % 1000000000}; + nanosleep(&delay, NULL); + continue; + } + uint64_t start = now_ns(); +#ifdef KVBENCH_NO_DURABLE_BARRIER + rc = ENOTSUP; +#else + #ifdef HAVE_SENTINEL_NOTIFICATION + rc = splinterdb_durable_barrier(b->db, NULL); +#else + rc = splinterdb_durable_barrier(b->db); +#endif +#endif + uint64_t elapsed = now_ns() - start; + if (rc) { + fprintf(stderr, "barrier: durable_barrier failed: %d\n", rc); + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + break; + } + atomic_fetch_add_explicit(&b->barrier_count, 1, memory_order_relaxed); + atomic_fetch_add_explicit( + &b->barrier_sum_ns, elapsed, memory_order_relaxed); + record_max(&b->barrier_max_ns, elapsed); + next += period_ns; + } + platform_deregister_thread(); + atomic_store(&b->barrier_done, true); + return NULL; +} + +static void +usage(const char *name) +{ + fprintf( + stderr, + "Usage: %s --db NEW_IMAGE --csv NEW_CSV [options]\n" + " --open open an existing image instead of creating one\n" + " --id-base N first logical id inserted (default 0)\n" + " --data-gib N logical key+value GiB (default 60)\n" + " --records N override logical data target\n" + " --cache-mib N default 3072\n" + " --disk-gib N image capacity (default 512; grows lazily)\n" + " --inserters N default 8\n" + " --readers N default 8\n" + " --memtable-bg N default 1\n" + " --normal-bg N default 4\n" + " --memtable-mib N default 24\n" + " --key-size N default 16, minimum 8\n" + " --value-size N default 16\n" + " --query-range inserted|all (default inserted)\n" + " --queue-scale N foreground task threshold (default 100)\n" + " --report-ms N default 1000\n" + " --seconds N optional time limit (0 = no limit)\n" + " --target-insert-ops-s N aggregate open-loop arrival rate; " + "requires --seconds (default 0 = closed loop)\n" + " --summary NEW_CSV write aggregate latency percentiles\n" + " --min-free-gib N stop before filesystem fills (default 8)\n" + " --seed N default 1\n" + " --barrier-ms N call splinterdb_durable_barrier from a " + "dedicated thread every N ms (default 0 = disabled)\n" + " --log-group-size-pages N automatic durability threshold " + "(0 = default, UINT64_MAX = disabled)\n" + " --trace NEW_CSV trace internal tasks and waits (optional)\n" + " --direct use O_DIRECT (default buffered I/O)\n" + " --no-log disable WAL (default enabled)\n" + "Automatic checkpoints are disabled. Existing files are refused.\n" + "Load measurements exclude create, final drain and close.\n", + name); +} + +static bool +parse_number(const char *s, uint64_t *out) +{ + char *end; + errno = 0; + unsigned long long value = strtoull(s, &end, 10); + if (errno || s == end || *end || *s == '-') { + return false; + } + *out = value; + return true; +} + +static bool +parse_options(int argc, char **argv, options *o) +{ + *o = (options){.data_gib = 60, + .cache_mib = 3072, + .disk_gib = 512, + .seed = 1, + .inserts = 8, + .queries = 8, + .memtable_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .key_size = 16, + .value_size = 16, + .report_ms = 1000, + .min_free_gib = 8, + .queue_scale = 100, + .use_log = true}; + for (int i = 1; i < argc; i++) { + if (!strcmp(argv[i], "--direct")) { + o->direct = true; + continue; + } + if (!strcmp(argv[i], "--no-log")) { + o->use_log = false; + continue; + } + if (!strcmp(argv[i], "--open")) { + o->open_existing = true; + continue; + } + if (i + 1 >= argc) { + return false; + } + const char *name = argv[i++], *value = argv[i]; + if (!strcmp(name, "--db")) { + o->filename = value; + continue; + } + if (!strcmp(name, "--csv")) { + o->csv = value; + continue; + } + if (!strcmp(name, "--summary")) { + o->summary = value; + continue; + } + if (!strcmp(name, "--trace")) { + o->trace = value; + continue; + } + if (!strcmp(name, "--query-range")) { + if (strcmp(value, "inserted") && strcmp(value, "all")) { + return false; + } + o->full_query_range = !strcmp(value, "all"); + continue; + } + struct { + const char *name; + uint64_t *value; + } numbers[] = { + {"--data-gib", &o->data_gib}, + {"--records", &o->records}, + {"--cache-mib", &o->cache_mib}, + {"--disk-gib", &o->disk_gib}, + {"--inserters", &o->inserts}, + {"--readers", &o->queries}, + {"--memtable-bg", &o->memtable_bg}, + {"--normal-bg", &o->normal_bg}, + {"--memtable-mib", &o->memtable_mib}, + {"--key-size", &o->key_size}, + {"--value-size", &o->value_size}, + {"--report-ms", &o->report_ms}, + {"--seconds", &o->seconds}, + {"--min-free-gib", &o->min_free_gib}, + {"--seed", &o->seed}, + {"--id-base", &o->id_base}, + {"--queue-scale", &o->queue_scale}, + {"--barrier-ms", &o->barrier_ms}, + {"--log-group-size-pages", &o->log_group_size_pages}, + {"--target-insert-ops-s", &o->target_insert_ops_s}, + }; + bool found = false; + for (size_t j = 0; j < sizeof(numbers) / sizeof(numbers[0]); j++) { + if (!strcmp(name, numbers[j].name)) { + if (!parse_number(value, numbers[j].value)) { + return false; + } + found = true; + break; + } + } + if (!found) { + return false; + } + } + if (!o->filename || !o->csv || !o->inserts || o->inserts > MAX_WORKERS + || o->queries > MAX_WORKERS - o->inserts || o->key_size < 8 + || o->key_size > MAX_RECORD_PART || o->value_size > MAX_RECORD_PART + || !o->report_ms || o->report_ms > 60000 || !o->cache_mib + || o->cache_mib > UINT64_MAX / (1 << 20) || !o->disk_gib + || o->disk_gib > INT64_MAX / GIB || o->data_gib > UINT64_MAX / GIB + || o->min_free_gib > UINT64_MAX / GIB || !o->memtable_mib + || o->memtable_mib > UINT64_MAX / (1 << 20) || o->memtable_bg > 32 + || o->normal_bg > 32 + || o->inserts + o->queries + o->memtable_bg + o->normal_bg + 1 + > MAX_WORKERS + || o->seconds > UINT64_MAX / 1000000000 + || o->barrier_ms > UINT64_MAX / 1000000 + || (o->target_insert_ops_s != 0 && (o->seconds == 0 || o->queries != 0))) + { + return false; + } +#ifdef KVBENCH_NO_DURABLE_BARRIER + if (o->barrier_ms != 0) { + return false; + } +#endif +#ifdef KVBENCH_NO_TRACE + if (o->trace != NULL) { + return false; + } +#endif + if (!o->records) { + o->records = o->data_gib * GIB / (o->key_size + o->value_size); + } + return o->records > 0 && o->records <= UINT64_MAX / MAX_WORKERS + && o->records <= UINT64_MAX / (o->key_size + o->value_size) + && o->id_base <= UINT64_MAX - o->records; +} + +static void +process_io(uint64_t *reads, uint64_t *writes) +{ + *reads = *writes = 0; + FILE *file = fopen("/proc/self/io", "r"); + if (!file) { + return; + } + char name[64]; + uint64_t value; + while (fscanf(file, "%63s %" SCNu64, name, &value) == 2) { + if (!strcmp(name, "read_bytes:")) { + *reads = value; + } + if (!strcmp(name, "write_bytes:")) { + *writes = value; + } + } + fclose(file); +} + +static int +write_summary(const benchmark *b, uint64_t inserted, double elapsed_s) +{ + const options *o = &b->opt; + if (o->summary == NULL) { + return 0; + } + + latency_histogram insert_service = {0}, insert_response = {0}; + latency_histogram query_service = {0}; + for (uint64_t i = 0; i < o->inserts + o->queries; i++) { + if (b->workers[i].query) { + histogram_merge(&query_service, &b->workers[i].service_latency); + } else { + histogram_merge(&insert_service, &b->workers[i].service_latency); + histogram_merge(&insert_response, &b->workers[i].response_latency); + } + } + + FILE *summary = fopen(o->summary, "wx"); + if (summary == NULL) { + return errno; + } + fprintf(summary, + "target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted," + "insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms," + "insert_service_p999_ms,insert_service_max_ms," + "insert_response_mean_ms,insert_response_p50_ms," + "insert_response_p99_ms,insert_response_p999_ms," + "insert_response_max_ms,query_service_mean_ms,query_service_p99_ms," + "query_service_max_ms\n"); + fprintf( + summary, + "%lu,%.6f,%.6f,%lu,%.6f,%.6f,%.6f,%.6f,%.6f," + "%.6f,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f\n", + o->target_insert_ops_s, + elapsed_s == 0 ? 0 : inserted / elapsed_s, + elapsed_s, + inserted, + insert_service.count ? insert_service.sum_ns / 1e6 / insert_service.count + : 0, + histogram_percentile_ms(&insert_service, 0.50), + histogram_percentile_ms(&insert_service, 0.99), + histogram_percentile_ms(&insert_service, 0.999), + insert_service.max_ns / 1e6, + insert_response.count + ? insert_response.sum_ns / 1e6 / insert_response.count + : 0, + histogram_percentile_ms(&insert_response, 0.50), + histogram_percentile_ms(&insert_response, 0.99), + histogram_percentile_ms(&insert_response, 0.999), + insert_response.max_ns / 1e6, + query_service.count ? query_service.sum_ns / 1e6 / query_service.count + : 0, + histogram_percentile_ms(&query_service, 0.99), + query_service.max_ns / 1e6); + int rc = ferror(summary) ? EIO : 0; + if (fclose(summary) != 0 && rc == 0) { + rc = errno; + } + return rc; +} + +int +main(int argc, char **argv) +{ + benchmark b = {0}; + if (argc == 2 && !strcmp(argv[1], "--help")) { + usage(argv[0]); + return 0; + } + if (!parse_options(argc, argv, &b.opt)) { + usage(argv[0]); + return 2; + } + const options *o = &b.opt; + if (o->trace) { +#ifdef KVBENCH_NO_TRACE + return 2; +#else + int trace_rc = platform_trace_open(o->trace); + if (trace_rc) { + fprintf(stderr, "trace open failed: %s\n", strerror(trace_rc)); + return 1; + } +#endif + } + FILE *csv = fopen(o->csv, "wx"); + if (!csv) { + perror(o->csv); + return 1; + } + int fd = open(o->filename, + O_RDWR | O_CLOEXEC | (o->open_existing ? 0 : O_CREAT | O_EXCL), + 0600); + if (fd < 0) { + perror(o->filename); + fclose(csv); + return 1; + } + struct statvfs space; + if (fstatvfs(fd, &space) != 0 + || (uint64_t)space.f_bavail * space.f_frsize < o->min_free_gib * GIB) + { + fprintf(stderr, "Insufficient free space\n"); + close(fd); + fclose(csv); + return 1; + } + + data_config data_cfg; + default_data_config_init(&data_cfg); + splinterdb_config cfg = {.filename = o->filename, + .disk_size = o->disk_gib * GIB, + .cache_size = o->cache_mib * (1 << 20), + .data_cfg = &data_cfg, + .io_flags = O_RDWR | (o->direct ? O_DIRECT : 0), + .num_memtable_bg_threads = o->memtable_bg, + .num_normal_bg_threads = o->normal_bg, + .memtable_capacity = o->memtable_mib * (1 << 20), + .queue_scale_percent = o->queue_scale, + .use_log = o->use_log, + .checkpoint_log_size_bytes = UINT64_MAX, + .use_stats = true}; +#ifndef KVBENCH_NO_LOG_GROUP_LIMIT + cfg.log_group_size_pages = o->log_group_size_pages; +#else + if (o->log_group_size_pages != 0) { + fprintf(stderr, "This build has no automatic log-group limit\n"); + return 1; + } +#endif + platform_set_log_streams(stderr, stderr); + fprintf( + stderr, + "version=%s records=%lu key=%lu value=%lu cache_mib=%lu " + "disk_gib=%lu inserters=%lu readers=%lu memtable_bg=%lu normal_bg=%lu " + "memtable_mib=%lu queue_scale=%lu log=%d checkpoints=disabled " + "direct=%d query_range=%s seed=%lu report_ms=%lu barrier_ms=%lu " + "target_insert_ops_s=%lu id_base=%lu mode=%s\n", + splinterdb_get_version(), + o->records, + o->key_size, + o->value_size, + o->cache_mib, + o->disk_gib, + o->inserts, + o->queries, + o->memtable_bg, + o->normal_bg, + o->memtable_mib, + o->queue_scale, + o->use_log, + o->direct, + o->full_query_range ? "all" : "inserted", + o->seed, + o->report_ms, + o->barrier_ms, + o->target_insert_ops_s, + o->id_base, + o->open_existing ? "open" : "create"); + int rc = o->open_existing ? splinterdb_open(&cfg, &b.db) + : splinterdb_create(&cfg, &b.db); + if (rc) { + fprintf( + stderr, "%s failed: %d\n", o->open_existing ? "open" : "create", rc); + close(fd); + fclose(csv); + return 1; + } + + signal(SIGINT, handle_signal); + signal(SIGTERM, handle_signal); + uint64_t started = 0; + for (uint64_t i = 0; i < o->inserts + o->queries; i++) { + worker *w = &b.workers[i]; + w->bench = &b; + w->index = i; + w->query = i >= o->inserts; + rc = pthread_create(&w->thread, NULL, run_worker, w); + if (rc) { + atomic_store(&b.error, rc); + atomic_store(&b.stop, true); + break; + } + started++; + } + if (o->barrier_ms && !atomic_load(&b.stop)) { + rc = pthread_create(&b.barrier_thread, NULL, run_barrier, &b); + if (rc) { + atomic_store(&b.error, rc); + atomic_store(&b.stop, true); + } else { + atomic_store(&b.barrier_started, true); + } + } + fprintf( + csv, + "elapsed_s,interval_s,inserted,logical_gib,insert_ops_s,query_ops_s," + "hit_pct,insert_max_ms,query_max_ms,active_max_ms,cpu_cores,max_rss_mib," + "read_mib_s,write_mib_s,image_gib,free_gib,inserters_running," + "barrier_ops_s,barrier_avg_ms,barrier_max_ms,target_insert_ops_s," + "offered_insert_ops_s,insert_backlog,response_max_ms"); + for (uint64_t i = 0; i < started; i++) { + fprintf(csv, ",%s%lu_ops_s", b.workers[i].query ? "q" : "i", i); + } + fputc('\n', csv); + fflush(csv); + uint64_t prev_completed[MAX_WORKERS] = {0}, prev_hits = 0; + uint64_t prev_barrier_count = 0, prev_barrier_sum_ns = 0; + uint64_t prev_read, prev_write; + process_io(&prev_read, &prev_write); + struct rusage usage_now; + getrusage(RUSAGE_SELF, &usage_now); + double prev_cpu = + usage_now.ru_utime.tv_sec + usage_now.ru_utime.tv_usec / 1e6 + + usage_now.ru_stime.tv_sec + usage_now.ru_stime.tv_usec / 1e6; + uint64_t start = now_ns(), previous = start; + b.start_ns = start; + fprintf( + stderr, "start_monotonic_ns=%lu main_address=%p\n", start, (void *)main); + atomic_store_explicit(&b.start, true, memory_order_release); + const char *reason = "complete"; + uint64_t inserted = 0; + while (true) { + struct timespec delay = {.tv_sec = o->report_ms / 1000, + .tv_nsec = (o->report_ms % 1000) * 1000000}; + nanosleep(&delay, NULL); + uint64_t now = now_ns(), delta_insert = 0, delta_query = 0, hits = 0; + uint64_t insert_max = 0, query_max = 0, response_max = 0, active_max = 0; + uint64_t inserters_running = 0; + double rates[MAX_WORKERS] = {0}; + double elapsed = (now - start) / 1e9, interval = (now - previous) / 1e9; + bool all_inserts_done = true; + inserted = 0; + for (uint64_t i = 0; i < started; i++) { + worker *w = &b.workers[i]; + uint64_t completed = atomic_load(&w->completed); + uint64_t count = completed - prev_completed[i]; + prev_completed[i] = completed; + rates[i] = count / interval; + uint64_t latency = atomic_exchange(&w->max_ns, 0); + uint64_t active = atomic_load(&w->active_since_ns); + if (active && active < now && active_max < now - active) { + active_max = now - active; + } + if (w->query) { + delta_query += count; + hits += atomic_load(&w->hits); + if (query_max < latency) { + query_max = latency; + } + } else { + inserted += completed; + delta_insert += count; + if (insert_max < latency) { + insert_max = latency; + } + uint64_t response = atomic_exchange(&w->response_max_ns, 0); + if (response_max < response) { + response_max = response; + } + if (!atomic_load(&w->done)) { + inserters_running++; + all_inserts_done = false; + } + } + } + uint64_t reads, writes; + process_io(&reads, &writes); + getrusage(RUSAGE_SELF, &usage_now); + double cpu = usage_now.ru_utime.tv_sec + usage_now.ru_utime.tv_usec / 1e6 + + usage_now.ru_stime.tv_sec + + usage_now.ru_stime.tv_usec / 1e6; + struct stat st = {0}; + if (fstat(fd, &st) != 0 || fstatvfs(fd, &space) != 0) { + atomic_store(&b.error, errno); + atomic_store(&b.stop, true); + } + double free_gib = (double)space.f_bavail * space.f_frsize / GIB; + uint64_t barrier_count = atomic_load(&b.barrier_count); + uint64_t barrier_sum_ns = atomic_load(&b.barrier_sum_ns); + uint64_t barrier_max_ns = atomic_exchange(&b.barrier_max_ns, 0); + uint64_t delta_barrier_count = barrier_count - prev_barrier_count; + uint64_t delta_barrier_sum = barrier_sum_ns - prev_barrier_sum_ns; + uint64_t offered = inserted; + if (o->target_insert_ops_s != 0) { + __uint128_t possible = (__uint128_t)(now - start) + * o->target_insert_ops_s / UINT64_C(1000000000); + offered = possible > o->records ? o->records : (uint64_t)possible; + } + fprintf(csv, + "%.6f,%.6f,%lu,%.6f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f," + "%.3f,%.6f,%.3f,%lu,%.3f,%.3f,%.3f,%lu,%.3f,%lu,%.3f", + elapsed, + interval, + inserted, + (double)inserted * (o->key_size + o->value_size) / GIB, + delta_insert / interval, + delta_query / interval, + delta_query ? (hits - prev_hits) * 100.0 / delta_query : 0, + insert_max / 1e6, + query_max / 1e6, + active_max / 1e6, + (cpu - prev_cpu) / interval, + usage_now.ru_maxrss / 1024.0, + (reads - prev_read) / (1048576.0 * interval), + (writes - prev_write) / (1048576.0 * interval), + (double)st.st_size / GIB, + free_gib, + inserters_running, + delta_barrier_count / interval, + delta_barrier_count + ? delta_barrier_sum / 1e6 / delta_barrier_count + : 0, + barrier_max_ns / 1e6, + o->target_insert_ops_s, + o->target_insert_ops_s ? (double)o->target_insert_ops_s : 0, + offered > inserted ? offered - inserted : 0, + response_max / 1e6); + for (uint64_t i = 0; i < started; i++) { + fprintf(csv, ",%.3f", rates[i]); + } + fputc('\n', csv); + if (fflush(csv) != 0) { + atomic_store(&b.error, errno); + atomic_store(&b.stop, true); + } + prev_hits = hits; + prev_read = reads; + prev_write = writes; + prev_cpu = cpu; + prev_barrier_count = barrier_count; + prev_barrier_sum_ns = barrier_sum_ns; + previous = now; + if (all_inserts_done || atomic_load(&b.stop)) { + break; + } + if (interrupted) { + reason = "signal"; + break; + } + if (o->seconds && elapsed >= o->seconds) { + reason = "time_limit"; + break; + } + if (free_gib < o->min_free_gib) { + reason = "free_space_limit"; + break; + } + } + atomic_store(&b.stop, true); + for (uint64_t i = 0; i < started; i++) { + pthread_join(b.workers[i].thread, NULL); + } + if (atomic_load(&b.barrier_started)) { + pthread_join(b.barrier_thread, NULL); + } + inserted = 0; + for (uint64_t i = 0; i < o->inserts; i++) { + inserted += atomic_load(&b.workers[i].completed); + } + double elapsed_s = (now_ns() - start) / 1e9; + fprintf(stderr, + "load_end reason=%s inserted=%lu elapsed_s=%.3f error=%d " + "barrier_count=%lu barrier_avg_ms=%.3f barrier_max_ms=%.3f\n", + reason, + inserted, + elapsed_s, + atomic_load(&b.error), + atomic_load(&b.barrier_count), + atomic_load(&b.barrier_count) ? atomic_load(&b.barrier_sum_ns) / 1e6 + / atomic_load(&b.barrier_count) + : 0, + atomic_load(&b.barrier_max_ns) / 1e6); + int summary_rc = write_summary(&b, inserted, elapsed_s); + if (summary_rc != 0) { + fprintf(stderr, "summary write failed: %s\n", strerror(summary_rc)); + } + uint64_t close_start = now_ns(); +#ifdef KVBENCH_LEGACY_CLOSE + splinterdb_close(&b.db); + rc = 0; +#else + rc = splinterdb_close(&b.db, false); +#endif + fprintf( + stderr, "close_s=%.3f close_rc=%d\n", (now_ns() - close_start) / 1e9, rc); + close(fd); + fclose(csv); + int trace_rc = 0; +#ifndef KVBENCH_NO_TRACE + trace_rc = platform_trace_close(); +#endif + bool incomplete = !o->seconds && inserted < o->records; + return rc || trace_rc || summary_rc || atomic_load(&b.error) || incomplete + ? 1 + : 0; +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/inventory.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/inventory.json new file mode 100644 index 000000000..426510779 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/inventory.json @@ -0,0 +1,65 @@ +{ + "audit.py": "0a35a54b0932296bd60df29d54b4a1e28a1c3a4ff680ab096ce6d94c0f696b6c", + "status.json": "205604ab3e1bae378e250d6c43e2bd578bc467ebe943d07956752349892ee675", + "build_all.py": "eb087dd5567dd000d7e0bf27d76839ac45e0ced00037f6f618e2494e5e518a20", + "run_matrix-fixtures.py": "776d2ee23705f3a60a54f4e78b4f305a24d4a124eeecfe75dfacf5a90e4329c5", + "feature-summaries.json": "be843d623a1047071f5ecf28698812b3a1a5570fb81ace0d2280c0aadaa0b3dc", + "host.json": "3f6265a71d00bb4c31f35d6774a1ac19bdc4b10ffd758947d96b0d0b81538eb3", + "branch-prefix-build.json": "1c739c9b4b71c2013e741a237b5695ab8be32cd0a018a95badcb443bf8fd4524", + "kvbench.c": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "prefix_kvbench.c": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "control-drift.csv": "0c5f1c505305edd8f6c55943719aaceb9ff8ded781a746819df64bb305f0e941", + "preparation.json": "1de4fc5b02c3b6b5134859e33a99b881132ca60c193aa611370795131bb80c09", + "package.py": "8591b68385dafd2e808ed6b623a7f4e645c890b3aa1c023a49906061580fb79c", + "summary.csv": "4fdb17bf1add3d91e339606a108d9d85181766cb608403542413a6af2cf3946d", + "report.py": "5c1a9ef7925653b45ee3c211863706ba6cbf2924783a77c1efd7e0b83c3622a6", + "run_matrix.py": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "report.md": "9649eb4828bef7e39b3b28b1bdcd2ab3ddb72ceb0f71bb5d07c12605c8b417bc", + "run_job.py": "908d86de805e6efd41b423c919187f2df14715104f047e10fa8a6c57129cc773", + "repeat.py": "81fc83731f123067d5183231468513ad7243578ffc051a0d63073b684362fd53", + "audit.json": "ad2fc696155945dd8d7c31db1295ae1f824e7a4324f1523d290f106f95f87d03", + "benchmark-jobs.json": "a208b7be9c97f8c7d1d92fda93941d24a29cdf4d47f255946c33aab465f645c7", + "insert_benchmark.c": "75acbda52b2a8949f1d61710a8d89250d4dac63b12ec9803b89170f9c2cc0b26", + "main-build.json": "e9bf905fadeacebf8082f22d9772e86f17791ef5aa9d4537ce9ecc0fc245f520", + "fixtures/disk-main-random.log": "9f44a160497eabf26a2aa9695eaa55dd74985dd18d52d45ad58f87979dd97275", + "fixtures/resident-main-random.csv": "53b14d40824cb351838d8d791598c85d9521c9ea7787e53298d5c73bd0dc0d7a", + "fixtures/disk-branch-prefix-common.log": "b11a5b04f6ddd933f929c3865df4e2bd06ce651a72bf7e584dd5390996a3e75e", + "fixtures/resident-main-common.csv": "4569ca5e2d582575c3e68866098a0c19b590bef925cb4376e014d2a382d39357", + "fixtures/disk-main-common.log": "da29089bd2140d5730ff76b4639a024cb8b1b329befc7188ae63815d98cf030c", + "fixtures/resident-branch-prefix-random.csv": "1e38d20fa71a6de9afdc2f057796ca6e8abe5be3fcd825450dde46a6668f2334", + "fixtures/resident-branch-prefix-common.log": "a5f29c881b0aea3aa1d4796ff0aa76f008d8c77255987e1dd998d611a06167db", + "fixtures/resident-branch-prefix-common.csv": "6af2ef867e30a26e1a0e8cc30533b46b00e0c9bc97526d8d49933678f7d1623c", + "fixtures/manifest.json": "494155fb4cb7c54dcfefe3465c065dc47c3dcf8a574a9f703b86b20bea3ef68c", + "fixtures/resident-main-common.log": "a47d1404ca64590e9328650770b461a74beede07946a715b48cba9efe68aeff1", + "fixtures/disk-branch-prefix-common.csv": "9226e9a602269d5039015465332a2f0092e121514cf443dc15355b8982cac4a1", + "fixtures/disk-branch-prefix-random.log": "1c81c74b950464070a27ea33b414070bdd799e5ee1ef7a75c60f45110f6dcd21", + "fixtures/disk-main-common.csv": "3f69e21f32a526e0a5fc6665064e7b110d02e641855dfab9172be7809775c888", + "fixtures/disk-branch-prefix-random.csv": "95d2457f612158df1b5c5e03643fe2b68cbe35fc08749f2a0953436010eaf1d1", + "fixtures/disk-main-random.csv": "49fb27f0110fefed4a356ad27f5fce059ca8caa5fd35c5bec637001d44525df1", + "fixtures/resident-main-random.log": "6e5d5621436b2a3040731eec91b9115fa68fbe1c1efa5a79511abc3c9df1543f", + "fixtures/resident-branch-prefix-random.log": "8b1cf60c008ef9d5236f48e4ba5bec86187504809e77e5492da049123147e707", + "prefix-resident-common/01-branch-prefix.log": "2e39f08e79cc7e8253059d3e7f7f72e96e5a0803746db04c67a73d870e1afe17", + "prefix-resident-common/02-branch-prefix.log": "78fd26a69427bc99e3043e819895aaa3df89e69caac2f73fb072688cde0737b0", + "prefix-resident-common/03-main.log": "902192d5930a5eca8f186bddfaa28dd76726f27922b0abe417be119fc44f0d6f", + "prefix-resident-common/manifest.json": "044faaba3f0a603947359171571c448d76f8167bb842a6e655116653a110e309", + "prefix-resident-common/00-main.log": "81be21b00ecbed2be204e32274e68cc4d24993159e75690ea087b3c1200666c8", + "prefix-resident-common/results.csv": "f19990b60a99e8c5b370f94feee0dd9c0b5bca0ac4b10e468c9a286c8e479a1b", + "prefix-disk-random/01-branch-prefix.log": "e8e3fc5c397bc81464ae90c46f98dca02c65adad9f68952cf9cc6510439a68d7", + "prefix-disk-random/02-branch-prefix.log": "d7f487c19e519901fe055675d79d3770236eaac10383099b7769de207a276775", + "prefix-disk-random/03-main.log": "db7811cf8ee3db0777aea834b0b95a18087f88228eb96259da5d1728587b7a29", + "prefix-disk-random/manifest.json": "d28ba6cc39673b01907efe5706145e517e5ec2d0807b6eea03e3dbab45f91dd5", + "prefix-disk-random/00-main.log": "52f92b1b3b03ec70c368f511691860e03f02b9ca532c6a64875e6679b53f1746", + "prefix-disk-random/results.csv": "bac120d4b193584f5e96f7ba22cacfef84dd72a70aebc998eee294c98d57b9eb", + "prefix-disk-common/01-branch-prefix.log": "2ff3af1f12a4e985b2e6ec9597d1c8bde2efb433e464f5133d6bfe995a78a6de", + "prefix-disk-common/02-branch-prefix.log": "45409b0754d8f55324e38c4c2ea0d581dfcbc171e1f1b82c975c5235a8f3f749", + "prefix-disk-common/03-main.log": "54af21c34826d0545715b9d5c0c16a1337c15e8b937cb0fb0dcb7011226570ef", + "prefix-disk-common/manifest.json": "c00c57d1ef183b407b0f9ed8055cbbbf0c5d67b991e3f9d40be835d96557ff06", + "prefix-disk-common/00-main.log": "8d0024fdee92e235956a39eaa0af8e7c5d160dd13af124adf757428bfdefb2c1", + "prefix-disk-common/results.csv": "b2677f1d0169c4630b80339cdabe928641f1e878b9074839c1f68c5195c24b8b", + "prefix-resident-random/01-branch-prefix.log": "ad18f1ba8ff2a7aeb658b10fd5f1b14848cf021e28e644898f5a516591d4e8ad", + "prefix-resident-random/02-branch-prefix.log": "f800c70665b447549b9be2d0ad06598bee20062046839cad5130912e9f81620e", + "prefix-resident-random/03-main.log": "66593aeb81bd645d57696f350af69de5dd112425f95b43ce3a999b8418a81cb4", + "prefix-resident-random/manifest.json": "a022b3e1c5015995cf7299566d2100c8b99b9fb7f85596f9802354a892cf385f", + "prefix-resident-random/00-main.log": "71cf5be0548497291166644a6778581a973a08e9bf8d3cde8b8a391549c56453", + "prefix-resident-random/results.csv": "b3e42532f4eab763a7d198a300a023d39c2bd26a2e64f06e73aa77cf456626cb" +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/kvbench.c b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/kvbench.c new file mode 100644 index 000000000..9b91f4ef9 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/kvbench.c @@ -0,0 +1,1707 @@ +// kvbench.c -- SplinterDB public-API benchmark used to compare two versions. +// +// Uses only splinterdb/splinterdb.h + splinterdb/default_data_config.h + libc, +// so the same source builds against versions whose internals differ. The one +// public-API difference handled here is splinterdb_close(): +// -DKVBENCH_CLOSE_HAS_FORCE => int splinterdb_close(splinterdb **, bool32) +// otherwise => void splinterdb_close(splinterdb **) +// +// Key scheme: logical id in [0,N). Present key = 8-byte big-endian(2*id) +// followed by 16 bytes of fixed padding (24 bytes total), so memcmp order == +// id order. Absent ("negative") keys use 2*id+1, interleaved with present +// keys. Value = 100 bytes: id (LE u64), generation (LE u64), filler. +// +// Each invocation: create/open the DB, run the listed phases in order, close. +// Phase syntax (optional "@T" overrides the thread count): +// load:random | load:seq fixed-count insert of all N ids, then close +// (close timed separately as "drain") +// warm parallel full scan; verifies every id once +// point:uniform|zipf|seq|neg fixed-duration lookups +// range:uniform|zipf:L fixed-duration forward range queries +// ow:uniform|zipf fixed-duration overwrites (insert existing) +// One CSV row per phase is appended to --csv. + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" + +#define KEY_SIZE 24 +#define VALUE_SIZE 100 +#define MAX_PHASES 64 +#define MAX_WORKERS 32 + +static const char KEY_PAD[16] = "kvbench-padding!"; + +/* ------------------------------------------------------------------------ */ +/* Time, RNG, permutations, zipf */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000ull + ts.tv_nsec; +} + +/* Bijective 64-bit mixer (splitmix64 finalizer). */ +static inline uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static inline uint64_t +rng_next(uint64_t *s) +{ + *s += UINT64_C(0x9e3779b97f4a7c15); + return mix(*s); +} + +static inline double +rng_unit(uint64_t *s) +{ + return (double)(rng_next(s) >> 11) * 0x1.0p-53; +} + +/* + * Pseudo-random bijection on [0,n): a 4-round balanced Feistel network over + * 2*half bits (2^(2*half) >= n), with cycle-walking to stay inside [0,n). + */ +typedef struct { + uint64_t n; + unsigned half; + uint64_t mask; + uint64_t keys[4]; +} perm_t; + +static void +perm_init(perm_t *p, uint64_t n, uint64_t seed) +{ + unsigned bits = 1; + while (bits < 64 && (UINT64_C(1) << bits) < n) { + bits++; + } + p->n = n; + p->half = (bits + 1) / 2; + if (p->half < 1) { + p->half = 1; + } + p->mask = (UINT64_C(1) << p->half) - 1; + for (int r = 0; r < 4; r++) { + p->keys[r] = mix(seed * UINT64_C(0x632be59bd9b4e019) + r + 1); + } +} + +static inline uint64_t +feistel(const perm_t *p, uint64_t x) +{ + uint64_t l = x >> p->half, r = x & p->mask; + for (int i = 0; i < 4; i++) { + uint64_t t = l ^ (mix(r ^ p->keys[i]) & p->mask); + l = r; + r = t; + } + return (l << p->half) | r; +} + +static inline uint64_t +perm_apply(const perm_t *p, uint64_t i) +{ + uint64_t x = i; + do { + x = feistel(p, x); + } while (x >= p->n); + return x; +} + +/* YCSB-style zipfian over ranks [0,n). */ +typedef struct { + uint64_t n; + double theta, zetan, zeta2, alpha, eta, half_pow_theta; +} zipf_t; + +static double +zeta_sum(uint64_t n, double theta) +{ + uint64_t m = n < 2000000 ? n : 2000000; + double s = 0; + for (uint64_t i = 1; i <= m; i++) { + s += pow((double)i, -theta); + } + if (n > m) { + /* Euler-Maclaurin tail: sum_{k=m+1}^{n} k^-t */ + s += (pow((double)n, 1 - theta) - pow((double)m, 1 - theta)) / (1 - theta) + + 0.5 * (pow((double)n, -theta) - pow((double)m, -theta)); + } + return s; +} + +static void +zipf_init(zipf_t *z, uint64_t n, double theta) +{ + z->n = n; + z->theta = theta; + z->zetan = zeta_sum(n, theta); + z->zeta2 = 1.0 + pow(0.5, theta); + z->alpha = 1.0 / (1.0 - theta); + z->eta = + (1.0 - pow(2.0 / (double)n, 1.0 - theta)) / (1.0 - z->zeta2 / z->zetan); + z->half_pow_theta = pow(0.5, theta); +} + +static inline uint64_t +zipf_next(const zipf_t *z, uint64_t *rng) +{ + double u = rng_unit(rng); + double uz = u * z->zetan; + if (uz < 1.0) { + return 0; + } + if (uz < 1.0 + z->half_pow_theta) { + return 1; + } + uint64_t r = + (uint64_t)((double)z->n * pow(z->eta * u - z->eta + 1.0, z->alpha)); + return r >= z->n ? z->n - 1 : r; +} + +/* ------------------------------------------------------------------------ */ +/* Histogram: log2 buckets with 32 linear sub-buckets (~3% resolution) */ +/* ------------------------------------------------------------------------ */ + +#define HSUB_BITS 5 +#define HSUB (1u << HSUB_BITS) +#define HBUCKETS (64 * HSUB) + +typedef struct { + uint64_t b[HBUCKETS]; + uint64_t count, sum, max; +} hist_t; + +static inline unsigned +hidx(uint64_t v) +{ + if (v < HSUB) { + return (unsigned)v; + } + unsigned e = 63 - __builtin_clzll(v); + unsigned sub = (unsigned)((v >> (e - HSUB_BITS)) & (HSUB - 1)); + return (e - HSUB_BITS + 1) * HSUB + sub; +} + +static inline uint64_t +hval(unsigned idx) +{ + if (idx < HSUB) { + return idx; + } + unsigned e = idx / HSUB + HSUB_BITS - 1; + unsigned sub = idx % HSUB; + uint64_t lo = (UINT64_C(1) << e) | ((uint64_t)sub << (e - HSUB_BITS)); + uint64_t width = UINT64_C(1) << (e - HSUB_BITS); + return lo + width / 2; +} + +static inline void +hist_add(hist_t *h, uint64_t v) +{ + h->b[hidx(v)]++; + h->count++; + h->sum += v; + if (v > h->max) { + h->max = v; + } +} + +static void +hist_merge(hist_t *dst, const hist_t *src) +{ + for (unsigned i = 0; i < HBUCKETS; i++) { + dst->b[i] += src->b[i]; + } + dst->count += src->count; + dst->sum += src->sum; + if (src->max > dst->max) { + dst->max = src->max; + } +} + +static double +hist_pct_us(const hist_t *h, double p) +{ + if (!h->count) { + return NAN; + } + uint64_t rank = (uint64_t)ceil(p * (double)h->count); + if (rank < 1) { + rank = 1; + } + uint64_t acc = 0; + for (unsigned i = 0; i < HBUCKETS; i++) { + acc += h->b[i]; + if (acc >= rank) { + uint64_t v = hval(i); + return (double)(v > h->max ? h->max : v) / 1e3; + } + } + return (double)h->max / 1e3; +} + +static double +hist_mean_us(const hist_t *h) +{ + return h->count ? (double)h->sum / (double)h->count / 1e3 : NAN; +} + +/* ------------------------------------------------------------------------ */ +/* Options / global state */ +/* ------------------------------------------------------------------------ */ + +enum phase_kind { PH_LOAD, PH_WARM, PH_POINT, PH_RANGE, PH_OW }; +enum dist { D_UNIFORM, D_ZIPF, D_SEQ, D_NEG, D_RANDOM }; + +typedef struct { + char name[64]; + enum phase_kind kind; + enum dist dist; + uint64_t L; + int threads; +} phase_t; + +typedef struct { + const char *db, *csv, *hang_dir; + const char *vtag, *stag, *otag; + int rep; + bool create; + uint64_t n, cache_mib, disk_gib, memtable_mib; + int use_log, threads, mt_bg, normal_bg; + double secs, warmup; + uint64_t sabotage; + uint64_t hang_secs; + uint64_t seed; + int nphases; + phase_t phases[MAX_PHASES]; +} options; + +static options opt; +static splinterdb *kvs; +static data_config data_cfg; +static perm_t load_perm, zipf_perm; +static zipf_t zipf; +static uint64_t generation; /* value generation for overwrites */ + +enum { ST_WAIT = 0, ST_WARMUP = 1, ST_MEASURE = 2, ST_STOP = 3 }; +static _Atomic int run_state; +static _Atomic uint64_t seq_counter; + +/* Watchdog */ +enum { WD_IDLE, WD_OPS, WD_OPENCLOSE }; +static _Atomic int wd_mode; +static _Atomic uint64_t wd_mode_since_ns; +static const char *wd_what = ""; + +typedef struct worker { + pthread_t th; + int idx; + const phase_t *ph; + hist_t lat; + hist_t startup; + uint64_t ops, tuples, pt_ns, pt_div, deinit_ns, deinit_n; + uint64_t violations, errors, notfound, found; + uint64_t rng; + uint64_t measure_rng; + bool measure_rng_captured; + _Atomic uint64_t progress; + char first_violation[256]; +} worker_t; + +static worker_t *workers; +static int nworkers; + +/* ------------------------------------------------------------------------ */ +/* Keys / values */ +/* ------------------------------------------------------------------------ */ + +static inline void +make_key(uint64_t k, char *key) +{ + for (int i = 0; i < 8; i++) { + key[i] = (char)(k >> (56 - 8 * i)); + } + memcpy(key + 8, KEY_PAD, 16); +} + +static inline bool +decode_key(slice s, uint64_t *k) +{ + if (slice_length(s) != KEY_SIZE) { + return false; + } + const unsigned char *p = slice_data(s); + uint64_t x = 0; + for (int i = 0; i < 8; i++) { + x = (x << 8) | p[i]; + } + *k = x; + return memcmp(p + 8, KEY_PAD, 16) == 0; +} + +static inline void +make_value(uint64_t id, uint64_t gen, char *val) +{ + memcpy(val, &id, 8); + memcpy(val + 8, &gen, 8); + memset(val + 16, 'v', VALUE_SIZE - 16); +} + +static inline bool +value_id_ok(slice v, uint64_t id) +{ + if (slice_length(v) != VALUE_SIZE) { + return false; + } + uint64_t got; + memcpy(&got, slice_data(v), 8); + return got == id; +} + +static inline bool +value_generation_ok(slice v, uint64_t id, uint64_t expected_generation) +{ + if (!value_id_ok(v, id)) { + return false; + } + uint64_t got_generation; + memcpy(&got_generation, (const char *)slice_data(v) + 8, 8); + return got_generation == expected_generation; +} + +static void +violation(worker_t *w, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); + +static void +violation(worker_t *w, const char *fmt, ...) +{ + w->violations++; + if (w->violations <= 3) { + char buf[256]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + if (w->violations == 1) { + snprintf(w->first_violation, sizeof(w->first_violation), "%s", buf); + } + fprintf(stderr, "VIOLATION [thread %d]: %s\n", w->idx, buf); + } +} + +/* ------------------------------------------------------------------------ */ +/* Process metrics */ +/* ------------------------------------------------------------------------ */ + +typedef struct { + uint64_t t_ns; + double cpu_s; + uint64_t rd, wr; + uint64_t swpin, swpout; + uint64_t majflt; +} snap_t; + +static void +proc_io(uint64_t *rd, uint64_t *wr) +{ + *rd = *wr = 0; + FILE *f = fopen("/proc/self/io", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "read_bytes:")) { + *rd = v; + } else if (!strcmp(name, "write_bytes:")) { + *wr = v; + } + } + fclose(f); +} + +static void +vm_swap(uint64_t *in, uint64_t *out) +{ + *in = *out = 0; + FILE *f = fopen("/proc/vmstat", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "pswpin")) { + *in = v; + } else if (!strcmp(name, "pswpout")) { + *out = v; + } + } + fclose(f); +} + +static void +take_snap(snap_t *s) +{ + struct rusage ru; + getrusage(RUSAGE_SELF, &ru); + s->cpu_s = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1e6 + + ru.ru_stime.tv_sec + ru.ru_stime.tv_usec / 1e6; + s->majflt = ru.ru_majflt; + proc_io(&s->rd, &s->wr); + vm_swap(&s->swpin, &s->swpout); + s->t_ns = now_ns(); +} + +/* ------------------------------------------------------------------------ */ +/* DB lifecycle */ +/* ------------------------------------------------------------------------ */ + +static void +fill_config(splinterdb_config *cfg) +{ + *cfg = (splinterdb_config){ + .filename = opt.db, + .cache_size = opt.cache_mib << 20, + .disk_size = opt.disk_gib << 30, + .data_cfg = &data_cfg, + .io_flags = O_RDWR | O_CREAT | O_DIRECT, + .io_perms = 0644, + .use_log = opt.use_log ? 1 : 0, + .memtable_capacity = opt.memtable_mib << 20, + .fanout = 8, + .num_memtable_bg_threads = (uint64)opt.mt_bg, + .num_normal_bg_threads = (uint64)opt.normal_bg, + .queue_scale_percent = 100, + }; +#ifdef KVBENCH_SPACE_MODE + cfg->use_stats = 1; +#endif +} + +static double open_secs; + +static void +db_open(bool create) +{ + splinterdb_config cfg; + fill_config(&cfg); + wd_what = create ? "create" : "open"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); + int rc = + create ? splinterdb_create(&cfg, &kvs) : splinterdb_open(&cfg, &kvs); + open_secs = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + if (rc) { + fprintf(stderr, "FATAL: splinterdb_%s failed rc=%d\n", wd_what, rc); + exit(3); + } + fprintf(stderr, "%s took %.3f s\n", wd_what, open_secs); +} + +static double +db_close(void) +{ +#ifdef KVBENCH_SPACE_MODE + /* Space/stats build only: dump insertion + allocator stats for the session. + */ + if (getenv("KVBENCH_STATS_BEFORE_CLOSE")) { + platform_set_log_streams(stdout, stderr); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + } +#endif + wd_what = "close"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); +#ifdef KVBENCH_CLOSE_HAS_FORCE + int rc = splinterdb_close(&kvs, 0); + if (rc) { + fprintf(stderr, + "FINDING: splinterdb_close(force=0) refused rc=%d; forcing\n", + rc); + rc = splinterdb_close(&kvs, 1); + if (rc) { + fprintf(stderr, "FINDING: splinterdb_close(force=1) rc=%d\n", rc); + } + } +#else + splinterdb_close(&kvs); +#endif + double s = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + kvs = NULL; + fprintf(stderr, "close took %.3f s\n", s); + return s; +} + +/* ------------------------------------------------------------------------ */ +/* Watchdog */ +/* ------------------------------------------------------------------------ */ + +static void +hang_dump(const char *why) +{ + char path[512], cmd[1024]; + snprintf(path, + sizeof(path), + "%s/hang-%s-%s-%d-%ld.txt", + opt.hang_dir ? opt.hang_dir : ".", + opt.vtag, + wd_what, + (int)getpid(), + (long)time(NULL)); + fprintf(stderr, + "HANG DETECTED (%s) during %s; dumping stacks to %s\n", + why, + wd_what, + path); + snprintf(cmd, + sizeof(cmd), + "gdb -batch -ex 'info threads' -ex 'thread apply all bt' -p %d > " + "'%s' 2>&1", + (int)getpid(), + path); + int rc = system(cmd); + fprintf(stderr, "gdb rc=%d; exiting with status 99\n", rc); + fflush(stderr); + _exit(99); +} + +static void * +watchdog_main(void *arg) +{ + (void)arg; + uint64_t last_prog = 0, last_change = now_ns(), last_report = now_ns(); + uint64_t last_report_prog = 0; + double last_cpu = -1; + uint64_t last_io = 0; + int last_mode = WD_IDLE; + for (;;) { + sleep(1); + int mode = atomic_load(&wd_mode); + uint64_t now = now_ns(); + if (mode != last_mode) { + last_mode = mode; + last_change = now; + last_prog = 0; + last_report_prog = 0; + last_report = now; + last_cpu = -1; + } + if (mode == WD_OPS) { + uint64_t prog = 0; + for (int i = 0; i < nworkers; i++) { + prog += + atomic_load_explicit(&workers[i].progress, memory_order_relaxed); + } + if (prog != last_prog) { + last_prog = prog; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no op progress for hang_secs"); + } + if (now - last_report >= 10ull * 1000000000ull) { + fprintf(stderr, + " [%s] progress %" PRIu64 " ops (+%.0f ops/s)\n", + wd_what, + prog, + (prog - last_report_prog) / ((now - last_report) / 1e9)); + last_report = now; + last_report_prog = prog; + } + } else if (mode == WD_OPENCLOSE) { + snap_t s; + take_snap(&s); + uint64_t io = s.rd + s.wr; + if (last_cpu < 0 || s.cpu_s - last_cpu > 0.05 || io != last_io) { + last_cpu = s.cpu_s; + last_io = io; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no CPU or IO progress for hang_secs"); + } + uint64_t since = atomic_load(&wd_mode_since_ns); + if (now - since > 2400ull * 1000000000ull) { + hang_dump("open/close exceeded 40 minutes"); + } + } + } + return NULL; +} + +/* ------------------------------------------------------------------------ */ +/* Worker bodies */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +pick_id(worker_t *w, enum dist d, uint64_t *seqpos, uint64_t lo, uint64_t hi) +{ + switch (d) { + case D_ZIPF: + return perm_apply(&zipf_perm, zipf_next(&zipf, &w->rng)); + case D_SEQ: + { + uint64_t id = *seqpos; + *seqpos = (id + 1 >= hi) ? lo : id + 1; + return id; + } + case D_UNIFORM: + case D_NEG: + default: + return rng_next(&w->rng) % opt.n; + } +} + +static inline void +wait_start(void) +{ + while (atomic_load_explicit(&run_state, memory_order_acquire) == ST_WAIT) { + struct timespec d = {.tv_nsec = 100000}; + nanosleep(&d, NULL); + } +} + +static void * +load_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + wait_start(); + uint64_t pos = lo, chunk_end = 0, cur = 0; + for (;;) { + uint64_t id; + if (w->ph->dist == D_RANDOM) { + if (pos >= hi) { + break; + } + id = perm_apply(&load_perm, pos++); + } else { + if (cur >= chunk_end) { + cur = atomic_fetch_add(&seq_counter, 64); + if (cur >= opt.n) { + break; + } + chunk_end = cur + 64 > opt.n ? opt.n : cur + 64; + } + id = cur++; + } + make_key(2 * id, key); + make_value(id, 0, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: insert id=%" PRIu64 " rc=%d\n", id, rc); + } + } + hist_add(&w->lat, t1 - t0); + w->ops++; + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + return NULL; +} + +static void * +warm_worker(void *arg) +{ + worker_t *w = arg; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + if ((opt.sabotage & 8) && w->idx == nworkers - 1) { + hi++; /* sabotage: expect one more id than exists */ + } + char key[KEY_SIZE]; + make_key(2 * lo, key); + wait_start(); + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator_init rc=%d\n", rc); + return NULL; + } + uint64_t expect = lo; + while (expect < hi && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk; + splinterdb_iterator_get_current(it, &k, &v); + if (!decode_key(k, &kk) || kk != 2 * expect || !value_id_ok(v, expect)) { + violation(w, + "warm: expected id %" PRIu64 " got key %" PRIu64 + " (len %" PRIu64 ")", + expect, + kk, + slice_length(k)); + if (kk > 2 * expect && (kk & 1) == 0) { + expect = kk / 2; /* resync after a gap */ + } + } + expect++; + w->ops++; + if ((w->ops & 1023) == 0) { + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + if (expect < hi) { + splinterdb_iterator_next(it); + } + } + rc = splinterdb_iterator_status(it); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator status rc=%d\n", rc); + } + if (expect != hi) { + violation(w, + "warm: range [%" PRIu64 ",%" PRIu64 ") ended at %" PRIu64, + lo, + hi, + expect); + } + splinterdb_iterator_deinit(it); + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + return NULL; +} + +static void * +point_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + char buf[256]; + splinterdb_lookup_result res; + splinterdb_lookup_result_init( + kvs, &res, SPLINTERDB_LOOKUP_VALUE, sizeof(buf), buf); + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + uint64_t seqpos = lo; + bool neg = w->ph->dist == D_NEG; + wait_start(); + uint64_t n = 0; + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, lo, hi); + bool q_neg = neg; + bool e_neg = neg; + if (opt.sabotage & 1) { + q_neg = true; /* sabotage: query absent key, expect present */ + } + if ((opt.sabotage & 16) && n > 1000) { + sleep(100000); /* test hook: simulate a hang for the watchdog */ + } + if (opt.sabotage & 2) { + q_neg = false; /* sabotage: query present key, expect absent */ + } + make_key(q_neg ? 2 * id + 1 : 2 * id, key); + uint64_t t0 = now_ns(); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &res); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: lookup id=%" PRIu64 " rc=%d\n", id, rc); + } + continue; + } + bool found = splinterdb_lookup_found(&res); + if (found) { + w->found++; + } else { + w->notfound++; + } + if (e_neg) { + if (found) { + violation(w, "negative key 2*%" PRIu64 "+1 found", id); + } + } else { + slice v; + if (!found) { + violation(w, "present id %" PRIu64 " not found", id); + } else if (splinterdb_lookup_result_value(&res, &v) != 0 + || !value_id_ok(v, id)) + { + violation(w, "present id %" PRIu64 " wrong value", id); + } + } + } + splinterdb_lookup_result_deinit(&res); + return NULL; +} + +static void * +range_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + uint64_t L = w->ph->L; + uint64_t seqpos = 0; + uint64_t n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t start = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + uint64_t expect = opt.n - start < L ? opt.n - start : L; + if (opt.sabotage & 4) { + expect++; /* sabotage: expect one extra tuple */ + } + make_key(2 * start, key); + uint64_t t0 = now_ns(), t1 = 0, tl = 0; + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator_init rc=%d\n", rc); + } + continue; + } + uint64_t got = 0; + bool bad = false; + while (got < L && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk = 0; + splinterdb_iterator_get_current(it, &k, &v); + if (!bad + && (!decode_key(k, &kk) || kk != 2 * (start + got) + || !value_id_ok(v, start + got))) + { + bad = true; + if (st == ST_MEASURE) { + violation(w, + "range start %" PRIu64 " tuple %" PRIu64 + ": expected key %" PRIu64 " got %" PRIu64, + start, + got, + 2 * (start + got), + kk); + } + } + got++; + if (got == 1) { + t1 = now_ns(); + } + if (got == L) { + tl = now_ns(); + break; + } + splinterdb_iterator_next(it); + } + int status = splinterdb_iterator_status(it); + uint64_t t2 = now_ns(); + splinterdb_iterator_deinit(it); + uint64_t t3 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + if (status) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator status rc=%d\n", status); + } + } + if (got != expect) { + violation(w, + "range start %" PRIu64 " L=%" PRIu64 ": got %" PRIu64 + " tuples, expected %" PRIu64, + start, + L, + got, + expect); + } + w->ops++; + w->tuples += got; + hist_add(&w->lat, t3 - t0); + if (got >= 1) { + hist_add(&w->startup, t1 - t0); + } + if (L > 1 && got == L) { + w->pt_ns += tl - t1; + w->pt_div += L - 1; + } + w->deinit_ns += t3 - t2; + w->deinit_n++; + } + return NULL; +} + +static void * +ow_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t seqpos = 0, n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + if (st == ST_MEASURE && !w->measure_rng_captured) { + w->measure_rng = w->rng; + w->measure_rng_captured = true; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + make_value(id, generation, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: overwrite id=%" PRIu64 " rc=%d\n", id, rc); + } + } + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + } + return NULL; +} + +/* + * Validate an untimed deterministic sample from the beginning of each + * overwrite worker's measured stream. Replaying the saved RNG state keeps all + * validation work out of the measured hot path. + */ +static void +verify_overwrite_sample(const phase_t *ph, int threads) +{ + enum { SAMPLES_PER_WORKER = 4096 }; + char key[KEY_SIZE], buffer[VALUE_SIZE]; + splinterdb_lookup_result result; + splinterdb_lookup_result_init( + kvs, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(buffer), buffer); + + for (int i = 0; i < threads; i++) { + worker_t *original = &workers[i]; + if (original->ops == 0) { + continue; + } + if (!original->measure_rng_captured) { + original->errors++; + fprintf( + stderr, + "ERROR: overwrite verifier has no measurement RNG for thread %d\n", + i); + continue; + } + worker_t replay = {.rng = original->measure_rng}; + uint64_t seqpos = 0; + uint64_t samples = original->ops < SAMPLES_PER_WORKER + ? original->ops + : SAMPLES_PER_WORKER; + for (uint64_t sample = 0; sample < samples; sample++) { + uint64_t id = pick_id(&replay, ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &result); + if (rc != 0) { + original->errors++; + if (original->errors <= 3) { + fprintf(stderr, + "ERROR: overwrite verification id=%" PRIu64 " rc=%d\n", + id, + rc); + } + continue; + } + slice value; + if (!splinterdb_lookup_found(&result) + || splinterdb_lookup_result_value(&result, &value) != 0 + || !value_generation_ok(value, id, generation)) + { + violation(original, + "overwrite verification id=%" PRIu64 + " did not return generation %" PRIu64, + id, + generation); + } + } + } + splinterdb_lookup_result_deinit(&result); +} + +/* ------------------------------------------------------------------------ */ +/* Phase driver */ +/* ------------------------------------------------------------------------ */ + +static const char * +dist_name(enum dist d) +{ + switch (d) { + case D_UNIFORM: + return "uniform"; + case D_ZIPF: + return "zipf"; + case D_SEQ: + return "seq"; + case D_NEG: + return "neg"; + case D_RANDOM: + return "random"; + } + return "?"; +} + +static void +sleep_secs(double s) +{ + uint64_t end = now_ns() + (uint64_t)(s * 1e9); + for (;;) { + uint64_t now = now_ns(); + if (now >= end) { + break; + } + uint64_t rem = end - now; + struct timespec d = {.tv_sec = rem / 1000000000ull, + .tv_nsec = rem % 1000000000ull}; + nanosleep(&d, NULL); + } +} + +static void +file_sizes(uint64_t *apparent, uint64_t *alloc) +{ + struct stat st; + if (stat(opt.db, &st) == 0) { + *apparent = (uint64_t)st.st_size; + *alloc = (uint64_t)st.st_blocks * 512; + } else { + *apparent = *alloc = 0; + } +} + +static int csv_header_written; + +static void +csv_row(const phase_t *ph, + int threads, + hist_t *lat, + hist_t *startup, + uint64_t ops, + uint64_t tuples, + uint64_t pt_ns, + uint64_t pt_div, + uint64_t deinit_ns, + uint64_t deinit_n, + uint64_t viol, + uint64_t errs, + const snap_t *a, + const snap_t *b, + double insert_s, + double drain_s, + const snap_t *da, + const snap_t *db_, + uint64_t app, + uint64_t alc) +{ + double secs = (b->t_ns - a->t_ns) / 1e9; + double cpu = b->cpu_s - a->cpu_s; + uint64_t rd = b->rd - a->rd, wr = b->wr - a->wr; + double d_cpu = da ? db_->cpu_s - da->cpu_s : 0; + uint64_t d_rd = da ? db_->rd - da->rd : 0, d_wr = da ? db_->wr - da->wr : 0; + uint64_t swin = b->swpin - a->swpin + (da ? db_->swpin - da->swpin : 0); + uint64_t swout = b->swpout - a->swpout + (da ? db_->swpout - da->swpout : 0); + uint64_t majflt = b->majflt - a->majflt; + double logical = (double)ops * (KEY_SIZE + VALUE_SIZE); + double wamp = (ph->kind == PH_LOAD || ph->kind == PH_OW) && ops + ? (double)(wr + d_wr) / logical + : NAN; + double pt = pt_div ? (double)pt_ns / (double)pt_div : NAN; + double dmean = deinit_n ? (double)deinit_ns / (double)deinit_n / 1e3 : NAN; + + printf("== %-22s T=%-2d ops=%-10" PRIu64 " secs=%7.2f ops/s=%11.0f " + "lat us p50=%.2f p99=%.2f p99.9=%.2f max=%.1f mean=%.2f\n", + ph->name, + threads, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat)); + printf(" cpu=%.2fs ops/cpu-s=%.0f rd=%.1f B/op wr=%.1f B/op " + "violations=%" PRIu64 " errors=%" PRIu64 " swapin=%" PRIu64 + " swapout=%" PRIu64 " majflt=%" PRIu64 "\n", + cpu, + ops / cpu, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + viol, + errs, + swin, + swout, + majflt); + if (ph->kind == PH_RANGE) { + printf(" startup us p50=%.2f p99=%.2f mean=%.2f per-tuple=%.1f ns " + "deinit mean=%.2f us tuples/s=%.0f\n", + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples / secs); + } + if (da) { + printf( + " insert/run=%.2fs drain(close)=%.2fs total=%.2fs drain_cpu=%.2fs " + "drain_rd=%" PRIu64 " drain_wr=%" PRIu64 " wamp=%.3f " + "db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc); + } + fflush(stdout); + + if (!opt.csv) { + return; + } + FILE *f = fopen(opt.csv, "a"); + if (!f) { + perror(opt.csv); + return; + } + if (!csv_header_written) { + fseek(f, 0, SEEK_END); + if (ftell(f) == 0) { + fprintf(f, + "version,size,order,log,phase,threads,rep,n,ops,secs,ops_s," + "p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s," + "rd_bytes,wr_bytes,rd_B_op,wr_B_op," + "startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns," + "deinit_mean_us,tuples,tuples_s," + "insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp," + "db_apparent,db_alloc,open_s,violations,errors,swapin,swapout," + "majflt\n"); + } + csv_header_written = 1; + } + fprintf(f, + "%s,%s,%s,%d,%s,%d,%d,%" PRIu64 ",%" PRIu64 ",%.3f,%.1f," + "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.1f," + "%" PRIu64 ",%" PRIu64 ",%.2f,%.2f," + "%.3f,%.3f,%.3f,%.2f," + "%.3f,%" PRIu64 ",%.1f," + "%.3f,%.3f,%.3f,%.3f,%" PRIu64 ",%" PRIu64 ",%.4f," + "%" PRIu64 ",%" PRIu64 ",%.3f,%" PRIu64 ",%" PRIu64 ",%" PRIu64 + ",%" PRIu64 ",%" PRIu64 "\n", + opt.vtag, + opt.stag, + opt.otag, + opt.use_log, + ph->name, + threads, + opt.rep, + opt.n, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat), + cpu, + ops / cpu, + rd, + wr, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples, + tuples / secs, + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc, + open_secs, + viol, + errs, + swin, + swout, + majflt); + fclose(f); +} + +static void +run_phase(const phase_t *ph, bool last) +{ + int T = ph->threads > 0 ? ph->threads : opt.threads; + nworkers = T; + workers = calloc((size_t)T, sizeof(worker_t)); + if (!workers) { + fprintf(stderr, "FATAL: out of memory\n"); + exit(3); + } + void *(*fn)(void *) = NULL; + switch (ph->kind) { + case PH_LOAD: + fn = load_worker; + break; + case PH_WARM: + fn = warm_worker; + break; + case PH_POINT: + fn = point_worker; + break; + case PH_RANGE: + fn = range_worker; + break; + case PH_OW: + fn = ow_worker; + break; + } + bool fixed_count = ph->kind == PH_LOAD || ph->kind == PH_WARM; + atomic_store(&run_state, ST_WAIT); + atomic_store(&seq_counter, 0); + for (int i = 0; i < T; i++) { + workers[i].idx = i; + workers[i].ph = ph; + workers[i].rng = mix(opt.seed * 1000003 + (uint64_t)i * 7919 + 17 + + (uint64_t)ph->kind * 131 + (uint64_t)ph->dist); + if (pthread_create(&workers[i].th, NULL, fn, &workers[i])) { + fprintf(stderr, "FATAL: pthread_create\n"); + exit(3); + } + } + fprintf(stderr, + "phase %s: T=%d dist=%s %s\n", + ph->name, + T, + dist_name(ph->dist), + fixed_count ? "(fixed count)" : "(fixed duration)"); + wd_what = ph->name; + atomic_store(&wd_mode, WD_OPS); + snap_t a, b; + if (fixed_count) { + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + take_snap(&b); + } else { + atomic_store_explicit(&run_state, ST_WARMUP, memory_order_release); + sleep_secs(opt.warmup); + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + sleep_secs(opt.secs); + atomic_store_explicit(&run_state, ST_STOP, memory_order_release); + take_snap(&b); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + } + atomic_store(&wd_mode, WD_IDLE); + + if (ph->kind == PH_OW) { + verify_overwrite_sample(ph, T); + } + + hist_t *lat = calloc(1, sizeof(hist_t)), + *startup = calloc(1, sizeof(hist_t)); + uint64_t ops = 0, tuples = 0, pt_ns = 0, pt_div = 0, dns = 0, dn = 0, + viol = 0, errs = 0, found = 0, notfound = 0; + for (int i = 0; i < T; i++) { + worker_t *w = &workers[i]; + hist_merge(lat, &w->lat); + hist_merge(startup, &w->startup); + ops += w->ops; + tuples += w->tuples; + pt_ns += w->pt_ns; + pt_div += w->pt_div; + dns += w->deinit_ns; + dn += w->deinit_n; + viol += w->violations; + errs += w->errors; + found += w->found; + notfound += w->notfound; + } + if (ph->kind == PH_WARM) { + tuples = ops; + if (ops != opt.n && !(opt.sabotage & 8)) { + fprintf(stderr, + "VIOLATION: warm scanned %" PRIu64 " tuples, expected %" PRIu64 + "\n", + ops, + opt.n); + viol++; + } + } + if (ph->kind == PH_POINT) { + fprintf(stderr, + " found=%" PRIu64 " notfound=%" PRIu64 "\n", + found, + notfound); + } + + double insert_s = (b.t_ns - a.t_ns) / 1e9, drain_s = 0; + snap_t da, dbs; + uint64_t app = 0, alc = 0; + bool closed = false; + if (ph->kind == PH_LOAD || last) { + take_snap(&da); + drain_s = db_close(); + take_snap(&dbs); + file_sizes(&app, &alc); + closed = true; + } + csv_row(ph, + T, + lat, + startup, + ops, + tuples, + pt_ns, + pt_div, + dns, + dn, + viol, + errs, + &a, + &b, + insert_s, + drain_s, + closed ? &da : NULL, + closed ? &dbs : NULL, + app, + alc); + if (viol) { + printf(" FINDING: %" PRIu64 + " correctness violations in %s (first: %s)\n", + viol, + ph->name, + workers[0].first_violation[0] ? workers[0].first_violation + : "see stderr"); + } + free(lat); + free(startup); + free(workers); + workers = NULL; + nworkers = 0; + if (closed && !last) { + db_open(false); + } +} + +/* ------------------------------------------------------------------------ */ +/* CLI */ +/* ------------------------------------------------------------------------ */ + +static void +usage(void) +{ + fprintf( + stderr, + "usage: kvbench --db PATH (--create|--open) --n N --cache-mib M " + "--disk-gib G --log 0|1\n" + " [--threads 6] [--mt-bg 1] [--normal-bg 4] [--memtable-mib 24]\n" + " [--secs 20] [--warmup 3] [--csv FILE] [--hang-dir DIR]\n" + " [--vtag S] [--stag S] [--otag S] [--rep R] [--seed S]\n" + " [--sabotage MASK] (1: point present->query absent; 2: point " + "neg->query present;\n" + " 4: range expects +1; 8: warm expects +1; 16: " + "point threads hang)\n" + " [--hang-secs 120] (no-progress timeout before gdb dump + exit 99\n" + " phase... load:random|load:seq warm point:uniform|zipf|seq|neg\n" + " range:uniform|zipf:L ow:uniform|zipf (suffix @T = " + "threads)\n"); + exit(2); +} + +static bool +parse_phase(const char *s, phase_t *ph) +{ + memset(ph, 0, sizeof(*ph)); + snprintf(ph->name, sizeof(ph->name), "%s", s); + char buf[64]; + snprintf(buf, sizeof(buf), "%s", s); + char *at = strchr(buf, '@'); + if (at) { + *at = 0; + ph->threads = atoi(at + 1); + } + char *a = strtok(buf, ":"), *b = strtok(NULL, ":"), *c = strtok(NULL, ":"); + if (!a) { + return false; + } + enum dist d = D_UNIFORM; + if (b) { + if (!strcmp(b, "uniform")) + d = D_UNIFORM; + else if (!strcmp(b, "zipf")) + d = D_ZIPF; + else if (!strcmp(b, "seq")) + d = D_SEQ; + else if (!strcmp(b, "neg")) + d = D_NEG; + else if (!strcmp(b, "random")) + d = D_RANDOM; + else + return false; + } + ph->dist = d; + if (!strcmp(a, "load")) { + ph->kind = PH_LOAD; + return b && (d == D_RANDOM || d == D_SEQ); + } else if (!strcmp(a, "warm")) { + ph->kind = PH_WARM; + return true; + } else if (!strcmp(a, "point")) { + ph->kind = PH_POINT; + return b != NULL; + } else if (!strcmp(a, "range")) { + ph->kind = PH_RANGE; + if (!b || !c || (d != D_UNIFORM && d != D_ZIPF)) { + return false; + } + ph->L = strtoull(c, NULL, 10); + return ph->L >= 1; + } else if (!strcmp(a, "ow")) { + ph->kind = PH_OW; + return b && (d == D_UNIFORM || d == D_ZIPF); + } + return false; +} + +int +main(int argc, char **argv) +{ + opt = (options){.threads = 6, + .mt_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .secs = 20, + .warmup = 3, + .vtag = "?", + .stag = "?", + .otag = "?", + .rep = 1, + .seed = 42, + .hang_secs = 120, + .use_log = -1}; + int mode = -1; +#ifdef KVBENCH_SPACE_MODE + /* + * Space-check build only: open with use_stats, print insertion stats + * (which include allocator "Currently Allocated" extents, recomputed from + * the persisted allocator map at open), close. No phases, no writes. + */ + bool space_mode = false; +#endif + for (int i = 1; i < argc; i++) { + const char *s = argv[i]; +#define ARG(name) (!strcmp(s, name) && i + 1 < argc) + if (!strcmp(s, "--create")) + mode = 1; + else if (!strcmp(s, "--open")) + mode = 0; + else if (ARG("--db")) + opt.db = argv[++i]; + else if (ARG("--csv")) + opt.csv = argv[++i]; + else if (ARG("--hang-dir")) + opt.hang_dir = argv[++i]; + else if (ARG("--vtag")) + opt.vtag = argv[++i]; + else if (ARG("--stag")) + opt.stag = argv[++i]; + else if (ARG("--otag")) + opt.otag = argv[++i]; + else if (ARG("--rep")) + opt.rep = atoi(argv[++i]); + else if (ARG("--n")) + opt.n = strtoull(argv[++i], NULL, 0); + else if (ARG("--cache-mib")) + opt.cache_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--disk-gib")) + opt.disk_gib = strtoull(argv[++i], NULL, 0); + else if (ARG("--memtable-mib")) + opt.memtable_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--log")) + opt.use_log = atoi(argv[++i]); + else if (ARG("--threads")) + opt.threads = atoi(argv[++i]); + else if (ARG("--mt-bg")) + opt.mt_bg = atoi(argv[++i]); + else if (ARG("--normal-bg")) + opt.normal_bg = atoi(argv[++i]); + else if (ARG("--secs")) + opt.secs = atof(argv[++i]); + else if (ARG("--warmup")) + opt.warmup = atof(argv[++i]); + else if (ARG("--sabotage")) + opt.sabotage = strtoull(argv[++i], NULL, 0); + else if (ARG("--hang-secs")) + opt.hang_secs = strtoull(argv[++i], NULL, 0); + else if (ARG("--seed")) + opt.seed = strtoull(argv[++i], NULL, 0); +#ifdef KVBENCH_SPACE_MODE + else if (!strcmp(s, "space")) + space_mode = true; +#endif + else if (s[0] == '-') + usage(); + else { + if (opt.nphases >= MAX_PHASES + || !parse_phase(s, &opt.phases[opt.nphases])) + { + fprintf(stderr, "bad phase '%s'\n", s); + usage(); + } + opt.nphases++; + } +#undef ARG + } +#ifdef KVBENCH_SPACE_MODE + if (space_mode && opt.db && opt.cache_mib && opt.disk_gib + && opt.use_log >= 0) + { + default_data_config_init(&data_cfg); + platform_set_log_streams(stdout, stderr); + db_open(false); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + db_close(); + uint64_t app, alc; + file_sizes(&app, &alc); + printf("space: db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", app, alc); + return 0; + } +#endif + if (!opt.db || mode < 0 || !opt.n || !opt.cache_mib || !opt.disk_gib + || opt.use_log < 0 || !opt.nphases || opt.threads < 1 + || opt.threads > MAX_WORKERS) + { + usage(); + } + for (int i = 0; i < opt.nphases; i++) { + if (opt.phases[i].threads > MAX_WORKERS) { + usage(); + } + } + prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + setvbuf(stdout, NULL, _IOLBF, 0); + + default_data_config_init(&data_cfg); + perm_init(&load_perm, opt.n, opt.seed * 2 + 1); + perm_init(&zipf_perm, opt.n, opt.seed * 2 + 2); + zipf_init(&zipf, opt.n, 0.99); + generation = (uint64_t)time(NULL); + + printf("kvbench version=%s splinter=%s db=%s mode=%s n=%" PRIu64 + " cache_mib=%" PRIu64 " disk_gib=%" PRIu64 + " log=%d threads=%d mt_bg=%d normal_bg=%d memtable_mib=%" PRIu64 + " secs=%.1f warmup=%.1f rep=%d sabotage=%" PRIu64 "\n", + opt.vtag, + splinterdb_get_version(), + opt.db, + mode ? "create" : "open", + opt.n, + opt.cache_mib, + opt.disk_gib, + opt.use_log, + opt.threads, + opt.mt_bg, + opt.normal_bg, + opt.memtable_mib, + opt.secs, + opt.warmup, + opt.rep, + opt.sabotage); + + pthread_t wd; + pthread_create(&wd, NULL, watchdog_main, NULL); + + db_open(mode == 1); + for (int i = 0; i < opt.nphases; i++) { + run_phase(&opt.phases[i], i == opt.nphases - 1); + } + if (kvs) { + db_close(); + } + return 0; +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/main-build.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/main-build.json new file mode 100644 index 000000000..c34761093 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/main-build.json @@ -0,0 +1,230 @@ +{ + "tree": "/home/rob/projects/splinterdb", + "head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "library": "/home/rob/projects/splinterdb/build-main-7bb5fab/release/lib/libsplinterdb.a", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "binaries": { + "kvbench": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/include", + "-I", + "/home/rob/projects/splinterdb/src", + "-I", + "/home/rob/projects/splinterdb/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/kvbench.c", + "/home/rob/projects/splinterdb/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/kvbench", + "binary_sha256": "f9a3dbd472dd5a6773abbd986dee047aec294108779eb731f678943aaeb89c5e", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + }, + "insert_benchmark": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/include", + "-I", + "/home/rob/projects/splinterdb/src", + "-I", + "/home/rob/projects/splinterdb/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/insert_benchmark.c", + "/home/rob/projects/splinterdb/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/insert_benchmark", + "binary_sha256": "9c39506eca1e6dc3088f26df34ce0c3af5920baa767533552e4d723579947c6c", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/insert_benchmark.c", + "source_sha256": "75acbda52b2a8949f1d61710a8d89250d4dac63b12ec9803b89170f9c2cc0b26" + }, + "prefix_kvbench": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/include", + "-I", + "/home/rob/projects/splinterdb/src", + "-I", + "/home/rob/projects/splinterdb/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/prefix_kvbench.c", + "/home/rob/projects/splinterdb/build-main-7bb5fab/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/sources/prefix_kvbench.c", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51" + } + }, + "source_files_sha256": { + "include/splinterdb/data.h": "6d8984e702da446c2fe145eb2f6a576ca040cfd5740733c405d0d7387b243ec2", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "364073691c390663f6b732f57c3ee4bfecc9f68aca33ef6750d6106e04462dc8", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "bc0621be7903d64e25059140005dafeea3f2a4a4ae0e658686501e52e4be934f", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "7d46871423a15992f697cabb363316183cb842a11c26017f8566267174e5ae45", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "f637081a194302c584cccfd8d717253817794b34bbca754bd2c9e597acc534b9", + "src/btree.h": "6ed244b6731c490f224c7b5fea7b5a9dc27eca1aa808e6dab6b44a0c7b511638", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "70caf9f8d7794dea8d2aeec339883ccfcfdfc29ce6c2e1edd2d0353c4a3975ea", + "src/core.h": "7cf4d086f6d4dcaa4cbd161fef786dbe3cc502ced4512b7fe547c2aa2020462e", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "49a2b0aec91a1c40784b8b3b54f016ef5504c79492b1393674123e27656a09bb", + "src/log_data.h": "06ab1d39b77abb01ec66a901fa52354908be26db8daef52899f5c03a6db2462e", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "df98421e597d1edeac871755f0473055b590791af8efad495575d20260e46a12", + "src/merge.h": "c17e2a0b6272ec52e6d1e80acd9df7dc85221f186e6c60e323c37b467dc5c41a", + "src/mini_allocator.c": "d9444da13fca2000f4128500b84be2b778300a4befc93f72e52b071b83c6491e", + "src/mini_allocator.h": "8d5242f5e4df5443baeab7a494a3c3b2f1491216abfd914c6dbc273370e45683", + "src/notification.c": "2f3bcda49d8ce35ad532fef8ec8f4aeca48bec280cdf6210c21d55cf2aa4a661", + "src/notification.h": "47eb73f5813d6f54658f339ce44d6a475f8f64f2b2eb6368261e839a090f083f", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "a145d39af39caf9dec6f1e1e24b6606ed615587d8dee52a23e0df410b2d07545", + "src/rc_allocator.h": "65f01decb7244b8f6a6c9e7acb47d4ccb4f2f3f369461e70aff33211f03ee39b", + "src/routing_filter.c": "3e722a880217cc4f5831f162dd6b3853a5d0d3f67ca3d3421b2144650657f73a", + "src/routing_filter.h": "579a3a4cc00b9cb125479b23eaa93e4a8309a195fe4082d988b629d4b95a2c91", + "src/shard_log.c": "ed1fcdb429d4fc26382546ecbce04154910275494e9fef522cf34b647cf5e734", + "src/shard_log.h": "07c5867b959eefd35e3e9f08e6c015a594f6331850844590e9c2b1126cd2716b", + "src/splinterdb.c": "e054c2dc9224c7de8bdb63206bb5150947f853d903e3b8012ba46fe1a66dba5f", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "34dd4c724e53c98f170c024c70dd22dae0a466806c167134200f92128420dfba", + "src/superblock.h": "72cd00ce0a7c43d1c25905d6bd39a400fa3245c133a3f559c58ae34a962157f2", + "src/task.c": "35886e598b4464af16e76497917955d3d55c6c077fbcf80fb3fd2284c8ddc08d", + "src/task.h": "35405e04fbdcef9bc5c5d6ef43debc4b0889d6bc4d8d530649b0c45a34012825", + "src/trunk.c": "892373ec383717289a6220b4351b670637e7c41877a97eb0edcb27a9e4e270f2", + "src/trunk.h": "05c5c5313f5a42b68482d03b58d2f17081c6da468a0ce888b0b0b38cc069baf2", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9" + }, + "library_build_configuration": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": { + "sha256": "5aa1a945982ec32bed4c489a7d08bea5e92d78220a31d095780e5978b5b537ee", + "text": "BUILD_ROOT=build-main-7bb5fab\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/tmp/splinter-main-7bb5fab-benchmark-baseline-libs-icr_rin0/GMfifo4 -- BUILD_MODE=release BUILD_ROOT=build-main-7bb5fab\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/package.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/package.py new file mode 100644 index 000000000..d55883554 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/package.py @@ -0,0 +1,67 @@ +"""Produce compact per-project archives without fixtures or executables.""" +import csv,hashlib,json,shutil,subprocess +from pathlib import Path +COORD=Path(__file__).resolve().parent +OUT=Path('/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab') +DEST=COORD/'project-archives' +PROJECTS=['disk-format','filtered-ranges','log-group-limit','branch-prefix','lazy-merge','cache-directory','async-durable-barrier','cache-invalid-addresses'] +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def write(p,v):p.write_text(json.dumps(v,indent=2)+'\n') +def readcsv(p): + with p.open() as f:return list(csv.DictReader(f)) +def writecsv(p,rs): + if not rs:return + with p.open('w') as f: + w=csv.DictWriter(f,fieldnames=list(rs[0]),lineterminator='\n');w.writeheader();w.writerows(rs) +subprocess.run(['python3',str(COORD/'report.py')],check=True) +summary=readcsv(COORD/'summary.csv') +expected={'fixtures':12,'resident':23,'disk':23,'prefix-resident-common':4,'prefix-resident-random':4,'prefix-disk-common':4,'prefix-disk-random':4,'insert':31,'hash':4,'barrier':24,'repeat-warmup':1,'repeat-cache-invalid-addresses':4,'repeat-directory-bucket-atomic':4,'repeat-async-durable-barrier':4} +for mode,count in expected.items(): + manifest=json.loads((OUT/mode/'manifest.json').read_text()) + assert manifest['complete'] and len(manifest['runs'])==count and all(r['verified'] and r['returncode']==0 for r in manifest['runs']),mode + +for project in PROJECTS: + profiles=[project] if project!='cache-directory' else ['directory-'+x for x in ['direct','bucket','bucket-simd','bucket-atomic']] + versions=profiles+(['log-disabled','log-default'] if project=='log-group-limit' else []) + path=DEST/project;path.mkdir(parents=True,exist_ok=False) + own=[r for r in summary if r['version'] in versions] + for r in own:r.update(scope='new main versus updated feature; merge cost not isolated') + writecsv(path/'summary.csv',own) + source_names={'kvbench.c','insert_benchmark.c'} + fixtures=json.loads((OUT/'fixtures/manifest.json').read_text());assert fixtures['complete'] and all(r['verified'] for r in fixtures['runs']) + fixtures['runs']=[r for r in fixtures['runs'] if r['profile'] in ['main',*profiles] and (('ordinary' not in r['label']) if project=='branch-prefix' else ('ordinary' in r['label']))] + fixture_out=path/'fixtures';fixture_out.mkdir();write(fixture_out/'manifest.json',fixtures) + for record in fixtures['runs']: + for suffix in ['.csv','.log']: + file=OUT/'fixtures'/(record['label']+suffix);shutil.copyfile(file,fixture_out/file.name) + if project=='branch-prefix':source_names.add('prefix_kvbench.c') + if project=='async-durable-barrier':source_names.add('barrier_bench.c') + if project=='filtered-ranges':source_names.add('hash_range_benchmark.c') + for name in source_names:shutil.copyfile(COORD/'sources'/name,path/name) + for name in ['run_matrix.py','build_all.py','report.py','package.py','preparation.json','feature-summaries.json','host.json','run_matrix-fixtures.py','control-drift.csv','repeat.py','audit.json','audit.py','report.md','benchmark-jobs.json','run_job.py']:shutil.copyfile(COORD/name,path/name) + for profile in ['main',*profiles]: + build=json.loads((COORD/(profile+'-build.json')).read_text());build['binaries']={name:value for name,value in build['binaries'].items() if name+'.c' in source_names};write(path/(profile+'-build.json'),build) + tests=[] + for folder in OUT.iterdir(): + if not folder.is_dir() or folder.name=='fixtures' or not (folder/'manifest.json').exists():continue + m=json.loads((folder/'manifest.json').read_text()) + assert m.get('complete') and m['runs'] and all(r['verified'] for r in m['runs']),folder + selected=[r for r in m['runs'] if r['profile'] in profiles] + if folder.name=='repeat-warmup' and project in ['async-durable-barrier','cache-invalid-addresses','cache-directory']:selected=m['runs'] + if not selected:continue + target=path/folder.name;target.mkdir() + rr=[r for r in m['runs'] if r['profile'] in profiles+['main']] + m['runs']=rr;write(target/'manifest.json',m) + for r in rr: + for file in folder.glob(r['label']+'.*'): + if file.suffix in ['.csv','.log']:shutil.copyfile(file,target/file.name) + if (folder/'results.csv').exists(): + rows=readcsv(folder/'results.csv') + if 'version' in rows[0]:rows=[r for r in rows if r['version'] in versions+['main']] + elif 'label' in rows[0]:rows=[r for r in rows if r['label'] in [x['label'] for x in rr]] + writecsv(target/'results.csv',rows) + tests.append(dict(workload=folder.name,runs=len(rr),feature_runs=sum(r['profile'] in profiles for r in rr),warmup_runs=len(rr) if folder.name=='repeat-warmup' else 0,verified=sum(r['verified'] for r in rr),complete=m['complete'])) + assert own and tests,project + write(path/'status.json',dict(project=project,scope='new main versus updated feature; merge cost not isolated',workloads=tests,reported_errors=sum(int(r['errors']) for r in own),reported_violations=sum(int(r['violations']) for r in own),all_runs_verified=bool(tests) and all(x['verified']==x['runs'] and x['complete'] for x in tests))) + inventory={str(p.relative_to(path)):sha(p) for p in path.rglob('*') if p.is_file()};write(path/'inventory.json',inventory) +print(DEST) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/00-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/00-main.log new file mode 100644 index 000000000..11a193a81 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/00-main.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=0 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.16 ops/s= 12754094 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.61s ops/cpu-s=3286717 rd=188.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=833871 notfound=0 +== point:uniform@8 T=8 ops=833871 secs= 5.00 ops/s= 166767 lat us p50=50.69 p99=95.23 p99.9=133.12 max=4143.1 mean=47.90 + cpu=5.53s ops/cpu-s=150845 rd=3528.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 324937 ops (+32492 ops/s) +== range:uniform:1@8 T=8 ops=336838 secs= 5.00 ops/s= 67365 lat us p50=111.62 p99=299.01 p99.9=430.08 max=8138.1 mean=118.68 + cpu=41.90s ops/cpu-s=8039 rd=14152.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=109.57 p99=290.82 mean=117.91 per-tuple=nan ns deinit mean=0.72 us tuples/s=67365 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.092 s +== range:uniform:10000@8 T=8 ops=4496 secs= 5.00 ops/s= 899 lat us p50=7405.57 p99=23330.82 p99.9=31719.42 max=34712.7 mean=8896.84 + cpu=17.25s ops/cpu-s=261 rd=2537534.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=364.54 p99=1196.03 mean=402.39 per-tuple=850.9 ns deinit mean=1.25 us tuples/s=8977298 + insert/run=5.00s drain(close)=0.09s total=5.09s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=834437120 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/01-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/01-branch-prefix.log new file mode 100644 index 000000000..8f6283a3c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/01-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=1 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.15 ops/s= 12910108 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.63s ops/cpu-s=3178437 rd=134.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=732889 notfound=0 +== point:uniform@8 T=8 ops=732889 secs= 5.00 ops/s= 146572 lat us p50=61.95 p99=107.52 p99.9=794.62 max=3079.5 mean=54.52 + cpu=4.42s ops/cpu-s=165890 rd=3207.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 296707 ops (+29669 ops/s) +== range:uniform:1@8 T=8 ops=304394 secs= 5.00 ops/s= 60876 lat us p50=115.71 p99=380.93 p99.9=1884.16 max=6156.4 mean=131.35 + cpu=41.56s ops/cpu-s=7324 rd=10943.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=113.66 p99=380.93 mean=130.36 per-tuple=nan ns deinit mean=0.94 us tuples/s=60876 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.097 s +== range:uniform:10000@8 T=8 ops=4844 secs= 5.00 ops/s= 969 lat us p50=6356.99 p99=27000.83 p99.9=45613.06 max=59140.5 mean=8249.10 + cpu=16.27s ops/cpu-s=298 rd=1806230.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=348.16 p99=1589.25 mean=401.63 per-tuple=786.3 ns deinit mean=1.37 us tuples/s=9671992 + insert/run=5.00s drain(close)=0.10s total=5.10s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=550490112 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/02-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/02-branch-prefix.log new file mode 100644 index 000000000..c25a419c1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/02-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.16 ops/s= 12146167 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.70s ops/cpu-s=2864336 rd=134.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=745918 notfound=0 +== point:uniform@8 T=8 ops=745918 secs= 5.00 ops/s= 149177 lat us p50=61.95 p99=105.47 p99.9=149.50 max=2878.9 mean=53.57 + cpu=4.62s ops/cpu-s=161545 rd=3207.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 305669 ops (+30565 ops/s) +== range:uniform:1@8 T=8 ops=317236 secs= 5.00 ops/s= 63445 lat us p50=115.71 p99=348.16 p99.9=532.48 max=3819.8 mean=126.03 + cpu=41.68s ops/cpu-s=7612 rd=10925.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=113.66 p99=348.16 mean=125.04 per-tuple=nan ns deinit mean=0.94 us tuples/s=63445 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.081 s +== range:uniform:10000@8 T=8 ops=4946 secs= 5.00 ops/s= 989 lat us p50=6356.99 p99=23330.82 p99.9=29622.27 max=30458.8 mean=8085.81 + cpu=16.46s ops/cpu-s=300 rd=1823078.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=339.97 p99=1163.26 mean=375.84 per-tuple=772.4 ns deinit mean=1.43 us tuples/s=9875983 + insert/run=5.00s drain(close)=0.08s total=5.08s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=550490112 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/03-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/03-main.log new file mode 100644 index 000000000..b93c3f758 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/03-main.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=3 sabotage=0 +open took 0.041 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.18 ops/s= 11121947 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=2985351 rd=188.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=685880 notfound=0 +== point:uniform@8 T=8 ops=685880 secs= 5.00 ops/s= 137171 lat us p50=62.98 p99=117.76 p99.9=149.50 max=2005.8 mean=58.26 + cpu=4.52s ops/cpu-s=151608 rd=3526.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 271418 ops (+27140 ops/s) +== range:uniform:1@8 T=8 ops=284082 secs= 5.00 ops/s= 56814 lat us p50=130.05 p99=356.35 p99.9=565.25 max=4520.2 mean=140.73 + cpu=41.81s ops/cpu-s=6795 rd=14152.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=130.05 p99=356.35 mean=139.95 per-tuple=nan ns deinit mean=0.73 us tuples/s=56814 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.081 s +== range:uniform:10000@8 T=8 ops=4064 secs= 5.00 ops/s= 813 lat us p50=7929.86 p99=28049.41 p99.9=37224.45 max=43252.8 mean=9847.14 + cpu=15.58s ops/cpu-s=261 rd=2530641.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + startup us p50=405.50 p99=1359.87 mean=449.73 per-tuple=941.8 ns deinit mean=1.21 us tuples/s=8112826 + insert/run=5.00s drain(close)=0.08s total=5.08s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=834437120 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/manifest.json new file mode 100644 index 000000000..708e01dbe --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/manifest.json @@ -0,0 +1,311 @@ +{ + "mode": "prefix-disk-common", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Updated feature branches versus fresh main; not an isolation of merge cost", + "runner_sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "runs": [ + { + "label": "00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/results.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907591.6135461, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907609.9149086, + "log_sha256": "8d0024fdee92e235956a39eaa0af8e7c5d160dd13af124adf757428bfdefb2c1", + "process_cpu_s": 78.40283099999994, + "process_read_bytes": 23283638272, + "process_write_bytes": 319488, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.db", + "fixture_sha256": "830b8a8131e519c61ce4f699bdf857dff08a5be7071e6be4a3065d17d5b9dc58", + "allocated_bytes": 834621440, + "apparent_bytes": 3671330816 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 834437120 + }, + { + "label": "01-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907610.6976256, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907628.9998405, + "log_sha256": "2ff3af1f12a4e985b2e6ec9597d1c8bde2efb433e464f5133d6bfe995a78a6de", + "process_cpu_s": 75.52613400000014, + "process_read_bytes": 17631457280, + "process_write_bytes": 319488, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.db", + "fixture_sha256": "878befa71de3feeeb30ca8cf2837ba163e5495378a72f3332b4f495ca3234b08", + "allocated_bytes": 550690816, + "apparent_bytes": 3250065408 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 550490112 + }, + { + "label": "02-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907629.63418, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907647.933148, + "log_sha256": "45409b0754d8f55324e38c4c2ea0d581dfcbc171e1f1b82c975c5235a8f3f749", + "process_cpu_s": 76.14158800000014, + "process_read_bytes": 18053763072, + "process_write_bytes": 315392, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-common.db", + "fixture_sha256": "878befa71de3feeeb30ca8cf2837ba163e5495378a72f3332b4f495ca3234b08", + "allocated_bytes": 550690816, + "apparent_bytes": 3250065408 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 550490112 + }, + { + "label": "03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common/results.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907648.7705991, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907667.126624, + "log_sha256": "54af21c34826d0545715b9d5c0c16a1337c15e8b937cb0fb0dcb7011226570ef", + "process_cpu_s": 75.03298799999988, + "process_read_bytes": 20464185344, + "process_write_bytes": 323584, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-common.db", + "fixture_sha256": "830b8a8131e519c61ce4f699bdf857dff08a5be7071e6be4a3065d17d5b9dc58", + "allocated_bytes": 834621440, + "apparent_bytes": 3671330816 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 834437120 + } + ], + "complete": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/results.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/results.csv new file mode 100644 index 000000000..f037d2a78 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,warm,8,0,2000000,2000000,0.157,12754094.5,nan,nan,nan,0.000,nan,0.609,3286716.7,376864768,32768,188.43,0.02,nan,nan,nan,nan,nan,2000000,12754094.5,0.157,0.000,0.157,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,0,0,point:uniform@8,8,0,2000000,833871,5.000,166767.1,50.688,95.232,133.120,4143.108,47.904,5.528,150845.5,2942513152,0,3528.74,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,0,0,range:uniform:1@8,8,0,2000000,336838,5.000,67364.5,111.616,299.008,430.080,8138.052,118.684,41.898,8039.5,4767051776,0,14152.36,0.00,109.568,290.816,117.915,nan,0.722,336838,67364.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,0,0,range:uniform:10000@8,8,0,2000000,4496,5.000,899.2,7405.568,23330.816,31719.424,34712.748,8896.838,17.250,260.6,11408752640,0,2537533.95,0.00,364.544,1196.032,402.395,850.93,1.251,44888346,8977297.6,5.000,0.092,5.093,0.008,0,274432,nan,3671330816,834437120,0.007,0,0,0,0,0 +branch-prefix,disk,1,0,warm,8,1,2000000,2000000,0.155,12910108.0,nan,nan,nan,0.000,nan,0.629,3178437.5,268693504,32768,134.35,0.02,nan,nan,nan,nan,nan,2000000,12910108.0,0.155,0.000,0.155,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,1,0,point:uniform@8,8,1,2000000,732889,5.000,146572.1,61.952,107.520,794.624,3079.479,54.520,4.418,165889.9,2350792704,0,3207.57,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,1,0,range:uniform:1@8,8,1,2000000,304394,5.000,60876.0,115.712,380.928,1884.160,6156.397,131.346,41.563,7323.6,3331264512,0,10943.92,0.00,113.664,380.928,130.363,nan,0.938,304394,60876.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,1,0,range:uniform:10000@8,8,1,2000000,4844,5.000,968.8,6356.992,27000.832,45613.056,59140.486,8249.105,16.274,297.7,8749379584,0,1806230.30,0.00,348.160,1589.248,401.626,786.32,1.370,48362165,9671992.4,5.000,0.097,5.098,0.006,0,274432,nan,3250065408,550490112,0.007,0,0,0,0,0 +branch-prefix,disk,2,0,warm,8,2,2000000,2000000,0.165,12146166.5,nan,nan,nan,0.000,nan,0.698,2864336.4,268328960,32768,134.16,0.02,nan,nan,nan,nan,nan,2000000,12146166.5,0.165,0.000,0.165,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,2,0,point:uniform@8,8,2,2000000,745918,5.000,149177.3,61.952,105.472,149.504,2878.929,53.566,4.617,161545.3,2392563712,0,3207.54,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,2,0,range:uniform:1@8,8,2,2000000,317236,5.000,63444.5,115.712,348.160,532.480,3819.751,126.025,41.677,7611.8,3465826304,0,10925.07,0.00,113.664,348.160,125.035,nan,0.944,317236,63444.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,disk,2,0,range:uniform:10000@8,8,2,2000000,4946,5.000,989.2,6356.992,23330.816,29622.272,30458.830,8085.812,16.462,300.4,9016946688,0,1823078.59,0.00,339.968,1163.264,375.844,772.37,1.430,49382165,9875983.2,5.000,0.081,5.081,0.007,0,274432,nan,3250065408,550490112,0.007,0,0,0,0,0 +main,disk,3,0,warm,8,3,2000000,2000000,0.180,11121947.4,nan,nan,nan,0.000,nan,0.670,2985350.9,377163776,32768,188.58,0.02,nan,nan,nan,nan,nan,2000000,11121947.4,0.180,0.000,0.180,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +main,disk,3,0,point:uniform@8,8,3,2000000,685880,5.000,137171.0,62.976,117.760,149.504,2005.806,58.256,4.524,151608.3,2419056640,0,3526.94,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +main,disk,3,0,range:uniform:1@8,8,3,2000000,284082,5.000,56813.9,130.048,356.352,565.248,4520.159,140.728,41.806,6795.2,4020363264,0,14152.12,0.00,130.048,356.352,139.955,nan,0.727,284082,56813.9,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.041,0,0,0,0,0 +main,disk,3,0,range:uniform:10000@8,8,3,2000000,4064,5.000,812.8,7929.856,28049.408,37224.448,43252.775,9847.136,15.583,260.8,10284527616,0,2530641.64,0.00,405.504,1359.872,449.728,941.82,1.207,40565785,8112825.8,5.000,0.081,5.081,0.009,0,274432,nan,3671330816,834437120,0.041,0,0,2,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/00-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/00-main.log new file mode 100644 index 000000000..b9edc0f39 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/00-main.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=0 sabotage=0 +open took 0.072 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.18 ops/s= 11403141 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.64s ops/cpu-s=3113466 rd=187.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=678137 notfound=0 +== point:uniform@8 T=8 ops=678137 secs= 5.00 ops/s= 135623 lat us p50=64.00 p99=117.76 p99.9=153.60 max=2616.5 mean=58.82 + cpu=4.73s ops/cpu-s=143270 rd=3528.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 268841 ops (+26882 ops/s) +== range:uniform:1@8 T=8 ops=282170 secs= 5.00 ops/s= 56431 lat us p50=133.12 p99=364.54 p99.9=548.86 max=4384.5 mean=141.56 + cpu=41.79s ops/cpu-s=6753 rd=14169.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=130.05 p99=356.35 mean=140.78 per-tuple=nan ns deinit mean=0.74 us tuples/s=56431 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.089 s +== range:uniform:10000@8 T=8 ops=4069 secs= 5.00 ops/s= 814 lat us p50=7929.86 p99=27000.83 p99.9=36175.87 max=38653.4 mean=9829.48 + cpu=15.91s ops/cpu-s=256 rd=2534528.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1228.80 mean=440.43 per-tuple=941.0 ns deinit mean=1.33 us tuples/s=8122783 + insert/run=5.00s drain(close)=0.09s total=5.09s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=832897024 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/01-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/01-branch-prefix.log new file mode 100644 index 000000000..4e18abab7 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/01-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=1 sabotage=0 +open took 0.039 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.19 ops/s= 10677551 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.70s ops/cpu-s=2854753 rd=188.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=683380 notfound=0 +== point:uniform@8 T=8 ops=683380 secs= 5.00 ops/s= 136671 lat us p50=62.98 p99=117.76 p99.9=149.50 max=2157.2 mean=58.37 + cpu=4.58s ops/cpu-s=149286 rd=3527.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 269398 ops (+26938 ops/s) +== range:uniform:1@8 T=8 ops=282120 secs= 5.00 ops/s= 56421 lat us p50=133.12 p99=356.35 p99.9=512.00 max=4098.0 mean=141.59 + cpu=41.83s ops/cpu-s=6744 rd=14158.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=130.05 p99=356.35 mean=140.58 per-tuple=nan ns deinit mean=0.96 us tuples/s=56421 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.067 s +== range:uniform:10000@8 T=8 ops=4061 secs= 5.00 ops/s= 812 lat us p50=8060.93 p99=27000.83 p99.9=35127.30 max=42617.0 mean=9851.52 + cpu=15.51s ops/cpu-s=262 rd=2503588.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1228.80 mean=447.27 per-tuple=942.6 ns deinit mean=1.51 us tuples/s=8106854 + insert/run=5.00s drain(close)=0.07s total=5.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833986560 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/02-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/02-branch-prefix.log new file mode 100644 index 000000000..88ecd2600 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/02-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=2 sabotage=0 +open took 0.055 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.17 ops/s= 12003155 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=3003427 rd=188.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=774224 notfound=0 +== point:uniform@8 T=8 ops=774224 secs= 5.00 ops/s= 154840 lat us p50=52.74 p99=101.38 p99.9=137.22 max=1724.4 mean=51.51 + cpu=4.91s ops/cpu-s=157581 rd=3529.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 300061 ops (+30004 ops/s) +== range:uniform:1@8 T=8 ops=313811 secs= 5.00 ops/s= 62759 lat us p50=119.81 p99=315.39 p99.9=454.66 max=4156.9 mean=127.26 + cpu=41.92s ops/cpu-s=7487 rd=14140.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=117.76 p99=315.39 mean=126.26 per-tuple=nan ns deinit mean=0.96 us tuples/s=62759 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.056 s +== range:uniform:10000@8 T=8 ops=4215 secs= 5.00 ops/s= 843 lat us p50=7405.57 p99=27000.83 p99.9=36175.87 max=39281.4 mean=9492.13 + cpu=16.15s ops/cpu-s=261 rd=2548938.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=364.54 p99=1097.73 mean=400.80 per-tuple=911.0 ns deinit mean=1.73 us tuples/s=8415359 + insert/run=5.00s drain(close)=0.06s total=5.06s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833990656 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/03-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/03-main.log new file mode 100644 index 000000000..d97dd8f50 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/03-main.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=5.0 warmup=1.0 rep=3 sabotage=0 +open took 0.048 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.20 ops/s= 10019751 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.72s ops/cpu-s=2796131 rd=188.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=865419 notfound=0 +== point:uniform@8 T=8 ops=865419 secs= 5.00 ops/s= 173077 lat us p50=49.66 p99=95.23 p99.9=729.09 max=2106.7 mean=46.06 + cpu=5.63s ops/cpu-s=153657 rd=3529.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 339533 ops (+33951 ops/s) +== range:uniform:1@8 T=8 ops=353848 secs= 5.00 ops/s= 70766 lat us p50=103.42 p99=282.62 p99.9=1622.02 max=5039.8 mean=112.85 + cpu=42.10s ops/cpu-s=8406 rd=14161.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=103.42 p99=282.62 mean=112.06 per-tuple=nan ns deinit mean=0.74 us tuples/s=70766 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) +close took 0.065 s +== range:uniform:10000@8 T=8 ops=4562 secs= 5.00 ops/s= 912 lat us p50=7012.35 p99=25427.97 p99.9=52953.09 max=64163.5 mean=8768.53 + cpu=17.61s ops/cpu-s=259 rd=2532193.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=331.78 p99=1392.64 mean=377.71 per-tuple=840.6 ns deinit mean=1.28 us tuples/s=9109299 + insert/run=5.00s drain(close)=0.06s total=5.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=832897024 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/manifest.json new file mode 100644 index 000000000..795334a3b --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/manifest.json @@ -0,0 +1,311 @@ +{ + "mode": "prefix-disk-random", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Updated feature branches versus fresh main; not an isolation of merge cost", + "runner_sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "runs": [ + { + "label": "00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/results.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907668.052851, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907687.0153246, + "log_sha256": "52f92b1b3b03ec70c368f511691860e03f02b9ca532c6a64875e6679b53f1746", + "process_cpu_s": 76.22299600000002, + "process_read_bytes": 20431261696, + "process_write_bytes": 319488, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.db", + "fixture_sha256": "ca874e9d980e52ea52e0ccf8f41b266a6263675b49dfefc880e5c1bbabd27b63", + "allocated_bytes": 833347584, + "apparent_bytes": 3671592960 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 832897024 + }, + { + "label": "01-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907687.883826, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907706.7953205, + "log_sha256": "e8e3fc5c397bc81464ae90c46f98dca02c65adad9f68952cf9cc6510439a68d7", + "process_cpu_s": 75.59039499999977, + "process_read_bytes": 20297166848, + "process_write_bytes": 319488, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.db", + "fixture_sha256": "16b2a30021c7181c624f3fd92abee235b4443bf13e228376e34ab11e68224549", + "allocated_bytes": 834170880, + "apparent_bytes": 3671592960 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 833986560 + }, + { + "label": "02-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907707.5910716, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907726.4911072, + "log_sha256": "d7f487c19e519901fe055675d79d3770236eaac10383099b7769de207a276775", + "process_cpu_s": 76.96159800000015, + "process_read_bytes": 21897162752, + "process_write_bytes": 315392, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-branch-prefix-random.db", + "fixture_sha256": "16b2a30021c7181c624f3fd92abee235b4443bf13e228376e34ab11e68224549", + "allocated_bytes": 834170880, + "apparent_bytes": 3671592960 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 833990656 + }, + { + "label": "03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/scratch.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "5", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random/results.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-disk-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791907727.395917, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907746.2974908, + "log_sha256": "db7811cf8ee3db0777aea834b0b95a18087f88228eb96259da5d1728587b7a29", + "process_cpu_s": 79.79420700000009, + "process_read_bytes": 23908737024, + "process_write_bytes": 323584, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/disk-main-random.db", + "fixture_sha256": "ca874e9d980e52ea52e0ccf8f41b266a6263675b49dfefc880e5c1bbabd27b63", + "allocated_bytes": 833347584, + "apparent_bytes": 3671592960 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 832897024 + } + ], + "complete": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/results.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/results.csv new file mode 100644 index 000000000..82dc223c1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,warm,8,0,2000000,2000000,0.175,11403141.4,nan,nan,nan,0.000,nan,0.642,3113465.6,375840768,32768,187.92,0.02,nan,nan,nan,nan,nan,2000000,11403141.4,0.175,0.000,0.175,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +main,disk,0,0,point:uniform@8,8,0,2000000,678137,5.000,135623.0,64.000,117.760,153.600,2616.489,58.816,4.733,143269.6,2392637440,0,3528.25,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +main,disk,0,0,range:uniform:1@8,8,0,2000000,282170,5.000,56431.4,133.120,364.544,548.864,4384.462,141.565,41.786,6752.7,3998134272,0,14169.24,0.00,130.048,356.352,140.776,nan,0.742,282170,56431.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.072,0,0,0,0,0 +main,disk,0,0,range:uniform:10000@8,8,0,2000000,4069,5.000,813.8,7929.856,27000.832,36175.872,38653.358,9829.482,15.911,255.7,10312994816,0,2534528.09,0.00,405.504,1228.800,440.430,941.02,1.331,40615785,8122783.2,5.000,0.089,5.089,0.009,0,274432,nan,3671592960,832897024,0.072,0,0,0,0,0 +branch-prefix,disk,1,0,warm,8,1,2000000,2000000,0.187,10677551.3,nan,nan,nan,0.000,nan,0.701,2854753.0,377171968,32768,188.59,0.02,nan,nan,nan,nan,nan,2000000,10677551.3,0.187,0.000,0.187,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,disk,1,0,point:uniform@8,8,1,2000000,683380,5.000,136671.3,62.976,117.760,149.504,2157.151,58.369,4.578,149285.7,2410926080,0,3527.94,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,disk,1,0,range:uniform:1@8,8,1,2000000,282120,5.000,56421.2,133.120,356.352,512.000,4098.007,141.587,41.833,6744.0,3994374144,0,14158.42,0.00,130.048,356.352,140.582,nan,0.958,282120,56421.2,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,disk,1,0,range:uniform:10000@8,8,1,2000000,4061,5.000,812.2,8060.928,27000.832,35127.296,42616.981,9851.519,15.509,261.8,10167070720,0,2503587.96,0.00,405.504,1228.800,447.269,942.62,1.509,40535785,8106853.6,5.000,0.067,5.067,0.007,0,274432,nan,3671592960,833986560,0.039,0,0,0,0,0 +branch-prefix,disk,2,0,warm,8,2,2000000,2000000,0.167,12003155.4,nan,nan,nan,0.000,nan,0.666,3003426.9,376066048,32768,188.03,0.02,nan,nan,nan,nan,nan,2000000,12003155.4,0.167,0.000,0.167,0.000,0,0,nan,0,0,0.055,0,0,0,0,1 +branch-prefix,disk,2,0,point:uniform@8,8,2,2000000,774224,5.000,154839.7,52.736,101.376,137.216,1724.397,51.505,4.913,157581.2,2732314624,0,3529.10,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.055,0,0,0,0,0 +branch-prefix,disk,2,0,range:uniform:1@8,8,2,2000000,313811,5.000,62759.4,119.808,315.392,454.656,4156.876,127.264,41.916,7486.7,4437479424,0,14140.61,0.00,117.760,315.392,126.261,nan,0.956,313811,62759.4,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.055,0,0,0,0,0 +branch-prefix,disk,2,0,range:uniform:10000@8,8,2,2000000,4215,5.000,843.0,7405.568,27000.832,36175.872,39281.387,9492.131,16.152,261.0,10743775232,0,2548938.37,0.00,364.544,1097.728,400.800,910.98,1.731,42078346,8415359.2,5.000,0.056,5.056,0.007,0,274432,nan,3671592960,833990656,0.055,0,0,0,0,0 +main,disk,3,0,warm,8,3,2000000,2000000,0.200,10019750.9,nan,nan,nan,0.000,nan,0.715,2796131.3,377708544,32768,188.85,0.02,nan,nan,nan,nan,nan,2000000,10019750.9,0.200,0.000,0.200,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +main,disk,3,0,point:uniform@8,8,3,2000000,865419,5.000,173077.1,49.664,95.232,729.088,2106.724,46.058,5.632,153656.8,3054764032,0,3529.81,0.00,nan,nan,nan,nan,nan,0,0.0,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +main,disk,3,0,range:uniform:1@8,8,3,2000000,353848,5.000,70766.5,103.424,282.624,1622.016,5039.764,112.849,42.096,8405.8,5010862080,0,14161.06,0.00,103.424,282.624,112.064,nan,0.737,353848,70766.5,5.000,0.000,5.000,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +main,disk,3,0,range:uniform:10000@8,8,3,2000000,4562,5.000,912.4,7012.352,25427.968,52953.088,64163.495,8768.534,17.608,259.1,11551866880,0,2532193.53,0.00,331.776,1392.640,377.708,840.55,1.282,45548346,9109299.2,5.000,0.065,5.065,0.007,0,274432,nan,3671592960,832897024,0.048,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/00-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/00-main.log new file mode 100644 index 000000000..f8ef9a770 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/00-main.log @@ -0,0 +1,25 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=0 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12559602 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2733323 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=22794078 notfound=0 +== point:uniform@8 T=8 ops=22794078 secs= 6.00 ops/s= 3798858 lat us p50=1.97 p99=2.78 p99.9=7.23 max=471.2 mean=2.02 + cpu=47.99s ops/cpu-s=474951 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3935923 ops (+393566 ops/s) +== range:uniform:1@8 T=8 ops=5954385 secs= 6.00 ops/s= 992359 lat us p50=7.10 p99=11.14 p99.9=19.20 max=98.8 mean=8.01 + cpu=47.99s ops/cpu-s=124068 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=10.62 mean=7.55 per-tuple=nan ns deinit mean=0.41 us tuples/s=992359 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 24226 ops (+1844544833998518784 ops/s) +== range:uniform:10000@8 T=8 ops=20835 secs= 6.00 ops/s= 3472 lat us p50=2457.60 p99=4653.06 p99.9=5308.42 max=5785.4 mean=2303.51 + cpu=48.02s ops/cpu-s=434 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.83 p99=16.64 mean=9.39 per-tuple=235.0 ns deinit mean=0.64 us tuples/s=33884738 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.105 s +== ow:uniform@8 T=8 ops=13646417 secs= 6.00 ops/s= 2274317 lat us p50=1.52 p99=6.21 p99.9=57.86 max=220057.2 mean=3.48 + cpu=41.36s ops/cpu-s=329915 rd=147.0 B/op wr=188.9 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.11s total=6.11s drain_cpu=0.04s drain_rd=270336 drain_wr=47882240 wamp=1.173 db_apparent=8589934592 db_alloc=2685440000 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/01-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/01-branch-prefix.log new file mode 100644 index 000000000..992529a60 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/01-branch-prefix.log @@ -0,0 +1,25 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=1 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 18001084 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=4419011 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=25611533 notfound=0 +== point:uniform@8 T=8 ops=25611533 secs= 6.00 ops/s= 4268429 lat us p50=1.74 p99=2.46 p99.9=2.91 max=427.3 mean=1.80 + cpu=47.99s ops/cpu-s=533715 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 4090586 ops (+409031 ops/s) +== range:uniform:1@8 T=8 ops=6113910 secs= 6.00 ops/s= 1018943 lat us p50=6.72 p99=10.88 p99.9=19.71 max=5132.5 mean=7.79 + cpu=47.98s ops/cpu-s=127425 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.34 p99=10.11 mean=7.25 per-tuple=nan ns deinit mean=0.49 us tuples/s=1018943 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 24412 ops (+1844545457779958528 ops/s) +== range:uniform:10000@8 T=8 ops=20977 secs= 6.00 ops/s= 3496 lat us p50=2392.06 p99=4784.13 p99.9=5308.42 max=5801.6 mean=2287.97 + cpu=47.99s ops/cpu-s=437 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.62 p99=16.00 mean=8.37 per-tuple=233.6 ns deinit mean=0.69 us tuples/s=34107420 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.069 s +== ow:uniform@8 T=8 ops=15306118 secs= 6.00 ops/s= 2550919 lat us p50=1.52 p99=6.34 p99.9=32.00 max=134014.9 mean=3.08 + cpu=44.72s ops/cpu-s=342280 rd=78.3 B/op wr=108.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.07s total=6.07s drain_cpu=0.03s drain_rd=28672 drain_wr=38453248 wamp=0.677 db_apparent=8589934592 db_alloc=1803984896 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/02-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/02-branch-prefix.log new file mode 100644 index 000000000..76077f469 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/02-branch-prefix.log @@ -0,0 +1,25 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=2 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 18368335 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=3949993 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=26013577 notfound=0 +== point:uniform@8 T=8 ops=26013577 secs= 6.00 ops/s= 4335418 lat us p50=1.74 p99=2.40 p99.9=3.04 max=446.1 mean=1.77 + cpu=47.99s ops/cpu-s=542071 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=337 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 4058814 ops (+405854 ops/s) +== range:uniform:1@8 T=8 ops=6163122 secs= 6.00 ops/s= 1027147 lat us p50=6.72 p99=10.88 p99.9=19.20 max=103.6 mean=7.73 + cpu=48.00s ops/cpu-s=128407 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=10.11 mean=7.20 per-tuple=nan ns deinit mean=0.48 us tuples/s=1027147 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 25264 ops (+1844549745689448704 ops/s) +== range:uniform:10000@8 T=8 ops=21659 secs= 6.00 ops/s= 3610 lat us p50=1949.70 p99=5308.42 p99.9=5570.56 max=6015.9 mean=2215.93 + cpu=47.99s ops/cpu-s=451 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.36 p99=14.98 mean=8.00 per-tuple=226.4 ns deinit mean=0.68 us tuples/s=35227605 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.111 s +== ow:uniform@8 T=8 ops=14744687 secs= 6.00 ops/s= 2457344 lat us p50=1.55 p99=5.95 p99.9=34.30 max=157605.9 mean=3.19 + cpu=43.71s ops/cpu-s=337338 rd=81.8 B/op wr=110.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.11s total=6.11s drain_cpu=0.04s drain_rd=45056 drain_wr=41607168 wamp=0.689 db_apparent=8589279232 db_alloc=1764179968 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/03-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/03-main.log new file mode 100644 index 000000000..d0f56a7ac --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/03-main.log @@ -0,0 +1,25 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=3 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15370088 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3231331 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=23880600 notfound=0 +== point:uniform@8 T=8 ops=23880600 secs= 6.00 ops/s= 3979950 lat us p50=1.87 p99=2.66 p99.9=8.32 max=504.6 mean=1.93 + cpu=47.99s ops/cpu-s=497664 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3947506 ops (+394723 ops/s) +== range:uniform:1@8 T=8 ops=5980442 secs= 6.00 ops/s= 996704 lat us p50=7.10 p99=10.88 p99.9=20.74 max=98.5 mean=7.98 + cpu=47.99s ops/cpu-s=124609 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=10.37 mean=7.51 per-tuple=nan ns deinit mean=0.42 us tuples/s=996704 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 25212 ops (+1844545594266805504 ops/s) +== range:uniform:10000@8 T=8 ops=21656 secs= 6.00 ops/s= 3609 lat us p50=2392.06 p99=5046.27 p99.9=5177.34 max=5288.7 mean=2216.37 + cpu=48.00s ops/cpu-s=451 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.00 p99=13.70 mean=8.72 per-tuple=226.3 ns deinit mean=0.57 us tuples/s=35215012 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.089 s +== ow:uniform@8 T=8 ops=13827922 secs= 6.00 ops/s= 2304560 lat us p50=1.52 p99=6.08 p99.9=58.88 max=189504.8 mean=3.43 + cpu=42.01s ops/cpu-s=329171 rd=144.9 B/op wr=188.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.09s total=6.09s drain_cpu=0.03s drain_rd=114688 drain_wr=49676288 wamp=1.168 db_apparent=8586395648 db_alloc=2698842112 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/manifest.json new file mode 100644 index 000000000..127665ed8 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/manifest.json @@ -0,0 +1,315 @@ +{ + "mode": "prefix-resident-common", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Updated feature branches versus fresh main; not an isolation of merge cost", + "runner_sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "runs": [ + { + "label": "00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907361.972576, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907390.3571775, + "log_sha256": "81be21b00ecbed2be204e32274e68cc4d24993159e75690ea087b3c1200666c8", + "process_cpu_s": 216.744831, + "process_read_bytes": 2119090176, + "process_write_bytes": 2950668288, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.db", + "fixture_sha256": "f46e09ff5cf4059f0d4b8e82c586323274ca1af83a3e6197389ebb28aabda858", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2685440000 + }, + { + "label": "01-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907390.4441426, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907418.7822747, + "log_sha256": "2e39f08e79cc7e8253059d3e7f7f72e96e5a0803746db04c67a73d870e1afe17", + "process_cpu_s": 220.53080200000005, + "process_read_bytes": 1304731648, + "process_write_bytes": 1907474432, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.db", + "fixture_sha256": "f37cb48c6fb00b08adccea6eebc85a25e2c12f3ada74432d96dd06abb1eaaa30", + "allocated_bytes": 26128384, + "apparent_bytes": 207360000 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 1803984896 + }, + { + "label": "02-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907418.84805, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907447.1998322, + "log_sha256": "78fd26a69427bc99e3043e819895aaa3df89e69caac2f73fb072688cde0737b0", + "process_cpu_s": 219.52149100000003, + "process_read_bytes": 1264095232, + "process_write_bytes": 1860485120, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-common.db", + "fixture_sha256": "f37cb48c6fb00b08adccea6eebc85a25e2c12f3ada74432d96dd06abb1eaaa30", + "allocated_bytes": 26128384, + "apparent_bytes": 207360000 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 1764179968 + }, + { + "label": "03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common/results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-common", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907447.2844353, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907475.6244526, + "log_sha256": "902192d5930a5eca8f186bddfaa28dd76726f27922b0abe417be119fc44f0d6f", + "process_cpu_s": 217.44334900000004, + "process_read_bytes": 2123800576, + "process_write_bytes": 2979278848, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-common.db", + "fixture_sha256": "f46e09ff5cf4059f0d4b8e82c586323274ca1af83a3e6197389ebb28aabda858", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2698842112 + } + ], + "complete": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/results.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/results.csv new file mode 100644 index 000000000..5a665aca7 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.016,12559602.4,nan,nan,nan,0.000,nan,0.073,2733323.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12559602.4,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,point:uniform@8,8,0,200000,22794078,6.000,3798858.3,1.968,2.784,7.232,471.170,2.024,47.992,474951.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,5954385,6.000,992358.5,7.104,11.136,19.200,98.833,8.009,47.993,124067.5,0,0,0.00,0.00,6.720,10.624,7.547,nan,0.415,5954385,992358.5,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,20835,6.000,3472.3,2457.600,4653.056,5308.416,5785.391,2303.512,48.025,433.8,0,4096,0.00,0.20,8.832,16.640,9.394,234.97,0.639,203317709,33884737.6,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,ow:uniform@8,8,0,200000,13646417,6.000,2274316.9,1.520,6.208,57.856,220057.151,3.475,41.363,329914.5,2005544960,2578157568,146.96,188.93,nan,nan,nan,nan,nan,0,0.0,6.000,0.105,6.105,0.042,270336,47882240,1.1734,8589934592,2685440000,0.007,0,0,0,0,0 +branch-prefix,resident,1,0,warm,8,1,200000,200000,0.011,18001084.0,nan,nan,nan,0.000,nan,0.045,4419010.6,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,18001084.0,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,1,0,point:uniform@8,8,1,200000,25611533,6.000,4268429.4,1.744,2.464,2.912,427.312,1.797,47.987,533715.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:1@8,8,1,200000,6113910,6.000,1018943.3,6.720,10.880,19.712,5132.538,7.791,47.981,127424.7,0,0,0.00,0.00,6.336,10.112,7.251,nan,0.491,6113910,1018943.3,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:10000@8,8,1,200000,20977,6.000,3496.0,2392.064,4784.128,5308.416,5801.577,2287.968,47.992,437.1,0,4096,0.00,0.20,7.616,16.000,8.368,233.55,0.691,204654135,34107420.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,1,0,ow:uniform@8,8,1,200000,15306118,6.000,2550918.9,1.520,6.336,32.000,134014.906,3.082,44.718,342280.3,1198952448,1661190144,78.33,108.53,nan,nan,nan,nan,nan,0,0.0,6.000,0.069,6.070,0.029,28672,38453248,0.6771,8589934592,1803984896,0.005,0,0,0,0,0 +branch-prefix,resident,2,0,warm,8,2,200000,200000,0.011,18368335.3,nan,nan,nan,0.000,nan,0.051,3949993.1,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,18368335.3,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,2,0,point:uniform@8,8,2,200000,26013577,6.000,4335417.7,1.744,2.400,3.040,446.092,1.770,47.989,542070.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,337,0,0 +branch-prefix,resident,2,0,range:uniform:1@8,8,2,200000,6163122,6.000,1027146.6,6.720,10.880,19.200,103.595,7.731,47.997,128406.6,0,0,0.00,0.00,6.208,10.112,7.201,nan,0.481,6163122,1027146.6,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:10000@8,8,2,200000,21659,6.000,3609.7,1949.696,5308.416,5570.560,6015.912,2215.935,47.991,451.3,0,4096,0.00,0.19,7.360,14.976,7.998,226.40,0.684,211374727,35227604.6,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,2,0,ow:uniform@8,8,2,200000,14744687,6.000,2457344.4,1.552,5.952,34.304,157605.904,3.194,43.709,337337.6,1205473280,1624092672,81.76,110.15,nan,nan,nan,nan,nan,0,0.0,6.000,0.111,6.111,0.040,45056,41607168,0.6888,8589279232,1764179968,0.005,0,0,0,0,0 +main,resident,3,0,warm,8,3,200000,200000,0.013,15370088.3,nan,nan,nan,0.000,nan,0.062,3231331.0,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15370088.3,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,3,0,point:uniform@8,8,3,200000,23880600,6.000,3979950.2,1.872,2.656,8.320,504.574,1.933,47.985,497663.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,5980442,6.000,996704.2,7.104,10.880,20.736,98.464,7.975,47.993,124609.4,0,0,0.00,0.00,6.720,10.368,7.509,nan,0.420,5980442,996704.2,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,21656,6.000,3609.2,2392.064,5046.272,5177.344,5288.654,2216.366,47.998,451.2,0,4096,0.00,0.19,8.000,13.696,8.719,226.30,0.567,211299106,35215011.6,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,3,0,ow:uniform@8,8,3,200000,13827922,6.000,2304559.8,1.520,6.080,58.880,189504.801,3.429,42.008,329171.0,2003456000,2599260160,144.88,187.97,nan,nan,nan,nan,nan,0,0.0,6.000,0.089,6.090,0.032,114688,49676288,1.1681,8586395648,2698842112,0.006,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/00-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/00-main.log new file mode 100644 index 000000000..485806eff --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/00-main.log @@ -0,0 +1,25 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=0 sabotage=0 +open took 0.039 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12315509 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2887044 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=24538572 notfound=0 +== point:uniform@8 T=8 ops=24538572 secs= 6.00 ops/s= 4089596 lat us p50=1.74 p99=2.46 p99.9=6.59 max=239.2 mean=1.81 + cpu=47.99s ops/cpu-s=511341 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3878612 ops (+387835 ops/s) +== range:uniform:1@8 T=8 ops=5927637 secs= 6.00 ops/s= 987903 lat us p50=7.10 p99=11.14 p99.9=19.20 max=115.8 mean=7.93 + cpu=47.99s ops/cpu-s=123509 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.59 p99=10.37 mean=7.45 per-tuple=nan ns deinit mean=0.43 us tuples/s=987903 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 32063 ops (+1844542896257878784 ops/s) +== range:uniform:10000@8 T=8 ops=27707 secs= 6.00 ops/s= 4618 lat us p50=1720.32 p99=3244.03 p99.9=3440.64 max=3984.7 mean=1732.23 + cpu=47.99s ops/cpu-s=577 rd=0.0 B/op wr=0.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.86 p99=13.70 mean=9.94 per-tuple=176.4 ns deinit mean=0.67 us tuples/s=45042500 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.171 s +== ow:uniform@8 T=8 ops=13087394 secs= 6.00 ops/s= 2181154 lat us p50=1.49 p99=6.21 p99.9=59.90 max=225395.2 mean=3.55 + cpu=39.91s ops/cpu-s=327893 rd=131.6 B/op wr=182.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.17s total=6.17s drain_cpu=0.08s drain_rd=26099712 drain_wr=20742144 wamp=1.119 db_apparent=8589877248 db_alloc=2580168704 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/01-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/01-branch-prefix.log new file mode 100644 index 000000000..988ccf9f1 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/01-branch-prefix.log @@ -0,0 +1,25 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15693053 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3098613 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=24083110 notfound=0 +== point:uniform@8 T=8 ops=24083110 secs= 6.00 ops/s= 4013702 lat us p50=1.81 p99=2.59 p99.9=7.74 max=328.2 mean=1.84 + cpu=47.98s ops/cpu-s=501957 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=15 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 4164772 ops (+416449 ops/s) +== range:uniform:1@8 T=8 ops=6287437 secs= 6.00 ops/s= 1047869 lat us p50=6.46 p99=10.37 p99.9=18.69 max=487.8 mean=7.48 + cpu=47.99s ops/cpu-s=131024 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.08 p99=9.60 mean=6.98 per-tuple=nan ns deinit mean=0.45 us tuples/s=1047869 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 26841 ops (+1844548496461169408 ops/s) +== range:uniform:10000@8 T=8 ops=23100 secs= 6.00 ops/s= 3850 lat us p50=1916.93 p99=6356.99 p99.9=6619.14 max=6925.7 mean=2077.53 + cpu=47.99s ops/cpu-s=481 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=14.98 mean=9.84 per-tuple=211.8 ns deinit mean=0.79 us tuples/s=37559678 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.128 s +== ow:uniform@8 T=8 ops=13809925 secs= 6.00 ops/s= 2301559 lat us p50=1.46 p99=5.82 p99.9=57.86 max=182135.8 mean=3.34 + cpu=42.16s ops/cpu-s=327522 rd=145.0 B/op wr=187.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.13s total=6.13s drain_cpu=0.03s drain_rd=131072 drain_wr=49561600 wamp=1.164 db_apparent=8589148160 db_alloc=2683387904 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/02-branch-prefix.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/02-branch-prefix.log new file mode 100644 index 000000000..16ea5dd6d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/02-branch-prefix.log @@ -0,0 +1,25 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 919b61f0-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=2 sabotage=0 +open took 0.039 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 11218731 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2561082 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=23482436 notfound=0 +== point:uniform@8 T=8 ops=23482436 secs= 6.00 ops/s= 3913587 lat us p50=1.84 p99=2.59 p99.9=6.98 max=1727.4 mean=1.89 + cpu=47.99s ops/cpu-s=489289 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 4117402 ops (+411712 ops/s) +== range:uniform:1@8 T=8 ops=6129861 secs= 6.00 ops/s= 1021601 lat us p50=6.59 p99=10.88 p99.9=20.22 max=685.5 mean=7.66 + cpu=47.98s ops/cpu-s=127749 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=10.37 mean=7.15 per-tuple=nan ns deinit mean=0.46 us tuples/s=1021601 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 26927 ops (+1844542070330801664 ops/s) +== range:uniform:10000@8 T=8 ops=23319 secs= 6.00 ops/s= 3886 lat us p50=1851.39 p99=5570.56 p99.9=5832.70 max=5975.1 mean=2058.05 + cpu=48.03s ops/cpu-s=486 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=14.72 mean=9.84 per-tuple=209.8 ns deinit mean=0.77 us tuples/s=37899457 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.126 s +== ow:uniform@8 T=8 ops=12948061 secs= 6.00 ops/s= 2157932 lat us p50=1.46 p99=5.70 p99.9=56.83 max=269371.1 mean=3.58 + cpu=39.59s ops/cpu-s=327013 rd=135.6 B/op wr=185.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.13s total=6.13s drain_cpu=0.03s drain_rd=389120 drain_wr=15093760 wamp=1.136 db_apparent=8589803520 db_alloc=2589319168 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/03-main.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/03-main.log new file mode 100644 index 000000000..3c6668f57 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/03-main.log @@ -0,0 +1,25 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 7bb5fab3 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=6.0 warmup=1.0 rep=3 sabotage=0 +open took 0.040 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12313583 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2597807 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=23172019 notfound=0 +== point:uniform@8 T=8 ops=23172019 secs= 6.00 ops/s= 3861855 lat us p50=1.84 p99=2.66 p99.9=6.98 max=94.5 mean=1.92 + cpu=48.00s ops/cpu-s=482779 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 4042218 ops (+404196 ops/s) +== range:uniform:1@8 T=8 ops=6166554 secs= 6.00 ops/s= 1027722 lat us p50=6.72 p99=10.37 p99.9=19.71 max=102.0 mean=7.63 + cpu=47.99s ops/cpu-s=128496 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.34 p99=9.86 mean=7.18 per-tuple=nan ns deinit mean=0.41 us tuples/s=1027722 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 28214 ops (+1844545122096218880 ops/s) +== range:uniform:10000@8 T=8 ops=24380 secs= 6.00 ops/s= 4063 lat us p50=1753.09 p99=5570.56 p99.9=5701.63 max=6199.7 mean=1968.43 + cpu=48.00s ops/cpu-s=508 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.09 p99=14.72 mean=9.54 per-tuple=200.8 ns deinit mean=0.66 us tuples/s=39634379 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.114 s +== ow:uniform@8 T=8 ops=14082417 secs= 6.00 ops/s= 2346979 lat us p50=1.49 p99=6.08 p99.9=52.74 max=191298.4 mean=3.28 + cpu=42.44s ops/cpu-s=331854 rd=142.1 B/op wr=186.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=6.00s drain(close)=0.11s total=6.11s drain_cpu=0.04s drain_rd=16384 drain_wr=52764672 wamp=1.157 db_apparent=8589279232 db_alloc=2719121408 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/manifest.json new file mode 100644 index 000000000..899524866 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/manifest.json @@ -0,0 +1,315 @@ +{ + "mode": "prefix-resident-random", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Updated feature branches versus fresh main; not an isolation of merge cost", + "runner_sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "runs": [ + { + "label": "00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907475.7424479, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907504.7349174, + "log_sha256": "71cf5be0548497291166644a6778581a973a08e9bf8d3cde8b8a391549c56453", + "process_cpu_s": 215.7734849999999, + "process_read_bytes": 1985667072, + "process_write_bytes": 2795261952, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.db", + "fixture_sha256": "33cccf3217cbc9ae09c4a0a2ac62c0bacb8f6fa1858a0c1957a702d8e2f078b8", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2580168704 + }, + { + "label": "01-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907504.8477964, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907533.2876048, + "log_sha256": "ad18f1ba8ff2a7aeb658b10fd5f1b14848cf021e28e644898f5a516591d4e8ad", + "process_cpu_s": 217.74764199999976, + "process_read_bytes": 2119380992, + "process_write_bytes": 2967490560, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.db", + "fixture_sha256": "8cca25877ee38aef2c506b684adb204c7c347d6ebc68850441050aff549651dd", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2683387904 + }, + { + "label": "02-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907533.3901722, + "binary_sha256": "3324bd237ade5b428a6897703b6ec7452be58b90e492c0fb21349ddfc59175b9", + "library_sha256": "cc0ce2bd178feed732ea7ac7f7ac3b0ec05d55be320e84e3fbdf6eb707ad0410", + "source_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "verified": true, + "returncode": 0, + "finished": 1791907562.3832219, + "log_sha256": "f800c70665b447549b9be2d0ad06598bee20062046839cad5130912e9f81620e", + "process_cpu_s": 215.41245700000024, + "process_read_bytes": 2008588288, + "process_write_bytes": 2817228800, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-branch-prefix-random.db", + "fixture_sha256": "8cca25877ee38aef2c506b684adb204c7c347d6ebc68850441050aff549651dd", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2589319168 + }, + { + "label": "03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/benchmarks/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "6", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random/results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/prefix-resident-random", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "ow:uniform@8" + ], + "started": 1791907562.491272, + "binary_sha256": "f0853a27c665c080a1addef88e382382747d207b39a5318dd3f22afad5fe5fba", + "library_sha256": "20944ac1b2f8420bd8f868d20894e462f9c3c240e4380e9c1242287cbb394f9a", + "source_head": "7bb5fab305b9c6179e31f75998dabea833537a08", + "verified": true, + "returncode": 0, + "finished": 1791907590.9852326, + "log_sha256": "66593aeb81bd645d57696f350af69de5dd112425f95b43ce3a999b8418a81cb4", + "process_cpu_s": 217.99731300000002, + "process_read_bytes": 2121596928, + "process_write_bytes": 3007508480, + "verification_kind": "query key/value/range validation and successful close", + "errors": 0, + "violations": 0, + "fixture": { + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab/fixtures/resident-main-random.db", + "fixture_sha256": "33cccf3217cbc9ae09c4a0a2ac62c0bacb8f6fa1858a0c1957a702d8e2f078b8", + "allocated_bytes": 37408768, + "apparent_bytes": 237375488 + }, + "fixture_copy_fsynced": true, + "db_allocated_bytes": 2719121408 + } + ], + "complete": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/results.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/results.csv new file mode 100644 index 000000000..bf02e6b62 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/results.csv @@ -0,0 +1,21 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.016,12315509.1,nan,nan,nan,0.000,nan,0.069,2887044.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12315509.1,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.039,0,0,0,0,1 +main,resident,0,0,point:uniform@8,8,0,200000,24538572,6.000,4089596.1,1.744,2.464,6.592,239.246,1.806,47.989,511341.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,5927637,6.000,987903.4,7.104,11.136,19.200,115.811,7.928,47.994,123509.0,0,0,0.00,0.00,6.592,10.368,7.447,nan,0.433,5927637,987903.4,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,27707,6.000,4617.6,1720.320,3244.032,3440.640,3984.682,1732.233,47.994,577.3,0,4096,0.00,0.15,9.856,13.696,9.943,176.44,0.674,270267528,45042500.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +main,resident,0,0,ow:uniform@8,8,0,200000,13087394,6.000,2181154.0,1.488,6.208,59.904,225395.164,3.551,39.914,327892.9,1722953728,2381574144,131.65,181.97,nan,nan,nan,nan,nan,0,0.0,6.000,0.171,6.172,0.080,26099712,20742144,1.1193,8589877248,2580168704,0.039,0,0,0,0,0 +branch-prefix,resident,1,0,warm,8,1,200000,200000,0.013,15693052.7,nan,nan,nan,0.000,nan,0.065,3098613.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15693052.7,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +branch-prefix,resident,1,0,point:uniform@8,8,1,200000,24083110,6.000,4013702.3,1.808,2.592,7.744,328.197,1.845,47.978,501957.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,15,0,0 +branch-prefix,resident,1,0,range:uniform:1@8,8,1,200000,6287437,6.000,1047868.6,6.464,10.368,18.688,487.824,7.478,47.987,131023.6,0,0,0.00,0.00,6.080,9.600,6.977,nan,0.455,6287437,1047868.6,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:10000@8,8,1,200000,23100,6.000,3849.8,1916.928,6356.992,6619.136,6925.684,2077.532,47.992,481.3,0,4096,0.00,0.18,9.344,14.976,9.838,211.76,0.793,225368430,37559678.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +branch-prefix,resident,1,0,ow:uniform@8,8,1,200000,13809925,6.000,2301558.9,1.456,5.824,57.856,182135.819,3.343,42.165,327521.7,2002001920,2587553792,144.97,187.37,nan,nan,nan,nan,nan,0,0.0,6.000,0.128,6.128,0.032,131072,49561600,1.1644,8589148160,2683387904,0.006,0,0,0,0,0 +branch-prefix,resident,2,0,warm,8,2,200000,200000,0.018,11218731.2,nan,nan,nan,0.000,nan,0.078,2561081.8,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,11218731.2,0.018,0.000,0.018,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,resident,2,0,point:uniform@8,8,2,200000,23482436,6.000,3913586.5,1.840,2.592,6.976,1727.378,1.888,47.993,489289.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:1@8,8,2,200000,6129861,6.000,1021601.1,6.592,10.880,20.224,685.514,7.659,47.984,127749.3,0,0,0.00,0.00,6.208,10.368,7.148,nan,0.463,6129861,1021601.1,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:10000@8,8,2,200000,23319,6.000,3886.3,1851.392,5570.560,5832.704,5975.125,2058.050,48.028,485.5,0,4096,0.00,0.18,9.344,14.720,9.838,209.80,0.766,227407735,37899457.1,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.039,0,0,0,0,0 +branch-prefix,resident,2,0,ow:uniform@8,8,2,200000,12948061,6.000,2157932.1,1.456,5.696,56.832,269371.129,3.581,39.595,327012.9,1755389952,2397200384,135.57,185.14,nan,nan,nan,nan,nan,0,0.0,6.000,0.126,6.126,0.028,389120,15093760,1.1360,8589803520,2589319168,0.039,0,0,0,0,0 +main,resident,3,0,warm,8,3,200000,200000,0.016,12313583.1,nan,nan,nan,0.000,nan,0.077,2597807.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12313583.1,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +main,resident,3,0,point:uniform@8,8,3,200000,23172019,6.000,3861855.4,1.840,2.656,6.976,94.531,1.921,47.997,482778.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,6166554,6.000,1027722.4,6.720,10.368,19.712,101.990,7.628,47.990,128496.1,0,0,0.00,0.00,6.336,9.856,7.177,nan,0.406,6166554,1027722.4,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,24380,6.000,4063.2,1753.088,5570.560,5701.632,6199.746,1968.433,47.998,507.9,0,4096,0.00,0.17,9.088,14.720,9.537,200.84,0.664,237816742,39634378.7,6.000,0.000,6.000,0.000,0,0,nan,0,0,0.040,0,0,0,0,0 +main,resident,3,0,ow:uniform@8,8,3,200000,14082417,6.000,2346979.3,1.488,6.080,52.736,191298.350,3.277,42.436,331853.8,2000707584,2618650624,142.07,185.95,nan,nan,nan,nan,nan,0,0.0,6.000,0.114,6.114,0.035,16384,52764672,1.1567,8589279232,2719121408,0.040,0,0,0,0,0 diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix_kvbench.c b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix_kvbench.c new file mode 100644 index 000000000..77215f553 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix_kvbench.c @@ -0,0 +1,1765 @@ +// kvbench.c -- SplinterDB public-API benchmark used to compare two versions. +// +// Uses only splinterdb/splinterdb.h + splinterdb/default_data_config.h + libc, +// so the same source builds against versions whose internals differ. The one +// public-API difference handled here is splinterdb_close(): +// -DKVBENCH_CLOSE_HAS_FORCE => int splinterdb_close(splinterdb **, bool32) +// otherwise => void splinterdb_close(splinterdb **) +// +// Key scheme: logical id in [0,N). Present key = 8-byte big-endian(2*id) +// followed by 16 bytes of fixed padding (24 bytes total), so memcmp order == +// id order. Absent ("negative") keys use 2*id+1, interleaved with present +// keys. Value = 100 bytes: id (LE u64), generation (LE u64), filler. +// +// Each invocation: create/open the DB, run the listed phases in order, close. +// Phase syntax (optional "@T" overrides the thread count): +// load:random | load:seq fixed-count insert of all N ids, then close +// (close timed separately as "drain") +// warm parallel full scan; verifies every id once +// point:uniform|zipf|seq|neg fixed-duration lookups +// range:uniform|zipf:L fixed-duration forward range queries +// ow:uniform|zipf fixed-duration overwrites (insert existing) +// One CSV row per phase is appended to --csv. + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" + +#define KEY_SIZE 64 +#define VALUE_SIZE 100 +#define MAX_PHASES 64 +#define MAX_WORKERS 32 + + + +/* ------------------------------------------------------------------------ */ +/* Time, RNG, permutations, zipf */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000ull + ts.tv_nsec; +} + +/* Bijective 64-bit mixer (splitmix64 finalizer). */ +static inline uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static inline uint64_t +rng_next(uint64_t *s) +{ + *s += UINT64_C(0x9e3779b97f4a7c15); + return mix(*s); +} + +static inline double +rng_unit(uint64_t *s) +{ + return (double)(rng_next(s) >> 11) * 0x1.0p-53; +} + +/* + * Pseudo-random bijection on [0,n): a 4-round balanced Feistel network over + * 2*half bits (2^(2*half) >= n), with cycle-walking to stay inside [0,n). + */ +typedef struct { + uint64_t n; + unsigned half; + uint64_t mask; + uint64_t keys[4]; +} perm_t; + +static void +perm_init(perm_t *p, uint64_t n, uint64_t seed) +{ + unsigned bits = 1; + while (bits < 64 && (UINT64_C(1) << bits) < n) { + bits++; + } + p->n = n; + p->half = (bits + 1) / 2; + if (p->half < 1) { + p->half = 1; + } + p->mask = (UINT64_C(1) << p->half) - 1; + for (int r = 0; r < 4; r++) { + p->keys[r] = mix(seed * UINT64_C(0x632be59bd9b4e019) + r + 1); + } +} + +static inline uint64_t +feistel(const perm_t *p, uint64_t x) +{ + uint64_t l = x >> p->half, r = x & p->mask; + for (int i = 0; i < 4; i++) { + uint64_t t = l ^ (mix(r ^ p->keys[i]) & p->mask); + l = r; + r = t; + } + return (l << p->half) | r; +} + +static inline uint64_t +perm_apply(const perm_t *p, uint64_t i) +{ + uint64_t x = i; + do { + x = feistel(p, x); + } while (x >= p->n); + return x; +} + +/* YCSB-style zipfian over ranks [0,n). */ +typedef struct { + uint64_t n; + double theta, zetan, zeta2, alpha, eta, half_pow_theta; +} zipf_t; + +static double +zeta_sum(uint64_t n, double theta) +{ + uint64_t m = n < 2000000 ? n : 2000000; + double s = 0; + for (uint64_t i = 1; i <= m; i++) { + s += pow((double)i, -theta); + } + if (n > m) { + /* Euler-Maclaurin tail: sum_{k=m+1}^{n} k^-t */ + s += (pow((double)n, 1 - theta) - pow((double)m, 1 - theta)) / (1 - theta) + + 0.5 * (pow((double)n, -theta) - pow((double)m, -theta)); + } + return s; +} + +static void +zipf_init(zipf_t *z, uint64_t n, double theta) +{ + z->n = n; + z->theta = theta; + z->zetan = zeta_sum(n, theta); + z->zeta2 = 1.0 + pow(0.5, theta); + z->alpha = 1.0 / (1.0 - theta); + z->eta = + (1.0 - pow(2.0 / (double)n, 1.0 - theta)) / (1.0 - z->zeta2 / z->zetan); + z->half_pow_theta = pow(0.5, theta); +} + +static inline uint64_t +zipf_next(const zipf_t *z, uint64_t *rng) +{ + double u = rng_unit(rng); + double uz = u * z->zetan; + if (uz < 1.0) { + return 0; + } + if (uz < 1.0 + z->half_pow_theta) { + return 1; + } + uint64_t r = + (uint64_t)((double)z->n * pow(z->eta * u - z->eta + 1.0, z->alpha)); + return r >= z->n ? z->n - 1 : r; +} + +/* ------------------------------------------------------------------------ */ +/* Histogram: log2 buckets with 32 linear sub-buckets (~3% resolution) */ +/* ------------------------------------------------------------------------ */ + +#define HSUB_BITS 5 +#define HSUB (1u << HSUB_BITS) +#define HBUCKETS (64 * HSUB) + +typedef struct { + uint64_t b[HBUCKETS]; + uint64_t count, sum, max; +} hist_t; + +static inline unsigned +hidx(uint64_t v) +{ + if (v < HSUB) { + return (unsigned)v; + } + unsigned e = 63 - __builtin_clzll(v); + unsigned sub = (unsigned)((v >> (e - HSUB_BITS)) & (HSUB - 1)); + return (e - HSUB_BITS + 1) * HSUB + sub; +} + +static inline uint64_t +hval(unsigned idx) +{ + if (idx < HSUB) { + return idx; + } + unsigned e = idx / HSUB + HSUB_BITS - 1; + unsigned sub = idx % HSUB; + uint64_t lo = (UINT64_C(1) << e) | ((uint64_t)sub << (e - HSUB_BITS)); + uint64_t width = UINT64_C(1) << (e - HSUB_BITS); + return lo + width / 2; +} + +static inline void +hist_add(hist_t *h, uint64_t v) +{ + h->b[hidx(v)]++; + h->count++; + h->sum += v; + if (v > h->max) { + h->max = v; + } +} + +static void +hist_merge(hist_t *dst, const hist_t *src) +{ + for (unsigned i = 0; i < HBUCKETS; i++) { + dst->b[i] += src->b[i]; + } + dst->count += src->count; + dst->sum += src->sum; + if (src->max > dst->max) { + dst->max = src->max; + } +} + +static double +hist_pct_us(const hist_t *h, double p) +{ + if (!h->count) { + return NAN; + } + uint64_t rank = (uint64_t)ceil(p * (double)h->count); + if (rank < 1) { + rank = 1; + } + uint64_t acc = 0; + for (unsigned i = 0; i < HBUCKETS; i++) { + acc += h->b[i]; + if (acc >= rank) { + uint64_t v = hval(i); + return (double)(v > h->max ? h->max : v) / 1e3; + } + } + return (double)h->max / 1e3; +} + +static double +hist_mean_us(const hist_t *h) +{ + return h->count ? (double)h->sum / (double)h->count / 1e3 : NAN; +} + +/* ------------------------------------------------------------------------ */ +/* Options / global state */ +/* ------------------------------------------------------------------------ */ + +enum phase_kind { PH_LOAD, PH_WARM, PH_POINT, PH_RANGE, PH_OW }; +enum dist { D_UNIFORM, D_ZIPF, D_SEQ, D_NEG, D_RANDOM }; + +typedef struct { + char name[64]; + enum phase_kind kind; + enum dist dist; + uint64_t L; + int threads; +} phase_t; + +typedef struct { + const char *db, *csv, *hang_dir; + const char *vtag, *stag, *otag; + int rep; + bool create; + uint64_t n, cache_mib, disk_gib, memtable_mib; + int use_log, threads, mt_bg, normal_bg; + double secs, warmup; + uint64_t sabotage; + uint64_t hang_secs; + uint64_t seed; + int nphases; + phase_t phases[MAX_PHASES]; +} options; + +static options opt; +static splinterdb *kvs; +static data_config data_cfg; +static perm_t load_perm, zipf_perm; +static zipf_t zipf; +static uint64_t generation; /* value generation for overwrites */ + +enum { ST_WAIT = 0, ST_WARMUP = 1, ST_MEASURE = 2, ST_STOP = 3 }; +static _Atomic int run_state; +static _Atomic uint64_t seq_counter; + +/* Watchdog */ +enum { WD_IDLE, WD_OPS, WD_OPENCLOSE }; +static _Atomic int wd_mode; +static _Atomic uint64_t wd_mode_since_ns; +static const char *wd_what = ""; + +typedef struct worker { + pthread_t th; + int idx; + const phase_t *ph; + hist_t lat; + hist_t startup; + uint64_t ops, tuples, pt_ns, pt_div, deinit_ns, deinit_n; + uint64_t violations, errors, notfound, found; + uint64_t rng; + uint64_t measure_rng; + bool measure_rng_captured; + _Atomic uint64_t progress; + char first_violation[256]; +} worker_t; + +static worker_t *workers; +static int nworkers; + +/* ------------------------------------------------------------------------ */ +/* Keys / values */ +/* ------------------------------------------------------------------------ */ + + +static int prefix_pattern; +static uint64_t *prefix_random_words; + +static int +prefix_word_compare(const void *a, const void *b) +{ + uint64_t x = *(const uint64_t *)a, y = *(const uint64_t *)b; + return (x > y) - (x < y); +} + +static int +prefix_nonlexical_compare(const data_config *cfg, user_key a, user_key b) +{ + (void)cfg; + if (slice_length(a.key) != KEY_SIZE || slice_length(b.key) != KEY_SIZE) + abort(); + return memcmp((const char *)slice_data(a.key) + 56, + (const char *)slice_data(b.key) + 56, 8); +} + +static void +prefix_configure(void) +{ + const char *pattern = getenv("PREFIX_PATTERN"); + if (pattern == NULL || strcmp(pattern, "common") == 0) prefix_pattern = 0; + else if (strcmp(pattern, "random") == 0) prefix_pattern = 1; + else if (strcmp(pattern, "nonlexical") == 0) prefix_pattern = 2; + else { fprintf(stderr, "Unknown PREFIX_PATTERN %s\n", pattern); exit(2); } + if (prefix_pattern == 2) data_cfg.key_compare = prefix_nonlexical_compare; +#ifdef KVBENCH_PREFIX_SUPPORT + data_cfg.key_compare_is_lexical = prefix_pattern != 2 + && getenv("PREFIX_DISABLE") == NULL; +#endif + if (prefix_pattern == 1) { + if (opt.n > SIZE_MAX / 2 / sizeof(uint64_t)) abort(); + prefix_random_words = malloc(2 * opt.n * sizeof(uint64_t)); + if (!prefix_random_words) abort(); + for (uint64_t i = 0; i < 2 * opt.n; i++) + prefix_random_words[i] = mix(i + opt.seed * 1000003); + qsort(prefix_random_words, 2 * opt.n, sizeof(uint64_t), prefix_word_compare); + } + printf("prefix-pattern=%s key_bytes=%d compression_disabled=%s\n", + pattern ? pattern : "common", KEY_SIZE, + getenv("PREFIX_DISABLE") ? "true" : "false"); +} + +static inline void +prefix_encode_word(uint64_t word, char *key) +{ + for (int i = 0; i < 8; i++) key[i] = (char)(word >> (56 - 8 * i)); +} + +static inline void +make_key(uint64_t k, char *key) +{ + if (prefix_pattern == 0) { + memset(key, 'p', 48); + prefix_encode_word(k, key + 48); + } else { + for (unsigned i = 0; i < 7; i++) + prefix_encode_word(mix(k + (uint64_t)i * UINT64_C(0x9e3779b97f4a7c15)), + key + i * 8); + if (prefix_pattern == 1) prefix_encode_word(prefix_random_words[k], key); + } + prefix_encode_word(k, key + 56); +} + +static inline bool +decode_key(slice s, uint64_t *k) +{ + if (slice_length(s) != KEY_SIZE) return false; + const unsigned char *bytes = slice_data(s); + uint64_t rank = 0; + for (unsigned i = 56; i < 64; i++) rank = (rank << 8) | bytes[i]; + if (rank >= 2 * opt.n) return false; + char expected[KEY_SIZE]; + make_key(rank, expected); + *k = rank; + return memcmp(bytes, expected, KEY_SIZE) == 0; +} + +static inline void +make_value(uint64_t id, uint64_t gen, char *val) +{ + memcpy(val, &id, 8); + memcpy(val + 8, &gen, 8); + memset(val + 16, 'v', VALUE_SIZE - 16); +} + +static inline bool +value_id_ok(slice v, uint64_t id) +{ + if (slice_length(v) != VALUE_SIZE) { + return false; + } + uint64_t got; + memcpy(&got, slice_data(v), 8); + return got == id; +} + +static inline bool +value_generation_ok(slice v, uint64_t id, uint64_t expected_generation) +{ + if (!value_id_ok(v, id)) { + return false; + } + uint64_t got_generation; + memcpy(&got_generation, (const char *)slice_data(v) + 8, 8); + return got_generation == expected_generation; +} + +static void +violation(worker_t *w, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); + +static void +violation(worker_t *w, const char *fmt, ...) +{ + w->violations++; + if (w->violations <= 3) { + char buf[256]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + if (w->violations == 1) { + snprintf(w->first_violation, sizeof(w->first_violation), "%s", buf); + } + fprintf(stderr, "VIOLATION [thread %d]: %s\n", w->idx, buf); + } +} + +/* ------------------------------------------------------------------------ */ +/* Process metrics */ +/* ------------------------------------------------------------------------ */ + +typedef struct { + uint64_t t_ns; + double cpu_s; + uint64_t rd, wr; + uint64_t swpin, swpout; + uint64_t majflt; +} snap_t; + +static void +proc_io(uint64_t *rd, uint64_t *wr) +{ + *rd = *wr = 0; + FILE *f = fopen("/proc/self/io", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "read_bytes:")) { + *rd = v; + } else if (!strcmp(name, "write_bytes:")) { + *wr = v; + } + } + fclose(f); +} + +static void +vm_swap(uint64_t *in, uint64_t *out) +{ + *in = *out = 0; + FILE *f = fopen("/proc/vmstat", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "pswpin")) { + *in = v; + } else if (!strcmp(name, "pswpout")) { + *out = v; + } + } + fclose(f); +} + +static void +take_snap(snap_t *s) +{ + struct rusage ru; + getrusage(RUSAGE_SELF, &ru); + s->cpu_s = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1e6 + + ru.ru_stime.tv_sec + ru.ru_stime.tv_usec / 1e6; + s->majflt = ru.ru_majflt; + proc_io(&s->rd, &s->wr); + vm_swap(&s->swpin, &s->swpout); + s->t_ns = now_ns(); +} + +/* ------------------------------------------------------------------------ */ +/* DB lifecycle */ +/* ------------------------------------------------------------------------ */ + +static void +fill_config(splinterdb_config *cfg) +{ + *cfg = (splinterdb_config){ + .filename = opt.db, + .cache_size = opt.cache_mib << 20, + .disk_size = opt.disk_gib << 30, + .data_cfg = &data_cfg, + .io_flags = O_RDWR | O_CREAT | O_DIRECT, + .io_perms = 0644, + .use_log = opt.use_log ? 1 : 0, + .memtable_capacity = opt.memtable_mib << 20, + .fanout = 8, + .num_memtable_bg_threads = (uint64)opt.mt_bg, + .num_normal_bg_threads = (uint64)opt.normal_bg, + .queue_scale_percent = 100, + }; +#ifdef KVBENCH_SPACE_MODE + cfg->use_stats = 1; +#endif +} + +static double open_secs; + +static void +db_open(bool create) +{ + splinterdb_config cfg; + fill_config(&cfg); + wd_what = create ? "create" : "open"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); + int rc = + create ? splinterdb_create(&cfg, &kvs) : splinterdb_open(&cfg, &kvs); + open_secs = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + if (rc) { + fprintf(stderr, "FATAL: splinterdb_%s failed rc=%d\n", wd_what, rc); + exit(3); + } + fprintf(stderr, "%s took %.3f s\n", wd_what, open_secs); +} + +static double +db_close(void) +{ +#ifdef KVBENCH_SPACE_MODE + /* Space/stats build only: dump insertion + allocator stats for the session. + */ + if (getenv("KVBENCH_STATS_BEFORE_CLOSE")) { + platform_set_log_streams(stdout, stderr); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + } +#endif + wd_what = "close"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); +#ifdef KVBENCH_CLOSE_HAS_FORCE + int rc = splinterdb_close(&kvs, 0); + if (rc) { + fprintf(stderr, + "FINDING: splinterdb_close(force=0) refused rc=%d; forcing\n", + rc); + rc = splinterdb_close(&kvs, 1); + if (rc) { + fprintf(stderr, "FINDING: splinterdb_close(force=1) rc=%d\n", rc); + } + } +#else + splinterdb_close(&kvs); +#endif + double s = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + kvs = NULL; + fprintf(stderr, "close took %.3f s\n", s); + return s; +} + +/* ------------------------------------------------------------------------ */ +/* Watchdog */ +/* ------------------------------------------------------------------------ */ + +static void +hang_dump(const char *why) +{ + char path[512], cmd[1024]; + snprintf(path, + sizeof(path), + "%s/hang-%s-%s-%d-%ld.txt", + opt.hang_dir ? opt.hang_dir : ".", + opt.vtag, + wd_what, + (int)getpid(), + (long)time(NULL)); + fprintf(stderr, + "HANG DETECTED (%s) during %s; dumping stacks to %s\n", + why, + wd_what, + path); + snprintf(cmd, + sizeof(cmd), + "gdb -batch -ex 'info threads' -ex 'thread apply all bt' -p %d > " + "'%s' 2>&1", + (int)getpid(), + path); + int rc = system(cmd); + fprintf(stderr, "gdb rc=%d; exiting with status 99\n", rc); + fflush(stderr); + _exit(99); +} + +static void * +watchdog_main(void *arg) +{ + (void)arg; + uint64_t last_prog = 0, last_change = now_ns(), last_report = now_ns(); + uint64_t last_report_prog = 0; + double last_cpu = -1; + uint64_t last_io = 0; + int last_mode = WD_IDLE; + for (;;) { + sleep(1); + int mode = atomic_load(&wd_mode); + uint64_t now = now_ns(); + if (mode != last_mode) { + last_mode = mode; + last_change = now; + last_prog = 0; + last_report_prog = 0; + last_report = now; + last_cpu = -1; + } + if (mode == WD_OPS) { + uint64_t prog = 0; + for (int i = 0; i < nworkers; i++) { + prog += + atomic_load_explicit(&workers[i].progress, memory_order_relaxed); + } + if (prog != last_prog) { + last_prog = prog; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no op progress for hang_secs"); + } + if (now - last_report >= 10ull * 1000000000ull) { + fprintf(stderr, + " [%s] progress %" PRIu64 " ops (+%.0f ops/s)\n", + wd_what, + prog, + (prog - last_report_prog) / ((now - last_report) / 1e9)); + last_report = now; + last_report_prog = prog; + } + } else if (mode == WD_OPENCLOSE) { + snap_t s; + take_snap(&s); + uint64_t io = s.rd + s.wr; + if (last_cpu < 0 || s.cpu_s - last_cpu > 0.05 || io != last_io) { + last_cpu = s.cpu_s; + last_io = io; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no CPU or IO progress for hang_secs"); + } + uint64_t since = atomic_load(&wd_mode_since_ns); + if (now - since > 2400ull * 1000000000ull) { + hang_dump("open/close exceeded 40 minutes"); + } + } + } + return NULL; +} + +/* ------------------------------------------------------------------------ */ +/* Worker bodies */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +pick_id(worker_t *w, enum dist d, uint64_t *seqpos, uint64_t lo, uint64_t hi) +{ + switch (d) { + case D_ZIPF: + return perm_apply(&zipf_perm, zipf_next(&zipf, &w->rng)); + case D_SEQ: + { + uint64_t id = *seqpos; + *seqpos = (id + 1 >= hi) ? lo : id + 1; + return id; + } + case D_UNIFORM: + case D_NEG: + default: + return rng_next(&w->rng) % opt.n; + } +} + +static inline void +wait_start(void) +{ + while (atomic_load_explicit(&run_state, memory_order_acquire) == ST_WAIT) { + struct timespec d = {.tv_nsec = 100000}; + nanosleep(&d, NULL); + } +} + +static void * +load_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + wait_start(); + uint64_t pos = lo, chunk_end = 0, cur = 0; + for (;;) { + uint64_t id; + if (w->ph->dist == D_RANDOM) { + if (pos >= hi) { + break; + } + id = perm_apply(&load_perm, pos++); + } else { + if (cur >= chunk_end) { + cur = atomic_fetch_add(&seq_counter, 64); + if (cur >= opt.n) { + break; + } + chunk_end = cur + 64 > opt.n ? opt.n : cur + 64; + } + id = cur++; + } + make_key(2 * id, key); + make_value(id, 0, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: insert id=%" PRIu64 " rc=%d\n", id, rc); + } + } + hist_add(&w->lat, t1 - t0); + w->ops++; + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + return NULL; +} + +static void * +warm_worker(void *arg) +{ + worker_t *w = arg; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + if ((opt.sabotage & 8) && w->idx == nworkers - 1) { + hi++; /* sabotage: expect one more id than exists */ + } + char key[KEY_SIZE]; + make_key(2 * lo, key); + wait_start(); + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator_init rc=%d\n", rc); + return NULL; + } + uint64_t expect = lo; + while (expect < hi && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk; + splinterdb_iterator_get_current(it, &k, &v); + if (!decode_key(k, &kk) || kk != 2 * expect || !value_id_ok(v, expect)) { + violation(w, + "warm: expected id %" PRIu64 " got key %" PRIu64 + " (len %" PRIu64 ")", + expect, + kk, + slice_length(k)); + if (kk > 2 * expect && (kk & 1) == 0) { + expect = kk / 2; /* resync after a gap */ + } + } + expect++; + w->ops++; + if ((w->ops & 1023) == 0) { + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + if (expect < hi) { + splinterdb_iterator_next(it); + } + } + rc = splinterdb_iterator_status(it); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator status rc=%d\n", rc); + } + if (expect != hi) { + violation(w, + "warm: range [%" PRIu64 ",%" PRIu64 ") ended at %" PRIu64, + lo, + hi, + expect); + } + splinterdb_iterator_deinit(it); + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + return NULL; +} + +static void * +point_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + char buf[256]; + splinterdb_lookup_result res; + splinterdb_lookup_result_init( + kvs, &res, SPLINTERDB_LOOKUP_VALUE, sizeof(buf), buf); + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + uint64_t seqpos = lo; + bool neg = w->ph->dist == D_NEG; + wait_start(); + uint64_t n = 0; + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, lo, hi); + bool q_neg = neg; + bool e_neg = neg; + if (opt.sabotage & 1) { + q_neg = true; /* sabotage: query absent key, expect present */ + } + if ((opt.sabotage & 16) && n > 1000) { + sleep(100000); /* test hook: simulate a hang for the watchdog */ + } + if (opt.sabotage & 2) { + q_neg = false; /* sabotage: query present key, expect absent */ + } + make_key(q_neg ? 2 * id + 1 : 2 * id, key); + uint64_t t0 = now_ns(); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &res); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: lookup id=%" PRIu64 " rc=%d\n", id, rc); + } + continue; + } + bool found = splinterdb_lookup_found(&res); + if (found) { + w->found++; + } else { + w->notfound++; + } + if (e_neg) { + if (found) { + violation(w, "negative key 2*%" PRIu64 "+1 found", id); + } + } else { + slice v; + if (!found) { + violation(w, "present id %" PRIu64 " not found", id); + } else if (splinterdb_lookup_result_value(&res, &v) != 0 + || !value_id_ok(v, id)) + { + violation(w, "present id %" PRIu64 " wrong value", id); + } + } + } + splinterdb_lookup_result_deinit(&res); + return NULL; +} + +static void * +range_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + uint64_t L = w->ph->L; + uint64_t seqpos = 0; + uint64_t n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t start = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + uint64_t expect = opt.n - start < L ? opt.n - start : L; + if (opt.sabotage & 4) { + expect++; /* sabotage: expect one extra tuple */ + } + make_key(2 * start, key); + uint64_t t0 = now_ns(), t1 = 0, tl = 0; + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator_init rc=%d\n", rc); + } + continue; + } + uint64_t got = 0; + bool bad = false; + while (got < L && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk = 0; + splinterdb_iterator_get_current(it, &k, &v); + if (!bad + && (!decode_key(k, &kk) || kk != 2 * (start + got) + || !value_id_ok(v, start + got))) + { + bad = true; + if (st == ST_MEASURE) { + violation(w, + "range start %" PRIu64 " tuple %" PRIu64 + ": expected key %" PRIu64 " got %" PRIu64, + start, + got, + 2 * (start + got), + kk); + } + } + got++; + if (got == 1) { + t1 = now_ns(); + } + if (got == L) { + tl = now_ns(); + break; + } + splinterdb_iterator_next(it); + } + int status = splinterdb_iterator_status(it); + uint64_t t2 = now_ns(); + splinterdb_iterator_deinit(it); + uint64_t t3 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + if (status) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator status rc=%d\n", status); + } + } + if (got != expect) { + violation(w, + "range start %" PRIu64 " L=%" PRIu64 ": got %" PRIu64 + " tuples, expected %" PRIu64, + start, + L, + got, + expect); + } + w->ops++; + w->tuples += got; + hist_add(&w->lat, t3 - t0); + if (got >= 1) { + hist_add(&w->startup, t1 - t0); + } + if (L > 1 && got == L) { + w->pt_ns += tl - t1; + w->pt_div += L - 1; + } + w->deinit_ns += t3 - t2; + w->deinit_n++; + } + return NULL; +} + +static void * +ow_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t seqpos = 0, n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + if (st == ST_MEASURE && !w->measure_rng_captured) { + w->measure_rng = w->rng; + w->measure_rng_captured = true; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + make_value(id, generation, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: overwrite id=%" PRIu64 " rc=%d\n", id, rc); + } + } + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + } + return NULL; +} + +/* + * Validate an untimed deterministic sample from the beginning of each + * overwrite worker's measured stream. Replaying the saved RNG state keeps all + * validation work out of the measured hot path. + */ +static void +verify_overwrite_sample(const phase_t *ph, int threads) +{ + enum { SAMPLES_PER_WORKER = 4096 }; + char key[KEY_SIZE], buffer[VALUE_SIZE]; + splinterdb_lookup_result result; + splinterdb_lookup_result_init( + kvs, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(buffer), buffer); + + for (int i = 0; i < threads; i++) { + worker_t *original = &workers[i]; + if (original->ops == 0) { + continue; + } + if (!original->measure_rng_captured) { + original->errors++; + fprintf( + stderr, + "ERROR: overwrite verifier has no measurement RNG for thread %d\n", + i); + continue; + } + worker_t replay = {.rng = original->measure_rng}; + uint64_t seqpos = 0; + uint64_t samples = original->ops < SAMPLES_PER_WORKER + ? original->ops + : SAMPLES_PER_WORKER; + for (uint64_t sample = 0; sample < samples; sample++) { + uint64_t id = pick_id(&replay, ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &result); + if (rc != 0) { + original->errors++; + if (original->errors <= 3) { + fprintf(stderr, + "ERROR: overwrite verification id=%" PRIu64 " rc=%d\n", + id, + rc); + } + continue; + } + slice value; + if (!splinterdb_lookup_found(&result) + || splinterdb_lookup_result_value(&result, &value) != 0 + || !value_generation_ok(value, id, generation)) + { + violation(original, + "overwrite verification id=%" PRIu64 + " did not return generation %" PRIu64, + id, + generation); + } + } + } + splinterdb_lookup_result_deinit(&result); +} + +/* ------------------------------------------------------------------------ */ +/* Phase driver */ +/* ------------------------------------------------------------------------ */ + +static const char * +dist_name(enum dist d) +{ + switch (d) { + case D_UNIFORM: + return "uniform"; + case D_ZIPF: + return "zipf"; + case D_SEQ: + return "seq"; + case D_NEG: + return "neg"; + case D_RANDOM: + return "random"; + } + return "?"; +} + +static void +sleep_secs(double s) +{ + uint64_t end = now_ns() + (uint64_t)(s * 1e9); + for (;;) { + uint64_t now = now_ns(); + if (now >= end) { + break; + } + uint64_t rem = end - now; + struct timespec d = {.tv_sec = rem / 1000000000ull, + .tv_nsec = rem % 1000000000ull}; + nanosleep(&d, NULL); + } +} + +static void +file_sizes(uint64_t *apparent, uint64_t *alloc) +{ + struct stat st; + if (stat(opt.db, &st) == 0) { + *apparent = (uint64_t)st.st_size; + *alloc = (uint64_t)st.st_blocks * 512; + } else { + *apparent = *alloc = 0; + } +} + +static int csv_header_written; + +static void +csv_row(const phase_t *ph, + int threads, + hist_t *lat, + hist_t *startup, + uint64_t ops, + uint64_t tuples, + uint64_t pt_ns, + uint64_t pt_div, + uint64_t deinit_ns, + uint64_t deinit_n, + uint64_t viol, + uint64_t errs, + const snap_t *a, + const snap_t *b, + double insert_s, + double drain_s, + const snap_t *da, + const snap_t *db_, + uint64_t app, + uint64_t alc) +{ + double secs = (b->t_ns - a->t_ns) / 1e9; + double cpu = b->cpu_s - a->cpu_s; + uint64_t rd = b->rd - a->rd, wr = b->wr - a->wr; + double d_cpu = da ? db_->cpu_s - da->cpu_s : 0; + uint64_t d_rd = da ? db_->rd - da->rd : 0, d_wr = da ? db_->wr - da->wr : 0; + uint64_t swin = b->swpin - a->swpin + (da ? db_->swpin - da->swpin : 0); + uint64_t swout = b->swpout - a->swpout + (da ? db_->swpout - da->swpout : 0); + uint64_t majflt = b->majflt - a->majflt; + double logical = (double)ops * (KEY_SIZE + VALUE_SIZE); + double wamp = (ph->kind == PH_LOAD || ph->kind == PH_OW) && ops + ? (double)(wr + d_wr) / logical + : NAN; + double pt = pt_div ? (double)pt_ns / (double)pt_div : NAN; + double dmean = deinit_n ? (double)deinit_ns / (double)deinit_n / 1e3 : NAN; + + printf("== %-22s T=%-2d ops=%-10" PRIu64 " secs=%7.2f ops/s=%11.0f " + "lat us p50=%.2f p99=%.2f p99.9=%.2f max=%.1f mean=%.2f\n", + ph->name, + threads, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat)); + printf(" cpu=%.2fs ops/cpu-s=%.0f rd=%.1f B/op wr=%.1f B/op " + "violations=%" PRIu64 " errors=%" PRIu64 " swapin=%" PRIu64 + " swapout=%" PRIu64 " majflt=%" PRIu64 "\n", + cpu, + ops / cpu, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + viol, + errs, + swin, + swout, + majflt); + if (ph->kind == PH_RANGE) { + printf(" startup us p50=%.2f p99=%.2f mean=%.2f per-tuple=%.1f ns " + "deinit mean=%.2f us tuples/s=%.0f\n", + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples / secs); + } + if (da) { + printf( + " insert/run=%.2fs drain(close)=%.2fs total=%.2fs drain_cpu=%.2fs " + "drain_rd=%" PRIu64 " drain_wr=%" PRIu64 " wamp=%.3f " + "db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc); + } + fflush(stdout); + + if (!opt.csv) { + return; + } + FILE *f = fopen(opt.csv, "a"); + if (!f) { + perror(opt.csv); + return; + } + if (!csv_header_written) { + fseek(f, 0, SEEK_END); + if (ftell(f) == 0) { + fprintf(f, + "version,size,order,log,phase,threads,rep,n,ops,secs,ops_s," + "p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s," + "rd_bytes,wr_bytes,rd_B_op,wr_B_op," + "startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns," + "deinit_mean_us,tuples,tuples_s," + "insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp," + "db_apparent,db_alloc,open_s,violations,errors,swapin,swapout," + "majflt\n"); + } + csv_header_written = 1; + } + fprintf(f, + "%s,%s,%s,%d,%s,%d,%d,%" PRIu64 ",%" PRIu64 ",%.3f,%.1f," + "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.1f," + "%" PRIu64 ",%" PRIu64 ",%.2f,%.2f," + "%.3f,%.3f,%.3f,%.2f," + "%.3f,%" PRIu64 ",%.1f," + "%.3f,%.3f,%.3f,%.3f,%" PRIu64 ",%" PRIu64 ",%.4f," + "%" PRIu64 ",%" PRIu64 ",%.3f,%" PRIu64 ",%" PRIu64 ",%" PRIu64 + ",%" PRIu64 ",%" PRIu64 "\n", + opt.vtag, + opt.stag, + opt.otag, + opt.use_log, + ph->name, + threads, + opt.rep, + opt.n, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat), + cpu, + ops / cpu, + rd, + wr, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples, + tuples / secs, + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc, + open_secs, + viol, + errs, + swin, + swout, + majflt); + fclose(f); +} + +static void +run_phase(const phase_t *ph, bool last) +{ + int T = ph->threads > 0 ? ph->threads : opt.threads; + nworkers = T; + workers = calloc((size_t)T, sizeof(worker_t)); + if (!workers) { + fprintf(stderr, "FATAL: out of memory\n"); + exit(3); + } + void *(*fn)(void *) = NULL; + switch (ph->kind) { + case PH_LOAD: + fn = load_worker; + break; + case PH_WARM: + fn = warm_worker; + break; + case PH_POINT: + fn = point_worker; + break; + case PH_RANGE: + fn = range_worker; + break; + case PH_OW: + fn = ow_worker; + break; + } + bool fixed_count = ph->kind == PH_LOAD || ph->kind == PH_WARM; + atomic_store(&run_state, ST_WAIT); + atomic_store(&seq_counter, 0); + for (int i = 0; i < T; i++) { + workers[i].idx = i; + workers[i].ph = ph; + workers[i].rng = mix(opt.seed * 1000003 + (uint64_t)i * 7919 + 17 + + (uint64_t)ph->kind * 131 + (uint64_t)ph->dist); + if (pthread_create(&workers[i].th, NULL, fn, &workers[i])) { + fprintf(stderr, "FATAL: pthread_create\n"); + exit(3); + } + } + fprintf(stderr, + "phase %s: T=%d dist=%s %s\n", + ph->name, + T, + dist_name(ph->dist), + fixed_count ? "(fixed count)" : "(fixed duration)"); + wd_what = ph->name; + atomic_store(&wd_mode, WD_OPS); + snap_t a, b; + if (fixed_count) { + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + take_snap(&b); + } else { + atomic_store_explicit(&run_state, ST_WARMUP, memory_order_release); + sleep_secs(opt.warmup); + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + sleep_secs(opt.secs); + atomic_store_explicit(&run_state, ST_STOP, memory_order_release); + take_snap(&b); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + } + atomic_store(&wd_mode, WD_IDLE); + + if (ph->kind == PH_OW) { + verify_overwrite_sample(ph, T); + } + + hist_t *lat = calloc(1, sizeof(hist_t)), + *startup = calloc(1, sizeof(hist_t)); + uint64_t ops = 0, tuples = 0, pt_ns = 0, pt_div = 0, dns = 0, dn = 0, + viol = 0, errs = 0, found = 0, notfound = 0; + for (int i = 0; i < T; i++) { + worker_t *w = &workers[i]; + hist_merge(lat, &w->lat); + hist_merge(startup, &w->startup); + ops += w->ops; + tuples += w->tuples; + pt_ns += w->pt_ns; + pt_div += w->pt_div; + dns += w->deinit_ns; + dn += w->deinit_n; + viol += w->violations; + errs += w->errors; + found += w->found; + notfound += w->notfound; + } + if (ph->kind == PH_WARM) { + tuples = ops; + if (ops != opt.n && !(opt.sabotage & 8)) { + fprintf(stderr, + "VIOLATION: warm scanned %" PRIu64 " tuples, expected %" PRIu64 + "\n", + ops, + opt.n); + viol++; + } + } + if (ph->kind == PH_POINT) { + fprintf(stderr, + " found=%" PRIu64 " notfound=%" PRIu64 "\n", + found, + notfound); + } + + double insert_s = (b.t_ns - a.t_ns) / 1e9, drain_s = 0; + snap_t da, dbs; + uint64_t app = 0, alc = 0; + bool closed = false; + if (ph->kind == PH_LOAD || last) { + take_snap(&da); + drain_s = db_close(); + take_snap(&dbs); + file_sizes(&app, &alc); + closed = true; + } + csv_row(ph, + T, + lat, + startup, + ops, + tuples, + pt_ns, + pt_div, + dns, + dn, + viol, + errs, + &a, + &b, + insert_s, + drain_s, + closed ? &da : NULL, + closed ? &dbs : NULL, + app, + alc); + if (viol) { + printf(" FINDING: %" PRIu64 + " correctness violations in %s (first: %s)\n", + viol, + ph->name, + workers[0].first_violation[0] ? workers[0].first_violation + : "see stderr"); + } + free(lat); + free(startup); + free(workers); + workers = NULL; + nworkers = 0; + if (closed && !last) { + db_open(false); + } +} + +/* ------------------------------------------------------------------------ */ +/* CLI */ +/* ------------------------------------------------------------------------ */ + +static void +usage(void) +{ + fprintf( + stderr, + "usage: kvbench --db PATH (--create|--open) --n N --cache-mib M " + "--disk-gib G --log 0|1\n" + " [--threads 6] [--mt-bg 1] [--normal-bg 4] [--memtable-mib 24]\n" + " [--secs 20] [--warmup 3] [--csv FILE] [--hang-dir DIR]\n" + " [--vtag S] [--stag S] [--otag S] [--rep R] [--seed S]\n" + " [--sabotage MASK] (1: point present->query absent; 2: point " + "neg->query present;\n" + " 4: range expects +1; 8: warm expects +1; 16: " + "point threads hang)\n" + " [--hang-secs 120] (no-progress timeout before gdb dump + exit 99\n" + " phase... load:random|load:seq warm point:uniform|zipf|seq|neg\n" + " range:uniform|zipf:L ow:uniform|zipf (suffix @T = " + "threads)\n"); + exit(2); +} + +static bool +parse_phase(const char *s, phase_t *ph) +{ + memset(ph, 0, sizeof(*ph)); + snprintf(ph->name, sizeof(ph->name), "%s", s); + char buf[64]; + snprintf(buf, sizeof(buf), "%s", s); + char *at = strchr(buf, '@'); + if (at) { + *at = 0; + ph->threads = atoi(at + 1); + } + char *a = strtok(buf, ":"), *b = strtok(NULL, ":"), *c = strtok(NULL, ":"); + if (!a) { + return false; + } + enum dist d = D_UNIFORM; + if (b) { + if (!strcmp(b, "uniform")) + d = D_UNIFORM; + else if (!strcmp(b, "zipf")) + d = D_ZIPF; + else if (!strcmp(b, "seq")) + d = D_SEQ; + else if (!strcmp(b, "neg")) + d = D_NEG; + else if (!strcmp(b, "random")) + d = D_RANDOM; + else + return false; + } + ph->dist = d; + if (!strcmp(a, "load")) { + ph->kind = PH_LOAD; + return b && (d == D_RANDOM || d == D_SEQ); + } else if (!strcmp(a, "warm")) { + ph->kind = PH_WARM; + return true; + } else if (!strcmp(a, "point")) { + ph->kind = PH_POINT; + return b != NULL; + } else if (!strcmp(a, "range")) { + ph->kind = PH_RANGE; + if (!b || !c || (d != D_UNIFORM && d != D_ZIPF)) { + return false; + } + ph->L = strtoull(c, NULL, 10); + return ph->L >= 1; + } else if (!strcmp(a, "ow")) { + ph->kind = PH_OW; + return b && (d == D_UNIFORM || d == D_ZIPF); + } + return false; +} + +int +main(int argc, char **argv) +{ + opt = (options){.threads = 6, + .mt_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .secs = 20, + .warmup = 3, + .vtag = "?", + .stag = "?", + .otag = "?", + .rep = 1, + .seed = 42, + .hang_secs = 120, + .use_log = -1}; + int mode = -1; +#ifdef KVBENCH_SPACE_MODE + /* + * Space-check build only: open with use_stats, print insertion stats + * (which include allocator "Currently Allocated" extents, recomputed from + * the persisted allocator map at open), close. No phases, no writes. + */ + bool space_mode = false; +#endif + for (int i = 1; i < argc; i++) { + const char *s = argv[i]; +#define ARG(name) (!strcmp(s, name) && i + 1 < argc) + if (!strcmp(s, "--create")) + mode = 1; + else if (!strcmp(s, "--open")) + mode = 0; + else if (ARG("--db")) + opt.db = argv[++i]; + else if (ARG("--csv")) + opt.csv = argv[++i]; + else if (ARG("--hang-dir")) + opt.hang_dir = argv[++i]; + else if (ARG("--vtag")) + opt.vtag = argv[++i]; + else if (ARG("--stag")) + opt.stag = argv[++i]; + else if (ARG("--otag")) + opt.otag = argv[++i]; + else if (ARG("--rep")) + opt.rep = atoi(argv[++i]); + else if (ARG("--n")) + opt.n = strtoull(argv[++i], NULL, 0); + else if (ARG("--cache-mib")) + opt.cache_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--disk-gib")) + opt.disk_gib = strtoull(argv[++i], NULL, 0); + else if (ARG("--memtable-mib")) + opt.memtable_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--log")) + opt.use_log = atoi(argv[++i]); + else if (ARG("--threads")) + opt.threads = atoi(argv[++i]); + else if (ARG("--mt-bg")) + opt.mt_bg = atoi(argv[++i]); + else if (ARG("--normal-bg")) + opt.normal_bg = atoi(argv[++i]); + else if (ARG("--secs")) + opt.secs = atof(argv[++i]); + else if (ARG("--warmup")) + opt.warmup = atof(argv[++i]); + else if (ARG("--sabotage")) + opt.sabotage = strtoull(argv[++i], NULL, 0); + else if (ARG("--hang-secs")) + opt.hang_secs = strtoull(argv[++i], NULL, 0); + else if (ARG("--seed")) + opt.seed = strtoull(argv[++i], NULL, 0); +#ifdef KVBENCH_SPACE_MODE + else if (!strcmp(s, "space")) + space_mode = true; +#endif + else if (s[0] == '-') + usage(); + else { + if (opt.nphases >= MAX_PHASES + || !parse_phase(s, &opt.phases[opt.nphases])) + { + fprintf(stderr, "bad phase '%s'\n", s); + usage(); + } + opt.nphases++; + } +#undef ARG + } +#ifdef KVBENCH_SPACE_MODE + if (space_mode && opt.db && opt.cache_mib && opt.disk_gib + && opt.use_log >= 0) + { + default_data_config_init(&data_cfg); prefix_configure(); + platform_set_log_streams(stdout, stderr); + db_open(false); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + db_close(); + uint64_t app, alc; + file_sizes(&app, &alc); + printf("space: db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", app, alc); + return 0; + } +#endif + if (!opt.db || mode < 0 || !opt.n || !opt.cache_mib || !opt.disk_gib + || opt.use_log < 0 || !opt.nphases || opt.threads < 1 + || opt.threads > MAX_WORKERS) + { + usage(); + } + for (int i = 0; i < opt.nphases; i++) { + if (opt.phases[i].threads > MAX_WORKERS) { + usage(); + } + } + prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + setvbuf(stdout, NULL, _IOLBF, 0); + + default_data_config_init(&data_cfg); prefix_configure(); + perm_init(&load_perm, opt.n, opt.seed * 2 + 1); + perm_init(&zipf_perm, opt.n, opt.seed * 2 + 2); + zipf_init(&zipf, opt.n, 0.99); + generation = (uint64_t)time(NULL); + + printf("kvbench version=%s splinter=%s db=%s mode=%s n=%" PRIu64 + " cache_mib=%" PRIu64 " disk_gib=%" PRIu64 + " log=%d threads=%d mt_bg=%d normal_bg=%d memtable_mib=%" PRIu64 + " secs=%.1f warmup=%.1f rep=%d sabotage=%" PRIu64 "\n", + opt.vtag, + splinterdb_get_version(), + opt.db, + mode ? "create" : "open", + opt.n, + opt.cache_mib, + opt.disk_gib, + opt.use_log, + opt.threads, + opt.mt_bg, + opt.normal_bg, + opt.memtable_mib, + opt.secs, + opt.warmup, + opt.rep, + opt.sabotage); + + pthread_t wd; + pthread_create(&wd, NULL, watchdog_main, NULL); + + db_open(mode == 1); + for (int i = 0; i < opt.nphases; i++) { + run_phase(&opt.phases[i], i == opt.nphases - 1); + } + if (kvs) { + db_close(); + } + return 0; +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/preparation.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/preparation.json new file mode 100644 index 000000000..2a6d4b750 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/preparation.json @@ -0,0 +1,20 @@ +{ + "main": "7bb5fab305b9c6179e31f75998dabea833537a08", + "sources": { + "hash_range_benchmark.c": "bed236eceff4c7c1ce1570f55ddf35aac1858f53520c9447f24f5a32c055b6fe", + "kvbench.c": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "prefix_kvbench.c": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "barrier_bench.c": "1784a5d6d1b627858a0c8a9a6f718cd7d002a562e680d5cbdde23829167c015c", + "insert_benchmark.c": "75acbda52b2a8949f1d61710a8d89250d4dac63b12ec9803b89170f9c2cc0b26" + }, + "source_notes": { + "kvbench.c": "Byte-identical copy of campaign baseline/benchmarks/kvbench.c", + "prefix_kvbench.c": "Frozen campaign prefix workload generated from the same baseline kvbench, 64-byte common/random keys", + "insert_benchmark.c": "Frozen log-group-limit branch harness, with a compile-time two-argument blocking durable-barrier adapter for async branch", + "barrier_bench.c": "Frozen async-durable-barrier branch common harness with compile-time main/candidate API adapters", + "hash_range_benchmark.c": "Frozen filtered-ranges branch public-API probe; candidate routing hash versus main application filtering" + }, + "query_order": "Main control, all variants forward, main control, all variants reverse, main control", + "scope": "Screen feature branches freshly based on main; historical measurements remain historical. This does not isolate merge overhead.", + "expected_minutes": 35 +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/repeat.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/repeat.py new file mode 100644 index 000000000..a6045a183 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/repeat.py @@ -0,0 +1,19 @@ +"""Nearby warmed ABBA controls; invoke under run_job.py benchmark.""" +import argparse +import run_matrix as r +p=argparse.ArgumentParser();p.add_argument('profile',choices=['warmup','cache-invalid-addresses','directory-bucket-atomic','async-durable-barrier']);a=p.parse_args() +def interrupted(signum,frame):raise InterruptedError(f'benchmark interrupted by signal {signum}') +for sig in [r.signal.SIGTERM,r.signal.SIGHUP]:r.signal.signal(sig,interrupted) +original=r.kvargs +def longer(*args,**kwargs): + kwargs['secs']=10 + return original(*args,**kwargs) +r.kvargs=longer +folder,m=r.newmode('repeat-'+a.profile) +m['runner_sha256']=r.sha(__file__) +m['shared_runner_sha256']=r.sha(r.__file__) +m['scope']='Nearby main ABBA controls after broad screening; all earlier samples retained' +if a.profile=='warmup':m['scope']='Recorded workload warmup before nearby ABBA comparisons; retained separately from their samples' +phases=['warm']+(['point:uniform@1'] if a.profile=='cache-invalid-addresses' else [])+['point:uniform@8','range:uniform:1@8'] +for i,name in enumerate(['main'] if a.profile=='warmup' else ['main',a.profile,a.profile,'main']):r.query_one(folder,m,i,name,'resident',phases) +m['complete']=True;r.save(folder/'manifest.json',m) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.md b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.md new file mode 100644 index 000000000..c6d09c230 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.md @@ -0,0 +1,237 @@ +# Fresh main integration benchmark screening + +These compare current feature branches with main 7bb5fab. They do not isolate the cost of merging main. Short runs are screening evidence, not proof of performance neutrality. All databases are on verified real disk with O_DIRECT; copied fixtures are fsynced before opening. Query samples use serial-built immutable fixtures, with separate equivalent fixtures for incompatible formats. Main controls bracket forward and reverse variant sweeps. + +| Workload | Phase | Branch | Change | Sample range overlap | +| --- | --- | --- | ---: | --- | +| resident | point:uniform@1 | disk-format | -1.21% | True | +| resident | point:uniform@1 | filtered-ranges | -1.11% | True | +| resident | point:uniform@1 | log-group-limit | -3.24% | True | +| resident | point:uniform@1 | lazy-merge | -2.99% | True | +| resident | point:uniform@1 | async-durable-barrier | -3.58% | True | +| resident | point:uniform@1 | cache-invalid-addresses | -4.60% | False | +| resident | point:uniform@1 | directory-direct | -3.66% | True | +| resident | point:uniform@1 | directory-bucket | -13.61% | False | +| resident | point:uniform@1 | directory-bucket-simd | -14.75% | False | +| resident | point:uniform@1 | directory-bucket-atomic | -11.59% | False | +| resident | point:uniform@8 | disk-format | -1.92% | True | +| resident | point:uniform@8 | filtered-ranges | -1.37% | True | +| resident | point:uniform@8 | log-group-limit | -3.94% | True | +| resident | point:uniform@8 | lazy-merge | -4.99% | True | +| resident | point:uniform@8 | async-durable-barrier | -5.29% | True | +| resident | point:uniform@8 | cache-invalid-addresses | -7.08% | True | +| resident | point:uniform@8 | directory-direct | -6.43% | True | +| resident | point:uniform@8 | directory-bucket | -25.62% | False | +| resident | point:uniform@8 | directory-bucket-simd | -25.20% | False | +| resident | point:uniform@8 | directory-bucket-atomic | -11.45% | False | +| resident | range:uniform:1@1 | disk-format | +1.54% | True | +| resident | range:uniform:1@1 | filtered-ranges | -0.07% | True | +| resident | range:uniform:1@1 | log-group-limit | -2.20% | True | +| resident | range:uniform:1@1 | lazy-merge | +4.48% | True | +| resident | range:uniform:1@1 | async-durable-barrier | -0.38% | True | +| resident | range:uniform:1@1 | cache-invalid-addresses | -2.25% | True | +| resident | range:uniform:1@1 | directory-direct | -0.18% | True | +| resident | range:uniform:1@1 | directory-bucket | -7.11% | False | +| resident | range:uniform:1@1 | directory-bucket-simd | -6.10% | False | +| resident | range:uniform:1@1 | directory-bucket-atomic | -5.32% | False | +| resident | range:uniform:1@8 | disk-format | -4.07% | True | +| resident | range:uniform:1@8 | filtered-ranges | -3.38% | True | +| resident | range:uniform:1@8 | log-group-limit | -4.75% | True | +| resident | range:uniform:1@8 | lazy-merge | +1.35% | True | +| resident | range:uniform:1@8 | async-durable-barrier | -6.06% | False | +| resident | range:uniform:1@8 | cache-invalid-addresses | -4.95% | True | +| resident | range:uniform:1@8 | directory-direct | -4.39% | True | +| resident | range:uniform:1@8 | directory-bucket | -18.35% | False | +| resident | range:uniform:1@8 | directory-bucket-simd | -18.65% | False | +| resident | range:uniform:1@8 | directory-bucket-atomic | -7.65% | False | +| resident | range:uniform:10000@8 | disk-format | -2.41% | True | +| resident | range:uniform:10000@8 | filtered-ranges | +1.43% | True | +| resident | range:uniform:10000@8 | log-group-limit | -1.49% | True | +| resident | range:uniform:10000@8 | lazy-merge | -5.38% | True | +| resident | range:uniform:10000@8 | async-durable-barrier | -4.49% | True | +| resident | range:uniform:10000@8 | cache-invalid-addresses | -2.56% | True | +| resident | range:uniform:10000@8 | directory-direct | -8.56% | False | +| resident | range:uniform:10000@8 | directory-bucket | -6.41% | True | +| resident | range:uniform:10000@8 | directory-bucket-simd | -6.44% | False | +| resident | range:uniform:10000@8 | directory-bucket-atomic | -6.85% | True | +| disk | point:uniform@8 | disk-format | -0.81% | True | +| disk | point:uniform@8 | filtered-ranges | -3.82% | True | +| disk | point:uniform@8 | log-group-limit | -0.25% | True | +| disk | point:uniform@8 | lazy-merge | -0.22% | True | +| disk | point:uniform@8 | async-durable-barrier | -2.05% | True | +| disk | point:uniform@8 | cache-invalid-addresses | -2.24% | True | +| disk | point:uniform@8 | directory-direct | -1.93% | True | +| disk | point:uniform@8 | directory-bucket | -2.54% | True | +| disk | point:uniform@8 | directory-bucket-simd | -2.53% | True | +| disk | point:uniform@8 | directory-bucket-atomic | -1.32% | True | +| disk | range:uniform:1@8 | disk-format | -0.78% | True | +| disk | range:uniform:1@8 | filtered-ranges | -1.67% | True | +| disk | range:uniform:1@8 | log-group-limit | -0.59% | True | +| disk | range:uniform:1@8 | lazy-merge | -0.98% | True | +| disk | range:uniform:1@8 | async-durable-barrier | -2.40% | True | +| disk | range:uniform:1@8 | cache-invalid-addresses | -2.34% | True | +| disk | range:uniform:1@8 | directory-direct | -3.11% | True | +| disk | range:uniform:1@8 | directory-bucket | -2.79% | True | +| disk | range:uniform:1@8 | directory-bucket-simd | -3.56% | True | +| disk | range:uniform:1@8 | directory-bucket-atomic | -2.25% | True | +| disk | range:uniform:10000@8 | disk-format | -0.41% | True | +| disk | range:uniform:10000@8 | filtered-ranges | -1.80% | True | +| disk | range:uniform:10000@8 | log-group-limit | +0.11% | True | +| disk | range:uniform:10000@8 | lazy-merge | -1.24% | True | +| disk | range:uniform:10000@8 | async-durable-barrier | -2.13% | True | +| disk | range:uniform:10000@8 | cache-invalid-addresses | -2.08% | True | +| disk | range:uniform:10000@8 | directory-direct | -2.14% | True | +| disk | range:uniform:10000@8 | directory-bucket | -2.08% | True | +| disk | range:uniform:10000@8 | directory-bucket-simd | -3.48% | True | +| disk | range:uniform:10000@8 | directory-bucket-atomic | -1.09% | True | +| prefix-resident-common | point:uniform@8 | branch-prefix | +10.61% | False | +| prefix-resident-common | range:uniform:1@8 | branch-prefix | +2.87% | False | +| prefix-resident-common | range:uniform:10000@8 | branch-prefix | +0.34% | True | +| prefix-resident-common | ow:uniform@8 | branch-prefix | +9.38% | False | +| prefix-resident-random | point:uniform@8 | branch-prefix | -0.30% | True | +| prefix-resident-random | range:uniform:1@8 | branch-prefix | +2.67% | True | +| prefix-resident-random | range:uniform:10000@8 | branch-prefix | -10.88% | False | +| prefix-resident-random | ow:uniform@8 | branch-prefix | -1.52% | True | +| prefix-disk-common | point:uniform@8 | branch-prefix | -2.69% | True | +| prefix-disk-common | range:uniform:1@8 | branch-prefix | +0.11% | True | +| prefix-disk-common | range:uniform:10000@8 | branch-prefix | +14.37% | False | +| prefix-disk-random | point:uniform@8 | branch-prefix | -5.57% | True | +| prefix-disk-random | range:uniform:1@8 | branch-prefix | -6.30% | True | +| prefix-disk-random | range:uniform:10000@8 | branch-prefix | -4.11% | True | +| repeat-directory-bucket-atomic | point:uniform@8 | directory-bucket-atomic | -6.18% | True | +| repeat-directory-bucket-atomic | range:uniform:1@8 | directory-bucket-atomic | -3.89% | True | +| repeat-async-durable-barrier | point:uniform@8 | async-durable-barrier | -0.52% | True | +| repeat-async-durable-barrier | range:uniform:1@8 | async-durable-barrier | -2.28% | True | +| repeat-cache-invalid-addresses | point:uniform@1 | cache-invalid-addresses | -4.54% | False | +| repeat-cache-invalid-addresses | point:uniform@8 | cache-invalid-addresses | -3.64% | True | +| repeat-cache-invalid-addresses | range:uniform:1@8 | cache-invalid-addresses | +0.03% | True | +| insert | WAL1 | disk-format | -0.88% | True | +| insert | WAL1 | filtered-ranges | -1.02% | False | +| insert | WAL1 | lazy-merge | -0.49% | True | +| insert | WAL1 | async-durable-barrier | -1.08% | True | +| insert | WAL1 | cache-invalid-addresses | -3.00% | False | +| insert | WAL1 | directory-direct | -1.91% | False | +| insert | WAL1 | directory-bucket | -5.46% | False | +| insert | WAL1 | directory-bucket-simd | -3.79% | False | +| insert | WAL1 | directory-bucket-atomic | -3.32% | False | +| insert | WAL1 | log-disabled | -1.34% | True | +| insert | WAL1 | log-default | -42.70% | False | +| insert | WAL0 | cache-invalid-addresses | +6.27% | True | +| insert | WAL0 | directory-bucket-atomic | +6.39% | False | + +Detailed throughput ranges, CPU/op, I/O/op and p99 are in summary.csv. Raw commands, source/library/executable hashes, verification and logs remain in the per-workload manifest and adjacent artifacts. + +{ + "insert": { + "runs": 31, + "complete": true, + "verified": 31 + }, + "repeat-warmup": { + "runs": 1, + "complete": true, + "verified": 1 + }, + "barrier": { + "runs": 24, + "complete": true, + "verified": 24 + }, + "repeat-directory-bucket-atomic": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "fixtures": { + "runs": 12, + "complete": true, + "verified": 12 + }, + "disk": { + "runs": 23, + "complete": true, + "verified": 23 + }, + "repeat-async-durable-barrier": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "prefix-resident-common": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "hash": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "resident": { + "runs": 23, + "complete": true, + "verified": 23 + }, + "repeat-cache-invalid-addresses": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "prefix-disk-random": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "prefix-disk-common": { + "runs": 4, + "complete": true, + "verified": 4 + }, + "prefix-resident-random": { + "runs": 4, + "complete": true, + "verified": 4 + } +} + +## Main control drift + +All controls are retained. Large variation in these unchanged-main samples prevents attributing small feature differences to code. The measured cause of this variation is unknown. Nearby ABBA repeats are separate evidence; they do not replace these results. + +| Regime | Phase | First ops/s | Middle ops/s | Last ops/s | Middle vs first | Last vs first | +| --- | --- | ---: | ---: | ---: | ---: | ---: | +| resident | point:uniform@1 | 1,261,757.3 | 1,152,531.0 | 1,148,133.5 | -8.66% | -9.01% | +| resident | point:uniform@8 | 6,445,634.1 | 5,270,841.2 | 5,463,995.8 | -18.23% | -15.23% | +| resident | range:uniform:1@1 | 114,690.1 | 105,447.5 | 105,112.6 | -8.06% | -8.35% | +| resident | range:uniform:1@8 | 600,376.6 | 532,530.7 | 549,552.3 | -11.30% | -8.47% | +| resident | range:uniform:10000@8 | 4,305.3 | 3,785.8 | 3,929.7 | -12.07% | -8.72% | +| disk | point:uniform@8 | 153,061.5 | 162,899.9 | 168,110.0 | +6.43% | +9.83% | +| disk | range:uniform:1@8 | 63,458.1 | 63,625.4 | 64,975.4 | +0.26% | +2.39% | +| disk | range:uniform:10000@8 | 841.4 | 835.2 | 840.0 | -0.74% | -0.17% | + +## Interpretation and limits + +These samples support feature tradeoffs, not an isolated estimate of merge overhead. There are two samples per candidate and two or three main controls; non-overlap is a descriptive range check, not a statistical confidence interval. Unchanged main controls drifted substantially, including in nearby repeats. The cause is unproven. + +The invalid-address checks reproduce a roughly 4.5% resident single-thread point-query loss: broad screening -4.60%, nearby warmed ABBA -4.54% with non-overlapping sample ranges. Its repeated eight-thread point query (-3.64%) overlaps main, and repeated one-result/eight-thread range query (+0.03%) does not reproduce the initial apparent loss. Atomic directory nearby repeats (-6.18% point and -3.89% short range) and async-barrier ordinary-query repeats (-0.52% point and -2.28% short range) all overlap main; their smaller effects remain inconclusive. The scalar/SIMD directory variants show larger resident feature costs in the broad screen. These are comparisons of the whole features to main, not newly introduced merge regressions. + +Prefix compression improves several common-prefix workloads, but the random-key resident long-range screen loses 10.88% with non-overlapping samples. The default 64-page automatic log-group durability threshold loses 42.7% insert throughput in the short WAL-enabled screen; this is the cost of added automatic durability versus main without automatic barriers. Disabling the threshold gives -1.3% with overlapping ranges. These tradeoffs require workload-specific judgment, not a blanket performance-neutral claim. + +All timed processes passed their declared verification. Query runs validate keys/values/ranges and close successfully. Insert-only runs validate API returns, positive insert counts and close, but do not perform readback. Barrier runs crash after the final completed barrier, reopen and verify every key/value. Hash-filter runs compare checksums and expected output counts. Every measured ordinary resident and focused-repeat query phase has zero physical read bytes. The retained pre-repeat warmup runs point and one-result range queries at eight threads for 10 seconds each; it is not pooled with comparison controls. + +Separate correctness testing reproduced an inherited small-cache async progress stall on main and invalid-addresses under restricted CPU scheduling. That limitation is documented in the branch correctness evidence; it was not repaired in these merges, and no benchmark run stalled. + +Barrier measurements are short and show substantial run-to-run I/O variation in some configurations. In particular, WAL-enabled/no-background-worker candidate sync spans about 60k to 194k updates/s, while main spans 63k to 65k; its +99% mean alone is not a stable speedup estimate. Async launch latency is distinct from durability completion. These runs use depth 1: completion is observed by waiting or polling before the next insert batch. Greater-depth harness modes may include intervening inserts in observed completion, but were not measured here. + +| Barrier config | Candidate mode | Main updates/s range | Candidate updates/s range | Mean change | Mean launch p99 us | Mean observed completion p99 us | +| --- | --- | ---: | ---: | ---: | ---: | ---: | +| wal0-workers0 | sync | 31,072–40,897 | 57,552–58,998 | +61.95% | 15769.34 | 15769.34 | +| wal0-workers0 | async | 31,072–40,897 | 59,568–60,181 | +66.39% | 0.98 | 14594.80 | +| wal0-workers1 | sync | 32,686–33,069 | 32,567–33,066 | -0.19% | 21671.51 | 21671.51 | +| wal0-workers1 | async | 32,686–33,069 | 31,925–33,322 | -0.77% | 2.90 | 23050.30 | +| wal1-workers0 | sync | 63,288–64,560 | 60,090–194,153 | +98.86% | 4118.68 | 4118.68 | +| wal1-workers0 | async | 63,288–64,560 | 200,298–273,650 | +270.71% | 3.51 | 2190.87 | +| wal1-workers1 | sync | 61,607–63,583 | 67,545–69,246 | +9.27% | 4940.58 | 4940.58 | +| wal1-workers1 | async | 61,607–63,583 | 78,489–80,079 | +26.66% | 6.17 | 4128.32 | + +Hash-filter API versus application filtering: mean latency changes for limits 1/2/10/100 are -5.70%/-16.71%/+0.56%/-9.59%; output checksums match. Full ranges, visited tuple counts, CPU/I/O and provenance are retained in the raw results and feature-summaries.json. diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.py new file mode 100644 index 000000000..eb2212fd6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.py @@ -0,0 +1,127 @@ +import csv,json,statistics +from pathlib import Path +OUT=Path('/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-7bb5fab') +COORD=Path(__file__).resolve().parent +allrows=[] +def read(path): + with path.open() as f:return list(csv.DictReader(f)) +def verified_manifest(folder): + p=folder/'manifest.json' + if not p.exists():return None + m=json.loads(p.read_text()) + if not m.get('complete'):return None + assert m['runs'] and all(r.get('verified') and r.get('returncode')==0 for r in m['runs']),folder + return m +def summary(mode,group,version,rs,base,rate='ops_s'): + rates=[float(r[rate]) for r in rs];baseline=[float(r[rate]) for r in base] + avg=statistics.fmean + return dict(workload=mode,phase=group,version=version,samples=len(rs),ops_s_mean=avg(rates),ops_s_min=min(rates),ops_s_max=max(rates),baseline_ops_s_mean=avg(baseline),baseline_ops_s_min=min(baseline),baseline_ops_s_max=max(baseline),delta_pct=100*(avg(rates)/avg(baseline)-1),ranges_overlap=max(min(rates),min(baseline))<=min(max(rates),max(baseline))) +for mode in ['resident','disk','prefix-resident-common','prefix-resident-random','prefix-disk-common','prefix-disk-random',*[p.name for p in OUT.glob('repeat-*')]]: + folder=OUT/mode + if not (folder/'results.csv').exists() or not (folder/'manifest.json').exists():continue + m=verified_manifest(folder) + if m is None:continue + rr=read(folder/'results.csv') + for run in m['runs']: + command=run['command']; order=command[command.index('--otag')+1] + own=[r for r in rr if r['order']==order] + phases=command[command.index('warm'):] + assert len(own)==len(phases) and [r['phase'] for r in own]==phases and all(r['version']==run['profile'] for r in own),run['label'] + assert len(rr)==sum(len(run['command'][run['command'].index('warm'):]) for run in m['runs']) + for phase in dict.fromkeys(r['phase'] for r in rr if r['phase']!='warm'): + bas=[r for r in rr if r['version']=='main' and r['phase']==phase] + if mode=='resident' or mode.startswith('repeat-'):assert all(int(r['rd_bytes'])==0 for r in rr if r['phase']!='warm'), 'resident queries performed physical reads' + for version in dict.fromkeys(r['version'] for r in rr): + rs=[r for r in rr if r['version']==version and r['phase']==phase] + if not rs or not bas:continue + s=summary(mode,phase,version,rs,bas) + s.update(errors=sum(int(r['errors']) for r in rs),violations=sum(int(r['violations']) for r in rs),cpu_us_op=statistics.fmean(1e6*float(r['cpu_s'])/int(r['ops']) for r in rs),read_B_op=statistics.fmean(float(r['rd_B_op']) for r in rs),write_B_op=statistics.fmean(float(r['wr_B_op']) for r in rs),p99_us=statistics.fmean(float(r['p99_us']) for r in rs));allrows.append(s) +folder=OUT/'insert' +if (folder/'results.csv').exists() and verified_manifest(folder): + m=verified_manifest(folder);rr=read(folder/'results.csv') + assert len(rr)==len(m['runs']) + assert {f"wal{r['wal']}-{int(r['index']):02d}-{r['version']}" for r in rr}=={r['label'] for r in m['runs']} + for wal in dict.fromkeys(r['wal'] for r in rr): + bas=[r for r in rr if r['version']=='main' and r['wal']==wal] + for version in dict.fromkeys(r['version'] for r in rr if r['wal']==wal): + rs=[r for r in rr if r['version']==version and r['wal']==wal];s=summary('insert','WAL'+wal,version,rs,bas) + s.update(errors=sum(int(r['errors']) for r in rs),violations=sum(int(r['violations']) for r in rs));s.update({k:statistics.fmean(float(r[k]) for r in rs) for k in ['cpu_us_op','read_B_op','write_B_op','p99_us']});allrows.append(s) +if allrows: + with (COORD/'summary.csv').open('w') as f: + w=csv.DictWriter(f,fieldnames=list(allrows[0]),lineterminator='\n');w.writeheader();w.writerows(allrows) +lines=['# Fresh main integration benchmark screening','','These compare current feature branches with main 7bb5fab. They do not isolate the cost of merging main. Short runs are screening evidence, not proof of performance neutrality. All databases are on verified real disk with O_DIRECT; copied fixtures are fsynced before opening. Query samples use serial-built immutable fixtures, with separate equivalent fixtures for incompatible formats. Main controls bracket forward and reverse variant sweeps.','', '| Workload | Phase | Branch | Change | Sample range overlap |','| --- | --- | --- | ---: | --- |'] +for r in allrows: + if r['version']=='main':continue + lines.append(f"| {r['workload']} | {r['phase']} | {r['version']} | {r['delta_pct']:+.2f}% | {r['ranges_overlap']} |") +counts={} +for p in OUT.glob('*/manifest.json'): + m=json.loads(p.read_text());counts[p.parent.name]=dict(runs=len(m['runs']),complete=m.get('complete',False),verified=sum(r.get('verified',False) for r in m['runs'])) +(COORD/'counts.json').write_text(json.dumps(counts,indent=2)+'\n') +lines+=['','Detailed throughput ranges, CPU/op, I/O/op and p99 are in summary.csv. Raw commands, source/library/executable hashes, verification and logs remain in the per-workload manifest and adjacent artifacts.','',json.dumps(counts,indent=2)] +(COORD/'report.md').write_text('\n'.join(lines)+'\n') +print(json.dumps(counts,indent=2)) +feature_summaries={} +p=OUT/'hash/manifest.json' +if p.exists() and verified_manifest(p.parent): + m=verified_manifest(p.parent);hh=[] + for limit in ['1','2','10','100']: + groups={profile:[r for run in m['runs'] if run['profile']==profile and run['verified'] for r in run['rows'] if r['limit']==limit] for profile in ['main','filtered-ranges']} + if not all(groups.values()):continue + mean=lambda name:statistics.fmean(float(r['ns_per_query']) for r in groups[name]) + for profile,rr in groups.items(): + costs=[float(r['ns_per_query']) for r in rr] + hh.append(dict(profile=profile,limit=int(limit),samples=len(rr),ns_per_query_mean=statistics.fmean(costs),ns_per_query_min=min(costs),ns_per_query_max=max(costs),latency_delta_main_pct=100*(mean(profile)/mean('main')-1),visited_mean=statistics.fmean(int(r['visited']) for r in rr),verified=True,verification_kind='successful process with harness assertions and matching result checksums')) + feature_summaries['hash']=hh +p=OUT/'barrier/results.csv' +if p.exists() and verified_manifest(p.parent): + m=verified_manifest(p.parent);rr=read(p);bb=[] + assert len(rr)==len(m['runs']) and {r['label'] for r in rr}=={r['label'] for r in m['runs']} + for wal in ['0','1']: + for workers in ['0','1']: + cases=[('main','sync'),('async-durable-barrier','sync'),('async-durable-barrier','async')] + base=[r for r in rr if r['log']==wal and r['workers']==workers and '-main-' in r['label']] + if not base:continue + for profile,mode in cases: + rs=[r for r in rr if r['log']==wal and r['workers']==workers and f'-{profile}-' in r['label'] and r['mode']==mode] + if not rs:continue + s=summary('barrier',f'wal{wal}-workers{workers}-{mode}',profile,rs,base,rate='updates_s') + s.update(launch_p99_us=statistics.fmean(float(r['launch_p99_us']) for r in rs),completion_p99_us=statistics.fmean(float(r['observed_completion_p99_us']) for r in rs),verified=all(int(r['verified'])==1 for r in rs),verification_kind='crash after completed final barrier, reopen and full key/value readback',cpu_us_update=statistics.fmean(1e6*float(r['cpu_s'])/(int(r['batch'])*int(r['barriers'])) for r in rs),read_bytes_update=statistics.fmean(int(r['read_bytes'])/(int(r['batch'])*int(r['barriers'])) for r in rs),write_bytes_update=statistics.fmean(int(r['write_bytes'])/(int(r['batch'])*int(r['barriers'])) for r in rs));bb.append(s) + feature_summaries['barrier']=bb +(COORD/'feature-summaries.json').write_text(json.dumps(feature_summaries,indent=2)+'\n') +controls=[] +for folder in OUT.iterdir(): + p=folder/'results.csv' + if not folder.is_dir() or not p.exists():continue + rr=read(p) + if not rr or not {'version','phase','ops_s'}.issubset(rr[0]):continue + for phase in dict.fromkeys(r['phase'] for r in rr if r['phase']!='warm'): + rs=[r for r in rr if r['version']=='main' and r['phase']==phase] + if not rs:continue + first=float(rs[0]['ops_s']) + for r in rs:controls.append(dict(workload=folder.name,phase=phase,order=r['order'],ops_s=float(r['ops_s']),change_from_first_pct=100*(float(r['ops_s'])/first-1),cpu_us_op=1e6*float(r['cpu_s'])/int(r['ops']),read_bytes=int(r['rd_bytes']))) +if controls: + with (COORD/'control-drift.csv').open('w') as f: + w=csv.DictWriter(f,fieldnames=list(controls[0]),lineterminator='\n');w.writeheader();w.writerows(controls) +with (COORD/'report.md').open('a') as f: + f.write('\n## Main control drift\n\n') + f.write('All controls are retained. Large variation in these unchanged-main samples prevents attributing small feature differences to code. The measured cause of this variation is unknown. Nearby ABBA repeats are separate evidence; they do not replace these results.\n\n') + f.write('| Regime | Phase | First ops/s | Middle ops/s | Last ops/s | Middle vs first | Last vs first |\n| --- | --- | ---: | ---: | ---: | ---: | ---: |\n') + for mode in ['resident','disk']: + for phase in dict.fromkeys(r['phase'] for r in controls if r['workload']==mode): + rr=[r for r in controls if r['workload']==mode and r['phase']==phase] + if len(rr)!=3:continue + f.write(f"| {mode} | {phase} | {rr[0]['ops_s']:,.1f} | {rr[1]['ops_s']:,.1f} | {rr[2]['ops_s']:,.1f} | {rr[1]['change_from_first_pct']:+.2f}% | {rr[2]['change_from_first_pct']:+.2f}% |\n") + +with (COORD/'report.md').open('a') as f: + f.write('\n## Interpretation and limits\n\n') + f.write('These samples support feature tradeoffs, not an isolated estimate of merge overhead. There are two samples per candidate and two or three main controls; non-overlap is a descriptive range check, not a statistical confidence interval. Unchanged main controls drifted substantially, including in nearby repeats. The cause is unproven.\n\n') + f.write('The invalid-address checks reproduce a roughly 4.5% resident single-thread point-query loss: broad screening -4.60%, nearby warmed ABBA -4.54% with non-overlapping sample ranges. Its repeated eight-thread point query (-3.64%) overlaps main, and repeated one-result/eight-thread range query (+0.03%) does not reproduce the initial apparent loss. Atomic directory nearby repeats (-6.18% point and -3.89% short range) and async-barrier ordinary-query repeats (-0.52% point and -2.28% short range) all overlap main; their smaller effects remain inconclusive. The scalar/SIMD directory variants show larger resident feature costs in the broad screen. These are comparisons of the whole features to main, not newly introduced merge regressions.\n\n') + f.write('Prefix compression improves several common-prefix workloads, but the random-key resident long-range screen loses 10.88% with non-overlapping samples. The default 64-page automatic log-group durability threshold loses 42.7% insert throughput in the short WAL-enabled screen; this is the cost of added automatic durability versus main without automatic barriers. Disabling the threshold gives -1.3% with overlapping ranges. These tradeoffs require workload-specific judgment, not a blanket performance-neutral claim.\n\n') + f.write('All timed processes passed their declared verification. Query runs validate keys/values/ranges and close successfully. Insert-only runs validate API returns, positive insert counts and close, but do not perform readback. Barrier runs crash after the final completed barrier, reopen and verify every key/value. Hash-filter runs compare checksums and expected output counts. Every measured ordinary resident and focused-repeat query phase has zero physical read bytes. The retained pre-repeat warmup runs point and one-result range queries at eight threads for 10 seconds each; it is not pooled with comparison controls.\n\n') + f.write('Separate correctness testing reproduced an inherited small-cache async progress stall on main and invalid-addresses under restricted CPU scheduling. That limitation is documented in the branch correctness evidence; it was not repaired in these merges, and no benchmark run stalled.\n\n') + f.write('Barrier measurements are short and show substantial run-to-run I/O variation in some configurations. In particular, WAL-enabled/no-background-worker candidate sync spans about 60k to 194k updates/s, while main spans 63k to 65k; its +99% mean alone is not a stable speedup estimate. Async launch latency is distinct from durability completion. These runs use depth 1: completion is observed by waiting or polling before the next insert batch. Greater-depth harness modes may include intervening inserts in observed completion, but were not measured here.\n\n') + f.write('| Barrier config | Candidate mode | Main updates/s range | Candidate updates/s range | Mean change | Mean launch p99 us | Mean observed completion p99 us |\n| --- | --- | ---: | ---: | ---: | ---: | ---: |\n') + for r in feature_summaries.get('barrier',[]): + if r['version']=='main':continue + f.write(f"| {r['phase'].rsplit('-',1)[0]} | {r['phase'].rsplit('-',1)[1]} | {r['baseline_ops_s_min']:,.0f}–{r['baseline_ops_s_max']:,.0f} | {r['ops_s_min']:,.0f}–{r['ops_s_max']:,.0f} | {r['delta_pct']:+.2f}% | {r['launch_p99_us']:.2f} | {r['completion_p99_us']:.2f} |\n") + f.write('\nHash-filter API versus application filtering: mean latency changes for limits 1/2/10/100 are -5.70%/-16.71%/+0.56%/-9.59%; output checksums match. Full ranges, visited tuple counts, CPU/I/O and provenance are retained in the raw results and feature-summaries.json.\n') diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_job.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_job.py new file mode 100644 index 000000000..299c91084 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_job.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +"""Coordinate this campaign's builds/tests and disk-backed benchmarks.""" +import argparse +import fcntl +import json +import os +from pathlib import Path +import subprocess +import tempfile +import time + +ROOT = Path(__file__).resolve().parent.parent +p = argparse.ArgumentParser() +p.add_argument('mode', choices=['build', 'test', 'benchmark']) +p.add_argument('--name', required=True) +p.add_argument('--db-dir', type=Path) +p.add_argument('command', nargs=argparse.REMAINDER) +a = p.parse_args() +command = a.command[1:] if a.command[:1] == ['--'] else a.command +if not command: + p.error('command required after --') +if a.mode == 'benchmark': + if a.db_dir is None: + p.error('benchmark requires --db-dir') + a.db_dir.mkdir(parents=True, exist_ok=True) + db_dir = a.db_dir.resolve() + if not db_dir.is_relative_to(ROOT / 'benchmarks'): + p.error('benchmark database directory must be under the campaign benchmarks directory') + fs = subprocess.check_output(['findmnt', '-n', '-o', 'FSTYPE,SOURCE', '-T', str(db_dir)], text=True).strip() + if fs.split()[0] in {'tmpfs', 'ramfs'} or not fs.split()[1].startswith('/dev/'): + p.error('benchmark storage must be a verified disk filesystem: ' + fs) + bench_lock = open(ROOT / 'coordination' / 'benchmark.lock', 'a+') + fcntl.flock(bench_lock, fcntl.LOCK_EX) + print('Benchmark database storage:', fs, str(db_dir), flush=True) +machine_lock = open(ROOT / 'coordination' / 'machine.lock', 'a+') +fcntl.flock(machine_lock, fcntl.LOCK_EX if a.mode == 'benchmark' else fcntl.LOCK_SH) +record = dict(name=a.name, mode=a.mode, cwd=os.getcwd(), command=command, + started=time.time(), pid=os.getpid()) +if a.db_dir is not None: + record['db_dir'] = str(a.db_dir.resolve()) +print('Starting', a.name, a.mode, flush=True) +try: + # Tool commands run in distinct PID namespaces; GNU make's FIFO names + # otherwise collide when several builds choose /tmp/GMfifo8. + with tempfile.TemporaryDirectory(prefix='splinter-' + a.name + '-', dir='/tmp') as temporary: + environment = dict(os.environ, TMPDIR=temporary) + result = subprocess.run(command, env=environment) + record['returncode'] = result.returncode +finally: + record['finished'] = time.time() + with open(ROOT / 'coordination' / 'jobs.jsonl', 'a') as journal: + fcntl.flock(journal, fcntl.LOCK_EX) + journal.write(json.dumps(record) + '\n') +raise SystemExit(result.returncode) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix-fixtures.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix-fixtures.py new file mode 100644 index 000000000..e6ff54325 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix-fixtures.py @@ -0,0 +1,152 @@ +"""Fresh main integration screening. Invoke every mode under run_job.py benchmark.""" +import argparse,csv,hashlib,json,os,re,resource,signal,statistics,subprocess,time +from pathlib import Path +ROOT=Path('/home/rob/projects/splinterdb'); CAMP=ROOT/'.cache/projects-20261011' +COORD=Path(__file__).resolve().parent; OUT=CAMP/'benchmarks/main-7bb5fab' +VARIANTS=['disk-format','filtered-ranges','log-group-limit','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic'] +ORDER=['main',*VARIANTS,'main',*reversed(VARIANTS),'main'] +def sha(path): + h=hashlib.sha256() + with Path(path).open('rb') as f: + for b in iter(lambda:f.read(1024*1024),b''):h.update(b) + return h.hexdigest() +def save(path,value):path.write_text(json.dumps(value,indent=2)+'\n') +def rows(path): + with path.open() as f:return list(csv.DictReader(f)) +def csvwrite(path,data): + if not data:return + with path.open('w') as f: + w=csv.DictWriter(f,fieldnames=list(data[0]),lineterminator='\n');w.writeheader();w.writerows(data) +def build(name): + r=json.loads((COORD/(name+'-build.json')).read_text()) + assert sha(r['library'])==r['library_sha256'],name + for filename,expected in r['source_files_sha256'].items():assert sha(Path(r['tree'])/filename)==expected,(name,filename) + for b in r['binaries'].values():assert sha(b['binary'])==b['binary_sha256'],name + return r +def cmdrun(folder,manifest,label,profile,binary,args,env=None,timeout=600): + b=build(profile);exe=b['binaries'][binary] + cmd=['taskset','-c','0-11',exe['binary'],*map(str,args)] + rec=dict(label=label,profile=profile,command=cmd,started=time.time(),binary_sha256=exe['binary_sha256'],library_sha256=b['library_sha256'],source_head=b['head'],verified=False) + print(label,flush=True) + log=folder/(label+'.log') + try: + before=resource.getrusage(resource.RUSAGE_CHILDREN) + with log.open('w') as f: + p=subprocess.Popen(cmd,env=dict(os.environ,**(env or {})),stdout=f,stderr=subprocess.STDOUT,start_new_session=True) + try:p.wait(timeout=timeout) + except BaseException: + try:os.killpg(p.pid,signal.SIGKILL) + except ProcessLookupError:pass + p.wait() + raise + after=resource.getrusage(resource.RUSAGE_CHILDREN) + rec.update(returncode=p.returncode,finished=time.time(),log_sha256=sha(log),process_cpu_s=(after.ru_utime+after.ru_stime-before.ru_utime-before.ru_stime),process_read_bytes=512*(after.ru_inblock-before.ru_inblock),process_write_bytes=512*(after.ru_oublock-before.ru_oublock)) + except BaseException as e: + rec.update(exception=str(e),finished=time.time());manifest['runs'].append(rec);save(folder/'manifest.json',manifest);raise + manifest['runs'].append(rec);save(folder/'manifest.json',manifest) + assert p.returncode==0,rec + assert 'FINDING: splinterdb_close' not in log.read_text(),rec + return rec + +def newmode(mode): + folder=OUT/mode;folder.mkdir(parents=True,exist_ok=False) + fs=subprocess.check_output(['findmnt','-n','-o','FSTYPE,SOURCE','-T',str(folder)],text=True).strip();assert fs.split()[0] not in ['tmpfs','ramfs'] and fs.split()[1].startswith('/dev/') + manifest=dict(mode=mode,storage=fs,io='O_DIRECT',cpu_affinity='0-11',scope='Updated feature branches versus fresh main; not an isolation of merge cost',runner_sha256=sha(__file__),runs=[]) + save(folder/'manifest.json',manifest);return folder,manifest + +def kvargs(db,csvpath,profile,regime,index,secs=6,prefix=False,create=False): + return ['--db',db,'--create' if create else '--open','--n',200000 if regime=='resident' else 2000000,'--cache-mib',128 if regime=='resident' else 64,'--disk-gib',8,'--log',0,'--threads',1 if create else 8,'--mt-bg',0,'--normal-bg',0,'--memtable-mib',4,'--secs',secs,'--warmup',1,'--csv',csvpath,'--vtag',profile,'--stag',regime,'--otag',index,'--rep',index,'--seed',42,'--hang-secs',60,'--hang-dir',str(csvpath.parent)] +def verifykv(csvpath,index,count): + rr=[r for r in rows(csvpath) if r['order']==str(index)] + assert len(rr)==count,(index,len(rr),count) + assert all(int(r['ops'])>0 and int(r['errors'])==0 and int(r['violations'])==0 for r in rr),rr + return rr + +def fixtures(): + folder,m=newmode('fixtures');ff={} + for regime in ['resident','disk']: + for profile,pattern in [('main','ordinary'),('disk-format','ordinary'),('main','common'),('branch-prefix','common'),('main','random'),('branch-prefix','random')]: + label=f'{regime}-{profile}-{pattern}';db=folder/(label+'.db');binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,folder/(label+'.csv'),profile,regime,0,secs=1,create=True)+['load:random'],dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + verifykv(folder/(label+'.csv'),0,1) + with db.open('rb') as f:os.fsync(f.fileno()) + rec.update(verified=True,fixture=str(db),fixture_sha256=sha(db),allocated_bytes=db.stat().st_blocks*512,apparent_bytes=db.stat().st_size) + ff[label]={k:rec[k] for k in ['fixture','fixture_sha256','allocated_bytes','apparent_bytes']};save(folder/'manifest.json',m);save(folder/'fixtures.json',ff) + m['complete']=True;save(folder/'manifest.json',m) + +def query_one(folder,m,index,profile,regime,phases,pattern='ordinary'): + f=json.loads((OUT/'fixtures/fixtures.json').read_text());owner=profile if profile in ['disk-format','branch-prefix'] else 'main' + fixture=f[f'{regime}-{owner}-{pattern}'];src=Path(fixture['fixture']);before=src.stat() + db=folder/'scratch.db';assert not db.exists() + subprocess.run(['cp','--reflink=auto','--sparse=always',str(src),str(db)],check=True) + with db.open('rb') as image:os.fsync(image.fileno()) + label=f'{index:02d}-{profile}';csvpath=folder/'results.csv';binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,csvpath,profile,regime,index,secs=6 if regime=='resident' else 5)+phases,dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + rr=verifykv(csvpath,index,len(phases)) + rec.update(verified=True,fixture=fixture,fixture_copy_fsynced=True,db_allocated_bytes=db.stat().st_blocks*512) + assert src.stat().st_mtime_ns==before.st_mtime_ns + save(folder/'manifest.json',m);db.unlink() + +def queries(regime): + folder,m=newmode(regime) + phases=['warm','point:uniform@1','point:uniform@8','range:uniform:1@1','range:uniform:1@8','range:uniform:10000@8'] if regime=='resident' else ['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + m.update(order=ORDER,phases=phases) + for i,profile in enumerate(ORDER):query_one(folder,m,i,profile,regime,phases) + m['complete']=True;save(folder/'manifest.json',m) + +def prefix(): + for regime in ['resident','disk']: + for pattern in ['common','random']: + folder,m=newmode(f'prefix-{regime}-{pattern}') + phases=['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + if regime=='resident':phases+=['ow:uniform@8'] + for i,profile in enumerate(['main','branch-prefix','branch-prefix','main']):query_one(folder,m,i,profile,regime,phases,pattern) + m['complete']=True;save(folder/'manifest.json',m) + +def insert(): + folder,m=newmode('insert');data=[] + profiles=['disk-format','filtered-ranges','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic','log-disabled','log-default'] + for wal,versions in [(1,['main',*profiles,'main',*reversed(profiles),'main']),(0,['main','cache-invalid-addresses','directory-bucket-atomic','directory-bucket-atomic','cache-invalid-addresses','main'])]: + for i,version in enumerate(versions): + profile='log-group-limit' if version.startswith('log-') else version + label=f'wal{wal}-{i:02d}-{version}';stem=folder/label;db=folder/'scratch.db';assert not db.exists() + args=['--db',db,'--csv',str(stem)+'.csv','--summary',str(stem)+'.summary.csv','--records',100000000,'--seconds',5,'--report-ms',100,'--cache-mib',256,'--disk-gib',16,'--direct','--inserters',8,'--readers',0,'--memtable-bg',1,'--normal-bg',3,'--memtable-mib',8,'--key-size',16,'--value-size',16,'--min-free-gib',12,'--seed',42] + if not wal:args+=['--no-log'] + if version.startswith('log-'):args+=['--log-group-size-pages',2**64-1 if version=='log-disabled' else 0] + rec=cmdrun(folder,m,label,profile,'insert_benchmark',args,timeout=240) + summary=rows(Path(str(stem)+'.summary.csv'));assert len(summary)==1;summary=summary[0];inserted=int(summary['inserted']);assert inserted>0 + log=(folder/(label+'.log')).read_text();assert re.search(r'load_end .* error=0(?: |\n)',log) + close=re.search(r'close_s=([\d.]+) close_rc=0',log);assert close + interval=rows(Path(str(stem)+'.csv'));cpu=sum(float(r['cpu_cores'])*float(r['interval_s']) for r in interval) + data.append(dict(wal=wal,version=version,index=i,ops_s=float(summary['achieved_insert_ops_s']),inserted=inserted,close_s=float(close[1]),drain_ops_s=inserted/(float(summary['elapsed_s'])+float(close[1])),cpu_us_op=cpu*1e6/inserted,p99_us=1000*float(summary['insert_service_p99_ms']),max_ms=float(summary['insert_service_max_ms']),read_B_op=sum(float(r['read_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted,write_B_op=sum(float(r['write_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted)) + rec.update(verified=True,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);csvwrite(folder/'results.csv',data);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def hash_range(): + folder,m=newmode('hash');reference=None + for i,profile in enumerate(['main','filtered-ranges','filtered-ranges','main']): + label=f'{i}-{profile}';db=folder/'scratch.db';rec=cmdrun(folder,m,label,profile,'hash_range_benchmark',[db,16384,1000],timeout=900) + lines=(folder/(label+'.log')).read_text().splitlines();start=next(j for j,x in enumerate(lines) if x.startswith('mode,keys_per_tenant,'));rr=list(csv.DictReader(lines[start:]));assert len(rr)==4 + checks=[x['checksum'] for x in rr] + if reference is None:reference=checks + assert checks==reference + rec.update(verified=True,rows=rr,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def barrier(): + folder,m=newmode('barrier') + for wal in [0,1]: + for workers in [0,1]: + order=[('main','sync'),('async-durable-barrier','sync'),('async-durable-barrier','async'),('async-durable-barrier','async'),('async-durable-barrier','sync'),('main','sync')] + for i,(profile,mode) in enumerate(order): + label=f'wal{wal}-workers{workers}-{i}-{profile}-{mode}';db=folder/'scratch.db';csvpath=folder/'results.csv' + rec=cmdrun(folder,m,label,profile,'barrier_bench',[db,csvpath,label,mode,wal,workers,256,2048 if wal else 512],dict(BARRIER_DEPTH='1')) + rr=rows(csvpath);assert rr[-1]['label']==label and int(rr[-1]['verified'])==1 + rec.update(verified=True,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +if __name__=='__main__': + def interrupted(signum,frame):raise InterruptedError(f'benchmark interrupted by signal {signum}') + for signum in [signal.SIGTERM,signal.SIGHUP]:signal.signal(signum,interrupted) + p=argparse.ArgumentParser();p.add_argument('mode',choices=['fixtures','resident','disk','prefix','insert','hash','barrier']);a=p.parse_args() + {'fixtures':fixtures,'resident':lambda:queries('resident'),'disk':lambda:queries('disk'),'prefix':prefix,'insert':insert,'hash':hash_range,'barrier':barrier}[a.mode]() diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix.py new file mode 100644 index 000000000..532cb8667 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix.py @@ -0,0 +1,156 @@ +"""Fresh main integration screening. Invoke every mode under run_job.py benchmark.""" +import argparse,csv,hashlib,json,os,re,resource,signal,statistics,subprocess,time +from pathlib import Path +ROOT=Path('/home/rob/projects/splinterdb'); CAMP=ROOT/'.cache/projects-20261011' +COORD=Path(__file__).resolve().parent; OUT=CAMP/'benchmarks/main-7bb5fab' +VARIANTS=['disk-format','filtered-ranges','log-group-limit','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic'] +ORDER=['main',*VARIANTS,'main',*reversed(VARIANTS),'main'] +def sha(path): + h=hashlib.sha256() + with Path(path).open('rb') as f: + for b in iter(lambda:f.read(1024*1024),b''):h.update(b) + return h.hexdigest() +def save(path,value):path.write_text(json.dumps(value,indent=2)+'\n') +def rows(path): + with path.open() as f:return list(csv.DictReader(f)) +def csvwrite(path,data): + if not data:return + with path.open('w') as f: + w=csv.DictWriter(f,fieldnames=list(data[0]),lineterminator='\n');w.writeheader();w.writerows(data) +def build(name): + r=json.loads((COORD/(name+'-build.json')).read_text()) + assert sha(r['library'])==r['library_sha256'],name + for filename,expected in r['source_files_sha256'].items():assert sha(Path(r['tree'])/filename)==expected,(name,filename) + for b in r['binaries'].values(): + assert sha(b['binary'])==b['binary_sha256'],name + assert sha(b['source'])==b['source_sha256'],(name,b['source']) + return r +def cmdrun(folder,manifest,label,profile,binary,args,env=None,timeout=600): + b=build(profile);exe=b['binaries'][binary] + cmd=['taskset','-c','0-11',exe['binary'],*map(str,args)] + rec=dict(label=label,profile=profile,command=cmd,started=time.time(),binary_sha256=exe['binary_sha256'],library_sha256=b['library_sha256'],source_head=b['head'],verified=False) + print(label,flush=True) + log=folder/(label+'.log') + try: + before=resource.getrusage(resource.RUSAGE_CHILDREN) + with log.open('w') as f: + p=subprocess.Popen(cmd,env=dict(os.environ,**(env or {})),stdout=f,stderr=subprocess.STDOUT,start_new_session=True) + try:p.wait(timeout=timeout) + except BaseException: + try:os.killpg(p.pid,signal.SIGKILL) + except ProcessLookupError:pass + p.wait() + raise + after=resource.getrusage(resource.RUSAGE_CHILDREN) + rec.update(returncode=p.returncode,finished=time.time(),log_sha256=sha(log),process_cpu_s=(after.ru_utime+after.ru_stime-before.ru_utime-before.ru_stime),process_read_bytes=512*(after.ru_inblock-before.ru_inblock),process_write_bytes=512*(after.ru_oublock-before.ru_oublock)) + except BaseException as e: + rec.update(exception=str(e),finished=time.time());manifest['runs'].append(rec);save(folder/'manifest.json',manifest);raise + manifest['runs'].append(rec);save(folder/'manifest.json',manifest) + assert p.returncode==0,rec + assert 'FINDING: splinterdb_close' not in log.read_text(),rec + return rec + +def newmode(mode): + folder=OUT/mode;folder.mkdir(parents=True,exist_ok=False) + fs=subprocess.check_output(['findmnt','-n','-o','FSTYPE,SOURCE','-T',str(folder)],text=True).strip();assert fs.split()[0] not in ['tmpfs','ramfs'] and fs.split()[1].startswith('/dev/') + manifest=dict(mode=mode,storage=fs,io='O_DIRECT',cpu_affinity='0-11',scope='Updated feature branches versus fresh main; not an isolation of merge cost',runner_sha256=sha(__file__),runs=[]) + save(folder/'manifest.json',manifest);return folder,manifest + +def kvargs(db,csvpath,profile,regime,index,secs=6,prefix=False,create=False): + return ['--db',db,'--create' if create else '--open','--n',200000 if regime=='resident' else 2000000,'--cache-mib',128 if regime=='resident' else 64,'--disk-gib',8,'--log',0,'--threads',1 if create else 8,'--mt-bg',0,'--normal-bg',0,'--memtable-mib',4,'--secs',secs,'--warmup',1,'--csv',csvpath,'--vtag',profile,'--stag',regime,'--otag',index,'--rep',index,'--seed',42,'--hang-secs',60,'--hang-dir',str(csvpath.parent)] +def verifykv(csvpath,index,count): + rr=[r for r in rows(csvpath) if r['order']==str(index)] + assert len(rr)==count,(index,len(rr),count) + assert all(int(r['ops'])>0 and int(r['errors'])==0 and int(r['violations'])==0 for r in rr),rr + assert all(int(r['ops'])==int(r['n']) for r in rr if r['phase']=='warm' or r['phase'].startswith('load:')),rr + return rr + +def fixtures(): + folder,m=newmode('fixtures');ff={} + for regime in ['resident','disk']: + for profile,pattern in [('main','ordinary'),('disk-format','ordinary'),('main','common'),('branch-prefix','common'),('main','random'),('branch-prefix','random')]: + label=f'{regime}-{profile}-{pattern}';db=folder/(label+'.db');binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,folder/(label+'.csv'),profile,regime,0,secs=1,create=True)+['load:random'],dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + verifykv(folder/(label+'.csv'),0,1) + with db.open('rb') as f:os.fsync(f.fileno()) + rec.update(verified=True,verification_kind='load API errors and operation count; query phases later validate data',errors=0,violations=0,fixture=str(db),fixture_sha256=sha(db),allocated_bytes=db.stat().st_blocks*512,apparent_bytes=db.stat().st_size) + ff[label]={k:rec[k] for k in ['fixture','fixture_sha256','allocated_bytes','apparent_bytes']};save(folder/'manifest.json',m);save(folder/'fixtures.json',ff) + m['complete']=True;save(folder/'manifest.json',m) + +def query_one(folder,m,index,profile,regime,phases,pattern='ordinary'): + f=json.loads((OUT/'fixtures/fixtures.json').read_text());owner=profile if profile in ['disk-format','branch-prefix'] else 'main' + fixture=f[f'{regime}-{owner}-{pattern}'];src=Path(fixture['fixture']);before=src.stat() + db=folder/'scratch.db';assert not db.exists() + subprocess.run(['cp','--reflink=auto','--sparse=always',str(src),str(db)],check=True) + with db.open('rb') as image:os.fsync(image.fileno()) + label=f'{index:02d}-{profile}';csvpath=folder/'results.csv';binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,csvpath,profile,regime,index,secs=6 if regime=='resident' else 5)+phases,dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + rr=verifykv(csvpath,index,len(phases)) + rec.update(verified=True,verification_kind='query key/value/range validation and successful close',errors=sum(int(r['errors']) for r in rr),violations=sum(int(r['violations']) for r in rr),fixture=fixture,fixture_copy_fsynced=True,db_allocated_bytes=db.stat().st_blocks*512) + assert src.stat().st_mtime_ns==before.st_mtime_ns + save(folder/'manifest.json',m);db.unlink() + +def queries(regime): + folder,m=newmode(regime) + phases=['warm','point:uniform@1','point:uniform@8','range:uniform:1@1','range:uniform:1@8','range:uniform:10000@8'] if regime=='resident' else ['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + m.update(order=ORDER,phases=phases) + for i,profile in enumerate(ORDER):query_one(folder,m,i,profile,regime,phases) + m['complete']=True;save(folder/'manifest.json',m) + +def prefix(): + for regime in ['resident','disk']: + for pattern in ['common','random']: + folder,m=newmode(f'prefix-{regime}-{pattern}') + phases=['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + if regime=='resident':phases+=['ow:uniform@8'] + for i,profile in enumerate(['main','branch-prefix','branch-prefix','main']):query_one(folder,m,i,profile,regime,phases,pattern) + m['complete']=True;save(folder/'manifest.json',m) + +def insert(): + folder,m=newmode('insert');data=[] + profiles=['disk-format','filtered-ranges','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic','log-disabled','log-default'] + for wal,versions in [(1,['main',*profiles,'main',*reversed(profiles),'main']),(0,['main','cache-invalid-addresses','directory-bucket-atomic','directory-bucket-atomic','cache-invalid-addresses','main'])]: + for i,version in enumerate(versions): + profile='log-group-limit' if version.startswith('log-') else version + label=f'wal{wal}-{i:02d}-{version}';stem=folder/label;db=folder/'scratch.db';assert not db.exists() + args=['--db',db,'--csv',str(stem)+'.csv','--summary',str(stem)+'.summary.csv','--records',100000000,'--seconds',5,'--report-ms',100,'--cache-mib',256,'--disk-gib',16,'--direct','--inserters',8,'--readers',0,'--memtable-bg',1,'--normal-bg',3,'--memtable-mib',8,'--key-size',16,'--value-size',16,'--min-free-gib',12,'--seed',42] + if not wal:args+=['--no-log'] + if version.startswith('log-'):args+=['--log-group-size-pages',2**64-1 if version=='log-disabled' else 0] + rec=cmdrun(folder,m,label,profile,'insert_benchmark',args,timeout=240) + summary=rows(Path(str(stem)+'.summary.csv'));assert len(summary)==1;summary=summary[0];inserted=int(summary['inserted']);assert inserted>0 + log=(folder/(label+'.log')).read_text();error_match=re.search(r'load_end .* error=([0-9]+)(?: |\n)',log);assert error_match and int(error_match[1])==0 + close=re.search(r'close_s=([\d.]+) close_rc=0',log);assert close + interval=rows(Path(str(stem)+'.csv'));cpu=sum(float(r['cpu_cores'])*float(r['interval_s']) for r in interval) + data.append(dict(wal=wal,version=version,index=i,errors=int(error_match[1]),violations=0,verification_kind='API return, positive insert count, successful close; no readback',ops_s=float(summary['achieved_insert_ops_s']),inserted=inserted,close_s=float(close[1]),drain_ops_s=inserted/(float(summary['elapsed_s'])+float(close[1])),cpu_us_op=cpu*1e6/inserted,p99_us=1000*float(summary['insert_service_p99_ms']),max_ms=float(summary['insert_service_max_ms']),read_B_op=sum(float(r['read_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted,write_B_op=sum(float(r['write_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted)) + rec.update(verified=True,errors=int(error_match[1]),verification_kind='API return, positive insert count, successful close; no readback',allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);csvwrite(folder/'results.csv',data);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def hash_range(): + folder,m=newmode('hash');reference=None + for i,profile in enumerate(['main','filtered-ranges','filtered-ranges','main']): + label=f'{i}-{profile}';db=folder/'scratch.db';rec=cmdrun(folder,m,label,profile,'hash_range_benchmark',[db,16384,1000],timeout=900) + lines=(folder/(label+'.log')).read_text().splitlines();start=next(j for j,x in enumerate(lines) if x.startswith('mode,keys_per_tenant,'));rr=list(csv.DictReader(lines[start:]));assert len(rr)==4 + assert [int(r['limit']) for r in rr]==[1,2,10,100] and all(int(r['queries'])==1000 and int(r['keys_per_tenant'])==16384 for r in rr),rr + checks=[x['checksum'] for x in rr] + if reference is None:reference=checks + assert checks==reference + rec.update(verified=True,rows=rr,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def barrier(): + folder,m=newmode('barrier') + for wal in [0,1]: + for workers in [0,1]: + order=[('main','sync'),('async-durable-barrier','sync'),('async-durable-barrier','async'),('async-durable-barrier','async'),('async-durable-barrier','sync'),('main','sync')] + for i,(profile,mode) in enumerate(order): + label=f'wal{wal}-workers{workers}-{i}-{profile}-{mode}';db=folder/'scratch.db';csvpath=folder/'results.csv' + rec=cmdrun(folder,m,label,profile,'barrier_bench',[db,csvpath,label,mode,wal,workers,256,2048 if wal else 512],dict(BARRIER_DEPTH='1')) + rr=rows(csvpath);assert rr[-1]['label']==label and int(rr[-1]['verified'])==1 + rec.update(verified=True,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +if __name__=='__main__': + def interrupted(signum,frame):raise InterruptedError(f'benchmark interrupted by signal {signum}') + for signum in [signal.SIGTERM,signal.SIGHUP]:signal.signal(signum,interrupted) + p=argparse.ArgumentParser();p.add_argument('mode',choices=['fixtures','resident','disk','prefix','insert','hash','barrier']);a=p.parse_args() + {'fixtures':fixtures,'resident':lambda:queries('resident'),'disk':lambda:queries('disk'),'prefix':prefix,'insert':insert,'hash':hash_range,'barrier':barrier}[a.mode]() diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/status.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/status.json new file mode 100644 index 000000000..9d66f1ed6 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/status.json @@ -0,0 +1,41 @@ +{ + "project": "branch-prefix", + "scope": "new main versus updated feature; merge cost not isolated", + "workloads": [ + { + "workload": "prefix-resident-common", + "runs": 4, + "feature_runs": 2, + "verified": 4, + "complete": true, + "warmup_runs": 0 + }, + { + "workload": "prefix-disk-random", + "runs": 4, + "feature_runs": 2, + "verified": 4, + "complete": true, + "warmup_runs": 0 + }, + { + "workload": "prefix-disk-common", + "runs": 4, + "feature_runs": 2, + "verified": 4, + "complete": true, + "warmup_runs": 0 + }, + { + "workload": "prefix-resident-random", + "runs": 4, + "feature_runs": 2, + "verified": 4, + "complete": true, + "warmup_runs": 0 + } + ], + "reported_errors": 0, + "reported_violations": 0, + "all_runs_verified": true +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/summary.csv b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/summary.csv new file mode 100644 index 000000000..a6fc7ea07 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/summary.csv @@ -0,0 +1,15 @@ +workload,phase,version,samples,ops_s_mean,ops_s_min,ops_s_max,baseline_ops_s_mean,baseline_ops_s_min,baseline_ops_s_max,delta_pct,ranges_overlap,errors,violations,cpu_us_op,read_B_op,write_B_op,p99_us,scope +prefix-resident-common,point:uniform@8,branch-prefix,2,4301923.550000001,4268429.4,4335417.7,3889404.25,3798858.3,3979950.2,10.60623358963011,False,0,0,1.8592077701283292,0.0,0.0,2.432,new main versus updated feature; merge cost not isolated +prefix-resident-common,range:uniform:1@8,branch-prefix,2,1023044.95,1018943.3,1027146.6,994531.35,992358.5,996704.2,2.8670388319081086,False,0,0,7.817807922921359,0.0,0.0,10.88,new main versus updated feature; merge cost not isolated +prefix-resident-common,range:uniform:10000@8,branch-prefix,2,3552.85,3496.0,3609.7,3540.75,3472.3,3609.2,0.34173550801384067,True,0,0,2251.7961641850457,0.0,0.195,5046.272,new main versus updated feature; merge cost not isolated +prefix-resident-common,ow:uniform@8,branch-prefix,2,2504131.65,2457344.4,2550918.9,2289438.3499999996,2274316.9,2304559.8,9.377553232652037,False,0,0,2.9429833331821147,80.045,109.34,6.144,new main versus updated feature; merge cost not isolated +prefix-resident-random,point:uniform@8,branch-prefix,2,3963644.4,3913586.5,4013702.3,3975725.75,3861855.4,4089596.1,-0.3038778517356233,True,0,0,2.0179837076758558,0.0,0.0,2.592,new main versus updated feature; merge cost not isolated +prefix-resident-random,range:uniform:1@8,branch-prefix,2,1034734.85,1021601.1,1047868.6,1007812.9,987903.4,1027722.4,2.6713242110713242,True,0,0,7.730056837189105,0.0,0.0,10.624,new main versus updated feature; merge cost not isolated +prefix-resident-random,range:uniform:10000@8,branch-prefix,2,3868.05,3849.8,3886.3,4340.4,4063.2,4617.6,-10.882637544926721,False,0,0,2068.591901258825,0.0,0.18,5963.776,new main versus updated feature; merge cost not isolated +prefix-resident-random,ow:uniform@8,branch-prefix,2,2229745.5,2157932.1,2301558.9,2264066.65,2181154.0,2346979.3,-1.5159072282611374,True,0,0,3.055612856711746,140.26999999999998,186.255,5.76,new main versus updated feature; merge cost not isolated +prefix-disk-common,point:uniform@8,branch-prefix,2,147874.7,146572.1,149177.3,151969.05,137171.0,166767.1,-2.6941999045200116,True,0,0,6.108943202651296,3207.5550000000003,0.0,106.496,new main versus updated feature; merge cost not isolated +prefix-disk-common,range:uniform:1@8,branch-prefix,2,62160.25,60876.0,63444.5,62089.2,56813.9,67364.5,0.11443213956694454,True,0,0,133.95940355600158,10934.494999999999,0.0,364.544,new main versus updated feature; merge cost not isolated +prefix-disk-common,range:uniform:10000@8,branch-prefix,2,979.0,968.8,989.2,856.0,812.8,899.2,14.369158878504674,False,0,0,3343.9831434655302,1814654.445,0.0,25165.824,new main versus updated feature; merge cost not isolated +prefix-disk-random,point:uniform@8,branch-prefix,2,145755.5,136671.3,154839.7,154350.05,135623.0,173077.1,-5.568219770579919,True,0,0,6.522381717079954,3528.52,0.0,109.56800000000001,new main versus updated feature; merge cost not isolated +prefix-disk-random,range:uniform:1@8,branch-prefix,2,59590.3,56421.2,62759.4,63598.95,56431.4,70766.5,-6.303012864206082,True,0,0,140.9258584920766,14149.515,0.0,335.87199999999996,new main versus updated feature; merge cost not isolated +prefix-disk-random,range:uniform:10000@8,branch-prefix,2,827.6,812.2,843.0,863.0999999999999,813.8,912.4,-4.11308075541651,True,0,0,3825.519282893175,2526263.165,0.0,27000.832,new main versus updated feature; merge cost not isolated diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/README.md b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/README.md new file mode 100644 index 000000000..76f153fab --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/README.md @@ -0,0 +1,11 @@ +# branch-prefix: correctness evidence for main integration + +Branch: `robj/branch-prefix`. Merge head when archived: `3024eec0dda2d74ae6ee96adbaffcdf465585a38`. Integrated main: `7bb5fab305b9c6179e31f75998dabea833537a08`. + +`validate.py debug` and `validate.py release` selected quick, btree, superblock, and blob cases. `debug-results.json` and `release-results.json` record commands, executable hashes, and 77 passing cases per mode. The quick suite includes prefix point lookups, iteration, reopen, and handle handoff. + +Build logs describe compilation; JSON records retain the exact executed commands and available source, binary, and log hashes. The archive includes intermediate failures as well as successful final validation; an early failed log is not a claim that the final build failed. Tests with databases used real disk storage under the workspace. `shared/run_job.py` is the coordination wrapper used to serialize timed work against builds and tests. Its syntax is `python3 run_job.py --name NAME test -- COMMAND`; build jobs use the `build` mode. + +`shared/before.json` records the original project heads and backup refs. The scripts are archived byte for byte for command provenance; they contain original workspace paths and may depend on their original directory layout. Do not run them directly from this archive without adapting paths and choosing fresh scratch locations. + +Original evidence directory: `/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix`. Only regular files with `.json`, `.log`, `.py`, `.gdb`, or `.md` extensions and at most 1 MiB each were copied. Scratch directories, databases, executables, core dumps, symlinks, bytecode, and shared benchmark outputs are excluded. Raw logs retain their original bytes. `archive-manifest.json` hashes every archived file except itself; it does not hash database files. diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/archive-manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/archive-manifest.json new file mode 100644 index 000000000..7ff8365f2 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/archive-manifest.json @@ -0,0 +1,142 @@ +{ + "project": "branch-prefix", + "branch": "robj/branch-prefix", + "merge_head": "3024eec0dda2d74ae6ee96adbaffcdf465585a38", + "integrated_main": "7bb5fab305b9c6179e31f75998dabea833537a08", + "files": [ + { + "path": "README.md", + "bytes": 1887, + "sha256": "aa07a642a35ed8960d60bc806351a5fb2b8686ce70cfcf5afd7f588a5f4d3820", + "source": "generated archive guide" + }, + { + "path": "debug-blob.log", + "bytes": 319, + "sha256": "f68e584fc108c24bbed3c01bb22bad1bfdc5a330f938c6f799badaf7736cf5de", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-blob.log" + }, + { + "path": "debug-btree.log", + "bytes": 448, + "sha256": "08bdb2849c344dd919ef595814e83157a7f198551585059b6b7177ba599fdea9", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-btree.log" + }, + { + "path": "debug-build.log", + "bytes": 13152, + "sha256": "ea406c8082403a4a184ea32b097f3d3fab38c73cf0a9f086f3ae810c6458d79c", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-build.log" + }, + { + "path": "debug-quick.log", + "bytes": 4005, + "sha256": "ff420edb080aacfadc961e9578592062d935ddb6b301dc04e57b4578b23d5ba2", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-quick.log" + }, + { + "path": "debug-results.json", + "bytes": 2389, + "sha256": "afa555a6d8381fd36d0f6af6f8543d8802132954fe59f19ed3e51d4c6f8824cf", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-results.json" + }, + { + "path": "debug-superblock.log", + "bytes": 2030, + "sha256": "ce8f373e651be079421f983c55a4ecaf7390e2a244ffe465ab6fe0480db173e3", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-superblock.log" + }, + { + "path": "debug-tests.log", + "bytes": 2242, + "sha256": "aefccc97d75e60b6c43b3eb03a11cd12bde0be5ab5dfe456f275b3c9a61332bc", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/debug-tests.log" + }, + { + "path": "kvbench-build.log", + "bytes": 320, + "sha256": "c2d29076000b1f194479e527ddca47ac881d4580a11c75d10dfa40d1af87b038", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/kvbench-build.log" + }, + { + "path": "release-blob.log", + "bytes": 319, + "sha256": "fc56ed8d22c0de9cd45503f5ce14efb4a3bb858428b61c2c409c9e5d0ff5c047", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-blob.log" + }, + { + "path": "release-btree.log", + "bytes": 447, + "sha256": "944240f8b9608708a3f23e609104f64e437fff5962e6f09ca62a8a086bff0456", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-btree.log" + }, + { + "path": "release-build.log", + "bytes": 13372, + "sha256": "75884dfafb11f4a0f00892c01395e1ecadb90cef0ac622373e0d157f6cddca2f", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-build.log" + }, + { + "path": "release-libs.log", + "bytes": 176, + "sha256": "9b12919c5cb6c1023469ee3dc8c24272a86e4ce9e8717b4dec5a30b2e7b3ab02", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-libs.log" + }, + { + "path": "release-quick.log", + "bytes": 4004, + "sha256": "a9c563de4a052a66cf05c01a49d33c7d91fefc9b63c3deae8d0ab1fd813f0144", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-quick.log" + }, + { + "path": "release-results.json", + "bytes": 2414, + "sha256": "4aabf17366109b53a26b805b182d956bb57fed3796d4a98414c9c015386686fc", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-results.json" + }, + { + "path": "release-superblock.log", + "bytes": 2030, + "sha256": "5536ef09f9d3b7b40871add22169cb31b12bc1080dc29f1f8b9a6ecf0732214f", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-superblock.log" + }, + { + "path": "release-tests.log", + "bytes": 2277, + "sha256": "17ec2a04103575e282e04046e88bcbd32970454d7f65abc2782dc48366cf7029", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/release-tests.log" + }, + { + "path": "shared/before.json", + "bytes": 4460, + "sha256": "133ae8f9f5fda20e884fd1d283d857d389a96cef6a74a82b7a17fa094a0cc6e5", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/before.json" + }, + { + "path": "shared/run_job.py", + "bytes": 2461, + "sha256": "908d86de805e6efd41b423c919187f2df14715104f047e10fa8a6c57129cc773", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/run_job.py" + }, + { + "path": "shared/test_root_branches.py", + "bytes": 3223, + "sha256": "36f5b93940442f3806266d12284fe4da2927b56b4f1882c957df7519696d3da7", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/test_root_branches.py" + }, + { + "path": "source-manifest.json", + "bytes": 17007, + "sha256": "563c6d5865c3d7b305e41f21da5ab4476acd6f154a366c636e50c2e983496d0a", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/source-manifest.json" + }, + { + "path": "validate.py", + "bytes": 1569, + "sha256": "590b5ab354f540780c61f2da9e198e50293b7ae2f3c02fc0f4595ec56da2930a", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/validate.py" + } + ], + "manifest_excludes_itself": true, + "archived_payload_bytes": 80551 +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-blob.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-blob.log new file mode 100644 index 000000000..b7bd1bd0d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-blob.log @@ -0,0 +1,6 @@ +Running 1 CTests, suite name 'splinter', test case 'test_blob_'. +TEST 1/4 splinter:test_blob_checksums [OK] +TEST 2/4 splinter:test_blob_descriptor_sizes [OK] +TEST 3/4 splinter:test_blob_trees [OK] +TEST 4/4 splinter:test_blob_height_three_and_large_stats [OK] +RESULTS: 4 tests (4 ok, 0 failed, 0 skipped) ran in 1700 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-btree.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-btree.log new file mode 100644 index 000000000..ee0aa37c3 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-btree.log @@ -0,0 +1,10 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/8 btree:test_compressed_suffix_copy [OK] +TEST 2/8 btree:test_leaf_hdr [OK] +TEST 3/8 btree:test_leaf_hdr_search [OK] +TEST 4/8 btree:test_index_hdr [OK] +TEST 5/8 btree:test_index_hdr_search [OK] +TEST 6/8 btree:test_leaf_split [OK] +TEST 7/8 btree:test_defragmented_leaf_bytes [OK] +TEST 8/8 btree:test_defragmented_index_bytes [OK] +RESULTS: 8 tests (8 ok, 0 failed, 0 skipped) ran in 14 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-build.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-build.log new file mode 100644 index 000000000..fb2d18323 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-build.log @@ -0,0 +1,117 @@ +Starting main-7bb5fab-prefix-debug-build build +Checking for mismatched config...No mismatched config found +Saving config to build-main-7bb5fab/debug/build-config.e33dfc688a9c2bf2dad4e17ef758ec3e +Compiling src/PackedArray.c [build-main-7bb5fab/debug/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-7bb5fab/debug/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-7bb5fab/debug/obj/src/core.o] +Compiling src/default_data_config.c [build-main-7bb5fab/debug/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-7bb5fab/debug/obj/src/memtable.o] +Compiling src/merge.c [build-main-7bb5fab/debug/obj/src/merge.o] +Compiling src/notification.c [build-main-7bb5fab/debug/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-7bb5fab/debug/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-7bb5fab/debug/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-7bb5fab/debug/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-7bb5fab/debug/obj/src/superblock.o] +Compiling src/trunk.c [build-main-7bb5fab/debug/obj/src/trunk.o] +Compiling tests/functional/avlTree.c [build-main-7bb5fab/debug/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-7bb5fab/debug/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-7bb5fab/debug/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-7bb5fab/debug/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-7bb5fab/debug/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-7bb5fab/debug/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-7bb5fab/debug/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-7bb5fab/debug/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-7bb5fab/debug/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-7bb5fab/debug/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-7bb5fab/debug/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-7bb5fab/debug/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-7bb5fab/debug/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-7bb5fab/debug/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-7bb5fab/debug/obj/tests/config.o] +Compiling tests/test_common.c [build-main-7bb5fab/debug/obj/tests/test_common.o] +Compiling tests/test_data.c [build-main-7bb5fab/debug/obj/tests/test_data.o] +Compiling src/allocator.c [build-main-7bb5fab/debug/obj/src/allocator.o] +Compiling src/blob.c [build-main-7bb5fab/debug/obj/src/blob.o] +Compiling src/blob_build.c [build-main-7bb5fab/debug/obj/src/blob_build.o] +Compiling src/btree.c [build-main-7bb5fab/debug/obj/src/btree.o] +Compiling src/clockcache.c [build-main-7bb5fab/debug/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-7bb5fab/debug/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-7bb5fab/debug/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-7bb5fab/debug/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-7bb5fab/debug/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-7bb5fab/debug/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-7bb5fab/debug/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-7bb5fab/debug/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-7bb5fab/debug/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-7bb5fab/debug/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-7bb5fab/debug/obj/src/task.o] +Compiling src/util.c [build-main-7bb5fab/debug/obj/src/util.o] +Compiling src/writeback_set.c [build-main-7bb5fab/debug/obj/src/writeback_set.o] +Compiling tests/unit/btree_stress_test.c [build-main-7bb5fab/debug/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-7bb5fab/debug/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-7bb5fab/debug/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-7bb5fab/debug/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-7bb5fab/debug/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-7bb5fab/debug/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-7bb5fab/debug/obj/tests/unit/misc_test.o] +Compiling tests/unit/platform_apis_test.c [build-main-7bb5fab/debug/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-7bb5fab/debug/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-7bb5fab/debug/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-7bb5fab/debug/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-7bb5fab/debug/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-7bb5fab/debug/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-7bb5fab/debug/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-7bb5fab/debug/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-7bb5fab/debug/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-7bb5fab/debug/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-7bb5fab/debug/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-7bb5fab/debug/obj/tests/unit/writeback_set_test.o] +Linking build-main-7bb5fab/debug/bin/unit/btree_stress_test +Linking build-main-7bb5fab/debug/bin/unit/btree_test +Compiling tests/unit/config_parse_test.c [build-main-7bb5fab/debug/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-7bb5fab/debug/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-7bb5fab/debug/bin/unit/misc_test +Linking build-main-7bb5fab/debug/bin/unit/platform_apis_test +Linking build-main-7bb5fab/debug/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinter_test.o] +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-7bb5fab/debug/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-7bb5fab/debug/bin/unit/util_test +Linking build-main-7bb5fab/debug/bin/unit/vector_test +Linking build-main-7bb5fab/debug/bin/unit/writeback_set_test +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Linking build-main-7bb5fab/debug/lib/libsplinterdb.so +Linking build-main-7bb5fab/debug/bin/driver_test +Linking build-main-7bb5fab/debug/bin/unit_test +Linking build-main-7bb5fab/debug/bin/unit/config_parse_test +Linking build-main-7bb5fab/debug/bin/unit/large_inserts_stress_test +Linking build-main-7bb5fab/debug/bin/unit/limitations_test +Linking build-main-7bb5fab/debug/bin/unit/merge_test +Linking build-main-7bb5fab/debug/bin/unit/splinter_test +Linking build-main-7bb5fab/debug/bin/unit/splinterdb_forked_child_test +Linking build-main-7bb5fab/debug/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-7bb5fab/debug/bin/unit/splinterdb_optimize_test +Linking build-main-7bb5fab/debug/bin/unit/splinterdb_quick_test +Linking build-main-7bb5fab/debug/bin/unit/splinterdb_stress_test +Linking build-main-7bb5fab/debug/bin/unit/superblock_test +Linking build-main-7bb5fab/debug/bin/unit/task_system_test +Linking build-main-7bb5fab/debug/bin/unit/trunk_async_test +Linking build-main-7bb5fab/debug/bin/unit/trunk_gc_test +Linking build-main-7bb5fab/debug/bin/unit/trunk_split_test +Linking build-main-7bb5fab/debug/bin/unit/writable_buffer_test diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-quick.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-quick.log new file mode 100644 index 000000000..2cc23e68c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-quick.log @@ -0,0 +1,56 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/50 splinterdb_quick:test_get_config_returns_effective_config [OK] +TEST 2/50 splinterdb_quick:test_get_cost_stats [OK] +TEST 3/50 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 4/50 splinterdb_quick:test_durable_barrier [OK] +TEST 5/50 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 6/50 splinterdb_quick:test_basic_flow [OK] +TEST 7/50 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 8/50 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 9/50 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 10/50 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 11/50 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 12/50 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 13/50 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 14/50 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 15/50 splinterdb_quick:test_apis_for_large_key [OK] +TEST 16/50 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 17/50 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 18/50 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 19/50 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 20/50 splinterdb_quick:test_variable_length_values [OK] +TEST 21/50 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 22/50 splinterdb_quick:test_basic_iterator [OK] +TEST 23/50 splinterdb_quick:test_iterator_delete_current [OK] +TEST 24/50 splinterdb_quick:test_empty_iterator [OK] +TEST 25/50 splinterdb_quick:test_bounded_iterator [OK] +TEST 26/50 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 27/50 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 28/50 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 29/50 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 30/50 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 31/50 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 32/50 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 33/50 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 34/50 splinterdb_quick:test_close_and_reopen [OK] +TEST 35/50 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 36/50 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 37/50 splinterdb_quick:test_custom_data_config [OK] +TEST 38/50 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 39/50 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 40/50 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 41/50 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 42/50 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 43/50 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 44/50 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 45/50 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 46/50 splinterdb_quick:test_iterator_init_bug [OK] +TEST 47/50 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 48/50 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 49/50 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 50/50 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +RESULTS: 50 tests (50 ok, 0 failed, 0 skipped) ran in 10928 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-results.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-results.json new file mode 100644 index 000000000..260064f0e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-results.json @@ -0,0 +1,67 @@ +[ + { + "name": "quick", + "mode": "debug", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/splinterdb_quick_test" + ], + "binary_sha256": "3c79ee1f4cf46d3c700d2297da80e104c4bd2661dba71ba2fbe8e611f0a453c7", + "started": 1791904503.6462114, + "returncode": 0, + "finished": 1791904514.5982203, + "tests": 50, + "passed": 50, + "failed": 0, + "skipped": 0 + }, + { + "name": "btree", + "mode": "debug", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/btree_test" + ], + "binary_sha256": "a98f52dfee0b9880d335c19e8a435cfb5616c0bf0509b3f2ca29b31f1633d82d", + "started": 1791904514.5994582, + "returncode": 0, + "finished": 1791904514.6155782, + "tests": 8, + "passed": 8, + "failed": 0, + "skipped": 0 + }, + { + "name": "superblock", + "mode": "debug", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-superblock", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/superblock_test" + ], + "binary_sha256": "64858eeb6fd56af808628b6ac8a35ac5582938b006e294a05cb9e04f752a4ebd", + "started": 1791904514.6161194, + "returncode": 0, + "finished": 1791904514.6808631, + "tests": 15, + "passed": 15, + "failed": 0, + "skipped": 0 + }, + { + "name": "blob", + "mode": "debug", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-blob", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/splinter_test", + "test_blob_" + ], + "binary_sha256": "67d1c6444f127b5e03a8fc568af7f8b1a57ed729f654b1213159b9ef19bcc440", + "started": 1791904514.6815746, + "returncode": 0, + "finished": 1791904516.400889, + "tests": 4, + "passed": 4, + "failed": 0, + "skipped": 0 + } +] diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-superblock.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-superblock.log new file mode 100644 index 000000000..1d75a999d --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-superblock.log @@ -0,0 +1,34 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/15 superblock:test_format_sets_fresh_state [OK] +TEST 2/15 superblock:test_rejects_other_experiment_formats superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +[OK] +TEST 3/15 superblock:test_snapshot_persists_state [OK] +TEST 4/15 superblock:test_two_log_checkpoint_transitions [OK] +TEST 5/15 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 6/15 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 7/15 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 8/15 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 9/15 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 10/15 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 11/15 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 12/15 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 13/15 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/15 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 15/15 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +RESULTS: 15 tests (15 ok, 0 failed, 0 skipped) ran in 31 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-tests.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-tests.log new file mode 100644 index 000000000..ff8cc6030 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-tests.log @@ -0,0 +1,9 @@ +Starting main-7bb5fab-prefix-debug-tests test +Running debug quick +{'name': 'quick', 'mode': 'debug', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-quick', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/splinterdb_quick_test'], 'binary_sha256': '3c79ee1f4cf46d3c700d2297da80e104c4bd2661dba71ba2fbe8e611f0a453c7', 'started': 1791904503.6462114, 'returncode': 0, 'finished': 1791904514.5982203, 'tests': 50, 'passed': 50, 'failed': 0, 'skipped': 0} +Running debug btree +{'name': 'btree', 'mode': 'debug', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-btree', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/btree_test'], 'binary_sha256': 'a98f52dfee0b9880d335c19e8a435cfb5616c0bf0509b3f2ca29b31f1633d82d', 'started': 1791904514.5994582, 'returncode': 0, 'finished': 1791904514.6155782, 'tests': 8, 'passed': 8, 'failed': 0, 'skipped': 0} +Running debug superblock +{'name': 'superblock', 'mode': 'debug', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-superblock', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/superblock_test'], 'binary_sha256': '64858eeb6fd56af808628b6ac8a35ac5582938b006e294a05cb9e04f752a4ebd', 'started': 1791904514.6161194, 'returncode': 0, 'finished': 1791904514.6808631, 'tests': 15, 'passed': 15, 'failed': 0, 'skipped': 0} +Running debug blob +{'name': 'blob', 'mode': 'debug', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-debug-blob', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/debug/bin/unit/splinter_test', 'test_blob_'], 'binary_sha256': '67d1c6444f127b5e03a8fc568af7f8b1a57ed729f654b1213159b9ef19bcc440', 'started': 1791904514.6815746, 'returncode': 0, 'finished': 1791904516.400889, 'tests': 4, 'passed': 4, 'failed': 0, 'skipped': 0} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/kvbench-build.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/kvbench-build.log new file mode 100644 index 000000000..b11871631 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/kvbench-build.log @@ -0,0 +1,4 @@ +Starting main-7bb5fab-prefix-kvbench-build build +lto-wrapper: warning: using serial compilation of 14 LTRANS jobs +lto-wrapper: note: see the ‘-flto’ option documentation for more information +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/prefix_kvbench diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-blob.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-blob.log new file mode 100644 index 000000000..42a891f8c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-blob.log @@ -0,0 +1,6 @@ +Running 1 CTests, suite name 'splinter', test case 'test_blob_'. +TEST 1/4 splinter:test_blob_descriptor_sizes [OK] +TEST 2/4 splinter:test_blob_trees [OK] +TEST 3/4 splinter:test_blob_height_three_and_large_stats [OK] +TEST 4/4 splinter:test_blob_checksums [OK] +RESULTS: 4 tests (4 ok, 0 failed, 0 skipped) ran in 1232 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-btree.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-btree.log new file mode 100644 index 000000000..bc047b296 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-btree.log @@ -0,0 +1,10 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/8 btree:test_leaf_hdr [OK] +TEST 2/8 btree:test_leaf_hdr_search [OK] +TEST 3/8 btree:test_index_hdr [OK] +TEST 4/8 btree:test_index_hdr_search [OK] +TEST 5/8 btree:test_leaf_split [OK] +TEST 6/8 btree:test_defragmented_leaf_bytes [OK] +TEST 7/8 btree:test_defragmented_index_bytes [OK] +TEST 8/8 btree:test_compressed_suffix_copy [OK] +RESULTS: 8 tests (8 ok, 0 failed, 0 skipped) ran in 2 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-build.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-build.log new file mode 100644 index 000000000..5a5d8e442 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-build.log @@ -0,0 +1,117 @@ +Starting main-7bb5fab-prefix-release-build build +Checking for mismatched config...No mismatched config found +Saving config to build-main-7bb5fab/release/build-config.fb6bc8eeb8390429253883c09491f5bd +Compiling src/PackedArray.c [build-main-7bb5fab/release/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-7bb5fab/release/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-7bb5fab/release/obj/src/core.o] +Compiling src/default_data_config.c [build-main-7bb5fab/release/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-7bb5fab/release/obj/src/memtable.o] +Compiling src/merge.c [build-main-7bb5fab/release/obj/src/merge.o] +Compiling src/notification.c [build-main-7bb5fab/release/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-7bb5fab/release/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-7bb5fab/release/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-7bb5fab/release/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-7bb5fab/release/obj/src/superblock.o] +Compiling src/trunk.c [build-main-7bb5fab/release/obj/src/trunk.o] +Compiling tests/functional/avlTree.c [build-main-7bb5fab/release/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-7bb5fab/release/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-7bb5fab/release/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-7bb5fab/release/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-7bb5fab/release/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-7bb5fab/release/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-7bb5fab/release/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-7bb5fab/release/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-7bb5fab/release/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-7bb5fab/release/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-7bb5fab/release/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-7bb5fab/release/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-7bb5fab/release/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-7bb5fab/release/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-7bb5fab/release/obj/tests/config.o] +Compiling tests/test_common.c [build-main-7bb5fab/release/obj/tests/test_common.o] +Compiling tests/test_data.c [build-main-7bb5fab/release/obj/tests/test_data.o] +Compiling src/allocator.c [build-main-7bb5fab/release/obj/src/allocator.o] +Compiling src/blob.c [build-main-7bb5fab/release/obj/src/blob.o] +Compiling src/blob_build.c [build-main-7bb5fab/release/obj/src/blob_build.o] +Compiling src/btree.c [build-main-7bb5fab/release/obj/src/btree.o] +Compiling src/clockcache.c [build-main-7bb5fab/release/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-7bb5fab/release/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-7bb5fab/release/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-7bb5fab/release/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-7bb5fab/release/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-7bb5fab/release/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-7bb5fab/release/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-7bb5fab/release/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-7bb5fab/release/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-7bb5fab/release/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-7bb5fab/release/obj/src/task.o] +Compiling src/util.c [build-main-7bb5fab/release/obj/src/util.o] +Compiling src/writeback_set.c [build-main-7bb5fab/release/obj/src/writeback_set.o] +Compiling tests/unit/btree_stress_test.c [build-main-7bb5fab/release/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-7bb5fab/release/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-7bb5fab/release/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-7bb5fab/release/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-7bb5fab/release/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-7bb5fab/release/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-7bb5fab/release/obj/tests/unit/misc_test.o] +Compiling tests/unit/platform_apis_test.c [build-main-7bb5fab/release/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-7bb5fab/release/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-7bb5fab/release/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-7bb5fab/release/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-7bb5fab/release/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-7bb5fab/release/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-7bb5fab/release/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-7bb5fab/release/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-7bb5fab/release/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-7bb5fab/release/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-7bb5fab/release/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-7bb5fab/release/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-7bb5fab/release/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-7bb5fab/release/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-7bb5fab/release/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-7bb5fab/release/obj/tests/unit/writeback_set_test.o] +Compiling tests/unit/config_parse_test.c [build-main-7bb5fab/release/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-7bb5fab/release/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-7bb5fab/release/bin/unit/misc_test +Linking build-main-7bb5fab/release/bin/unit/platform_apis_test +Linking build-main-7bb5fab/release/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-7bb5fab/release/obj/tests/unit/splinter_test.o] +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-7bb5fab/release/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-7bb5fab/release/bin/unit/util_test +Linking build-main-7bb5fab/release/bin/unit/vector_test +Linking build-main-7bb5fab/release/bin/unit/writeback_set_test +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Linking build-main-7bb5fab/release/bin/unit/btree_stress_test +Linking build-main-7bb5fab/release/bin/unit/btree_test +Linking build-main-7bb5fab/release/lib/libsplinterdb.so +Linking build-main-7bb5fab/release/bin/driver_test +Linking build-main-7bb5fab/release/bin/unit_test +Linking build-main-7bb5fab/release/bin/unit/config_parse_test +Linking build-main-7bb5fab/release/bin/unit/large_inserts_stress_test +Linking build-main-7bb5fab/release/bin/unit/limitations_test +Linking build-main-7bb5fab/release/bin/unit/merge_test +Linking build-main-7bb5fab/release/bin/unit/splinter_test +Linking build-main-7bb5fab/release/bin/unit/splinterdb_forked_child_test +Linking build-main-7bb5fab/release/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-7bb5fab/release/bin/unit/splinterdb_optimize_test +Linking build-main-7bb5fab/release/bin/unit/splinterdb_quick_test +Linking build-main-7bb5fab/release/bin/unit/splinterdb_stress_test +Linking build-main-7bb5fab/release/bin/unit/superblock_test +Linking build-main-7bb5fab/release/bin/unit/task_system_test +Linking build-main-7bb5fab/release/bin/unit/trunk_async_test +Linking build-main-7bb5fab/release/bin/unit/trunk_gc_test +Linking build-main-7bb5fab/release/bin/unit/trunk_split_test +Linking build-main-7bb5fab/release/bin/unit/writable_buffer_test diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-libs.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-libs.log new file mode 100644 index 000000000..d97c5bced --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-libs.log @@ -0,0 +1,3 @@ +Starting main-7bb5fab-prefix-release-libs build +Checking for mismatched config...No mismatched config found +Building archive build-main-7bb5fab/release/lib/libsplinterdb.a diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-quick.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-quick.log new file mode 100644 index 000000000..8b1bf8f0f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-quick.log @@ -0,0 +1,56 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/50 splinterdb_quick:test_get_cost_stats [OK] +TEST 2/50 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 3/50 splinterdb_quick:test_durable_barrier [OK] +TEST 4/50 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 5/50 splinterdb_quick:test_basic_flow [OK] +TEST 6/50 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 7/50 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 8/50 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 9/50 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 10/50 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 11/50 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 12/50 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 13/50 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 14/50 splinterdb_quick:test_apis_for_large_key [OK] +TEST 15/50 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 16/50 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 17/50 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 18/50 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 19/50 splinterdb_quick:test_variable_length_values [OK] +TEST 20/50 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 21/50 splinterdb_quick:test_basic_iterator [OK] +TEST 22/50 splinterdb_quick:test_iterator_delete_current [OK] +TEST 23/50 splinterdb_quick:test_empty_iterator [OK] +TEST 24/50 splinterdb_quick:test_bounded_iterator [OK] +TEST 25/50 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 26/50 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 27/50 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 28/50 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 29/50 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 30/50 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 31/50 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 32/50 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 33/50 splinterdb_quick:test_close_and_reopen [OK] +TEST 34/50 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 35/50 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 36/50 splinterdb_quick:test_custom_data_config [OK] +TEST 37/50 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 38/50 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 39/50 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 40/50 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 41/50 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 42/50 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 43/50 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 44/50 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 45/50 splinterdb_quick:test_iterator_init_bug [OK] +TEST 46/50 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 47/50 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 48/50 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 49/50 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +TEST 50/50 splinterdb_quick:test_get_config_returns_effective_config [OK] +RESULTS: 50 tests (50 ok, 0 failed, 0 skipped) ran in 9960 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-results.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-results.json new file mode 100644 index 000000000..d7b576101 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-results.json @@ -0,0 +1,67 @@ +[ + { + "name": "quick", + "mode": "release", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/splinterdb_quick_test" + ], + "binary_sha256": "7cacdd8c7613662ea8c818fc1d29f9b0a7a59629e5c9691fb57e528d29c41ae4", + "started": 1791904526.8338897, + "returncode": 0, + "finished": 1791904536.8287897, + "tests": 50, + "passed": 50, + "failed": 0, + "skipped": 0 + }, + { + "name": "btree", + "mode": "release", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/btree_test" + ], + "binary_sha256": "2845b392bd943153f83e4a5461d697af555921c6b07b8f0976e7f8b87936242e", + "started": 1791904536.8305018, + "returncode": 0, + "finished": 1791904536.8384242, + "tests": 8, + "passed": 8, + "failed": 0, + "skipped": 0 + }, + { + "name": "superblock", + "mode": "release", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-superblock", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/superblock_test" + ], + "binary_sha256": "adbb3e34f2598c1007e2fe417a9754396975918c4b4fd8b88a74a88f66d6b1b7", + "started": 1791904536.8393273, + "returncode": 0, + "finished": 1791904536.8712857, + "tests": 15, + "passed": 15, + "failed": 0, + "skipped": 0 + }, + { + "name": "blob", + "mode": "release", + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-blob", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/splinter_test", + "test_blob_" + ], + "binary_sha256": "694eebb046706dd1a513ac5c052f8c216220f47fe53752b1474b3fe35fb87c54", + "started": 1791904536.8734038, + "returncode": 0, + "finished": 1791904538.1400166, + "tests": 4, + "passed": 4, + "failed": 0, + "skipped": 0 + } +] diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-superblock.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-superblock.log new file mode 100644 index 000000000..df5e6b55c --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-superblock.log @@ -0,0 +1,34 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/15 superblock:test_rejects_other_experiment_formats superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +superblock_mount: no valid superblock found +superblock_read_bootstrap: no valid superblock found +[OK] +TEST 2/15 superblock:test_snapshot_persists_state [OK] +TEST 3/15 superblock:test_two_log_checkpoint_transitions [OK] +TEST 4/15 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 5/15 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 6/15 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 7/15 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 8/15 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 9/15 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 10/15 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 11/15 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 12/15 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 13/15 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/15 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +TEST 15/15 superblock:test_format_sets_fresh_state [OK] +RESULTS: 15 tests (15 ok, 0 failed, 0 skipped) ran in 24 ms diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-tests.log b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-tests.log new file mode 100644 index 000000000..b9b99e94e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-tests.log @@ -0,0 +1,9 @@ +Starting main-7bb5fab-prefix-release-tests test +Running release quick +{'name': 'quick', 'mode': 'release', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-quick', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/splinterdb_quick_test'], 'binary_sha256': '7cacdd8c7613662ea8c818fc1d29f9b0a7a59629e5c9691fb57e528d29c41ae4', 'started': 1791904526.8338897, 'returncode': 0, 'finished': 1791904536.8287897, 'tests': 50, 'passed': 50, 'failed': 0, 'skipped': 0} +Running release btree +{'name': 'btree', 'mode': 'release', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-btree', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/btree_test'], 'binary_sha256': '2845b392bd943153f83e4a5461d697af555921c6b07b8f0976e7f8b87936242e', 'started': 1791904536.8305018, 'returncode': 0, 'finished': 1791904536.8384242, 'tests': 8, 'passed': 8, 'failed': 0, 'skipped': 0} +Running release superblock +{'name': 'superblock', 'mode': 'release', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-superblock', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/superblock_test'], 'binary_sha256': 'adbb3e34f2598c1007e2fe417a9754396975918c4b4fd8b88a74a88f66d6b1b7', 'started': 1791904536.8393273, 'returncode': 0, 'finished': 1791904536.8712857, 'tests': 15, 'passed': 15, 'failed': 0, 'skipped': 0} +Running release blob +{'name': 'blob', 'mode': 'release', 'cwd': '/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/scratch-release-blob', 'command': ['/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-7bb5fab/release/bin/unit/splinter_test', 'test_blob_'], 'binary_sha256': '694eebb046706dd1a513ac5c052f8c216220f47fe53752b1474b3fe35fb87c54', 'started': 1791904536.8734038, 'returncode': 0, 'finished': 1791904538.1400166, 'tests': 4, 'passed': 4, 'failed': 0, 'skipped': 0} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/before.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/before.json new file mode 100644 index 000000000..2143ea26f --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/before.json @@ -0,0 +1,97 @@ +{ + "main": "db3047a812d9b193b87f92fc0be7b75e923b89ee", + "target": "7bb5fab305b9c6179e31f75998dabea833537a08", + "projects": [ + { + "name": "cache-errors", + "branch": "robj/cache-errors", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors", + "head": "2907e97e90a7861e789192485e0892522a9feb3a", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-errors" + }, + { + "name": "cache-handoff", + "branch": "robj/cache-handoff", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-handoff", + "head": "c76b6923eb5b915792e1e8303d266fb072f9348f", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-handoff" + }, + { + "name": "disk-format", + "branch": "robj/disk-format", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/disk-format", + "head": "fb878f134c245276629828203a186dd2f26df981", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/disk-format" + }, + { + "name": "filtered-ranges", + "branch": "robj/filtered-ranges", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/filtered-ranges", + "head": "b8ce54bf9b793c3576a9f96c19d4a51846e83269", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/filtered-ranges" + }, + { + "name": "log-group-limit", + "branch": "robj/log-group-limit", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit", + "head": "f295866abe0cd5d16c7954c7748afc2ddcdc6843", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/log-group-limit" + }, + { + "name": "branch-pointers", + "branch": "robj/branch-pointers", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-pointers", + "head": "37787ae95aadc84fca543af0592a24448576dcd9", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/branch-pointers" + }, + { + "name": "branch-prefix", + "branch": "robj/branch-prefix", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "head": "919b61f04355248a26d054a0a7948d5fbb33832a", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/branch-prefix" + }, + { + "name": "lazy-merge", + "branch": "robj/lazy-merge", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/lazy-merge", + "head": "9754337703a754546bd2ab38028856df185f897a", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/lazy-merge" + }, + { + "name": "cache-directory", + "branch": "robj/cache-directory", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory", + "head": "9ecae65d8f0dd114132adf06fa326cb2389f5dc0", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-directory" + }, + { + "name": "async-durable-barrier", + "branch": "robj/async-durable-barrier", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/async-durable-barrier", + "head": "c99b1dcd66ed3648eb592f45182eb8021a94cd7e", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/async-durable-barrier" + }, + { + "name": "cache-errors-direct24", + "branch": "robj/cache-errors-direct24", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors-direct24", + "head": "573ba9ef6a2fe8d1293017556c29036340ea98ff", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-errors-direct24" + }, + { + "name": "cache-errors-null", + "branch": "robj/cache-errors-null", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-errors-null", + "head": "7d1f0a56ebc253bccc1bd74799eed7bf6e0d7fb3", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-errors-null" + }, + { + "name": "cache-invalid-addresses", + "branch": "robj/cache-invalid-addresses", + "worktree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses", + "head": "193ba3e485df4e7438ee0fda78bb162258e3f054", + "backup_ref": "refs/heads/backup/projects-before-main-7bb5fab/cache-invalid-addresses" + } + ] +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/run_job.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/run_job.py new file mode 100644 index 000000000..299c91084 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/run_job.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +"""Coordinate this campaign's builds/tests and disk-backed benchmarks.""" +import argparse +import fcntl +import json +import os +from pathlib import Path +import subprocess +import tempfile +import time + +ROOT = Path(__file__).resolve().parent.parent +p = argparse.ArgumentParser() +p.add_argument('mode', choices=['build', 'test', 'benchmark']) +p.add_argument('--name', required=True) +p.add_argument('--db-dir', type=Path) +p.add_argument('command', nargs=argparse.REMAINDER) +a = p.parse_args() +command = a.command[1:] if a.command[:1] == ['--'] else a.command +if not command: + p.error('command required after --') +if a.mode == 'benchmark': + if a.db_dir is None: + p.error('benchmark requires --db-dir') + a.db_dir.mkdir(parents=True, exist_ok=True) + db_dir = a.db_dir.resolve() + if not db_dir.is_relative_to(ROOT / 'benchmarks'): + p.error('benchmark database directory must be under the campaign benchmarks directory') + fs = subprocess.check_output(['findmnt', '-n', '-o', 'FSTYPE,SOURCE', '-T', str(db_dir)], text=True).strip() + if fs.split()[0] in {'tmpfs', 'ramfs'} or not fs.split()[1].startswith('/dev/'): + p.error('benchmark storage must be a verified disk filesystem: ' + fs) + bench_lock = open(ROOT / 'coordination' / 'benchmark.lock', 'a+') + fcntl.flock(bench_lock, fcntl.LOCK_EX) + print('Benchmark database storage:', fs, str(db_dir), flush=True) +machine_lock = open(ROOT / 'coordination' / 'machine.lock', 'a+') +fcntl.flock(machine_lock, fcntl.LOCK_EX if a.mode == 'benchmark' else fcntl.LOCK_SH) +record = dict(name=a.name, mode=a.mode, cwd=os.getcwd(), command=command, + started=time.time(), pid=os.getpid()) +if a.db_dir is not None: + record['db_dir'] = str(a.db_dir.resolve()) +print('Starting', a.name, a.mode, flush=True) +try: + # Tool commands run in distinct PID namespaces; GNU make's FIFO names + # otherwise collide when several builds choose /tmp/GMfifo8. + with tempfile.TemporaryDirectory(prefix='splinter-' + a.name + '-', dir='/tmp') as temporary: + environment = dict(os.environ, TMPDIR=temporary) + result = subprocess.run(command, env=environment) + record['returncode'] = result.returncode +finally: + record['finished'] = time.time() + with open(ROOT / 'coordination' / 'jobs.jsonl', 'a') as journal: + fcntl.flock(journal, fcntl.LOCK_EX) + journal.write(json.dumps(record) + '\n') +raise SystemExit(result.returncode) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/test_root_branches.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/test_root_branches.py new file mode 100644 index 000000000..c83e1f546 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/test_root_branches.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +"""Focused merge regression checks; invoke inside run_job.py test.""" +import hashlib +import json +from pathlib import Path +import re +import subprocess +import sys +import time + +project, mode = sys.argv[1:] +campaign = Path(__file__).resolve().parents[2] +tree = campaign / 'worktrees' / project +out = Path(__file__).resolve().parent / project +scratch = out / ('scratch-' + mode) +scratch.mkdir(parents=True, exist_ok=True) +build = tree / 'build-main-7bb5fab' +link = scratch / build.name +if not link.exists(): + link.symlink_to(build, target_is_directory=True) +base = build / mode / 'bin' +commands = [] +unit = lambda name: str(base / 'unit' / (name + '_test')) +if project == 'cache-invalid-addresses': + commands.append(('writeback', [unit('writeback_set')])) +else: + commands.append(('merge', [unit('merge')])) +commands.append(('quick', [unit('splinterdb_quick')])) +core_options = ['--db-location', str(scratch / 'core.db'), + '--cache-capacity-mib', '128', '--db-capacity-gib', '64'] +commands += [('cache-core', [unit('splinter'), *core_options, 'test_cache_read_errors_']), + ('blob-core', [unit('splinter'), *core_options, 'test_blob_'])] +if project == 'cache-invalid-addresses' and mode == 'debug': + for flag in ['prefetch-admission', 'async']: + commands.append((flag, [str(base / 'driver_test'), 'cache_test', '--' + flag, + '--db-location', str(scratch / (flag + '.db')), + '--cache-capacity-mib', '32', '--db-capacity-gib', '1'])) +if project == 'filtered-ranges': + commands.append(('filter', [str(base / 'driver_test'), 'filter_test', + '--db-location', str(scratch / 'filter.db'), + '--cache-capacity-mib', '64', '--db-capacity-gib', '4'])) +validation = out / ('validation-' + mode + '.json') +old_records = json.loads(validation.read_text()) if validation.exists() else [] +records = [] +for name, cmd in commands: + previous = next((r for r in old_records if r['name'] == name), None) + if previous and previous['returncode'] == 0 and previous['command'] == cmd: + records.append(previous) + continue + print(project, mode, name, flush=True) + log = out / (mode + '-' + name + '.log') + if log.exists(): + log.rename(log.with_suffix('.initial.log')) + (out / (mode + '-' + name + '.initial.json')).write_text(json.dumps(previous, indent=2) + '\n') + record = dict(name=name, command=cmd, started=time.time()) + with log.open('w') as stream: + result = subprocess.run(cmd, cwd=scratch, stdout=stream, stderr=subprocess.STDOUT) + content = log.read_text() + record.update(returncode=result.returncode, finished=time.time(), + log_sha256=hashlib.sha256(log.read_bytes()).hexdigest(), + summaries=[line for line in content.splitlines() if 'RESULTS:' in line]) + records.append(record) + validation.write_text(json.dumps(records, indent=2) + '\n') + if result.returncode: + raise SystemExit(result.returncode) + if name not in ['prefetch-admission', 'async', 'filter']: + assert re.search(r'RESULTS: [1-9][0-9]* tests', content), (name, content) diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/source-manifest.json b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/source-manifest.json new file mode 100644 index 000000000..cf9e39e59 --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/source-manifest.json @@ -0,0 +1,174 @@ +{ + "branch": "robj/branch-prefix", + "before": "919b61f04355248a26d054a0a7948d5fbb33832a", + "merged_main": "7bb5fab305b9c6179e31f75998dabea833537a08", + "build_root": "build-main-7bb5fab", + "source_sha256": { + "Makefile": "ce683f9cf159e411025527fe8bf77269a7ed7c6da6db2094d102f722d55dfae8", + "include/splinterdb/data.h": "58b47863d92bea53e50ff28d97d594b05675e122a6d7193fdfb19f5deda4df4d", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "364073691c390663f6b732f57c3ee4bfecc9f68aca33ef6750d6106e04462dc8", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "bc0621be7903d64e25059140005dafeea3f2a4a4ae0e658686501e52e4be934f", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "7d46871423a15992f697cabb363316183cb842a11c26017f8566267174e5ae45", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "2c26b56a2c779faec79eccf7928032204d5907687e63455850eeb51e0ee106c3", + "src/btree.h": "47789ba7191a88faa21ae5b13fa02f7ab59dd698b2207654fe5fcaf422ecbc87", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "70caf9f8d7794dea8d2aeec339883ccfcfdfc29ce6c2e1edd2d0353c4a3975ea", + "src/core.h": "7cf4d086f6d4dcaa4cbd161fef786dbe3cc502ced4512b7fe547c2aa2020462e", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "49a2b0aec91a1c40784b8b3b54f016ef5504c79492b1393674123e27656a09bb", + "src/log_data.h": "06ab1d39b77abb01ec66a901fa52354908be26db8daef52899f5c03a6db2462e", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "df98421e597d1edeac871755f0473055b590791af8efad495575d20260e46a12", + "src/merge.h": "c17e2a0b6272ec52e6d1e80acd9df7dc85221f186e6c60e323c37b467dc5c41a", + "src/mini_allocator.c": "d9444da13fca2000f4128500b84be2b778300a4befc93f72e52b071b83c6491e", + "src/mini_allocator.h": "8d5242f5e4df5443baeab7a494a3c3b2f1491216abfd914c6dbc273370e45683", + "src/notification.c": "2f3bcda49d8ce35ad532fef8ec8f4aeca48bec280cdf6210c21d55cf2aa4a661", + "src/notification.h": "47eb73f5813d6f54658f339ce44d6a475f8f64f2b2eb6368261e839a090f083f", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "a145d39af39caf9dec6f1e1e24b6606ed615587d8dee52a23e0df410b2d07545", + "src/rc_allocator.h": "65f01decb7244b8f6a6c9e7acb47d4ccb4f2f3f369461e70aff33211f03ee39b", + "src/routing_filter.c": "3e722a880217cc4f5831f162dd6b3853a5d0d3f67ca3d3421b2144650657f73a", + "src/routing_filter.h": "579a3a4cc00b9cb125479b23eaa93e4a8309a195fe4082d988b629d4b95a2c91", + "src/shard_log.c": "ed1fcdb429d4fc26382546ecbce04154910275494e9fef522cf34b647cf5e734", + "src/shard_log.h": "07c5867b959eefd35e3e9f08e6c015a594f6331850844590e9c2b1126cd2716b", + "src/splinterdb.c": "e054c2dc9224c7de8bdb63206bb5150947f853d903e3b8012ba46fe1a66dba5f", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "34dd4c724e53c98f170c024c70dd22dae0a466806c167134200f92128420dfba", + "src/superblock.h": "cee4253a99b71e75e67d2d5abc28e2eb34faec5a3297cd0371b67ec66a3dbc6c", + "src/task.c": "35886e598b4464af16e76497917955d3d55c6c077fbcf80fb3fd2284c8ddc08d", + "src/task.h": "35405e04fbdcef9bc5c5d6ef43debc4b0889d6bc4d8d530649b0c45a34012825", + "src/trunk.c": "892373ec383717289a6220b4351b670637e7c41877a97eb0edcb27a9e4e270f2", + "src/trunk.h": "05c5c5313f5a42b68482d03b58d2f17081c6da468a0ce888b0b0b38cc069baf2", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "e44ffe45687560ef6605bd086709251d53cccfbadbc94fd3bdfd0106721f3698", + "tests/config.h": "c1f80b62a51e77255d8d91ace4b2e6777c7311010167149430edd41a6d5ce142", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "947e350af87b4e6d3bcb6320d1fac40a2ed6adf37ea725216de2019140ff710f", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "566f232b849bfe3e7973154dd31a229fc78b168b319efbd3c59a7445cb63279c", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "b9715610200c4279089d74c4dc9c3035000c62b311db9b4d52e171f477e39de3", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "555f1157c220c4f2924bd2089abdcda527a3acde440bc0c922c9c58c2ddedfd1", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "e495226245728b72d4108f627642e98d7fba399f6fca3b733e18e4d2b218fb30", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "acc2736efac2a4e862eba774454268656eb468320475a457f0ff3ceded6bd30d", + "tests/unit/btree_test.c": "21965dc066c355f80cbec2bbd146facf47512f3e82bbe705b039c4543b98b909", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "cf5c1c8010324e1e7629b482bb77796c837abcc5e88eb2de8f97aed11f4bb692", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "01ef44f24acee4b326328933e78e6c8dd84118198ee5445fd703a646b2d407bf", + "tests/unit/splinterdb_forked_child_test.c": "32bf91450ba812947ecdc7551ea2996823c05808159786ce746eba0265010a72", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "b5e3295bcc6ee44437f329005f92d02590d90ca1d96a98439721fff32649cd5d", + "tests/unit/splinterdb_quick_test.c": "436fc8b6f10a0e4554bcc74267703c53f31c272e05e484dbc706de642223f87b", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "91a13552820b9864366f36f6224fe3edbbe7417effddb86e828f3440017ba555", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "187c3f337099e4b110f8ea1b045c522b32f663b860807c0f819bd9264f9264a8", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" + } +} diff --git a/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/validate.py b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/validate.py new file mode 100644 index 000000000..331740e4e --- /dev/null +++ b/benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/validate.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +import hashlib,json,re,subprocess,sys,time +from pathlib import Path +OUT=Path(__file__).resolve().parent +TREE=Path('/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix') +B=TREE/'build-main-7bb5fab' +mode=sys.argv[1] +cases=[('quick','splinterdb_quick_test',[]),('btree','btree_test',[]),('superblock','superblock_test',[]),('blob','splinter_test',['test_blob_'])] +records=[] +for name,suite,args in cases: + scratch=OUT/('scratch-'+mode+'-'+name) + scratch.mkdir(exist_ok=True) + link=scratch/'build-main-7bb5fab' + if not link.exists(): link.symlink_to(B,target_is_directory=True) + exe=B/mode/'bin/unit'/suite + command=[str(exe),*args] + record=dict(name=name,mode=mode,cwd=str(scratch),command=command,binary_sha256=hashlib.sha256(exe.read_bytes()).hexdigest(),started=time.time()) + print('Running',mode,name,flush=True) + with (OUT/(mode+'-'+name+'.log')).open('w') as log: + p=subprocess.run(command,cwd=scratch,stdout=log,stderr=subprocess.STDOUT,timeout=600) + record.update(returncode=p.returncode,finished=time.time()) + text=(OUT/(mode+'-'+name+'.log')).read_text() + counts=re.findall(r'RESULTS: (\d+) tests \((\d+) ok, (\d+) failed, (\d+) skipped\)',text) + if counts: + record.update(zip(['tests','passed','failed','skipped'],map(int,counts[-1]))) + records.append(record) + (OUT/(mode+'-results.json')).write_text(json.dumps(records,indent=2)+'\n') + print(record,flush=True) + assert p.returncode==0 and record.get('passed',0)>0 and record.get('failed',-1)==0 diff --git a/benchmarks/btree_prefix_bench.c b/benchmarks/btree_prefix_bench.c new file mode 100644 index 000000000..fc223d2d5 --- /dev/null +++ b/benchmarks/btree_prefix_bench.c @@ -0,0 +1,1250 @@ +// Copyright 2026 VMware, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/* B-tree-only resident benchmark. Build against matching private headers and + * libsplinterdb.a (see build_btree_prefix_bench.py). No trunk, WAL, background + * tasks, or source-tree iterator participates in construction. All input bytes, + * tuple descriptors, and operation orders are precomputed before timing. + * + * A pack sample measures the complete btree_pack() call. Request + * initialization, full output verification and reclamation are outside the + * measured interval. Multiple samples aggregate active time without retaining + * multiple outputs. Read samples use a packed immutable branch; inserts use a + * separate mutable B-tree. Runtime compression does not affect mutable insert + * representation. + * + * PREFIX_PERF_CONTROL/PREFIX_PERF_ACK optionally name perf stat control FIFOs. + * Counters must initially be disabled. Each active interval enables/disables + * them; setup, verification and reclamation remain excluded. FIFO handshakes + * make the perf window slightly wider than wall timing (clock reads only). + * getrusage and /proc snapshots surround that window; process CPU/wall clocks + * bracket the active work directly. No setup, verification or reclaim is in it. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "btree_private.h" +#include "clockcache.h" +#include "platform_threads.h" +#include "rc_allocator.h" + +#ifndef BTREE_BENCH_PREFIX_SUPPORT +# define BTREE_BENCH_PREFIX_SUPPORT 0 +#endif + +#define MIB (UINT64_C(1) << 20) +#define PAGE_BYTES 4096 +#define EXTENT_BYTES (32 * PAGE_BYTES) + +typedef struct { + const char *db, *operation, *pattern, *insert_order; + uint64 keys, key_bytes, value_bytes, ops, scan_length, batches, seed; + uint64 cache_mib, disk_mib; + int cpu; + bool compression, read_lexical, compression_set, read_lexical_set; + bool miss, full_scan, allow_io, ops_set; +} options; + +typedef struct { + key tuple_key; + message msg; +} tuple; + +typedef struct { + iterator super; + const tuple *tuples; + uint64 count, pos; +} array_iterator; + +typedef struct { + key tuple_key; + uint64 id; +} generated_key; + +typedef struct { + uint64 wall_ns, cpu_ns, user_ns, system_ns; + uint64 read_bytes, write_bytes, minor_faults, major_faults; + uint64 io_reads, io_writes, io_async_reads, io_async_writes; +} counters; + +typedef struct { + options opt; + data_config data_cfg; + io_config io_cfg; + allocator_config allocator_cfg; + clockcache_config cache_cfg; + btree_config btree_cfg; + platform_heap_id hid; + io_handle *io; + rc_allocator al; + clockcache cc; + btree_scratch *scratch; + tuple *tuples; + key *misses; + unsigned char *key_storage, *value_storage, *replacement_storage; + uint64 *insert_order, *query_order; + counters total; + uint64 checksum, expected_checksum, verified_tuples, verified_values; + uint64 packed_bytes, leaf_count, compressed_leaf_count, prefix_bytes; + uint64 operations, returned_tuples, processed_tuples; + FILE *perf_control, *perf_ack; +} benchmark; + +static const data_config *sort_config; +static const io_ops *underlying_io_ops; +static io_ops measured_io_ops; +static bool active_io; +static counters io_counts; + +static void +fail(const char *what) +{ + fprintf(stderr, "btree_prefix_bench: %s\n", what); + exit(1); +} + +static void +check(platform_status status, const char *what) +{ + if (!SUCCESS(status)) { + fprintf(stderr, + "btree_prefix_bench: %s: %s\n", + what, + platform_status_to_string(status)); + exit(1); + } +} + +static void * +allocate(uint64 count, uint64 size) +{ + if (size == 0 || count > SIZE_MAX / size) { + fail("allocation size overflow"); + } + void *p = calloc(count, size); + if (p == NULL) { + fail("allocation failed"); + } + return p; +} + +static uint64 +clock_ns(clockid_t clock) +{ + struct timespec t; + if (clock_gettime(clock, &t) != 0) { + fail("clock_gettime failed"); + } + return (uint64)t.tv_sec * 1000000000 + t.tv_nsec; +} + +static uint64 +mix(uint64 x) +{ + x += UINT64_C(0x9e3779b97f4a7c15); + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static void +put_be(unsigned char *out, uint64 n) +{ + for (int i = 7; i >= 0; i--) { + out[i] = (unsigned char)n; + n >>= 8; + } +} + +static uint64 +get_be(const void *data) +{ + const unsigned char *p = data; + uint64 n = 0; + for (unsigned i = 0; i < 8; i++) { + n = (n << 8) | p[i]; + } + return n; +} + +static int +nonlex_compare(const data_config *cfg, user_key a, user_key b) +{ + (void)cfg; + if (slice_length(a.key) < 8 || slice_length(b.key) < 8) { + fail("nonlexical comparator received a short key"); + } + return memcmp((const char *)slice_data(a.key) + slice_length(a.key) - 8, + (const char *)slice_data(b.key) + slice_length(b.key) - 8, + 8); +} + +static int +generated_compare(const void *a, const void *b) +{ + const generated_key *x = a, *y = b; + return data_key_compare(sort_config, x->tuple_key, y->tuple_key); +} + +static void +set_lexical(benchmark *b, bool lexical) +{ +#if BTREE_BENCH_PREFIX_SUPPORT + b->data_cfg.key_compare_is_lexical = lexical; +#else + (void)b; + (void)lexical; +#endif +} + +static void +array_curr(iterator *base, key *tuple_key, message *msg) +{ + array_iterator *it = (array_iterator *)base; + *tuple_key = it->tuples[it->pos].tuple_key; + *msg = it->tuples[it->pos].msg; +} + +static bool32 +array_can_curr(iterator *base) +{ + array_iterator *it = (array_iterator *)base; + return it->pos < it->count; +} + +static platform_status +array_next(iterator *base) +{ + array_iterator *it = (array_iterator *)base; + it->pos++; + return STATUS_OK; +} + +static platform_status +array_prev(iterator *base) +{ + (void)base; + return STATUS_NOTSUP; +} + +static platform_status +array_seek(iterator *base, comparison c, key k) +{ + (void)base; + (void)c; + (void)k; + return STATUS_NOTSUP; +} + +static void +array_print(iterator *base) +{ + (void)base; +} + +static const iterator_ops array_ops = { + .curr = array_curr, + .can_prev = array_can_curr, + .can_next = array_can_curr, + .next = array_next, + .prev = array_prev, + .seek = array_seek, + .print = array_print, +}; + +static platform_status +measured_read(io_handle *io, void *buf, uint64 bytes, uint64 addr) +{ + if (active_io) { + io_counts.io_reads++; + } + return underlying_io_ops->read(io, buf, bytes, addr); +} + +static platform_status +measured_write(io_handle *io, void *buf, uint64 bytes, uint64 addr) +{ + if (active_io) { + io_counts.io_writes++; + } + return underlying_io_ops->write(io, buf, bytes, addr); +} + +static platform_status +measured_async_init(io_async_state *state, + io_handle *io, + io_async_cmd cmd, + uint64 addr, + async_callback_fn callback, + void *arg) +{ + if (active_io) { + if (cmd == io_async_preadv) { + io_counts.io_async_reads++; + } else { + io_counts.io_async_writes++; + } + } + return underlying_io_ops->async_state_init( + state, io, cmd, addr, callback, arg); +} + +static void +perf_command(benchmark *b, const char *command) +{ + if (b->perf_control == NULL) { + return; + } + if (fprintf(b->perf_control, "%s\n", command) < 0 + || fflush(b->perf_control) != 0) + { + fail("perf control write failed"); + } + /* Installed perf emits five bytes: "ack\n\0". A line reader leaves the + * trailing NUL for the next acknowledgement and strcmp then sees an empty + * string. Accept the optional one-byte separator, but validate every byte + * of the acknowledgement itself; also accept perf versions without NUL. */ + int first = fgetc(b->perf_ack); + if (first == '\0') { + first = fgetc(b->perf_ack); + } + if (first != 'a' || fgetc(b->perf_ack) != 'c' || fgetc(b->perf_ack) != 'k' + || fgetc(b->perf_ack) != '\n') + { + fail("perf control acknowledgement failed"); + } +} + +static counters +snapshot(void) +{ + counters c = io_counts; + FILE *file = fopen("/proc/self/io", "r"); + if (file == NULL) { + fail("cannot read /proc/self/io"); + } + char line[128]; + unsigned found = 0; + while (fgets(line, sizeof(line), file) != NULL) { + unsigned long long value; + if (sscanf(line, "read_bytes: %llu", &value) == 1) { + c.read_bytes = value; + found |= 1; + } else if (sscanf(line, "write_bytes: %llu", &value) == 1) { + c.write_bytes = value; + found |= 2; + } + } + if (fclose(file) != 0 || found != 3) { + fail("incomplete /proc/self/io snapshot"); + } + struct rusage r; + if (getrusage(RUSAGE_SELF, &r) != 0) { + fail("getrusage failed"); + } + c.user_ns = (uint64)r.ru_utime.tv_sec * 1000000000 + + (uint64)r.ru_utime.tv_usec * 1000; + c.system_ns = (uint64)r.ru_stime.tv_sec * 1000000000 + + (uint64)r.ru_stime.tv_usec * 1000; + c.minor_faults = r.ru_minflt; + c.major_faults = r.ru_majflt; + c.cpu_ns = clock_ns(CLOCK_PROCESS_CPUTIME_ID); + c.wall_ns = clock_ns(CLOCK_MONOTONIC); + return c; +} + +static counters +begin_interval(benchmark *b) +{ + io_wait_all(b->io); + counters c = snapshot(); + perf_command(b, "enable"); + c.cpu_ns = clock_ns(CLOCK_PROCESS_CPUTIME_ID); + c.wall_ns = clock_ns(CLOCK_MONOTONIC); + active_io = true; + return c; +} + +static void +end_interval(benchmark *b, counters before) +{ + uint64 end_wall = clock_ns(CLOCK_MONOTONIC); + uint64 end_cpu = clock_ns(CLOCK_PROCESS_CPUTIME_ID); + active_io = false; + perf_command(b, "disable"); + counters after = snapshot(); + after.wall_ns = end_wall; + after.cpu_ns = end_cpu; +#define ACCUMULATE(field) \ + do { \ + if (after.field < before.field) \ + fail("resource counter decreased"); \ + b->total.field += after.field - before.field; \ + } while (0) + ACCUMULATE(wall_ns); + ACCUMULATE(cpu_ns); + ACCUMULATE(user_ns); + ACCUMULATE(system_ns); + ACCUMULATE(read_bytes); + ACCUMULATE(write_bytes); + ACCUMULATE(minor_faults); + ACCUMULATE(major_faults); + ACCUMULATE(io_reads); + ACCUMULATE(io_writes); + ACCUMULATE(io_async_reads); + ACCUMULATE(io_async_writes); +#undef ACCUMULATE + if (!b->opt.allow_io + && (after.read_bytes != before.read_bytes + || after.write_bytes != before.write_bytes + || after.io_reads != before.io_reads + || after.io_writes != before.io_writes + || after.io_async_reads != before.io_async_reads + || after.io_async_writes != before.io_async_writes + || after.major_faults != before.major_faults)) + { + fail("measured interval issued I/O or major faults; resident benchmark " + "rejected"); + } +} + +static void +make_inputs(benchmark *b) +{ + const options *o = &b->opt; + b->key_storage = allocate(2 * o->keys, o->key_bytes); + b->value_storage = allocate(o->keys, o->value_bytes); + if (strcmp(o->operation, "overwrite") == 0) + b->replacement_storage = allocate(o->keys, o->value_bytes); + b->tuples = allocate(o->keys, sizeof(*b->tuples)); + b->misses = allocate(o->keys, sizeof(*b->misses)); + generated_key *generated = allocate(2 * o->keys, sizeof(*generated)); + for (uint64 i = 0; i < 2 * o->keys; i++) { + unsigned char *k = b->key_storage + i * o->key_bytes; + for (uint64 j = 0; j < o->key_bytes; j++) { + k[j] = (unsigned char)(mix(i + o->seed + (j / 8) * 0x100000001b3ULL) + >> (8 * (j % 8))); + } + if (strcmp(o->pattern, "common") == 0) { + memset(k, 'p', 48); + put_be(k + 48, mix(i + o->seed)); + } else { + /* mix is a permutation, so first words are random and unique. */ + put_be(k, mix(i + o->seed)); + } + put_be(k + o->key_bytes - 8, i); + generated[i] = (generated_key){ + .tuple_key = key_create(FALSE, o->key_bytes, k), .id = i}; + } + sort_config = &b->data_cfg; + qsort(generated, 2 * o->keys, sizeof(*generated), generated_compare); + for (uint64 i = 1; i < 2 * o->keys; i++) { + if (data_key_compare( + &b->data_cfg, generated[i - 1].tuple_key, generated[i].tuple_key) + >= 0) + { + fail("generated keys are not strictly sorted and unique"); + } + } + for (uint64 i = 0; i < o->keys; i++) { + unsigned char *v = b->value_storage + i * o->value_bytes; + uint64 id = generated[2 * i].id; + for (uint64 j = 0; j < o->value_bytes; j++) { + v[j] = (unsigned char)(mix(id + o->seed + (j / 8) * 0x123456789ULL) + >> (8 * (j % 8))); + } + put_be(v, id); + if (b->replacement_storage != NULL) { + unsigned char *replacement = + b->replacement_storage + i * o->value_bytes; + for (uint64 j = 0; j < o->value_bytes; j++) + replacement[j] = v[j] ^ 0xa5; + } + b->tuples[i] = (tuple){ + .tuple_key = generated[2 * i].tuple_key, + .msg = message_create( + MESSAGE_TYPE_INSERT, NULL, slice_create(o->value_bytes, v))}; + b->misses[i] = generated[2 * i + 1].tuple_key; + } + free(generated); + b->insert_order = allocate(o->keys, sizeof(*b->insert_order)); + for (uint64 i = 0; i < o->keys; i++) { + b->insert_order[i] = i; + } + if (strcmp(o->insert_order, "random") == 0) { + uint64 state = o->seed; + for (uint64 i = o->keys - 1; i > 0; i--) { + state = mix(state); + uint64 j = state % (i + 1), tmp = b->insert_order[i]; + b->insert_order[i] = b->insert_order[j]; + b->insert_order[j] = tmp; + } + } + b->query_order = allocate(o->ops, sizeof(*b->query_order)); + uint64 state = o->seed; + uint64 range = strcmp(o->operation, "scan") == 0 + ? o->keys - o->scan_length + 1 + : o->keys; + for (uint64 i = 0; i < o->ops; i++) { + state = mix(state); + b->query_order[i] = state % range; + } +} + +static void +init_iterator(benchmark *b, + btree_iterator *it, + uint64 root, + page_type type, + key start) +{ + check(btree_iterator_init((cache *)&b->cc, + &b->btree_cfg, + it, + root, + BTREE_BRANCH_FORMAT_VERSION, + type, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + start, + FALSE, + 0, + 0), + "iterator init"); +} + +static void +verify_tuple(benchmark *b, uint64 position, key actual_key, message actual_msg) +{ + tuple expected = b->tuples[position]; + if (key_length(actual_key) != b->opt.key_bytes + || message_class(actual_msg) != MESSAGE_TYPE_INSERT + || message_is_blob(actual_msg) + || message_length(actual_msg) != b->opt.value_bytes + || memcmp(key_data(actual_key), + key_data(expected.tuple_key), + b->opt.key_bytes) + != 0 + || memcmp(message_data(actual_msg), + message_data(expected.msg), + b->opt.value_bytes) + != 0) + { + fail("full key/value verification failed"); + } + b->verified_tuples++; + b->verified_values++; +} + +static uint64 +verify_tree(benchmark *b, uint64 root, page_type type, bool inspect) +{ + btree_iterator it; + init_iterator(b, &it, root, type, NEGATIVE_INFINITY_KEY); + uint64 count = 0, leaf = UINT64_MAX, checksum = 0; + if (inspect) { + b->leaf_count = b->compressed_leaf_count = b->prefix_bytes = 0; + } + while (iterator_can_curr(&it.super)) { + if (count >= b->opt.keys) { + fail("extra tuple after expected tree end"); + } + key k; + message msg; + iterator_curr(&it.super, &k, &msg); + verify_tuple(b, count++, k, msg); + checksum += get_be((const char *)key_data(k) + key_length(k) - 8) + + get_be(message_data(msg)); + if (inspect && leaf != it.curr.addr) { + leaf = it.curr.addr; + b->leaf_count++; +#if BTREE_BENCH_PREFIX_SUPPORT + b->compressed_leaf_count += it.curr.hdr->prefix_length != 0; + b->prefix_bytes += it.curr.hdr->prefix_length; +#endif + } + check(iterator_next(&it.super), "verification iterator next"); + } + btree_iterator_deinit(&it); + if (count != b->opt.keys) { + fail("tree ended before expected tuple count"); + } + if (inspect) { + check(btree_space_use_bytes( + (cache *)&b->cc, &b->btree_cfg, root, type, &b->packed_bytes), + "tree space inspection"); + } + return checksum; +} + +static uint64 +pack_once(benchmark *b, bool measured) +{ + set_lexical(b, b->opt.compression); + array_iterator it = { + .super = {.ops = &array_ops}, .tuples = b->tuples, .count = b->opt.keys}; + btree_pack_req *req = allocate(1, sizeof(*req)); + check(btree_pack_req_init(req, + (cache *)&b->cc, + &b->btree_cfg, + &it.super, + b->opt.keys, + 0, + FALSE, + b->hid), + "pack req init"); + counters before = {0}; + if (measured) { + before = begin_interval(b); + } + platform_status status = btree_pack(req); + if (measured) { + end_interval(b, before); + } + check(status, "btree_pack"); + if (req->num_tuples != b->opt.keys || it.pos != b->opt.keys + || req->key_bytes != b->opt.keys * b->opt.key_bytes + || req->message_bytes != b->opt.keys * b->opt.value_bytes + || req->root_addr == 0) + { + fail("pack output statistics mismatch"); + } + uint64 root = req->root_addr; + btree_pack_req_deinit(req, b->hid); + free(req); + set_lexical(b, b->opt.read_lexical); + uint64 sum = verify_tree(b, root, PAGE_TYPE_BRANCH, true); + if (measured) { + b->checksum += sum; + for (uint64 i = 0; i < b->opt.keys; i++) + b->expected_checksum += + get_be(message_data(b->tuples[i].msg)) + + get_be((const char *)key_data(b->tuples[i].tuple_key) + + b->opt.key_bytes - 8); + } + return root; +} + +static void +run_inserts(benchmark *b) +{ + bool overwrite = strcmp(b->opt.operation, "overwrite") == 0; + /* First build/reclaim is an unmeasured warmup of this exact mutable path. */ + for (uint64 batch = 0; batch <= b->opt.batches; batch++) { + bool measured = batch != 0; + mini_allocator mini; + uint64 root; + check( + btree_create( + (cache *)&b->cc, &b->btree_cfg, &mini, PAGE_TYPE_MEMTABLE, &root), + "mutable tree create"); + btree_insert_results result; + btree_insert_results_init(&result, NULL); + if (overwrite) { + for (uint64 i = 0; i < b->opt.keys; i++) { + tuple t = b->tuples[b->insert_order[i]]; + check(btree_insert((cache *)&b->cc, + &b->btree_cfg, + b->hid, + b->scratch, + root, + &mini, + t.tuple_key, + t.msg, + &result), + "overwrite prefill"); + } + verify_tree(b, root, PAGE_TYPE_MEMTABLE, false); + for (uint64 i = 0; i < b->opt.keys; i++) + b->tuples[i].msg = message_create( + MESSAGE_TYPE_INSERT, + NULL, + slice_create(b->opt.value_bytes, + b->replacement_storage + i * b->opt.value_bytes)); + } + counters before = {0}; + if (measured) + before = begin_interval(b); + for (uint64 i = 0; i < b->opt.keys; i++) { + tuple t = b->tuples[b->insert_order[i]]; + check(btree_insert((cache *)&b->cc, + &b->btree_cfg, + b->hid, + b->scratch, + root, + &mini, + t.tuple_key, + t.msg, + &result), + "insert"); + } + if (measured) + end_interval(b, before); + btree_insert_results_deinit(&result); + uint64 sum = verify_tree(b, root, PAGE_TYPE_MEMTABLE, false); + if (measured) { + b->checksum += sum; + for (uint64 i = 0; i < b->opt.keys; i++) + b->expected_checksum += + get_be(message_data(b->tuples[i].msg)) + + get_be((const char *)key_data(b->tuples[i].tuple_key) + + b->opt.key_bytes - 8); + } + mini_release(&mini); + btree_dec_ref((cache *)&b->cc, &b->btree_cfg, root, PAGE_TYPE_MEMTABLE); + if (measured) { + b->operations += b->opt.keys; + b->processed_tuples += b->opt.keys; + } + if (overwrite) { + for (uint64 i = 0; i < b->opt.keys; i++) + b->tuples[i].msg = message_create( + MESSAGE_TYPE_INSERT, + NULL, + slice_create(b->opt.value_bytes, + b->value_storage + i * b->opt.value_bytes)); + } + } +} + +static uint64 +run_lookups(benchmark *b, uint64 root, bool verify) +{ + char buffer[MAX_INLINE_MESSAGE_SIZE(PAGE_BYTES)]; + lookup_result result; + lookup_result_init(&result, &b->data_cfg, 0, sizeof(buffer), buffer); + uint64 checksum = 0; + for (uint64 q = 0; q < b->opt.ops; q++) { + uint64 pos = b->query_order[q]; + key target = b->opt.miss ? b->misses[pos] : b->tuples[pos].tuple_key; + check(btree_lookup((cache *)&b->cc, + &b->btree_cfg, + root, + BTREE_BRANCH_FORMAT_VERSION, + PAGE_TYPE_BRANCH, + target, + &result), + "lookup"); + if (lookup_result_found(&result) == b->opt.miss) { + fail("lookup hit/miss mismatch"); + } + if (b->opt.miss) { + checksum += pos + 1; + } else { + message msg = merge_accumulator_to_message(&result.value); + if (message_length(msg) != b->opt.value_bytes || message_is_blob(msg)) + { + fail("lookup value shape mismatch"); + } + checksum += get_be(message_data(msg)); + if (verify) { + verify_tuple(b, pos, target, msg); + } + } + } + lookup_result_deinit(&result); + return checksum; +} + +static uint64 +run_scans(benchmark *b, uint64 root, bool verify) +{ + uint64 checksum = 0; + for (uint64 q = 0; q < b->opt.ops; q++) { + uint64 start = b->query_order[q]; + btree_iterator it; + init_iterator(b, &it, root, PAGE_TYPE_BRANCH, b->tuples[start].tuple_key); + for (uint64 i = 0; i < b->opt.scan_length; i++) { + if (!iterator_can_curr(&it.super)) { + fail("range ended before its requested length"); + } + key k; + message msg; + iterator_curr(&it.super, &k, &msg); + if (key_length(k) != b->opt.key_bytes + || message_length(msg) != b->opt.value_bytes + || message_is_blob(msg)) + { + fail("scan value shape mismatch"); + } + checksum += get_be(message_data(msg)) + + get_be((const char *)key_data(k) + key_length(k) - 8); + if (verify) { + verify_tuple(b, start + i, k, msg); + } + /* Do not fetch an unused tuple past the requested range. */ + if (i + 1 < b->opt.scan_length) { + check(iterator_next(&it.super), "scan iterator next"); + } + } + btree_iterator_deinit(&it); + } + return checksum; +} + +static uint64 +expected_query_checksum(benchmark *b) +{ + uint64 sum = 0; + bool scans = strcmp(b->opt.operation, "scan") == 0; + for (uint64 q = 0; q < b->opt.ops; q++) { + uint64 pos = b->query_order[q]; + if (!scans && b->opt.miss) { + sum += pos + 1; + } else { + uint64 count = scans ? b->opt.scan_length : 1; + for (uint64 j = 0; j < count; j++) { + sum += get_be(message_data(b->tuples[pos + j].msg)); + if (scans) + sum += + get_be((const char *)key_data(b->tuples[pos + j].tuple_key) + + b->opt.key_bytes - 8); + } + } + } + return sum; +} + +static uint64 +parse_number(const char *value) +{ + char *end; + errno = 0; + unsigned long long n = strtoull(value, &end, 10); + if (errno != 0 || *value == '-' || end == value || *end != '\0') { + fail("invalid numeric argument"); + } + return n; +} + +static bool +parse_switch(const char *value) +{ + if (strcmp(value, "on") == 0) + return true; + if (strcmp(value, "off") == 0) + return false; + fail("switch must be on or off"); + return false; +} + +static options +parse_options(int argc, char **argv) +{ + options o = {.operation = "lookup", + .pattern = "common", + .insert_order = "random", + .keys = 200000, + .key_bytes = 64, + .value_bytes = 100, + .ops = 1000000, + .scan_length = 10000, + .batches = 1, + .seed = 42, + .cache_mib = 512, + .disk_mib = 2048, + .cpu = 2, + .compression = true, + .read_lexical = true}; + static const struct option opts[] = { + {"db", required_argument, 0, 'd'}, + {"operation", required_argument, 0, 'o'}, + {"pattern", required_argument, 0, 'p'}, + {"compression", required_argument, 0, 'c'}, + {"read-lexical", required_argument, 0, 'r'}, + {"keys", required_argument, 0, 'n'}, + {"key-bytes", required_argument, 0, 'k'}, + {"value-bytes", required_argument, 0, 'v'}, + {"ops", required_argument, 0, 'q'}, + {"scan-length", required_argument, 0, 'l'}, + {"batches", required_argument, 0, 'b'}, + {"seed", required_argument, 0, 's'}, + {"cache-mib", required_argument, 0, 'a'}, + {"disk-mib", required_argument, 0, 'D'}, + {"insert-order", required_argument, 0, 'i'}, + {"miss", no_argument, 0, 'm'}, + {"cpu", required_argument, 0, 'C'}, + {"allow-io", no_argument, 0, 'I'}, + {"help", no_argument, 0, 'h'}, + {0, 0, 0, 0}}; + int c; + while ((c = getopt_long(argc, argv, "", opts, NULL)) != -1) { + switch (c) { + case 'd': + o.db = optarg; + break; + case 'o': + o.operation = optarg; + break; + case 'p': + o.pattern = optarg; + break; + case 'c': + o.compression = parse_switch(optarg); + o.compression_set = true; + break; + case 'r': + o.read_lexical = parse_switch(optarg); + o.read_lexical_set = true; + break; + case 'n': + o.keys = parse_number(optarg); + break; + case 'k': + o.key_bytes = parse_number(optarg); + break; + case 'v': + o.value_bytes = parse_number(optarg); + break; + case 'q': + o.ops = parse_number(optarg); + o.ops_set = true; + break; + case 'l': + o.full_scan = strcmp(optarg, "full") == 0; + if (!o.full_scan) + o.scan_length = parse_number(optarg); + break; + case 'b': + o.batches = parse_number(optarg); + break; + case 's': + o.seed = parse_number(optarg); + break; + case 'a': + o.cache_mib = parse_number(optarg); + break; + case 'D': + o.disk_mib = parse_number(optarg); + break; + case 'i': + o.insert_order = optarg; + break; + case 'm': + o.miss = true; + break; + case 'C': + { + uint64 cpu = parse_number(optarg); + if (cpu >= CPU_SETSIZE) + fail("CPU index out of range"); + o.cpu = (int)cpu; + break; + } + case 'I': + o.allow_io = true; + break; + case 'h': + puts("B-tree resident benchmark: --db NEW_PATH --operation " + "insert|overwrite|lookup|scan|pack\n" + " --pattern common|random|nonlexical --compression on|off " + "--read-lexical on|off\n" + " --keys N --key-bytes N --value-bytes N --ops N " + "--scan-length N|full\n" + " --batches N --seed N --cache-mib N --disk-mib N " + "--insert-order random|sorted\n" + " --miss --cpu N --allow-io"); + exit(0); + default: + fail("invalid command-line option"); + } + } + if (optind != argc || o.db == NULL) + fail("--db NEW_PATH is required"); + if (strcmp(o.operation, "insert") && strcmp(o.operation, "overwrite") + && strcmp(o.operation, "lookup") && strcmp(o.operation, "scan") + && strcmp(o.operation, "pack")) + fail("invalid operation"); + if (strcmp(o.pattern, "common") && strcmp(o.pattern, "random") + && strcmp(o.pattern, "nonlexical")) + fail("invalid pattern"); + if (strcmp(o.insert_order, "random") && strcmp(o.insert_order, "sorted")) + fail("invalid insertion order"); + if (strcmp(o.pattern, "nonlexical") == 0) { + if ((o.compression_set && o.compression) + || (o.read_lexical_set && o.read_lexical)) + fail("nonlexical ordering cannot use a lexical flag"); + o.compression = o.read_lexical = false; + } +#if !BTREE_BENCH_PREFIX_SUPPORT + if (o.compression_set && o.compression) { + fail("this baseline build does not support prefix compression"); + } + o.compression = false; + o.read_lexical = false; +#endif + if (o.keys < 2 || o.keys > UINT64_MAX / 2 || o.ops == 0 || o.batches == 0 + || o.key_bytes < 64 || o.key_bytes > MAX_INLINE_KEY_SIZE(PAGE_BYTES) + || o.value_bytes < 8 + || o.value_bytes > MAX_INLINE_MESSAGE_SIZE(PAGE_BYTES) + || o.cache_mib < 32 || o.disk_mib < 64 || o.cache_mib > UINT64_MAX / MIB + || o.disk_mib > UINT64_MAX / MIB) + fail("parameter outside supported bounds"); + if (o.full_scan) + o.scan_length = o.keys; + if (strcmp(o.operation, "scan") == 0) { + if (!o.ops_set) + o.ops = 1000; + if (!o.scan_length || o.scan_length > o.keys) + fail("scan exceeds key count"); + } + if (o.miss && strcmp(o.operation, "lookup")) + fail("--miss requires lookup"); + if (o.keys > UINT64_MAX / o.key_bytes || o.keys > UINT64_MAX / o.value_bytes + || o.keys > UINT64_MAX / o.batches || o.ops > UINT64_MAX / o.batches + || (strcmp(o.operation, "scan") == 0 + && o.ops * o.batches > UINT64_MAX / o.scan_length)) + fail("work count overflow"); + /* Mutable pages are pinned. Reject obviously oversized configurations before + * a cache allocation can stall; actual zero-I/O checks remain authoritative. + */ + long double estimate = 4.0L * o.keys * (o.key_bytes + o.value_bytes + 64); + if (estimate > (long double)o.cache_mib * MIB / 2) + fail("cache lacks conservative headroom for one resident tree"); + return o; +} + +static void +prefault_buffer(buffer_handle *buffer) +{ + volatile unsigned char *pages = platform_buffer_getaddr(buffer); + for (uint64 i = 0; i < buffer->length; i += PAGE_BYTES) + pages[i] = pages[i]; +} + +static void +setup(benchmark *b) +{ + cpu_set_t cpus; + CPU_ZERO(&cpus); + CPU_SET(b->opt.cpu, &cpus); + if (sched_setaffinity(0, sizeof(cpus), &cpus) != 0) + fail("CPU pin failed"); + if (platform_register_thread() != 0) + fail("thread registration failed"); + check( + platform_heap_create(platform_get_module_id(), 512 * MIB, false, &b->hid), + "heap create"); + default_data_config_init(&b->data_cfg); + if (strcmp(b->opt.pattern, "nonlexical") == 0) + b->data_cfg.key_compare = nonlex_compare; + set_lexical(b, b->opt.compression); + make_inputs(b); + io_config_init(&b->io_cfg, + PAGE_BYTES, + EXTENT_BYTES, + O_RDWR | O_CREAT | O_EXCL | O_DIRECT, + 0600, + 256, + b->opt.db); + allocator_config_init(&b->allocator_cfg, &b->io_cfg, b->opt.disk_mib * MIB); + clockcache_config_init( + &b->cache_cfg, &b->io_cfg, b->opt.cache_mib * MIB, NULL, false); + btree_config_init(&b->btree_cfg, &b->cache_cfg.super, &b->data_cfg); + b->io = io_handle_create(&b->io_cfg, b->hid); + if (b->io == NULL) + fail("I/O handle create failed (path must be new)"); + underlying_io_ops = b->io->ops; + measured_io_ops = *underlying_io_ops; + measured_io_ops.read = measured_read; + measured_io_ops.write = measured_write; + measured_io_ops.async_state_init = measured_async_init; + b->io->ops = &measured_io_ops; + check(rc_allocator_init( + &b->al, &b->allocator_cfg, b->io, b->hid, platform_get_module_id()), + "allocator init"); + check(clockcache_init(&b->cc, + &b->cache_cfg, + b->io, + (allocator *)&b->al, + "btree-prefix-bench", + b->hid, + platform_get_module_id()), + "cache init"); + /* Preserve contents while faulting each anonymous cache data page in. */ + prefault_buffer(&b->cc.data_bh); + prefault_buffer(&b->cc.lookup_bh); + prefault_buffer(&b->cc.entry_bh); + prefault_buffer(&b->cc.rc_bh); + prefault_buffer(&b->cc.pincount_bh); + prefault_buffer(&b->cc.batch_bh); + b->scratch = TYPED_MANUAL_ZALLOC( + b->hid, b->scratch, btree_scratch_size(&b->btree_cfg)); + if (b->scratch == NULL) + fail("scratch allocation failed"); + const char *control = getenv("PREFIX_PERF_CONTROL"); + const char *ack = getenv("PREFIX_PERF_ACK"); + if ((control == NULL) != (ack == NULL)) + fail("both perf FIFO paths required"); + if (control != NULL) { + b->perf_control = fopen(control, "w"); + b->perf_ack = fopen(ack, "r"); + if (b->perf_control == NULL || b->perf_ack == NULL) + fail("perf FIFO open failed"); + } +} + +static void +teardown(benchmark *b) +{ + platform_free(b->hid, b->scratch); + io_wait_all(b->io); + clockcache_deinit(&b->cc); + rc_allocator_deinit(&b->al); + b->io->ops = underlying_io_ops; + io_handle_destroy(b->io); + platform_heap_destroy(&b->hid); + platform_deregister_thread(); + free(b->tuples); + free(b->misses); + free(b->key_storage); + free(b->value_storage); + free(b->replacement_storage); + free(b->insert_order); + free(b->query_order); + if (b->perf_control) + fclose(b->perf_control); + if (b->perf_ack) + fclose(b->perf_ack); + /* Only this successfully created, exclusively owned scratch file is removed. + */ + if (unlink(b->opt.db) != 0) + fail("scratch file removal failed"); +} + +int +main(int argc, char **argv) +{ + benchmark *b = allocate(1, sizeof(*b)); + b->opt = parse_options(argc, argv); + uint64 lifecycle_start = clock_ns(CLOCK_MONOTONIC); + setup(b); + if (strcmp(b->opt.operation, "insert") == 0 + || strcmp(b->opt.operation, "overwrite") == 0) + { + run_inserts(b); + } else if (strcmp(b->opt.operation, "pack") == 0) { + uint64 warm_root = pack_once(b, false); + btree_dec_ref( + (cache *)&b->cc, &b->btree_cfg, warm_root, PAGE_TYPE_BRANCH); + for (uint64 batch = 0; batch < b->opt.batches; batch++) { + uint64 root = pack_once(b, true); + btree_dec_ref((cache *)&b->cc, &b->btree_cfg, root, PAGE_TYPE_BRANCH); + b->operations++; + b->processed_tuples += b->opt.keys; + } + } else { + uint64 root = pack_once(b, false); + bool scans = strcmp(b->opt.operation, "scan") == 0; + uint64 expected = expected_query_checksum(b); + /* Full replay warms the exact access sequence and validates all bytes. */ + uint64 warm = + scans ? run_scans(b, root, true) : run_lookups(b, root, true); + if (warm != expected) + fail("warmup checksum mismatch"); + for (uint64 batch = 0; batch < b->opt.batches; batch++) { + counters before = begin_interval(b); + uint64 sum = + scans ? run_scans(b, root, false) : run_lookups(b, root, false); + end_interval(b, before); + if (sum != expected) + fail("measured checksum mismatch"); + b->checksum += sum; + b->expected_checksum += expected; + b->operations += b->opt.ops; + b->returned_tuples += scans ? b->opt.ops * b->opt.scan_length + : (b->opt.miss ? 0 : b->opt.ops); + } + uint64 replay = + scans ? run_scans(b, root, true) : run_lookups(b, root, true); + if (replay != expected) + fail("verification replay checksum mismatch"); + verify_tree(b, root, PAGE_TYPE_BRANCH, false); + btree_dec_ref((cache *)&b->cc, &b->btree_cfg, root, PAGE_TYPE_BRANCH); + } + if (b->checksum != b->expected_checksum) + fail("final checksum mismatch"); + teardown(b); + uint64 lifecycle_ns = clock_ns(CLOCK_MONOTONIC) - lifecycle_start; + bool resident = b->total.read_bytes == 0 && b->total.write_bytes == 0 + && b->total.major_faults == 0 && b->total.io_reads == 0 + && b->total.io_writes == 0 && b->total.io_async_reads == 0 + && b->total.io_async_writes == 0; + printf( + "{\"schema_version\":1,\"operation\":\"%s\",\"pattern\":\"%s\"," + "\"insert_order\":\"%s\",\"keys\":%lu,\"key_bytes\":%lu,\"value_bytes\":%" + "lu," + "\"requested_ops\":%lu,\"scan_length\":%lu,\"batches\":%lu,\"seed\":%lu," + "\"cache_mib\":%lu,\"disk_mib\":%lu,\"cpu\":%d,\"miss\":%s," + "\"prefix_supported\":%s,\"pack_lexical\":%s,\"read_lexical\":%s," + "\"operations\":%lu,\"tuples\":%lu,\"returned_tuples\":%lu,\"processed_" + "tuples\":%lu," + "\"active_wall_ns\":%lu,\"process_cpu_ns\":%lu," + "\"user_cpu_ns\":%lu,\"system_cpu_ns\":%lu," + "\"active_read_bytes\":%lu,\"active_write_bytes\":%lu," + "\"minor_faults\":%lu,\"major_faults\":%lu," + "\"io_reads\":%lu,\"io_writes\":%lu,\"io_async_reads\":%lu,\"io_async_" + "writes\":%lu," + "\"lifecycle_wall_ns\":%lu,\"checksum\":%lu,\"expected_checksum\":%lu," + "\"verified_tuples\":%lu,\"verified_values\":%lu," + "\"packed_bytes\":%lu,\"leaf_count\":%lu,\"compressed_leaf_count\":%lu," + "\"prefix_bytes\":%lu,\"resident\":%s,\"verified\":true}\n", + b->opt.operation, + b->opt.pattern, + b->opt.insert_order, + b->opt.keys, + b->opt.key_bytes, + b->opt.value_bytes, + b->opt.ops, + b->opt.scan_length, + b->opt.batches, + b->opt.seed, + b->opt.cache_mib, + b->opt.disk_mib, + b->opt.cpu, + b->opt.miss ? "true" : "false", + BTREE_BENCH_PREFIX_SUPPORT ? "true" : "false", + b->opt.compression ? "true" : "false", + b->opt.read_lexical ? "true" : "false", + b->operations, + b->returned_tuples + b->processed_tuples, + b->returned_tuples, + b->processed_tuples, + b->total.wall_ns, + b->total.cpu_ns, + b->total.user_ns, + b->total.system_ns, + b->total.read_bytes, + b->total.write_bytes, + b->total.minor_faults, + b->total.major_faults, + b->total.io_reads, + b->total.io_writes, + b->total.io_async_reads, + b->total.io_async_writes, + lifecycle_ns, + b->checksum, + b->expected_checksum, + b->verified_tuples, + b->verified_values, + b->packed_bytes, + b->leaf_count, + b->compressed_leaf_count, + b->prefix_bytes, + resident ? "true" : "false"); + free(b); + return 0; +} diff --git a/benchmarks/build_btree_prefix_bench.py b/benchmarks/build_btree_prefix_bench.py new file mode 100644 index 000000000..acaf845a7 --- /dev/null +++ b/benchmarks/build_btree_prefix_bench.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python3 +"""Build one B-tree harness against verified frozen main/current libraries. + +Only links the harness; never rebuilds or mutates either source tree/library. +The metadata input is the archived profile map from the prefix campaign. This +helper acquires the shared exclusive machine lock, archives source and compiler +provenance, and refuses existing output artifacts. No benchmarks are launched. +""" + +import argparse +import datetime +import fcntl +import hashlib +import json +import os +from pathlib import Path +import signal +import subprocess +import tempfile + + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + + +def now(): + return datetime.datetime.now(datetime.timezone.utc).isoformat() + + +def verify_profile(profile): + tree = Path(profile['tree']) + library = Path(profile['library']) + if sha(library) != profile['library_sha256']: + raise RuntimeError(f'Frozen library changed: {library}') + sources = profile['source_files_sha256'] + for relative, digest in sources.items(): + if sha(tree / relative) != digest: + raise RuntimeError(f'Frozen source changed: {tree / relative}') + return dict(tree=str(tree), library=str(library), + library_sha256=profile['library_sha256'], + source_files_sha256=sources) + + +def stop_group(proc): + if proc is None: + return + try: + os.killpg(proc.pid, signal.SIGTERM) + except ProcessLookupError: + pass + try: + proc.wait(timeout=5) + except subprocess.TimeoutExpired: + pass + # Retire descendants even if the original compiler driver already exited. + try: + os.killpg(proc.pid, signal.SIGKILL) + except ProcessLookupError: + pass + proc.wait() + + +def invoke(command, log, environment): + proc = None + with log.open('x') as stream: + try: + proc = subprocess.Popen(command, stdout=stream, + stderr=subprocess.STDOUT, + env=environment, start_new_session=True) + result = proc.wait(timeout=600) + if result: + raise RuntimeError(f'Compiler exited {result}; see {log}') + except BaseException: + stop_group(proc) + raise + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--metadata', type=Path, required=True) + parser.add_argument('--current-profile', default='highwater') + parser.add_argument('--output-dir', type=Path, required=True) + parser.add_argument('--archive-dir', type=Path, required=True) + parser.add_argument('--machine-lock', type=Path, required=True) + parser.add_argument('--cc', default='cc') + args = parser.parse_args() + args.metadata = args.metadata.resolve() + args.output_dir = args.output_dir.resolve() + args.archive_dir = args.archive_dir.resolve() + args.machine_lock = args.machine_lock.resolve() + source = Path(__file__).with_name('btree_prefix_bench.c').resolve() + source_hash = sha(source) + metadata_hash = sha(args.metadata) + frozen = json.loads(args.metadata.read_text()) + profiles = {'main': frozen['main'], 'current': frozen[args.current_profile]} + artifact_dir = args.archive_dir / 'build' + output = args.archive_dir / 'build.json' + if output.exists() or artifact_dir.exists(): + parser.error('Build archive/output already exists; choose a fresh archive') + args.output_dir.mkdir(parents=True, exist_ok=True) + args.archive_dir.mkdir(parents=True, exist_ok=True) + artifact_dir.mkdir() + source_copy = artifact_dir / source.name + source_copy.write_bytes(source.read_bytes()) + runner_copy = artifact_dir / Path(__file__).name + runner_copy.write_bytes(Path(__file__).read_bytes()) + started = now() + print('Waiting for exclusive machine lock', flush=True) + # The shared coordination file already exists outside this worktree's + # writable roots. flock(EX) needs no filesystem mutation or write access. + with args.machine_lock.open('r') as lock: + fcntl.flock(lock, fcntl.LOCK_EX) + print('Acquired exclusive machine lock; linking two harnesses', flush=True) + identities = {name: verify_profile(p) for name, p in profiles.items()} + compiler = subprocess.check_output([args.cc, '--version'], text=True) + results = {} + for name, identity in identities.items(): + tree = Path(identity['tree']) + prefix = 'key_compare_is_lexical' in (tree / 'include/splinterdb/data.h').read_text() + binary = args.output_dir / f'{name}-btree-prefix-bench' + if binary.exists(): + raise RuntimeError(f'Binary already exists: {binary}') + tmp = Path(tempfile.mkdtemp(prefix=f'build-{name}-', dir=args.output_dir)) + environment = dict(os.environ, TMPDIR=str(tmp)) + command = [args.cc, '-D_GNU_SOURCE', '-ggdb', '-Wall', '-pthread', + '-Werror', '-Wvla', '-DXXH_STATIC_LINKING_ONLY', '-fPIC', + '-DSPLINTERDB_PLATFORM_DIR=platform_linux', + f'-DBTREE_BENCH_PREFIX_SUPPORT={int(prefix)}', + '-O3', '-ffast-math', '-flto', '-march=native', + '-I', str(tree / 'include'), '-I', str(tree / 'src'), + '-I', str(tree / 'src/platform_linux'), str(source_copy), + identity['library'], '-laio', '-lxxhash', '-lm', '-lpthread', + '-o', str(binary)] + log = artifact_dir / f'{name}-compile.log' + invoke(command, log, environment) + verify_profile(profiles[name]) + results[name] = dict(identity, binary=str(binary), + binary_sha256=sha(binary), source=str(source_copy), + source_sha256=source_hash, prefix_supported=prefix, + command=command, compiler=compiler, build_log=str(log), + build_log_sha256=sha(log), tmpdir=str(tmp)) + print(f'Built {name}: {binary}', flush=True) + for profile in profiles.values(): + verify_profile(profile) + if sha(source) != source_hash or sha(source_copy) != source_hash: + raise RuntimeError('Harness source changed during compilation') + if sha(args.metadata) != metadata_hash: + raise RuntimeError('Input metadata changed during compilation') + results['_build'] = dict(started=started, finished=now(), + input_metadata=str(args.metadata), input_metadata_sha256=metadata_hash, + runner=str(runner_copy), runner_sha256=sha(runner_copy), + machine_lock=str(args.machine_lock), machine_lock_mode='exclusive', + runtime_sources_unchanged=True) + with output.open('x') as stream: + json.dump(results, stream, indent=2, allow_nan=False) + stream.write('\n') + print(output, flush=True) + + +if __name__ == '__main__': + def interrupted(signum, frame): + raise KeyboardInterrupt(f'signal {signum}') + signal.signal(signal.SIGTERM, interrupted) + main() diff --git a/benchmarks/build_prefix_bench.py b/benchmarks/build_prefix_bench.py new file mode 100644 index 000000000..2f848d58f --- /dev/null +++ b/benchmarks/build_prefix_bench.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""Build identical prefix workload code against a baseline or candidate tree. + +PREFIX_PATTERN=common|random|nonlexical selects 64-byte keys. Random keys have +uniformly dispersed first words, random tails, and a rank for validation. All +patterns preserve the kvbench logical-id ordering under their comparator. +PREFIX_DISABLE=1 disables compression on a capable candidate, for A/B control. +""" +import argparse +import hashlib +import json +from pathlib import Path +import subprocess + +p = argparse.ArgumentParser() +p.add_argument('tree', type=Path) +p.add_argument('--build-root', default='build') +a = p.parse_args() +tree = a.tree.resolve() +source = Path(__file__).with_name('kvbench.c').read_text() +source = source.replace('#define KEY_SIZE 24', '#define KEY_SIZE 64') +begin = source.index('static inline void\nmake_key(') +end = source.index('static inline void\nmake_value(', begin) +source = source[:begin] + r''' +static int prefix_pattern; +static uint64_t *prefix_random_words; + +static int +prefix_word_compare(const void *a, const void *b) +{ + uint64_t x = *(const uint64_t *)a, y = *(const uint64_t *)b; + return (x > y) - (x < y); +} + +static int +prefix_nonlexical_compare(const data_config *cfg, user_key a, user_key b) +{ + (void)cfg; + if (slice_length(a.key) != KEY_SIZE || slice_length(b.key) != KEY_SIZE) + abort(); + return memcmp((const char *)slice_data(a.key) + 56, + (const char *)slice_data(b.key) + 56, 8); +} + +static void +prefix_configure(void) +{ + const char *pattern = getenv("PREFIX_PATTERN"); + if (pattern == NULL || strcmp(pattern, "common") == 0) prefix_pattern = 0; + else if (strcmp(pattern, "random") == 0) prefix_pattern = 1; + else if (strcmp(pattern, "nonlexical") == 0) prefix_pattern = 2; + else { fprintf(stderr, "Unknown PREFIX_PATTERN %s\n", pattern); exit(2); } + if (prefix_pattern == 2) data_cfg.key_compare = prefix_nonlexical_compare; +#ifdef KVBENCH_PREFIX_SUPPORT + data_cfg.key_compare_is_lexical = prefix_pattern != 2 + && getenv("PREFIX_DISABLE") == NULL; +#endif + if (prefix_pattern == 1) { + if (opt.n > SIZE_MAX / 2 / sizeof(uint64_t)) abort(); + prefix_random_words = malloc(2 * opt.n * sizeof(uint64_t)); + if (!prefix_random_words) abort(); + for (uint64_t i = 0; i < 2 * opt.n; i++) + prefix_random_words[i] = mix(i + opt.seed * 1000003); + qsort(prefix_random_words, 2 * opt.n, sizeof(uint64_t), prefix_word_compare); + } + printf("prefix-pattern=%s key_bytes=%d compression_disabled=%s\n", + pattern ? pattern : "common", KEY_SIZE, + getenv("PREFIX_DISABLE") ? "true" : "false"); +} + +static inline void +prefix_encode_word(uint64_t word, char *key) +{ + for (int i = 0; i < 8; i++) key[i] = (char)(word >> (56 - 8 * i)); +} + +static inline void +make_key(uint64_t k, char *key) +{ + if (prefix_pattern == 0) { + memset(key, 'p', 48); + prefix_encode_word(k, key + 48); + } else { + for (unsigned i = 0; i < 7; i++) + prefix_encode_word(mix(k + (uint64_t)i * UINT64_C(0x9e3779b97f4a7c15)), + key + i * 8); + if (prefix_pattern == 1) prefix_encode_word(prefix_random_words[k], key); + } + prefix_encode_word(k, key + 56); +} + +static inline bool +decode_key(slice s, uint64_t *k) +{ + if (slice_length(s) != KEY_SIZE) return false; + const unsigned char *bytes = slice_data(s); + uint64_t rank = 0; + for (unsigned i = 56; i < 64; i++) rank = (rank << 8) | bytes[i]; + if (rank >= 2 * opt.n) return false; + char expected[KEY_SIZE]; + make_key(rank, expected); + *k = rank; + return memcmp(bytes, expected, KEY_SIZE) == 0; +} + +''' + source[end:] +source = source.replace('static const char KEY_PAD[16] = "kvbench-padding!";', '') +source = source.replace('default_data_config_init(&data_cfg);', + 'default_data_config_init(&data_cfg); prefix_configure();') +binary = tree / a.build_root / 'release/bin/prefix_kvbench' +binary.parent.mkdir(parents=True, exist_ok=True) +generated = binary.with_suffix('.c') +generated.write_text(source) +command = ['cc', '-D_GNU_SOURCE', '-ggdb', '-Wall', '-pthread', '-Werror', + '-DXXH_STATIC_LINKING_ONLY', '-fPIC', '-DSPLINTERDB_PLATFORM_DIR=platform_linux', + '-O3', '-ffast-math', '-flto', '-march=native', '-DKVBENCH_CLOSE_HAS_FORCE', + '-DKVBENCH_SPACE_MODE'] +if 'key_compare_is_lexical' in (tree / 'include/splinterdb/data.h').read_text(): + command.append('-DKVBENCH_PREFIX_SUPPORT') +command += ['-I', str(tree / 'include'), str(generated), + str(tree / a.build_root / 'release/lib/libsplinterdb.a'), '-laio', '-lxxhash', '-lm', + '-lpthread', '-o', str(binary)] +subprocess.run(command, check=True) +binary.with_suffix('.json').write_text(json.dumps(dict( + command=command, source_sha256=hashlib.sha256(source.encode()).hexdigest(), + binary_sha256=hashlib.sha256(binary.read_bytes()).hexdigest()), indent=2) + '\n') +print(binary) diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/.clang-format b/benchmarks/results-20261013/main-fc0bc8f7-screen/.clang-format new file mode 100644 index 000000000..9d159247d --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/.clang-format @@ -0,0 +1,2 @@ +DisableFormat: true +SortIncludes: false diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/README.txt b/benchmarks/results-20261013/main-fc0bc8f7-screen/README.txt new file mode 100644 index 000000000..d31b552ab --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/README.txt @@ -0,0 +1,25 @@ +Fresh integration screen on main fc0bc8f7 + +26 serialized O_DIRECT real-disk invocations:5 fixture loads plus21 query runs. +Databases:ext4 /dev/mapper/snafu-root_crypt. CPU0-11,200000 records,128MiB cache, +3-second measured query phases,8threads. Two samples per candidate;main controls +bookend/interleave. Values and range ordering validated, zero errors/violations. +This resident screen is not a full performance matrix or tail-neutrality claim. + +Alternative cache directories retain substantial point/short-range costs: +scalar/SIMD point around25% slower;atomic point6.25%,short scans9.10% slower. +Invalid-address results overlap main ranges (point-0.25%,short-4.39%). +Prefix common-key point/short scans about2% higher;long scans lower with wide +overlapping ranges. Random-key results also overlap main. Preserve earlier +workload-dependent caveats;this screen does not isolate the cost of merging. + +Each build record hashes compiled source,library,harness,executable and config, +and verified_runtime_commit identifies the committed runtime exactly. The head +field may precede commit because builds occurred before evidence was committed. +Runtime hash checks against committed source all passed. Archive omits binaries +and databases;original commands/paths are retained. + +The executed driver is run_benchmarks-screen.py (hash in runs/manifest.json). +It imports imported-run_matrix.py from the recorded campaign location. Later +build helper records include build-config metadata. PREFIX_PATTERN and disabled +state were audited from every prefix harness log;compression_disabled=false. diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/archive-manifest.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/archive-manifest.json new file mode 100644 index 000000000..d7ac1e51d --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/archive-manifest.json @@ -0,0 +1,57 @@ +{ + "log-sync-build.json": "ee840093403178f7bf01ecf77ed76ca327072b17325f7cf52f3489982b52ee80", + "directory-bucket-build.json": "536d0367fe02a8683cfdb9f2d10240370f1122baf7517d09a19325a8e528bd21", + ".clang-format": "f8405bf75d1ab2ed2e69b525a538b409b801812a7c71225da7bb46434f7dcc18", + "host.json": "1b5c083c200833db9300f5280d4a427b08fff146c09f4d039e875a8b7cf20d1b", + "README.txt": "96b915492dbd5910bd3f2be404149a19b8dca8fd166bf00cba0ef911fe1c5325", + "log-async-build.json": "9cbbe115bc96ed61102cbb6e4675bd34e1c8232fdc1903d38714990982b87561", + "branch-prefix-build.json": "cc63913592751b087160a65b7e05d80b51fb38a34f505a2f873d55374deb1482", + "build_benchmarks.py": "b0d5d339d4aa5984a9776ec53e317acf857471a00970b62d870859cc1a3303e9", + "directory-bucket-simd-build.json": "22201216ff59a4d8d82edeff4f0aec1b5f6cba9b281c7e8cae5eb6f4aedc8af6", + "imported-run_matrix.py": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "cache-invalid-addresses-build.json": "c2bcce04c0931c54e1a4f9c67141696f3e5400dcefebd561be67dbdff578815e", + "branch-summary.log": "1b6ddb2643d1aacc0878c66eb4eef68421735c6da688ca3f272925fdf41b56d0", + "directory-bucket-atomic-build.json": "980ee48d0bdac6b419ae0d3c7410c958403aab3056afb4b4eb005393f321fb36", + "run_job.py": "908d86de805e6efd41b423c919187f2df14715104f047e10fa8a6c57129cc773", + "run_benchmarks-screen.py": "283a0b06d41b61bb6f8eae78fa3be28883b07b41966f8453b6bc19233f2fc48f", + "directory-direct-build.json": "708ee340cf95405fc03ad6407ce4bd01c5156f579eb76dedfc5373e9a060d9f1", + "main-build.json": "8ce2dbc33f76ad635d78f6f3fb1904c2b3408a12aeca10504d7ee4a8a78b10cc", + "harnesses/kvbench.c": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9", + "harnesses/prefix_kvbench.c": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "harnesses/insert_benchmark.c": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4", + "runs/ordinary-12-main.log": "4c63cdfb549fba47a0e57ac7d494c551759b3d7776bc8bfac672e151f005ce3f", + "runs/fixture-main-ordinary.log": "ec24ffc5ed923d68c10142bdd8921a7fcb8ed58bd37d0d61d6c3c000254ce10b", + "runs/ordinary-9-directory-bucket.log": "8c7816859b271ce9337faf3f687b951a09ea561afb7e41d2bd4124684a035560", + "runs/ordinary-8-directory-bucket-simd.log": "a77a95913bf5e26ad82a7db384201e0b5733dbe9b400bed2a1692d7073a7ab9a", + "runs/ordinary-0-main.log": "1f5d5a4d7cc0806312c0acc2bc372c62df385f4f369a0c750de4e7dc672ca8e9", + "runs/ordinary-10-directory-direct.log": "a8a9413c4853daa7a02bbaa53c1eaf08c1eb3a53f88e453a00d1704ce347fea5", + "runs/random-1-branch-prefix.log": "03e31f3adfd2b96874d3f6658f912faadda30d7c732d21094b4e3d97b4cc3764", + "runs/fixture-branch-prefix-common.log": "ecb2f7cb3cbe4c825d92c5f3c6f1cfe8f13323382a64c7d22233e46dc15ce74e", + "runs/ordinary-7-directory-bucket-atomic.log": "755d7fec7b2b17887c69a39a81f75642874e5049e6cf0b1062f48458a87b11e7", + "runs/manifest.json": "31647b3b32d1ed09c33c65c719057c034c0b910cfa1673ccb4514999bd01cdb1", + "runs/ordinary-1-cache-invalid-addresses.log": "d5f4d3ba17042fc4bc49d8361a68c9d08f84f0c67f30b5116a60a65831fc3bbe", + "runs/fixture-main-random.csv": "ffe18612ca478f8b83c3c094a35c43bbf7a96b719c65df14cd05610f97576d5e", + "runs/common-results.csv": "f255481860e025252551bb1ca899f9a5c8929e4298db8e10267d755fd1f7f3a6", + "runs/fixture-main-ordinary.csv": "90b3ffd2ca31f0c348184a42b18b81bf8067da3faa4d584868467d704411b0e5", + "runs/common-0-main.log": "ddc4fee0c9a2d7b54f5837177c1db1e29fb0fb4ec1e3ec5ad5d96d8ec41af62c", + "runs/common-1-branch-prefix.log": "adc2a2dca4986f4ae87d901a5c90882c5f9f900ac3213d346e96bcc3a4b5b243", + "runs/fixture-main-random.log": "c75d5666625b43ecf66c59d80abc902affce1583a78e2273fa95924592bc3727", + "runs/ordinary-5-directory-bucket-atomic.log": "587eef33408ce4d0c51d94bffebfa70d13fa36acdef92d9bc5d4bc8d1fec2293", + "runs/fixture-main-common.csv": "cf49e40c100fc3dadbc2dd064200b0d52450aecf438dd87798e46eb51657f7c5", + "runs/fixture-branch-prefix-random.csv": "b5b37d997e50ca659c74cdc8d4c59b91c83639de8f08e3abe7f2a5655e1d1726", + "runs/fixture-branch-prefix-common.csv": "a3f23b1793ef75bc232d8b08e0aec78232d8f6634aa067f750f2d37598172a21", + "runs/random-3-main.log": "98a03b068a5157fac5b85f036012fb3afc63ce4fb0293cc12ec6932854fdb2bb", + "runs/common-2-branch-prefix.log": "a6f93fe7aaef848dfdb2cdf86fb0bbc13a459fc4493244f015d4139ac204f91f", + "runs/ordinary-11-cache-invalid-addresses.log": "b1bbe94a0f1fe166088d979dc8a0065f998aa867a8e506109e9e8b6b1041634f", + "runs/ordinary-2-directory-direct.log": "cb28adb38b2b22073f8e75f1fdfc049615065a5359e3fcf2f3865e6e5fc25b48", + "runs/ordinary-4-directory-bucket-simd.log": "488425c15969e707ef9d24ba626a9ad09810b4e6f255f45530b3c4cbd0a9fc7c", + "runs/random-results.csv": "1024edec33e5a4517197c560de55f2b293a4810ff171bea722a52f040d03e5e1", + "runs/fixture-branch-prefix-random.log": "81bde8489c71c772a3bc336e1808077a75ed081965be097529f9d74a573a9a58", + "runs/ordinary-6-main.log": "9c56215fca60ec0d53ffd68452d87f6c96e245aab8edbe75431749859c1fd302", + "runs/common-3-main.log": "a50d12509f7e55a73a2bbd5e33c42d89dbb4440965ff6a0bbc6efac8c155ca35", + "runs/ordinary-3-directory-bucket.log": "32ea1a879823e98e5533ff94c85170f1077a743c00746a02a914ad715ac03fa2", + "runs/random-0-main.log": "d0c1da7e9f21b859e6c0f7e7925527139e100db6f9cdd203d11099c5aad0b028", + "runs/fixture-main-common.log": "4e6a1eae1130ebf28013220575a11954444f00b42af2820e6724ae53e7ebade2", + "runs/ordinary-results.csv": "12e81f5643532ddfbbd28c90d72e45c1ab7b5237fa3d3707146b55b71e8c1b22", + "runs/random-2-branch-prefix.log": "f7ebdf631982d76650bc542dc6dd6dab8ae21a4e7e6da0cea3052bada1f53338" +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-prefix-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-prefix-build.json new file mode 100644 index 000000000..a21a0a50e --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-prefix-build.json @@ -0,0 +1,233 @@ +{ + "profile": "branch-prefix", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "dfb8412a91370d831fb5181d84a6d6f0c2cb8183866847dca9d7bc2596f08404", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/insert_benchmark", + "binary_sha256": "99b23ee3f6351c2810b32c2d60576a9dcb267bcc373c5476e5f595f2c5825510", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/kvbench", + "binary_sha256": "74f9390dc0512effbc1630962df7f4a6c9fa44c1c635c38d84ec7f2edd5ffc65", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + }, + "prefix_kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/prefix_kvbench.c", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51" + } + }, + "verified_runtime_commit": "19302e1a5b1d0208e2af92adff2e045566dcb146", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/build-config.fb6bc8eeb8390429253883c09491f5bd": { + "sha256": "267ec476381983cf889134d1c4d86d65720e844a278482a4a0a67fb7dea8c554", + "text": "BUILD_ROOT=build-main-fc0bc8f7\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-prefix-main-fc0-release-build-3tfr74p6/GMfifo7 -- BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-summary.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-summary.log new file mode 100644 index 000000000..f4560ab6e --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/branch-summary.log @@ -0,0 +1,42 @@ +Main fc0bc8f7 integration and asynchronous log policy +All database files use verified real ext4 disk and O_DIRECT; jobs are serialized. +These are short closed-loop samples; sample ranges are not confidence intervals. + +Branch screen, ordinary: resident200k records,3-second measured phases,8threads;2 candidate samples. +Prefix format uses separate images with identical logical tuples. Warm/point/range values validated. + cache-invalid-addresses point:uniform@8 mean=5212952/s range=[5161738,5264167] vsMain=-0.25% + directory-bucket point:uniform@8 mean=3840181/s range=[3721427,3958934] vsMain=-26.52% + directory-bucket-atomic point:uniform@8 mean=4899326/s range=[4802080,4996572] vsMain=-6.25% + directory-bucket-simd point:uniform@8 mean=3923342/s range=[3876651,3970033] vsMain=-24.93% + directory-direct point:uniform@8 mean=5044760/s range=[5005074,5084446] vsMain=-3.47% + main point:uniform@8 mean=5226056/s range=[4934240,5379428] vsMain=+0.00% + cache-invalid-addresses range:uniform:10000@8 mean=3776/s range=[3753,3800] vsMain=+2.59% + directory-bucket range:uniform:10000@8 mean=3627/s range=[3517,3737] vsMain=-1.46% + directory-bucket-atomic range:uniform:10000@8 mean=3521/s range=[3488,3554] vsMain=-4.34% + directory-bucket-simd range:uniform:10000@8 mean=3732/s range=[3688,3776] vsMain=+1.39% + directory-direct range:uniform:10000@8 mean=3686/s range=[3581,3791] vsMain=+0.13% + main range:uniform:10000@8 mean=3681/s range=[3523,3903] vsMain=+0.00% + cache-invalid-addresses range:uniform:1@8 mean=493541/s range=[477968,509115] vsMain=-4.39% + directory-bucket range:uniform:1@8 mean=428708/s range=[427649,429768] vsMain=-16.95% + directory-bucket-atomic range:uniform:1@8 mean=469227/s range=[469028,469426] vsMain=-9.10% + directory-bucket-simd range:uniform:1@8 mean=426481/s range=[416446,436515] vsMain=-17.38% + directory-direct range:uniform:1@8 mean=504860/s range=[495761,513960] vsMain=-2.20% + main range:uniform:1@8 mean=516223/s range=[493451,545448] vsMain=+0.00% + +Branch screen, common: resident200k records,3-second measured phases,8threads;2 candidate samples. +Prefix format uses separate images with identical logical tuples. Warm/point/range values validated. + branch-prefix point:uniform@8 mean=4310843/s range=[4231833,4389853] vsMain=+1.95% + main point:uniform@8 mean=4228331/s range=[4215987,4240675] vsMain=+0.00% + branch-prefix range:uniform:10000@8 mean=3694/s range=[3628,3760] vsMain=-9.52% + main range:uniform:10000@8 mean=4083/s range=[3705,4460] vsMain=+0.00% + branch-prefix range:uniform:1@8 mean=1132655/s range=[1132470,1132839] vsMain=+1.99% + main range:uniform:1@8 mean=1110507/s range=[1109478,1111537] vsMain=+0.00% + +Branch screen, random: resident200k records,3-second measured phases,8threads;2 candidate samples. +Prefix format uses separate images with identical logical tuples. Warm/point/range values validated. + branch-prefix point:uniform@8 mean=4058881/s range=[3966374,4151388] vsMain=-0.73% + main point:uniform@8 mean=4088600/s range=[3948079,4229122] vsMain=+0.00% + branch-prefix range:uniform:10000@8 mean=3411/s range=[3125,3697] vsMain=-5.91% + main range:uniform:10000@8 mean=3626/s range=[3395,3856] vsMain=+0.00% + branch-prefix range:uniform:1@8 mean=1043180/s range=[1025362,1060998] vsMain=-1.90% + main range:uniform:1@8 mean=1063372/s range=[1042880,1083863] vsMain=+0.00% diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/build_benchmarks.py b/benchmarks/results-20261013/main-fc0bc8f7-screen/build_benchmarks.py new file mode 100644 index 000000000..c0e33d2ef --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/build_benchmarks.py @@ -0,0 +1,69 @@ +"""Build identical harness sources against separately compiled branch libraries.""" +import hashlib +import json +import shutil +import subprocess +import sys +from pathlib import Path + +ROOT = Path('/home/rob/projects/splinterdb') +CAMP = ROOT / '.cache/projects-20261011' +OUT = Path(__file__).resolve().parent + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + +profiles = { + 'main': (OUT / 'sources/main', 'build'), + 'log-sync': (OUT / 'sources/log-sync', 'build'), + 'log-async': (CAMP / 'worktrees/log-group-limit', 'build-main-fc0bc8f7'), + 'branch-prefix': (CAMP / 'worktrees/branch-prefix', 'build-main-fc0bc8f7'), + 'cache-invalid-addresses': (CAMP / 'worktrees/cache-invalid-addresses', 'build-main-fc0bc8f7'), +} +for variant in ['direct', 'bucket', 'bucket-simd', 'bucket-atomic']: + profiles['directory-' + variant] = (CAMP / 'worktrees/cache-directory', 'build-main-fc0bc8f7/' + variant) + +sources = OUT / 'harnesses' +sources.mkdir(exist_ok=True) +for name, source in { + 'insert_benchmark': OUT / 'sources/log-sync/benchmarks/insert_benchmark.c', + 'kvbench': CAMP / 'coordination/main-7bb5fab/benchmarks/sources/kvbench.c', + 'prefix_kvbench': CAMP / 'coordination/main-7bb5fab/benchmarks/sources/prefix_kvbench.c', +}.items(): + target = sources / (name + '.c') + if target.exists(): + assert sha(target) == sha(source) + else: + shutil.copyfile(source, target) + +for profile in sys.argv[1:]: + tree, build = profiles[profile] + lib = tree / build / 'release/lib/libsplinterdb.a' + head = json.loads((tree / 'source.json').read_text())['commit'] if (tree / 'source.json').exists() else subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=tree, text=True).strip() + record = dict(profile=profile, tree=str(tree), head=head, library=str(lib), library_sha256=sha(lib), source_files_sha256={}, binaries={}) + record['library_build_configs'] = {str(p): {'sha256': sha(p), 'text': p.read_text()} for p in sorted(lib.parent.parent.glob('build-config.*'))} + for subdir in ['src', 'include']: + for path in sorted((tree / subdir).rglob('*')): + if path.is_file(): + record['source_files_sha256'][str(path.relative_to(tree))] = sha(path) + binaries = ['insert_benchmark'] if profile.startswith('log-') else ['insert_benchmark', 'kvbench'] + if profile in ['main', 'branch-prefix']: + binaries.append('prefix_kvbench') + for name in binaries: + source = sources / (name + '.c') + exe = OUT / 'bin' / profile / name + exe.parent.mkdir(parents=True, exist_ok=True) + macros = [] + if name == 'insert_benchmark' and not profile.startswith('log-'): + macros += ['-DKVBENCH_NO_LOG_GROUP_LIMIT'] + if name in ['kvbench', 'prefix_kvbench']: + macros += ['-DKVBENCH_CLOSE_HAS_FORCE'] + if name == 'prefix_kvbench': + macros += ['-DKVBENCH_SPACE_MODE'] + if profile == 'branch-prefix': + macros += ['-DKVBENCH_PREFIX_SUPPORT'] + command = ['gcc', '-D_GNU_SOURCE', '-ggdb', '-Wall', '-pthread', '-Werror', '-DXXH_STATIC_LINKING_ONLY', '-fPIC', '-DSPLINTERDB_PLATFORM_DIR=platform_linux', '-O3', '-ffast-math', '-flto', '-march=native', *macros, '-I', str(tree / 'include'), '-I', str(tree / 'src'), '-I', str(tree / 'src/platform_linux'), str(source), str(lib), '-laio', '-lxxhash', '-lm', '-lpthread', '-o', str(exe)] + print('Building', profile, name, flush=True) + subprocess.run(command, check=True) + record['binaries'][name] = dict(command=command, binary=str(exe), binary_sha256=sha(exe), source=str(source), source_sha256=sha(source)) + (OUT / (profile + '-build.json')).write_text(json.dumps(record, indent=2) + '\n') diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/cache-invalid-addresses-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/cache-invalid-addresses-build.json new file mode 100644 index 000000000..4e8405d1b --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/cache-invalid-addresses-build.json @@ -0,0 +1,195 @@ +{ + "profile": "cache-invalid-addresses", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses", + "head": "d70fd5b21fe489d9956f89cbb10abafb00b30191", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "library_sha256": "25d2a1d3e62b987ee8393f2ba50be459564edded1b53c884e8c43ebcfea26adc", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "b4abc6b19ddcc1732367434dede1b91d616ec1340c3273fad803e11ad56416fc", + "src/clockcache.c": "14bfdbb00476f9070b21a4fe0cdb7918e3021e4240201cc516e0a6b671844026", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "dfb8412a91370d831fb5181d84a6d6f0c2cb8183866847dca9d7bc2596f08404", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/insert_benchmark", + "binary_sha256": "620fb64b32c415131013818da0cbb3cc8ebf68af58928fa58893d62a90ecae24", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/kvbench", + "binary_sha256": "be2fa0a4349ef38ec50215b84d085074df2449c01c84f709df4112cbc2d0053b", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + } + }, + "verified_runtime_commit": "d70fd5b21fe489d9956f89cbb10abafb00b30191", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-invalid-addresses/build-main-fc0bc8f7/release/build-config.fb6bc8eeb8390429253883c09491f5bd": { + "sha256": "28005a5dfc53007e4289bffdad727b9f976ba758f803d78f50558847f9dc29ba", + "text": "BUILD_ROOT=build-main-fc0bc8f7\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-cache-invalid-addresses-fc0-direct-release-build-7vdjrk4f/GMfifo4 -- BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-atomic-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-atomic-build.json new file mode 100644 index 000000000..c3d5e59e4 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-atomic-build.json @@ -0,0 +1,196 @@ +{ + "profile": "directory-bucket-atomic", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory", + "head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-atomic/release/lib/libsplinterdb.a", + "library_sha256": "b9d6621ae64de6f5f5d8eca54ee7117e25575c1a26af6057c4c138c2e2cf3b07", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "c10cfa3d9c64f8ce83b8d1cd08266c95a611fd74beacc01332bb12751c5659d4", + "src/clockcache.h": "3ec95ccd705e32d99fd0d4d0ec56eae94354eb3e64b5cf8317d0798b9a6fec75", + "src/clockcache_directory.h": "c359df34d24f7996b25fdcfd32a3d55c628baaa5b6762a0e0c1670f093723856", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "695806f15aad43e774be5d42f67ebe8bd24f4d74ac7038b42ba7ecbf3a9b7878", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-atomic/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/insert_benchmark", + "binary_sha256": "f668ce1703699560806813b170b034009553c8108c1806a50fb742b0aa13684a", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-atomic/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/kvbench", + "binary_sha256": "70b72a8fa46aedf0859dafab6d01f1db5955c23fe30bb0c4e459623ca6a60948", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + } + }, + "verified_runtime_commit": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-atomic/release/build-config.f646c568accbbdced1f6fe7c5ea4b7db": { + "sha256": "1effb10ec57a83144fcb2d39e9d885bdfdc74412129719f8a0e6f8b61eeb0473", + "text": "BUILD_ROOT=build-main-fc0bc8f7/bucket-atomic\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-cache-directory-fc0-bucket-atomic-release-build-zmww843m/GMfifo5 -- CACHE_DIRECTORY=bucket-atomic BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7/bucket-atomic\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DCLOCKCACHE_DIRECTORY=3 -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-build.json new file mode 100644 index 000000000..38b314379 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-build.json @@ -0,0 +1,196 @@ +{ + "profile": "directory-bucket", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory", + "head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket/release/lib/libsplinterdb.a", + "library_sha256": "fe67f4ddb4a7d0f1c741b66737eaad46339f3dab798910610747ff34c0f8a009", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "c10cfa3d9c64f8ce83b8d1cd08266c95a611fd74beacc01332bb12751c5659d4", + "src/clockcache.h": "3ec95ccd705e32d99fd0d4d0ec56eae94354eb3e64b5cf8317d0798b9a6fec75", + "src/clockcache_directory.h": "c359df34d24f7996b25fdcfd32a3d55c628baaa5b6762a0e0c1670f093723856", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "695806f15aad43e774be5d42f67ebe8bd24f4d74ac7038b42ba7ecbf3a9b7878", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/insert_benchmark", + "binary_sha256": "65608035c6a424738b34727dc590db873b581c87c28f15b80d085834a4b331d1", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/kvbench", + "binary_sha256": "13f5659f74dbf982ac51469ec72efc15320b9cdc01b97ac5bc0104fb7187cb30", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + } + }, + "verified_runtime_commit": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket/release/build-config.3997a6c2385752cdc5f171756fad2929": { + "sha256": "89d459e6327788f92f999c810c7f660a496fb3d5d3af4457d4800c5871c684a6", + "text": "BUILD_ROOT=build-main-fc0bc8f7/bucket\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-cache-directory-fc0-bucket-release-build-8p5qdgt4/GMfifo3213 -- CACHE_DIRECTORY=bucket BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7/bucket\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DCLOCKCACHE_DIRECTORY=1 -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-simd-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-simd-build.json new file mode 100644 index 000000000..443ff8abd --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-bucket-simd-build.json @@ -0,0 +1,196 @@ +{ + "profile": "directory-bucket-simd", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory", + "head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-simd/release/lib/libsplinterdb.a", + "library_sha256": "3e5c01572bcdd3a7643b65f390a912602eaf49b55c24b8350b5491e2b5b2ac39", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "c10cfa3d9c64f8ce83b8d1cd08266c95a611fd74beacc01332bb12751c5659d4", + "src/clockcache.h": "3ec95ccd705e32d99fd0d4d0ec56eae94354eb3e64b5cf8317d0798b9a6fec75", + "src/clockcache_directory.h": "c359df34d24f7996b25fdcfd32a3d55c628baaa5b6762a0e0c1670f093723856", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "695806f15aad43e774be5d42f67ebe8bd24f4d74ac7038b42ba7ecbf3a9b7878", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-simd/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/insert_benchmark", + "binary_sha256": "cdac11eae0b5eb59d1d7293158ee7274bcc3d4293810eb692ed3b36e877b5473", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-simd/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/kvbench", + "binary_sha256": "69e24c6955bddd1804f81687e14939d7f7a986e847293a7dd1e16cb26523d499", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + } + }, + "verified_runtime_commit": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/bucket-simd/release/build-config.a59bf85a1951ddf2b5feeff0a2d09160": { + "sha256": "b72065f894fdbac6c28670cdbaea6102adb38df89eaf59681f80a2b7d876b3db", + "text": "BUILD_ROOT=build-main-fc0bc8f7/bucket-simd\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-cache-directory-fc0-bucket-simd-release-build-4_96k23h/GMfifo6442 -- CACHE_DIRECTORY=bucket-simd BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7/bucket-simd\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DCLOCKCACHE_DIRECTORY=2 -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-direct-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-direct-build.json new file mode 100644 index 000000000..36f6a5288 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/directory-direct-build.json @@ -0,0 +1,196 @@ +{ + "profile": "directory-direct", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory", + "head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/direct/release/lib/libsplinterdb.a", + "library_sha256": "ed0819b95675d8410608040d675dc84aa8c3aa09a7c5a5ff24ac296d21285887", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "c10cfa3d9c64f8ce83b8d1cd08266c95a611fd74beacc01332bb12751c5659d4", + "src/clockcache.h": "3ec95ccd705e32d99fd0d4d0ec56eae94354eb3e64b5cf8317d0798b9a6fec75", + "src/clockcache_directory.h": "c359df34d24f7996b25fdcfd32a3d55c628baaa5b6762a0e0c1670f093723856", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "695806f15aad43e774be5d42f67ebe8bd24f4d74ac7038b42ba7ecbf3a9b7878", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/direct/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/insert_benchmark", + "binary_sha256": "f89728c129511410bb7148e00c05cb86ee49f69717c0e4e3b50072ba32bb530b", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/direct/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/kvbench", + "binary_sha256": "d2f18f3c5db44c76bc004745ddd4a58f56c4cac066aa8afb00918fb349b5d557", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + } + }, + "verified_runtime_commit": "67f88f289b5b470d9dba27c78d5befdf78352220", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/cache-directory/build-main-fc0bc8f7/direct/release/build-config.77088d0a2752aa266e11e3de924b40ae": { + "sha256": "3afa25f732756e16b22051d4aca33c3dba38102905e5a790799d43f5f48a783d", + "text": "BUILD_ROOT=build-main-fc0bc8f7/direct\nMAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-cache-directory-fc0-direct-release-build-8ic45r5z/GMfifo4 -- CACHE_DIRECTORY=direct BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7/direct\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DCLOCKCACHE_DIRECTORY=0 -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/insert_benchmark.c b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/insert_benchmark.c new file mode 100644 index 000000000..8f5314708 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/insert_benchmark.c @@ -0,0 +1,998 @@ +// Copyright 2026 VMware, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/* Concurrent random insertion and point queries, sampled independently. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" +#ifndef KVBENCH_NO_TRACE +# include "platform_trace.h" +#endif +#include "platform_threads.h" + +#define GIB (UINT64_C(1) << 30) +#define MAX_WORKERS 64 +#define MAX_RECORD_PART 1024 +#define HIST_SUB_BITS 5 +#define HIST_SUB (1u << HIST_SUB_BITS) +#define HIST_BUCKETS (64 * HIST_SUB) + +typedef struct latency_histogram { + uint64_t buckets[HIST_BUCKETS]; + uint64_t count; + uint64_t sum_ns; + uint64_t max_ns; +} latency_histogram; + +typedef struct options { + const char *filename; + const char *csv; + const char *summary; + const char *trace; + uint64_t records, data_gib, cache_mib, disk_gib, seed, id_base; + uint64_t inserts, queries, memtable_bg, normal_bg, memtable_mib; + uint64_t key_size, value_size, report_ms, seconds, min_free_gib; + uint64_t queue_scale, barrier_ms, target_insert_ops_s; + uint64_t log_group_size_pages; + bool full_query_range, direct, use_log, open_existing; +} options; + +typedef struct benchmark benchmark; +typedef struct worker { + _Alignas(64) atomic_uint_fast64_t completed; + atomic_uint_fast64_t hits, max_ns, response_max_ns, active_since_ns; + atomic_bool done; + pthread_t thread; + benchmark *bench; + uint64_t index; + bool query; + latency_histogram service_latency; + latency_histogram response_latency; +} worker; + +struct benchmark { + options opt; + splinterdb *db; + atomic_bool start, stop; + uint64_t start_ns; + atomic_uint_fast64_t arrival_sequence; + atomic_int error; + worker workers[MAX_WORKERS]; + pthread_t barrier_thread; + atomic_bool barrier_started, barrier_done; + atomic_uint_fast64_t barrier_count, barrier_sum_ns, barrier_max_ns; +}; + +static volatile sig_atomic_t interrupted; + +static void +handle_signal(int signo) +{ + interrupted = signo; +} + +static uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec; +} + +/* A bijection on 64-bit integers, so the random insertion keys are unique. */ +static uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static uint64_t +next_random(uint64_t *state) +{ + *state += UINT64_C(0x9e3779b97f4a7c15); + return mix(*state); +} + +static void +make_key(const options *opt, uint64_t id, char *key) +{ + uint64_t x = mix(id + opt->seed); + for (uint64_t i = 0; i < opt->key_size; i++) { + key[i] = (char)(x >> (56 - 8 * (i % 8))); + } +} + +static void +record_max(atomic_uint_fast64_t *slot, uint64_t ns) +{ + uint64_t old = atomic_load_explicit(slot, memory_order_relaxed); + while (old < ns + && !atomic_compare_exchange_weak_explicit( + slot, &old, ns, memory_order_relaxed, memory_order_relaxed)) + { + } +} + +static void +record_latency(worker *w, uint64_t ns) +{ + record_max(&w->max_ns, ns); +} + +static unsigned +histogram_index(uint64_t value) +{ + if (value < HIST_SUB) { + return (unsigned)value; + } + unsigned exponent = 63 - __builtin_clzll(value); + unsigned sub = + (unsigned)((value >> (exponent - HIST_SUB_BITS)) & (HIST_SUB - 1)); + return (exponent - HIST_SUB_BITS + 1) * HIST_SUB + sub; +} + +static uint64_t +histogram_value(unsigned index) +{ + if (index < HIST_SUB) { + return index; + } + unsigned exponent = index / HIST_SUB + HIST_SUB_BITS - 1; + unsigned sub = index % HIST_SUB; + uint64_t low = + (UINT64_C(1) << exponent) | ((uint64_t)sub << (exponent - HIST_SUB_BITS)); + uint64_t width = UINT64_C(1) << (exponent - HIST_SUB_BITS); + return low + width / 2; +} + +static void +histogram_add(latency_histogram *histogram, uint64_t value) +{ + histogram->buckets[histogram_index(value)]++; + histogram->count++; + histogram->sum_ns += value; + histogram->max_ns = MAX(histogram->max_ns, value); +} + +static void +histogram_merge(latency_histogram *result, const latency_histogram *source) +{ + for (unsigned i = 0; i < HIST_BUCKETS; i++) { + result->buckets[i] += source->buckets[i]; + } + result->count += source->count; + result->sum_ns += source->sum_ns; + result->max_ns = MAX(result->max_ns, source->max_ns); +} + +static double +histogram_percentile_ms(const latency_histogram *histogram, double percentile) +{ + if (histogram->count == 0) { + return 0; + } + uint64_t target = (uint64_t)(percentile * histogram->count); + if (target == 0) { + target = 1; + } + uint64_t cumulative = 0; + for (unsigned i = 0; i < HIST_BUCKETS; i++) { + cumulative += histogram->buckets[i]; + if (cumulative >= target) { + return histogram_value(i) / 1e6; + } + } + return histogram->max_ns / 1e6; +} + +static void +wait_until(benchmark *b, uint64_t deadline) +{ + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t now = now_ns(); + if (now >= deadline) { + return; + } + uint64_t remaining = deadline - now; + if (remaining > UINT64_C(10000000)) { + remaining = UINT64_C(10000000); + } + struct timespec delay = {.tv_sec = remaining / UINT64_C(1000000000), + .tv_nsec = remaining % UINT64_C(1000000000)}; + nanosleep(&delay, NULL); + } +} + +static void * +run_worker(void *arg) +{ + worker *w = arg; + benchmark *b = w->bench; + const options *o = &b->opt; + char key[MAX_RECORD_PART], value[MAX_RECORD_PART]; + memset(value, 'v', o->value_size); + int rc = platform_register_thread(); + if (rc) { + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + atomic_store(&w->done, true); + return NULL; + } + splinterdb_lookup_result result; + fprintf(stderr, + "worker=%lu kind=%s tid=%lu os_tid=%d\n", + w->index, + w->query ? "query" : "insert", + platform_get_tid(), + gettid()); + if (w->query) { + splinterdb_lookup_result_init( + b->db, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(value), value); + } + while (!atomic_load_explicit(&b->start, memory_order_acquire)) { + struct timespec delay = {.tv_nsec = 1000000}; + nanosleep(&delay, NULL); + } + uint64_t completed = 0, hits = 0; + uint64_t random = o->seed + w->index + 1; + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t scheduled = 0; + uint64_t arrival = UINT64_MAX; + if (!w->query && o->target_insert_ops_s != 0) { + arrival = atomic_fetch_add_explicit( + &b->arrival_sequence, 1, memory_order_relaxed); + if (arrival >= o->records) { + break; + } + scheduled = b->start_ns + + (uint64_t)((__uint128_t)arrival * UINT64_C(1000000000) + / o->target_insert_ops_s); + wait_until(b, scheduled); + if (atomic_load_explicit(&b->stop, memory_order_relaxed)) { + break; + } + } + uint64_t id; + if (!w->query) { + uint64_t offset = o->target_insert_ops_s != 0 + ? arrival + : completed * o->inserts + w->index; + if (offset >= o->records) { + break; + } + id = o->id_base + offset; + } else if (o->full_query_range) { + id = o->id_base + next_random(&random) % o->records; + } else { + uint64_t source = next_random(&random) % o->inserts; + uint64_t available = atomic_load_explicit( + &b->workers[source].completed, memory_order_acquire); + if (!available) { + struct timespec delay = {.tv_nsec = 100000}; + nanosleep(&delay, NULL); + continue; + } + id = o->id_base + (next_random(&random) % available) * o->inserts + + source; + } + make_key(o, id, key); + uint64_t start = now_ns(); + atomic_store_explicit(&w->active_since_ns, start, memory_order_relaxed); + if (w->query) { + rc = splinterdb_lookup(b->db, slice_create(o->key_size, key), &result); + if (!rc && splinterdb_lookup_found(&result)) { + hits++; + } + } else { + rc = splinterdb_insert(b->db, + slice_create(o->key_size, key), + slice_create(o->value_size, value), + NULL); + } + uint64_t end = now_ns(); + record_latency(w, end - start); + histogram_add(&w->service_latency, end - start); + if (!w->query) { + uint64_t response = scheduled == 0 ? end - start : end - scheduled; + histogram_add(&w->response_latency, response); + record_max(&w->response_max_ns, response); + } + atomic_store_explicit(&w->active_since_ns, 0, memory_order_relaxed); + if (rc) { + fprintf(stderr, "worker %lu: operation failed: %d\n", w->index, rc); + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + break; + } + completed++; + atomic_store_explicit(&w->hits, hits, memory_order_relaxed); + atomic_store_explicit(&w->completed, completed, memory_order_release); + } + if (w->query) { + splinterdb_lookup_result_deinit(&result); + } + platform_deregister_thread(); + atomic_store(&w->done, true); + return NULL; +} + +/* + * Dedicated thread that calls splinterdb_durable_barrier() on a fixed period, + * independent of insert/query progress. If a barrier call takes longer than + * the period, the next call follows immediately (no attempt to catch up on + * skipped slots). + */ +static void * +run_barrier(void *arg) +{ + benchmark *b = arg; + const options *o = &b->opt; + int rc = platform_register_thread(); + if (rc) { + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + atomic_store(&b->barrier_done, true); + return NULL; + } + while (!atomic_load_explicit(&b->start, memory_order_acquire)) { + struct timespec delay = {.tv_nsec = 1000000}; + nanosleep(&delay, NULL); + } + uint64_t period_ns = o->barrier_ms * UINT64_C(1000000); + uint64_t next = now_ns() + period_ns; + while (!atomic_load_explicit(&b->stop, memory_order_relaxed)) { + uint64_t now = now_ns(); + if (now < next) { + uint64_t remaining = next - now; + struct timespec delay = {.tv_sec = remaining / 1000000000, + .tv_nsec = remaining % 1000000000}; + nanosleep(&delay, NULL); + continue; + } + uint64_t start = now_ns(); +#ifdef KVBENCH_NO_DURABLE_BARRIER + rc = ENOTSUP; +#else + rc = splinterdb_durable_barrier(b->db, SPLINTERDB_NOTIFICATION_BLOCKING); +#endif + uint64_t elapsed = now_ns() - start; + if (rc) { + fprintf(stderr, "barrier: durable_barrier failed: %d\n", rc); + atomic_store(&b->error, rc); + atomic_store(&b->stop, true); + break; + } + atomic_fetch_add_explicit(&b->barrier_count, 1, memory_order_relaxed); + atomic_fetch_add_explicit( + &b->barrier_sum_ns, elapsed, memory_order_relaxed); + record_max(&b->barrier_max_ns, elapsed); + next += period_ns; + } + platform_deregister_thread(); + atomic_store(&b->barrier_done, true); + return NULL; +} + +static void +usage(const char *name) +{ + fprintf( + stderr, + "Usage: %s --db NEW_IMAGE --csv NEW_CSV [options]\n" + " --open open an existing image instead of creating one\n" + " --id-base N first logical id inserted (default 0)\n" + " --data-gib N logical key+value GiB (default 60)\n" + " --records N override logical data target\n" + " --cache-mib N default 3072\n" + " --disk-gib N image capacity (default 512; grows lazily)\n" + " --inserters N default 8\n" + " --readers N default 8\n" + " --memtable-bg N default 1\n" + " --normal-bg N default 4\n" + " --memtable-mib N default 24\n" + " --key-size N default 16, minimum 8\n" + " --value-size N default 16\n" + " --query-range inserted|all (default inserted)\n" + " --queue-scale N foreground task threshold (default 100)\n" + " --report-ms N default 1000\n" + " --seconds N optional time limit (0 = no limit)\n" + " --target-insert-ops-s N aggregate open-loop arrival rate; " + "requires --seconds (default 0 = closed loop)\n" + " --summary NEW_CSV write aggregate latency percentiles\n" + " --min-free-gib N stop before filesystem fills (default 8)\n" + " --seed N default 1\n" + " --barrier-ms N call splinterdb_durable_barrier from a " + "dedicated thread every N ms (default 0 = disabled)\n" + " --log-group-size-pages N automatic durability threshold " + "(0 = default, UINT64_MAX = disabled)\n" + " --trace NEW_CSV trace internal tasks and waits (optional)\n" + " --direct use O_DIRECT (default buffered I/O)\n" + " --no-log disable WAL (default enabled)\n" + "Automatic checkpoints are disabled. Existing files are refused.\n" + "Load measurements exclude create, final drain and close.\n", + name); +} + +static bool +parse_number(const char *s, uint64_t *out) +{ + char *end; + errno = 0; + unsigned long long value = strtoull(s, &end, 10); + if (errno || s == end || *end || *s == '-') { + return false; + } + *out = value; + return true; +} + +static bool +parse_options(int argc, char **argv, options *o) +{ + *o = (options){.data_gib = 60, + .cache_mib = 3072, + .disk_gib = 512, + .seed = 1, + .inserts = 8, + .queries = 8, + .memtable_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .key_size = 16, + .value_size = 16, + .report_ms = 1000, + .min_free_gib = 8, + .queue_scale = 100, + .use_log = true}; + for (int i = 1; i < argc; i++) { + if (!strcmp(argv[i], "--direct")) { + o->direct = true; + continue; + } + if (!strcmp(argv[i], "--no-log")) { + o->use_log = false; + continue; + } + if (!strcmp(argv[i], "--open")) { + o->open_existing = true; + continue; + } + if (i + 1 >= argc) { + return false; + } + const char *name = argv[i++], *value = argv[i]; + if (!strcmp(name, "--db")) { + o->filename = value; + continue; + } + if (!strcmp(name, "--csv")) { + o->csv = value; + continue; + } + if (!strcmp(name, "--summary")) { + o->summary = value; + continue; + } + if (!strcmp(name, "--trace")) { + o->trace = value; + continue; + } + if (!strcmp(name, "--query-range")) { + if (strcmp(value, "inserted") && strcmp(value, "all")) { + return false; + } + o->full_query_range = !strcmp(value, "all"); + continue; + } + struct { + const char *name; + uint64_t *value; + } numbers[] = { + {"--data-gib", &o->data_gib}, + {"--records", &o->records}, + {"--cache-mib", &o->cache_mib}, + {"--disk-gib", &o->disk_gib}, + {"--inserters", &o->inserts}, + {"--readers", &o->queries}, + {"--memtable-bg", &o->memtable_bg}, + {"--normal-bg", &o->normal_bg}, + {"--memtable-mib", &o->memtable_mib}, + {"--key-size", &o->key_size}, + {"--value-size", &o->value_size}, + {"--report-ms", &o->report_ms}, + {"--seconds", &o->seconds}, + {"--min-free-gib", &o->min_free_gib}, + {"--seed", &o->seed}, + {"--id-base", &o->id_base}, + {"--queue-scale", &o->queue_scale}, + {"--barrier-ms", &o->barrier_ms}, + {"--log-group-size-pages", &o->log_group_size_pages}, + {"--target-insert-ops-s", &o->target_insert_ops_s}, + }; + bool found = false; + for (size_t j = 0; j < sizeof(numbers) / sizeof(numbers[0]); j++) { + if (!strcmp(name, numbers[j].name)) { + if (!parse_number(value, numbers[j].value)) { + return false; + } + found = true; + break; + } + } + if (!found) { + return false; + } + } + if (!o->filename || !o->csv || !o->inserts || o->inserts > MAX_WORKERS + || o->queries > MAX_WORKERS - o->inserts || o->key_size < 8 + || o->key_size > MAX_RECORD_PART || o->value_size > MAX_RECORD_PART + || !o->report_ms || o->report_ms > 60000 || !o->cache_mib + || o->cache_mib > UINT64_MAX / (1 << 20) || !o->disk_gib + || o->disk_gib > INT64_MAX / GIB || o->data_gib > UINT64_MAX / GIB + || o->min_free_gib > UINT64_MAX / GIB || !o->memtable_mib + || o->memtable_mib > UINT64_MAX / (1 << 20) || o->memtable_bg > 32 + || o->normal_bg > 32 + || o->inserts + o->queries + o->memtable_bg + o->normal_bg + 1 + > MAX_WORKERS + || o->seconds > UINT64_MAX / 1000000000 + || o->barrier_ms > UINT64_MAX / 1000000 + || (o->target_insert_ops_s != 0 && (o->seconds == 0 || o->queries != 0))) + { + return false; + } +#ifdef KVBENCH_NO_DURABLE_BARRIER + if (o->barrier_ms != 0) { + return false; + } +#endif +#ifdef KVBENCH_NO_TRACE + if (o->trace != NULL) { + return false; + } +#endif + if (!o->records) { + o->records = o->data_gib * GIB / (o->key_size + o->value_size); + } + return o->records > 0 && o->records <= UINT64_MAX / MAX_WORKERS + && o->records <= UINT64_MAX / (o->key_size + o->value_size) + && o->id_base <= UINT64_MAX - o->records; +} + +static void +process_io(uint64_t *reads, uint64_t *writes) +{ + *reads = *writes = 0; + FILE *file = fopen("/proc/self/io", "r"); + if (!file) { + return; + } + char name[64]; + uint64_t value; + while (fscanf(file, "%63s %" SCNu64, name, &value) == 2) { + if (!strcmp(name, "read_bytes:")) { + *reads = value; + } + if (!strcmp(name, "write_bytes:")) { + *writes = value; + } + } + fclose(file); +} + +static int +write_summary(const benchmark *b, uint64_t inserted, double elapsed_s) +{ + const options *o = &b->opt; + if (o->summary == NULL) { + return 0; + } + + latency_histogram insert_service = {0}, insert_response = {0}; + latency_histogram query_service = {0}; + for (uint64_t i = 0; i < o->inserts + o->queries; i++) { + if (b->workers[i].query) { + histogram_merge(&query_service, &b->workers[i].service_latency); + } else { + histogram_merge(&insert_service, &b->workers[i].service_latency); + histogram_merge(&insert_response, &b->workers[i].response_latency); + } + } + + FILE *summary = fopen(o->summary, "wx"); + if (summary == NULL) { + return errno; + } + fprintf(summary, + "target_insert_ops_s,achieved_insert_ops_s,elapsed_s,inserted," + "insert_service_mean_ms,insert_service_p50_ms,insert_service_p99_ms," + "insert_service_p999_ms,insert_service_max_ms," + "insert_response_mean_ms,insert_response_p50_ms," + "insert_response_p99_ms,insert_response_p999_ms," + "insert_response_max_ms,query_service_mean_ms,query_service_p99_ms," + "query_service_max_ms\n"); + fprintf( + summary, + "%lu,%.6f,%.6f,%lu,%.6f,%.6f,%.6f,%.6f,%.6f," + "%.6f,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f\n", + o->target_insert_ops_s, + elapsed_s == 0 ? 0 : inserted / elapsed_s, + elapsed_s, + inserted, + insert_service.count ? insert_service.sum_ns / 1e6 / insert_service.count + : 0, + histogram_percentile_ms(&insert_service, 0.50), + histogram_percentile_ms(&insert_service, 0.99), + histogram_percentile_ms(&insert_service, 0.999), + insert_service.max_ns / 1e6, + insert_response.count + ? insert_response.sum_ns / 1e6 / insert_response.count + : 0, + histogram_percentile_ms(&insert_response, 0.50), + histogram_percentile_ms(&insert_response, 0.99), + histogram_percentile_ms(&insert_response, 0.999), + insert_response.max_ns / 1e6, + query_service.count ? query_service.sum_ns / 1e6 / query_service.count + : 0, + histogram_percentile_ms(&query_service, 0.99), + query_service.max_ns / 1e6); + int rc = ferror(summary) ? EIO : 0; + if (fclose(summary) != 0 && rc == 0) { + rc = errno; + } + return rc; +} + +int +main(int argc, char **argv) +{ + benchmark b = {0}; + if (argc == 2 && !strcmp(argv[1], "--help")) { + usage(argv[0]); + return 0; + } + if (!parse_options(argc, argv, &b.opt)) { + usage(argv[0]); + return 2; + } + const options *o = &b.opt; + if (o->trace) { +#ifdef KVBENCH_NO_TRACE + return 2; +#else + int trace_rc = platform_trace_open(o->trace); + if (trace_rc) { + fprintf(stderr, "trace open failed: %s\n", strerror(trace_rc)); + return 1; + } +#endif + } + FILE *csv = fopen(o->csv, "wx"); + if (!csv) { + perror(o->csv); + return 1; + } + int fd = open(o->filename, + O_RDWR | O_CLOEXEC | (o->open_existing ? 0 : O_CREAT | O_EXCL), + 0600); + if (fd < 0) { + perror(o->filename); + fclose(csv); + return 1; + } + struct statvfs space; + if (fstatvfs(fd, &space) != 0 + || (uint64_t)space.f_bavail * space.f_frsize < o->min_free_gib * GIB) + { + fprintf(stderr, "Insufficient free space\n"); + close(fd); + fclose(csv); + return 1; + } + + data_config data_cfg; + default_data_config_init(&data_cfg); + splinterdb_config cfg = {.filename = o->filename, + .disk_size = o->disk_gib * GIB, + .cache_size = o->cache_mib * (1 << 20), + .data_cfg = &data_cfg, + .io_flags = O_RDWR | (o->direct ? O_DIRECT : 0), + .num_memtable_bg_threads = o->memtable_bg, + .num_normal_bg_threads = o->normal_bg, + .memtable_capacity = o->memtable_mib * (1 << 20), + .queue_scale_percent = o->queue_scale, + .use_log = o->use_log, + .checkpoint_log_size_bytes = UINT64_MAX, + .use_stats = true}; +#ifndef KVBENCH_NO_LOG_GROUP_LIMIT + cfg.log_group_size_pages = o->log_group_size_pages; +#else + if (o->log_group_size_pages != 0) { + fprintf(stderr, "This build has no automatic log-group limit\n"); + return 1; + } +#endif + platform_set_log_streams(stderr, stderr); + fprintf( + stderr, + "version=%s records=%lu key=%lu value=%lu cache_mib=%lu " + "disk_gib=%lu inserters=%lu readers=%lu memtable_bg=%lu normal_bg=%lu " + "memtable_mib=%lu queue_scale=%lu log=%d checkpoints=disabled " + "direct=%d query_range=%s seed=%lu report_ms=%lu barrier_ms=%lu " + "target_insert_ops_s=%lu id_base=%lu mode=%s\n", + splinterdb_get_version(), + o->records, + o->key_size, + o->value_size, + o->cache_mib, + o->disk_gib, + o->inserts, + o->queries, + o->memtable_bg, + o->normal_bg, + o->memtable_mib, + o->queue_scale, + o->use_log, + o->direct, + o->full_query_range ? "all" : "inserted", + o->seed, + o->report_ms, + o->barrier_ms, + o->target_insert_ops_s, + o->id_base, + o->open_existing ? "open" : "create"); + int rc = o->open_existing ? splinterdb_open(&cfg, &b.db) + : splinterdb_create(&cfg, &b.db); + if (rc) { + fprintf( + stderr, "%s failed: %d\n", o->open_existing ? "open" : "create", rc); + close(fd); + fclose(csv); + return 1; + } + + signal(SIGINT, handle_signal); + signal(SIGTERM, handle_signal); + uint64_t started = 0; + for (uint64_t i = 0; i < o->inserts + o->queries; i++) { + worker *w = &b.workers[i]; + w->bench = &b; + w->index = i; + w->query = i >= o->inserts; + rc = pthread_create(&w->thread, NULL, run_worker, w); + if (rc) { + atomic_store(&b.error, rc); + atomic_store(&b.stop, true); + break; + } + started++; + } + if (o->barrier_ms && !atomic_load(&b.stop)) { + rc = pthread_create(&b.barrier_thread, NULL, run_barrier, &b); + if (rc) { + atomic_store(&b.error, rc); + atomic_store(&b.stop, true); + } else { + atomic_store(&b.barrier_started, true); + } + } + fprintf( + csv, + "elapsed_s,interval_s,inserted,logical_gib,insert_ops_s,query_ops_s," + "hit_pct,insert_max_ms,query_max_ms,active_max_ms,cpu_cores,max_rss_mib," + "read_mib_s,write_mib_s,image_gib,free_gib,inserters_running," + "barrier_ops_s,barrier_avg_ms,barrier_max_ms,target_insert_ops_s," + "offered_insert_ops_s,insert_backlog,response_max_ms"); + for (uint64_t i = 0; i < started; i++) { + fprintf(csv, ",%s%lu_ops_s", b.workers[i].query ? "q" : "i", i); + } + fputc('\n', csv); + fflush(csv); + uint64_t prev_completed[MAX_WORKERS] = {0}, prev_hits = 0; + uint64_t prev_barrier_count = 0, prev_barrier_sum_ns = 0; + uint64_t prev_read, prev_write; + process_io(&prev_read, &prev_write); + struct rusage usage_now; + getrusage(RUSAGE_SELF, &usage_now); + double prev_cpu = + usage_now.ru_utime.tv_sec + usage_now.ru_utime.tv_usec / 1e6 + + usage_now.ru_stime.tv_sec + usage_now.ru_stime.tv_usec / 1e6; + uint64_t start = now_ns(), previous = start; + b.start_ns = start; + fprintf( + stderr, "start_monotonic_ns=%lu main_address=%p\n", start, (void *)main); + atomic_store_explicit(&b.start, true, memory_order_release); + const char *reason = "complete"; + uint64_t inserted = 0; + while (true) { + struct timespec delay = {.tv_sec = o->report_ms / 1000, + .tv_nsec = (o->report_ms % 1000) * 1000000}; + nanosleep(&delay, NULL); + uint64_t now = now_ns(), delta_insert = 0, delta_query = 0, hits = 0; + uint64_t insert_max = 0, query_max = 0, response_max = 0, active_max = 0; + uint64_t inserters_running = 0; + double rates[MAX_WORKERS] = {0}; + double elapsed = (now - start) / 1e9, interval = (now - previous) / 1e9; + bool all_inserts_done = true; + inserted = 0; + for (uint64_t i = 0; i < started; i++) { + worker *w = &b.workers[i]; + uint64_t completed = atomic_load(&w->completed); + uint64_t count = completed - prev_completed[i]; + prev_completed[i] = completed; + rates[i] = count / interval; + uint64_t latency = atomic_exchange(&w->max_ns, 0); + uint64_t active = atomic_load(&w->active_since_ns); + if (active && active < now && active_max < now - active) { + active_max = now - active; + } + if (w->query) { + delta_query += count; + hits += atomic_load(&w->hits); + if (query_max < latency) { + query_max = latency; + } + } else { + inserted += completed; + delta_insert += count; + if (insert_max < latency) { + insert_max = latency; + } + uint64_t response = atomic_exchange(&w->response_max_ns, 0); + if (response_max < response) { + response_max = response; + } + if (!atomic_load(&w->done)) { + inserters_running++; + all_inserts_done = false; + } + } + } + uint64_t reads, writes; + process_io(&reads, &writes); + getrusage(RUSAGE_SELF, &usage_now); + double cpu = usage_now.ru_utime.tv_sec + usage_now.ru_utime.tv_usec / 1e6 + + usage_now.ru_stime.tv_sec + + usage_now.ru_stime.tv_usec / 1e6; + struct stat st = {0}; + if (fstat(fd, &st) != 0 || fstatvfs(fd, &space) != 0) { + atomic_store(&b.error, errno); + atomic_store(&b.stop, true); + } + double free_gib = (double)space.f_bavail * space.f_frsize / GIB; + uint64_t barrier_count = atomic_load(&b.barrier_count); + uint64_t barrier_sum_ns = atomic_load(&b.barrier_sum_ns); + uint64_t barrier_max_ns = atomic_exchange(&b.barrier_max_ns, 0); + uint64_t delta_barrier_count = barrier_count - prev_barrier_count; + uint64_t delta_barrier_sum = barrier_sum_ns - prev_barrier_sum_ns; + uint64_t offered = inserted; + if (o->target_insert_ops_s != 0) { + __uint128_t possible = (__uint128_t)(now - start) + * o->target_insert_ops_s / UINT64_C(1000000000); + offered = possible > o->records ? o->records : (uint64_t)possible; + } + fprintf(csv, + "%.6f,%.6f,%lu,%.6f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f," + "%.3f,%.6f,%.3f,%lu,%.3f,%.3f,%.3f,%lu,%.3f,%lu,%.3f", + elapsed, + interval, + inserted, + (double)inserted * (o->key_size + o->value_size) / GIB, + delta_insert / interval, + delta_query / interval, + delta_query ? (hits - prev_hits) * 100.0 / delta_query : 0, + insert_max / 1e6, + query_max / 1e6, + active_max / 1e6, + (cpu - prev_cpu) / interval, + usage_now.ru_maxrss / 1024.0, + (reads - prev_read) / (1048576.0 * interval), + (writes - prev_write) / (1048576.0 * interval), + (double)st.st_size / GIB, + free_gib, + inserters_running, + delta_barrier_count / interval, + delta_barrier_count + ? delta_barrier_sum / 1e6 / delta_barrier_count + : 0, + barrier_max_ns / 1e6, + o->target_insert_ops_s, + o->target_insert_ops_s ? (double)o->target_insert_ops_s : 0, + offered > inserted ? offered - inserted : 0, + response_max / 1e6); + for (uint64_t i = 0; i < started; i++) { + fprintf(csv, ",%.3f", rates[i]); + } + fputc('\n', csv); + if (fflush(csv) != 0) { + atomic_store(&b.error, errno); + atomic_store(&b.stop, true); + } + prev_hits = hits; + prev_read = reads; + prev_write = writes; + prev_cpu = cpu; + prev_barrier_count = barrier_count; + prev_barrier_sum_ns = barrier_sum_ns; + previous = now; + if (all_inserts_done || atomic_load(&b.stop)) { + break; + } + if (interrupted) { + reason = "signal"; + break; + } + if (o->seconds && elapsed >= o->seconds) { + reason = "time_limit"; + break; + } + if (free_gib < o->min_free_gib) { + reason = "free_space_limit"; + break; + } + } + atomic_store(&b.stop, true); + for (uint64_t i = 0; i < started; i++) { + pthread_join(b.workers[i].thread, NULL); + } + if (atomic_load(&b.barrier_started)) { + pthread_join(b.barrier_thread, NULL); + } + inserted = 0; + for (uint64_t i = 0; i < o->inserts; i++) { + inserted += atomic_load(&b.workers[i].completed); + } + double elapsed_s = (now_ns() - start) / 1e9; + fprintf(stderr, + "load_end reason=%s inserted=%lu elapsed_s=%.3f error=%d " + "barrier_count=%lu barrier_avg_ms=%.3f barrier_max_ms=%.3f\n", + reason, + inserted, + elapsed_s, + atomic_load(&b.error), + atomic_load(&b.barrier_count), + atomic_load(&b.barrier_count) ? atomic_load(&b.barrier_sum_ns) / 1e6 + / atomic_load(&b.barrier_count) + : 0, + atomic_load(&b.barrier_max_ns) / 1e6); + int summary_rc = write_summary(&b, inserted, elapsed_s); + if (summary_rc != 0) { + fprintf(stderr, "summary write failed: %s\n", strerror(summary_rc)); + } + uint64_t close_start = now_ns(); +#ifdef KVBENCH_LEGACY_CLOSE + splinterdb_close(&b.db); + rc = 0; +#else + rc = splinterdb_close(&b.db, false); +#endif + fprintf( + stderr, "close_s=%.3f close_rc=%d\n", (now_ns() - close_start) / 1e9, rc); + close(fd); + fclose(csv); + int trace_rc = 0; +#ifndef KVBENCH_NO_TRACE + trace_rc = platform_trace_close(); +#endif + bool incomplete = !o->seconds && inserted < o->records; + return rc || trace_rc || summary_rc || atomic_load(&b.error) || incomplete + ? 1 + : 0; +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/kvbench.c b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/kvbench.c new file mode 100644 index 000000000..9b91f4ef9 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/kvbench.c @@ -0,0 +1,1707 @@ +// kvbench.c -- SplinterDB public-API benchmark used to compare two versions. +// +// Uses only splinterdb/splinterdb.h + splinterdb/default_data_config.h + libc, +// so the same source builds against versions whose internals differ. The one +// public-API difference handled here is splinterdb_close(): +// -DKVBENCH_CLOSE_HAS_FORCE => int splinterdb_close(splinterdb **, bool32) +// otherwise => void splinterdb_close(splinterdb **) +// +// Key scheme: logical id in [0,N). Present key = 8-byte big-endian(2*id) +// followed by 16 bytes of fixed padding (24 bytes total), so memcmp order == +// id order. Absent ("negative") keys use 2*id+1, interleaved with present +// keys. Value = 100 bytes: id (LE u64), generation (LE u64), filler. +// +// Each invocation: create/open the DB, run the listed phases in order, close. +// Phase syntax (optional "@T" overrides the thread count): +// load:random | load:seq fixed-count insert of all N ids, then close +// (close timed separately as "drain") +// warm parallel full scan; verifies every id once +// point:uniform|zipf|seq|neg fixed-duration lookups +// range:uniform|zipf:L fixed-duration forward range queries +// ow:uniform|zipf fixed-duration overwrites (insert existing) +// One CSV row per phase is appended to --csv. + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" + +#define KEY_SIZE 24 +#define VALUE_SIZE 100 +#define MAX_PHASES 64 +#define MAX_WORKERS 32 + +static const char KEY_PAD[16] = "kvbench-padding!"; + +/* ------------------------------------------------------------------------ */ +/* Time, RNG, permutations, zipf */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000ull + ts.tv_nsec; +} + +/* Bijective 64-bit mixer (splitmix64 finalizer). */ +static inline uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static inline uint64_t +rng_next(uint64_t *s) +{ + *s += UINT64_C(0x9e3779b97f4a7c15); + return mix(*s); +} + +static inline double +rng_unit(uint64_t *s) +{ + return (double)(rng_next(s) >> 11) * 0x1.0p-53; +} + +/* + * Pseudo-random bijection on [0,n): a 4-round balanced Feistel network over + * 2*half bits (2^(2*half) >= n), with cycle-walking to stay inside [0,n). + */ +typedef struct { + uint64_t n; + unsigned half; + uint64_t mask; + uint64_t keys[4]; +} perm_t; + +static void +perm_init(perm_t *p, uint64_t n, uint64_t seed) +{ + unsigned bits = 1; + while (bits < 64 && (UINT64_C(1) << bits) < n) { + bits++; + } + p->n = n; + p->half = (bits + 1) / 2; + if (p->half < 1) { + p->half = 1; + } + p->mask = (UINT64_C(1) << p->half) - 1; + for (int r = 0; r < 4; r++) { + p->keys[r] = mix(seed * UINT64_C(0x632be59bd9b4e019) + r + 1); + } +} + +static inline uint64_t +feistel(const perm_t *p, uint64_t x) +{ + uint64_t l = x >> p->half, r = x & p->mask; + for (int i = 0; i < 4; i++) { + uint64_t t = l ^ (mix(r ^ p->keys[i]) & p->mask); + l = r; + r = t; + } + return (l << p->half) | r; +} + +static inline uint64_t +perm_apply(const perm_t *p, uint64_t i) +{ + uint64_t x = i; + do { + x = feistel(p, x); + } while (x >= p->n); + return x; +} + +/* YCSB-style zipfian over ranks [0,n). */ +typedef struct { + uint64_t n; + double theta, zetan, zeta2, alpha, eta, half_pow_theta; +} zipf_t; + +static double +zeta_sum(uint64_t n, double theta) +{ + uint64_t m = n < 2000000 ? n : 2000000; + double s = 0; + for (uint64_t i = 1; i <= m; i++) { + s += pow((double)i, -theta); + } + if (n > m) { + /* Euler-Maclaurin tail: sum_{k=m+1}^{n} k^-t */ + s += (pow((double)n, 1 - theta) - pow((double)m, 1 - theta)) / (1 - theta) + + 0.5 * (pow((double)n, -theta) - pow((double)m, -theta)); + } + return s; +} + +static void +zipf_init(zipf_t *z, uint64_t n, double theta) +{ + z->n = n; + z->theta = theta; + z->zetan = zeta_sum(n, theta); + z->zeta2 = 1.0 + pow(0.5, theta); + z->alpha = 1.0 / (1.0 - theta); + z->eta = + (1.0 - pow(2.0 / (double)n, 1.0 - theta)) / (1.0 - z->zeta2 / z->zetan); + z->half_pow_theta = pow(0.5, theta); +} + +static inline uint64_t +zipf_next(const zipf_t *z, uint64_t *rng) +{ + double u = rng_unit(rng); + double uz = u * z->zetan; + if (uz < 1.0) { + return 0; + } + if (uz < 1.0 + z->half_pow_theta) { + return 1; + } + uint64_t r = + (uint64_t)((double)z->n * pow(z->eta * u - z->eta + 1.0, z->alpha)); + return r >= z->n ? z->n - 1 : r; +} + +/* ------------------------------------------------------------------------ */ +/* Histogram: log2 buckets with 32 linear sub-buckets (~3% resolution) */ +/* ------------------------------------------------------------------------ */ + +#define HSUB_BITS 5 +#define HSUB (1u << HSUB_BITS) +#define HBUCKETS (64 * HSUB) + +typedef struct { + uint64_t b[HBUCKETS]; + uint64_t count, sum, max; +} hist_t; + +static inline unsigned +hidx(uint64_t v) +{ + if (v < HSUB) { + return (unsigned)v; + } + unsigned e = 63 - __builtin_clzll(v); + unsigned sub = (unsigned)((v >> (e - HSUB_BITS)) & (HSUB - 1)); + return (e - HSUB_BITS + 1) * HSUB + sub; +} + +static inline uint64_t +hval(unsigned idx) +{ + if (idx < HSUB) { + return idx; + } + unsigned e = idx / HSUB + HSUB_BITS - 1; + unsigned sub = idx % HSUB; + uint64_t lo = (UINT64_C(1) << e) | ((uint64_t)sub << (e - HSUB_BITS)); + uint64_t width = UINT64_C(1) << (e - HSUB_BITS); + return lo + width / 2; +} + +static inline void +hist_add(hist_t *h, uint64_t v) +{ + h->b[hidx(v)]++; + h->count++; + h->sum += v; + if (v > h->max) { + h->max = v; + } +} + +static void +hist_merge(hist_t *dst, const hist_t *src) +{ + for (unsigned i = 0; i < HBUCKETS; i++) { + dst->b[i] += src->b[i]; + } + dst->count += src->count; + dst->sum += src->sum; + if (src->max > dst->max) { + dst->max = src->max; + } +} + +static double +hist_pct_us(const hist_t *h, double p) +{ + if (!h->count) { + return NAN; + } + uint64_t rank = (uint64_t)ceil(p * (double)h->count); + if (rank < 1) { + rank = 1; + } + uint64_t acc = 0; + for (unsigned i = 0; i < HBUCKETS; i++) { + acc += h->b[i]; + if (acc >= rank) { + uint64_t v = hval(i); + return (double)(v > h->max ? h->max : v) / 1e3; + } + } + return (double)h->max / 1e3; +} + +static double +hist_mean_us(const hist_t *h) +{ + return h->count ? (double)h->sum / (double)h->count / 1e3 : NAN; +} + +/* ------------------------------------------------------------------------ */ +/* Options / global state */ +/* ------------------------------------------------------------------------ */ + +enum phase_kind { PH_LOAD, PH_WARM, PH_POINT, PH_RANGE, PH_OW }; +enum dist { D_UNIFORM, D_ZIPF, D_SEQ, D_NEG, D_RANDOM }; + +typedef struct { + char name[64]; + enum phase_kind kind; + enum dist dist; + uint64_t L; + int threads; +} phase_t; + +typedef struct { + const char *db, *csv, *hang_dir; + const char *vtag, *stag, *otag; + int rep; + bool create; + uint64_t n, cache_mib, disk_gib, memtable_mib; + int use_log, threads, mt_bg, normal_bg; + double secs, warmup; + uint64_t sabotage; + uint64_t hang_secs; + uint64_t seed; + int nphases; + phase_t phases[MAX_PHASES]; +} options; + +static options opt; +static splinterdb *kvs; +static data_config data_cfg; +static perm_t load_perm, zipf_perm; +static zipf_t zipf; +static uint64_t generation; /* value generation for overwrites */ + +enum { ST_WAIT = 0, ST_WARMUP = 1, ST_MEASURE = 2, ST_STOP = 3 }; +static _Atomic int run_state; +static _Atomic uint64_t seq_counter; + +/* Watchdog */ +enum { WD_IDLE, WD_OPS, WD_OPENCLOSE }; +static _Atomic int wd_mode; +static _Atomic uint64_t wd_mode_since_ns; +static const char *wd_what = ""; + +typedef struct worker { + pthread_t th; + int idx; + const phase_t *ph; + hist_t lat; + hist_t startup; + uint64_t ops, tuples, pt_ns, pt_div, deinit_ns, deinit_n; + uint64_t violations, errors, notfound, found; + uint64_t rng; + uint64_t measure_rng; + bool measure_rng_captured; + _Atomic uint64_t progress; + char first_violation[256]; +} worker_t; + +static worker_t *workers; +static int nworkers; + +/* ------------------------------------------------------------------------ */ +/* Keys / values */ +/* ------------------------------------------------------------------------ */ + +static inline void +make_key(uint64_t k, char *key) +{ + for (int i = 0; i < 8; i++) { + key[i] = (char)(k >> (56 - 8 * i)); + } + memcpy(key + 8, KEY_PAD, 16); +} + +static inline bool +decode_key(slice s, uint64_t *k) +{ + if (slice_length(s) != KEY_SIZE) { + return false; + } + const unsigned char *p = slice_data(s); + uint64_t x = 0; + for (int i = 0; i < 8; i++) { + x = (x << 8) | p[i]; + } + *k = x; + return memcmp(p + 8, KEY_PAD, 16) == 0; +} + +static inline void +make_value(uint64_t id, uint64_t gen, char *val) +{ + memcpy(val, &id, 8); + memcpy(val + 8, &gen, 8); + memset(val + 16, 'v', VALUE_SIZE - 16); +} + +static inline bool +value_id_ok(slice v, uint64_t id) +{ + if (slice_length(v) != VALUE_SIZE) { + return false; + } + uint64_t got; + memcpy(&got, slice_data(v), 8); + return got == id; +} + +static inline bool +value_generation_ok(slice v, uint64_t id, uint64_t expected_generation) +{ + if (!value_id_ok(v, id)) { + return false; + } + uint64_t got_generation; + memcpy(&got_generation, (const char *)slice_data(v) + 8, 8); + return got_generation == expected_generation; +} + +static void +violation(worker_t *w, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); + +static void +violation(worker_t *w, const char *fmt, ...) +{ + w->violations++; + if (w->violations <= 3) { + char buf[256]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + if (w->violations == 1) { + snprintf(w->first_violation, sizeof(w->first_violation), "%s", buf); + } + fprintf(stderr, "VIOLATION [thread %d]: %s\n", w->idx, buf); + } +} + +/* ------------------------------------------------------------------------ */ +/* Process metrics */ +/* ------------------------------------------------------------------------ */ + +typedef struct { + uint64_t t_ns; + double cpu_s; + uint64_t rd, wr; + uint64_t swpin, swpout; + uint64_t majflt; +} snap_t; + +static void +proc_io(uint64_t *rd, uint64_t *wr) +{ + *rd = *wr = 0; + FILE *f = fopen("/proc/self/io", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "read_bytes:")) { + *rd = v; + } else if (!strcmp(name, "write_bytes:")) { + *wr = v; + } + } + fclose(f); +} + +static void +vm_swap(uint64_t *in, uint64_t *out) +{ + *in = *out = 0; + FILE *f = fopen("/proc/vmstat", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "pswpin")) { + *in = v; + } else if (!strcmp(name, "pswpout")) { + *out = v; + } + } + fclose(f); +} + +static void +take_snap(snap_t *s) +{ + struct rusage ru; + getrusage(RUSAGE_SELF, &ru); + s->cpu_s = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1e6 + + ru.ru_stime.tv_sec + ru.ru_stime.tv_usec / 1e6; + s->majflt = ru.ru_majflt; + proc_io(&s->rd, &s->wr); + vm_swap(&s->swpin, &s->swpout); + s->t_ns = now_ns(); +} + +/* ------------------------------------------------------------------------ */ +/* DB lifecycle */ +/* ------------------------------------------------------------------------ */ + +static void +fill_config(splinterdb_config *cfg) +{ + *cfg = (splinterdb_config){ + .filename = opt.db, + .cache_size = opt.cache_mib << 20, + .disk_size = opt.disk_gib << 30, + .data_cfg = &data_cfg, + .io_flags = O_RDWR | O_CREAT | O_DIRECT, + .io_perms = 0644, + .use_log = opt.use_log ? 1 : 0, + .memtable_capacity = opt.memtable_mib << 20, + .fanout = 8, + .num_memtable_bg_threads = (uint64)opt.mt_bg, + .num_normal_bg_threads = (uint64)opt.normal_bg, + .queue_scale_percent = 100, + }; +#ifdef KVBENCH_SPACE_MODE + cfg->use_stats = 1; +#endif +} + +static double open_secs; + +static void +db_open(bool create) +{ + splinterdb_config cfg; + fill_config(&cfg); + wd_what = create ? "create" : "open"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); + int rc = + create ? splinterdb_create(&cfg, &kvs) : splinterdb_open(&cfg, &kvs); + open_secs = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + if (rc) { + fprintf(stderr, "FATAL: splinterdb_%s failed rc=%d\n", wd_what, rc); + exit(3); + } + fprintf(stderr, "%s took %.3f s\n", wd_what, open_secs); +} + +static double +db_close(void) +{ +#ifdef KVBENCH_SPACE_MODE + /* Space/stats build only: dump insertion + allocator stats for the session. + */ + if (getenv("KVBENCH_STATS_BEFORE_CLOSE")) { + platform_set_log_streams(stdout, stderr); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + } +#endif + wd_what = "close"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); +#ifdef KVBENCH_CLOSE_HAS_FORCE + int rc = splinterdb_close(&kvs, 0); + if (rc) { + fprintf(stderr, + "FINDING: splinterdb_close(force=0) refused rc=%d; forcing\n", + rc); + rc = splinterdb_close(&kvs, 1); + if (rc) { + fprintf(stderr, "FINDING: splinterdb_close(force=1) rc=%d\n", rc); + } + } +#else + splinterdb_close(&kvs); +#endif + double s = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + kvs = NULL; + fprintf(stderr, "close took %.3f s\n", s); + return s; +} + +/* ------------------------------------------------------------------------ */ +/* Watchdog */ +/* ------------------------------------------------------------------------ */ + +static void +hang_dump(const char *why) +{ + char path[512], cmd[1024]; + snprintf(path, + sizeof(path), + "%s/hang-%s-%s-%d-%ld.txt", + opt.hang_dir ? opt.hang_dir : ".", + opt.vtag, + wd_what, + (int)getpid(), + (long)time(NULL)); + fprintf(stderr, + "HANG DETECTED (%s) during %s; dumping stacks to %s\n", + why, + wd_what, + path); + snprintf(cmd, + sizeof(cmd), + "gdb -batch -ex 'info threads' -ex 'thread apply all bt' -p %d > " + "'%s' 2>&1", + (int)getpid(), + path); + int rc = system(cmd); + fprintf(stderr, "gdb rc=%d; exiting with status 99\n", rc); + fflush(stderr); + _exit(99); +} + +static void * +watchdog_main(void *arg) +{ + (void)arg; + uint64_t last_prog = 0, last_change = now_ns(), last_report = now_ns(); + uint64_t last_report_prog = 0; + double last_cpu = -1; + uint64_t last_io = 0; + int last_mode = WD_IDLE; + for (;;) { + sleep(1); + int mode = atomic_load(&wd_mode); + uint64_t now = now_ns(); + if (mode != last_mode) { + last_mode = mode; + last_change = now; + last_prog = 0; + last_report_prog = 0; + last_report = now; + last_cpu = -1; + } + if (mode == WD_OPS) { + uint64_t prog = 0; + for (int i = 0; i < nworkers; i++) { + prog += + atomic_load_explicit(&workers[i].progress, memory_order_relaxed); + } + if (prog != last_prog) { + last_prog = prog; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no op progress for hang_secs"); + } + if (now - last_report >= 10ull * 1000000000ull) { + fprintf(stderr, + " [%s] progress %" PRIu64 " ops (+%.0f ops/s)\n", + wd_what, + prog, + (prog - last_report_prog) / ((now - last_report) / 1e9)); + last_report = now; + last_report_prog = prog; + } + } else if (mode == WD_OPENCLOSE) { + snap_t s; + take_snap(&s); + uint64_t io = s.rd + s.wr; + if (last_cpu < 0 || s.cpu_s - last_cpu > 0.05 || io != last_io) { + last_cpu = s.cpu_s; + last_io = io; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no CPU or IO progress for hang_secs"); + } + uint64_t since = atomic_load(&wd_mode_since_ns); + if (now - since > 2400ull * 1000000000ull) { + hang_dump("open/close exceeded 40 minutes"); + } + } + } + return NULL; +} + +/* ------------------------------------------------------------------------ */ +/* Worker bodies */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +pick_id(worker_t *w, enum dist d, uint64_t *seqpos, uint64_t lo, uint64_t hi) +{ + switch (d) { + case D_ZIPF: + return perm_apply(&zipf_perm, zipf_next(&zipf, &w->rng)); + case D_SEQ: + { + uint64_t id = *seqpos; + *seqpos = (id + 1 >= hi) ? lo : id + 1; + return id; + } + case D_UNIFORM: + case D_NEG: + default: + return rng_next(&w->rng) % opt.n; + } +} + +static inline void +wait_start(void) +{ + while (atomic_load_explicit(&run_state, memory_order_acquire) == ST_WAIT) { + struct timespec d = {.tv_nsec = 100000}; + nanosleep(&d, NULL); + } +} + +static void * +load_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + wait_start(); + uint64_t pos = lo, chunk_end = 0, cur = 0; + for (;;) { + uint64_t id; + if (w->ph->dist == D_RANDOM) { + if (pos >= hi) { + break; + } + id = perm_apply(&load_perm, pos++); + } else { + if (cur >= chunk_end) { + cur = atomic_fetch_add(&seq_counter, 64); + if (cur >= opt.n) { + break; + } + chunk_end = cur + 64 > opt.n ? opt.n : cur + 64; + } + id = cur++; + } + make_key(2 * id, key); + make_value(id, 0, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: insert id=%" PRIu64 " rc=%d\n", id, rc); + } + } + hist_add(&w->lat, t1 - t0); + w->ops++; + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + return NULL; +} + +static void * +warm_worker(void *arg) +{ + worker_t *w = arg; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + if ((opt.sabotage & 8) && w->idx == nworkers - 1) { + hi++; /* sabotage: expect one more id than exists */ + } + char key[KEY_SIZE]; + make_key(2 * lo, key); + wait_start(); + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator_init rc=%d\n", rc); + return NULL; + } + uint64_t expect = lo; + while (expect < hi && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk; + splinterdb_iterator_get_current(it, &k, &v); + if (!decode_key(k, &kk) || kk != 2 * expect || !value_id_ok(v, expect)) { + violation(w, + "warm: expected id %" PRIu64 " got key %" PRIu64 + " (len %" PRIu64 ")", + expect, + kk, + slice_length(k)); + if (kk > 2 * expect && (kk & 1) == 0) { + expect = kk / 2; /* resync after a gap */ + } + } + expect++; + w->ops++; + if ((w->ops & 1023) == 0) { + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + if (expect < hi) { + splinterdb_iterator_next(it); + } + } + rc = splinterdb_iterator_status(it); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator status rc=%d\n", rc); + } + if (expect != hi) { + violation(w, + "warm: range [%" PRIu64 ",%" PRIu64 ") ended at %" PRIu64, + lo, + hi, + expect); + } + splinterdb_iterator_deinit(it); + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + return NULL; +} + +static void * +point_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + char buf[256]; + splinterdb_lookup_result res; + splinterdb_lookup_result_init( + kvs, &res, SPLINTERDB_LOOKUP_VALUE, sizeof(buf), buf); + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + uint64_t seqpos = lo; + bool neg = w->ph->dist == D_NEG; + wait_start(); + uint64_t n = 0; + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, lo, hi); + bool q_neg = neg; + bool e_neg = neg; + if (opt.sabotage & 1) { + q_neg = true; /* sabotage: query absent key, expect present */ + } + if ((opt.sabotage & 16) && n > 1000) { + sleep(100000); /* test hook: simulate a hang for the watchdog */ + } + if (opt.sabotage & 2) { + q_neg = false; /* sabotage: query present key, expect absent */ + } + make_key(q_neg ? 2 * id + 1 : 2 * id, key); + uint64_t t0 = now_ns(); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &res); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: lookup id=%" PRIu64 " rc=%d\n", id, rc); + } + continue; + } + bool found = splinterdb_lookup_found(&res); + if (found) { + w->found++; + } else { + w->notfound++; + } + if (e_neg) { + if (found) { + violation(w, "negative key 2*%" PRIu64 "+1 found", id); + } + } else { + slice v; + if (!found) { + violation(w, "present id %" PRIu64 " not found", id); + } else if (splinterdb_lookup_result_value(&res, &v) != 0 + || !value_id_ok(v, id)) + { + violation(w, "present id %" PRIu64 " wrong value", id); + } + } + } + splinterdb_lookup_result_deinit(&res); + return NULL; +} + +static void * +range_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + uint64_t L = w->ph->L; + uint64_t seqpos = 0; + uint64_t n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t start = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + uint64_t expect = opt.n - start < L ? opt.n - start : L; + if (opt.sabotage & 4) { + expect++; /* sabotage: expect one extra tuple */ + } + make_key(2 * start, key); + uint64_t t0 = now_ns(), t1 = 0, tl = 0; + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator_init rc=%d\n", rc); + } + continue; + } + uint64_t got = 0; + bool bad = false; + while (got < L && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk = 0; + splinterdb_iterator_get_current(it, &k, &v); + if (!bad + && (!decode_key(k, &kk) || kk != 2 * (start + got) + || !value_id_ok(v, start + got))) + { + bad = true; + if (st == ST_MEASURE) { + violation(w, + "range start %" PRIu64 " tuple %" PRIu64 + ": expected key %" PRIu64 " got %" PRIu64, + start, + got, + 2 * (start + got), + kk); + } + } + got++; + if (got == 1) { + t1 = now_ns(); + } + if (got == L) { + tl = now_ns(); + break; + } + splinterdb_iterator_next(it); + } + int status = splinterdb_iterator_status(it); + uint64_t t2 = now_ns(); + splinterdb_iterator_deinit(it); + uint64_t t3 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + if (status) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator status rc=%d\n", status); + } + } + if (got != expect) { + violation(w, + "range start %" PRIu64 " L=%" PRIu64 ": got %" PRIu64 + " tuples, expected %" PRIu64, + start, + L, + got, + expect); + } + w->ops++; + w->tuples += got; + hist_add(&w->lat, t3 - t0); + if (got >= 1) { + hist_add(&w->startup, t1 - t0); + } + if (L > 1 && got == L) { + w->pt_ns += tl - t1; + w->pt_div += L - 1; + } + w->deinit_ns += t3 - t2; + w->deinit_n++; + } + return NULL; +} + +static void * +ow_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t seqpos = 0, n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + if (st == ST_MEASURE && !w->measure_rng_captured) { + w->measure_rng = w->rng; + w->measure_rng_captured = true; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + make_value(id, generation, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: overwrite id=%" PRIu64 " rc=%d\n", id, rc); + } + } + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + } + return NULL; +} + +/* + * Validate an untimed deterministic sample from the beginning of each + * overwrite worker's measured stream. Replaying the saved RNG state keeps all + * validation work out of the measured hot path. + */ +static void +verify_overwrite_sample(const phase_t *ph, int threads) +{ + enum { SAMPLES_PER_WORKER = 4096 }; + char key[KEY_SIZE], buffer[VALUE_SIZE]; + splinterdb_lookup_result result; + splinterdb_lookup_result_init( + kvs, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(buffer), buffer); + + for (int i = 0; i < threads; i++) { + worker_t *original = &workers[i]; + if (original->ops == 0) { + continue; + } + if (!original->measure_rng_captured) { + original->errors++; + fprintf( + stderr, + "ERROR: overwrite verifier has no measurement RNG for thread %d\n", + i); + continue; + } + worker_t replay = {.rng = original->measure_rng}; + uint64_t seqpos = 0; + uint64_t samples = original->ops < SAMPLES_PER_WORKER + ? original->ops + : SAMPLES_PER_WORKER; + for (uint64_t sample = 0; sample < samples; sample++) { + uint64_t id = pick_id(&replay, ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &result); + if (rc != 0) { + original->errors++; + if (original->errors <= 3) { + fprintf(stderr, + "ERROR: overwrite verification id=%" PRIu64 " rc=%d\n", + id, + rc); + } + continue; + } + slice value; + if (!splinterdb_lookup_found(&result) + || splinterdb_lookup_result_value(&result, &value) != 0 + || !value_generation_ok(value, id, generation)) + { + violation(original, + "overwrite verification id=%" PRIu64 + " did not return generation %" PRIu64, + id, + generation); + } + } + } + splinterdb_lookup_result_deinit(&result); +} + +/* ------------------------------------------------------------------------ */ +/* Phase driver */ +/* ------------------------------------------------------------------------ */ + +static const char * +dist_name(enum dist d) +{ + switch (d) { + case D_UNIFORM: + return "uniform"; + case D_ZIPF: + return "zipf"; + case D_SEQ: + return "seq"; + case D_NEG: + return "neg"; + case D_RANDOM: + return "random"; + } + return "?"; +} + +static void +sleep_secs(double s) +{ + uint64_t end = now_ns() + (uint64_t)(s * 1e9); + for (;;) { + uint64_t now = now_ns(); + if (now >= end) { + break; + } + uint64_t rem = end - now; + struct timespec d = {.tv_sec = rem / 1000000000ull, + .tv_nsec = rem % 1000000000ull}; + nanosleep(&d, NULL); + } +} + +static void +file_sizes(uint64_t *apparent, uint64_t *alloc) +{ + struct stat st; + if (stat(opt.db, &st) == 0) { + *apparent = (uint64_t)st.st_size; + *alloc = (uint64_t)st.st_blocks * 512; + } else { + *apparent = *alloc = 0; + } +} + +static int csv_header_written; + +static void +csv_row(const phase_t *ph, + int threads, + hist_t *lat, + hist_t *startup, + uint64_t ops, + uint64_t tuples, + uint64_t pt_ns, + uint64_t pt_div, + uint64_t deinit_ns, + uint64_t deinit_n, + uint64_t viol, + uint64_t errs, + const snap_t *a, + const snap_t *b, + double insert_s, + double drain_s, + const snap_t *da, + const snap_t *db_, + uint64_t app, + uint64_t alc) +{ + double secs = (b->t_ns - a->t_ns) / 1e9; + double cpu = b->cpu_s - a->cpu_s; + uint64_t rd = b->rd - a->rd, wr = b->wr - a->wr; + double d_cpu = da ? db_->cpu_s - da->cpu_s : 0; + uint64_t d_rd = da ? db_->rd - da->rd : 0, d_wr = da ? db_->wr - da->wr : 0; + uint64_t swin = b->swpin - a->swpin + (da ? db_->swpin - da->swpin : 0); + uint64_t swout = b->swpout - a->swpout + (da ? db_->swpout - da->swpout : 0); + uint64_t majflt = b->majflt - a->majflt; + double logical = (double)ops * (KEY_SIZE + VALUE_SIZE); + double wamp = (ph->kind == PH_LOAD || ph->kind == PH_OW) && ops + ? (double)(wr + d_wr) / logical + : NAN; + double pt = pt_div ? (double)pt_ns / (double)pt_div : NAN; + double dmean = deinit_n ? (double)deinit_ns / (double)deinit_n / 1e3 : NAN; + + printf("== %-22s T=%-2d ops=%-10" PRIu64 " secs=%7.2f ops/s=%11.0f " + "lat us p50=%.2f p99=%.2f p99.9=%.2f max=%.1f mean=%.2f\n", + ph->name, + threads, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat)); + printf(" cpu=%.2fs ops/cpu-s=%.0f rd=%.1f B/op wr=%.1f B/op " + "violations=%" PRIu64 " errors=%" PRIu64 " swapin=%" PRIu64 + " swapout=%" PRIu64 " majflt=%" PRIu64 "\n", + cpu, + ops / cpu, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + viol, + errs, + swin, + swout, + majflt); + if (ph->kind == PH_RANGE) { + printf(" startup us p50=%.2f p99=%.2f mean=%.2f per-tuple=%.1f ns " + "deinit mean=%.2f us tuples/s=%.0f\n", + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples / secs); + } + if (da) { + printf( + " insert/run=%.2fs drain(close)=%.2fs total=%.2fs drain_cpu=%.2fs " + "drain_rd=%" PRIu64 " drain_wr=%" PRIu64 " wamp=%.3f " + "db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc); + } + fflush(stdout); + + if (!opt.csv) { + return; + } + FILE *f = fopen(opt.csv, "a"); + if (!f) { + perror(opt.csv); + return; + } + if (!csv_header_written) { + fseek(f, 0, SEEK_END); + if (ftell(f) == 0) { + fprintf(f, + "version,size,order,log,phase,threads,rep,n,ops,secs,ops_s," + "p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s," + "rd_bytes,wr_bytes,rd_B_op,wr_B_op," + "startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns," + "deinit_mean_us,tuples,tuples_s," + "insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp," + "db_apparent,db_alloc,open_s,violations,errors,swapin,swapout," + "majflt\n"); + } + csv_header_written = 1; + } + fprintf(f, + "%s,%s,%s,%d,%s,%d,%d,%" PRIu64 ",%" PRIu64 ",%.3f,%.1f," + "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.1f," + "%" PRIu64 ",%" PRIu64 ",%.2f,%.2f," + "%.3f,%.3f,%.3f,%.2f," + "%.3f,%" PRIu64 ",%.1f," + "%.3f,%.3f,%.3f,%.3f,%" PRIu64 ",%" PRIu64 ",%.4f," + "%" PRIu64 ",%" PRIu64 ",%.3f,%" PRIu64 ",%" PRIu64 ",%" PRIu64 + ",%" PRIu64 ",%" PRIu64 "\n", + opt.vtag, + opt.stag, + opt.otag, + opt.use_log, + ph->name, + threads, + opt.rep, + opt.n, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat), + cpu, + ops / cpu, + rd, + wr, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples, + tuples / secs, + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc, + open_secs, + viol, + errs, + swin, + swout, + majflt); + fclose(f); +} + +static void +run_phase(const phase_t *ph, bool last) +{ + int T = ph->threads > 0 ? ph->threads : opt.threads; + nworkers = T; + workers = calloc((size_t)T, sizeof(worker_t)); + if (!workers) { + fprintf(stderr, "FATAL: out of memory\n"); + exit(3); + } + void *(*fn)(void *) = NULL; + switch (ph->kind) { + case PH_LOAD: + fn = load_worker; + break; + case PH_WARM: + fn = warm_worker; + break; + case PH_POINT: + fn = point_worker; + break; + case PH_RANGE: + fn = range_worker; + break; + case PH_OW: + fn = ow_worker; + break; + } + bool fixed_count = ph->kind == PH_LOAD || ph->kind == PH_WARM; + atomic_store(&run_state, ST_WAIT); + atomic_store(&seq_counter, 0); + for (int i = 0; i < T; i++) { + workers[i].idx = i; + workers[i].ph = ph; + workers[i].rng = mix(opt.seed * 1000003 + (uint64_t)i * 7919 + 17 + + (uint64_t)ph->kind * 131 + (uint64_t)ph->dist); + if (pthread_create(&workers[i].th, NULL, fn, &workers[i])) { + fprintf(stderr, "FATAL: pthread_create\n"); + exit(3); + } + } + fprintf(stderr, + "phase %s: T=%d dist=%s %s\n", + ph->name, + T, + dist_name(ph->dist), + fixed_count ? "(fixed count)" : "(fixed duration)"); + wd_what = ph->name; + atomic_store(&wd_mode, WD_OPS); + snap_t a, b; + if (fixed_count) { + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + take_snap(&b); + } else { + atomic_store_explicit(&run_state, ST_WARMUP, memory_order_release); + sleep_secs(opt.warmup); + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + sleep_secs(opt.secs); + atomic_store_explicit(&run_state, ST_STOP, memory_order_release); + take_snap(&b); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + } + atomic_store(&wd_mode, WD_IDLE); + + if (ph->kind == PH_OW) { + verify_overwrite_sample(ph, T); + } + + hist_t *lat = calloc(1, sizeof(hist_t)), + *startup = calloc(1, sizeof(hist_t)); + uint64_t ops = 0, tuples = 0, pt_ns = 0, pt_div = 0, dns = 0, dn = 0, + viol = 0, errs = 0, found = 0, notfound = 0; + for (int i = 0; i < T; i++) { + worker_t *w = &workers[i]; + hist_merge(lat, &w->lat); + hist_merge(startup, &w->startup); + ops += w->ops; + tuples += w->tuples; + pt_ns += w->pt_ns; + pt_div += w->pt_div; + dns += w->deinit_ns; + dn += w->deinit_n; + viol += w->violations; + errs += w->errors; + found += w->found; + notfound += w->notfound; + } + if (ph->kind == PH_WARM) { + tuples = ops; + if (ops != opt.n && !(opt.sabotage & 8)) { + fprintf(stderr, + "VIOLATION: warm scanned %" PRIu64 " tuples, expected %" PRIu64 + "\n", + ops, + opt.n); + viol++; + } + } + if (ph->kind == PH_POINT) { + fprintf(stderr, + " found=%" PRIu64 " notfound=%" PRIu64 "\n", + found, + notfound); + } + + double insert_s = (b.t_ns - a.t_ns) / 1e9, drain_s = 0; + snap_t da, dbs; + uint64_t app = 0, alc = 0; + bool closed = false; + if (ph->kind == PH_LOAD || last) { + take_snap(&da); + drain_s = db_close(); + take_snap(&dbs); + file_sizes(&app, &alc); + closed = true; + } + csv_row(ph, + T, + lat, + startup, + ops, + tuples, + pt_ns, + pt_div, + dns, + dn, + viol, + errs, + &a, + &b, + insert_s, + drain_s, + closed ? &da : NULL, + closed ? &dbs : NULL, + app, + alc); + if (viol) { + printf(" FINDING: %" PRIu64 + " correctness violations in %s (first: %s)\n", + viol, + ph->name, + workers[0].first_violation[0] ? workers[0].first_violation + : "see stderr"); + } + free(lat); + free(startup); + free(workers); + workers = NULL; + nworkers = 0; + if (closed && !last) { + db_open(false); + } +} + +/* ------------------------------------------------------------------------ */ +/* CLI */ +/* ------------------------------------------------------------------------ */ + +static void +usage(void) +{ + fprintf( + stderr, + "usage: kvbench --db PATH (--create|--open) --n N --cache-mib M " + "--disk-gib G --log 0|1\n" + " [--threads 6] [--mt-bg 1] [--normal-bg 4] [--memtable-mib 24]\n" + " [--secs 20] [--warmup 3] [--csv FILE] [--hang-dir DIR]\n" + " [--vtag S] [--stag S] [--otag S] [--rep R] [--seed S]\n" + " [--sabotage MASK] (1: point present->query absent; 2: point " + "neg->query present;\n" + " 4: range expects +1; 8: warm expects +1; 16: " + "point threads hang)\n" + " [--hang-secs 120] (no-progress timeout before gdb dump + exit 99\n" + " phase... load:random|load:seq warm point:uniform|zipf|seq|neg\n" + " range:uniform|zipf:L ow:uniform|zipf (suffix @T = " + "threads)\n"); + exit(2); +} + +static bool +parse_phase(const char *s, phase_t *ph) +{ + memset(ph, 0, sizeof(*ph)); + snprintf(ph->name, sizeof(ph->name), "%s", s); + char buf[64]; + snprintf(buf, sizeof(buf), "%s", s); + char *at = strchr(buf, '@'); + if (at) { + *at = 0; + ph->threads = atoi(at + 1); + } + char *a = strtok(buf, ":"), *b = strtok(NULL, ":"), *c = strtok(NULL, ":"); + if (!a) { + return false; + } + enum dist d = D_UNIFORM; + if (b) { + if (!strcmp(b, "uniform")) + d = D_UNIFORM; + else if (!strcmp(b, "zipf")) + d = D_ZIPF; + else if (!strcmp(b, "seq")) + d = D_SEQ; + else if (!strcmp(b, "neg")) + d = D_NEG; + else if (!strcmp(b, "random")) + d = D_RANDOM; + else + return false; + } + ph->dist = d; + if (!strcmp(a, "load")) { + ph->kind = PH_LOAD; + return b && (d == D_RANDOM || d == D_SEQ); + } else if (!strcmp(a, "warm")) { + ph->kind = PH_WARM; + return true; + } else if (!strcmp(a, "point")) { + ph->kind = PH_POINT; + return b != NULL; + } else if (!strcmp(a, "range")) { + ph->kind = PH_RANGE; + if (!b || !c || (d != D_UNIFORM && d != D_ZIPF)) { + return false; + } + ph->L = strtoull(c, NULL, 10); + return ph->L >= 1; + } else if (!strcmp(a, "ow")) { + ph->kind = PH_OW; + return b && (d == D_UNIFORM || d == D_ZIPF); + } + return false; +} + +int +main(int argc, char **argv) +{ + opt = (options){.threads = 6, + .mt_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .secs = 20, + .warmup = 3, + .vtag = "?", + .stag = "?", + .otag = "?", + .rep = 1, + .seed = 42, + .hang_secs = 120, + .use_log = -1}; + int mode = -1; +#ifdef KVBENCH_SPACE_MODE + /* + * Space-check build only: open with use_stats, print insertion stats + * (which include allocator "Currently Allocated" extents, recomputed from + * the persisted allocator map at open), close. No phases, no writes. + */ + bool space_mode = false; +#endif + for (int i = 1; i < argc; i++) { + const char *s = argv[i]; +#define ARG(name) (!strcmp(s, name) && i + 1 < argc) + if (!strcmp(s, "--create")) + mode = 1; + else if (!strcmp(s, "--open")) + mode = 0; + else if (ARG("--db")) + opt.db = argv[++i]; + else if (ARG("--csv")) + opt.csv = argv[++i]; + else if (ARG("--hang-dir")) + opt.hang_dir = argv[++i]; + else if (ARG("--vtag")) + opt.vtag = argv[++i]; + else if (ARG("--stag")) + opt.stag = argv[++i]; + else if (ARG("--otag")) + opt.otag = argv[++i]; + else if (ARG("--rep")) + opt.rep = atoi(argv[++i]); + else if (ARG("--n")) + opt.n = strtoull(argv[++i], NULL, 0); + else if (ARG("--cache-mib")) + opt.cache_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--disk-gib")) + opt.disk_gib = strtoull(argv[++i], NULL, 0); + else if (ARG("--memtable-mib")) + opt.memtable_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--log")) + opt.use_log = atoi(argv[++i]); + else if (ARG("--threads")) + opt.threads = atoi(argv[++i]); + else if (ARG("--mt-bg")) + opt.mt_bg = atoi(argv[++i]); + else if (ARG("--normal-bg")) + opt.normal_bg = atoi(argv[++i]); + else if (ARG("--secs")) + opt.secs = atof(argv[++i]); + else if (ARG("--warmup")) + opt.warmup = atof(argv[++i]); + else if (ARG("--sabotage")) + opt.sabotage = strtoull(argv[++i], NULL, 0); + else if (ARG("--hang-secs")) + opt.hang_secs = strtoull(argv[++i], NULL, 0); + else if (ARG("--seed")) + opt.seed = strtoull(argv[++i], NULL, 0); +#ifdef KVBENCH_SPACE_MODE + else if (!strcmp(s, "space")) + space_mode = true; +#endif + else if (s[0] == '-') + usage(); + else { + if (opt.nphases >= MAX_PHASES + || !parse_phase(s, &opt.phases[opt.nphases])) + { + fprintf(stderr, "bad phase '%s'\n", s); + usage(); + } + opt.nphases++; + } +#undef ARG + } +#ifdef KVBENCH_SPACE_MODE + if (space_mode && opt.db && opt.cache_mib && opt.disk_gib + && opt.use_log >= 0) + { + default_data_config_init(&data_cfg); + platform_set_log_streams(stdout, stderr); + db_open(false); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + db_close(); + uint64_t app, alc; + file_sizes(&app, &alc); + printf("space: db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", app, alc); + return 0; + } +#endif + if (!opt.db || mode < 0 || !opt.n || !opt.cache_mib || !opt.disk_gib + || opt.use_log < 0 || !opt.nphases || opt.threads < 1 + || opt.threads > MAX_WORKERS) + { + usage(); + } + for (int i = 0; i < opt.nphases; i++) { + if (opt.phases[i].threads > MAX_WORKERS) { + usage(); + } + } + prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + setvbuf(stdout, NULL, _IOLBF, 0); + + default_data_config_init(&data_cfg); + perm_init(&load_perm, opt.n, opt.seed * 2 + 1); + perm_init(&zipf_perm, opt.n, opt.seed * 2 + 2); + zipf_init(&zipf, opt.n, 0.99); + generation = (uint64_t)time(NULL); + + printf("kvbench version=%s splinter=%s db=%s mode=%s n=%" PRIu64 + " cache_mib=%" PRIu64 " disk_gib=%" PRIu64 + " log=%d threads=%d mt_bg=%d normal_bg=%d memtable_mib=%" PRIu64 + " secs=%.1f warmup=%.1f rep=%d sabotage=%" PRIu64 "\n", + opt.vtag, + splinterdb_get_version(), + opt.db, + mode ? "create" : "open", + opt.n, + opt.cache_mib, + opt.disk_gib, + opt.use_log, + opt.threads, + opt.mt_bg, + opt.normal_bg, + opt.memtable_mib, + opt.secs, + opt.warmup, + opt.rep, + opt.sabotage); + + pthread_t wd; + pthread_create(&wd, NULL, watchdog_main, NULL); + + db_open(mode == 1); + for (int i = 0; i < opt.nphases; i++) { + run_phase(&opt.phases[i], i == opt.nphases - 1); + } + if (kvs) { + db_close(); + } + return 0; +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/prefix_kvbench.c b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/prefix_kvbench.c new file mode 100644 index 000000000..77215f553 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/harnesses/prefix_kvbench.c @@ -0,0 +1,1765 @@ +// kvbench.c -- SplinterDB public-API benchmark used to compare two versions. +// +// Uses only splinterdb/splinterdb.h + splinterdb/default_data_config.h + libc, +// so the same source builds against versions whose internals differ. The one +// public-API difference handled here is splinterdb_close(): +// -DKVBENCH_CLOSE_HAS_FORCE => int splinterdb_close(splinterdb **, bool32) +// otherwise => void splinterdb_close(splinterdb **) +// +// Key scheme: logical id in [0,N). Present key = 8-byte big-endian(2*id) +// followed by 16 bytes of fixed padding (24 bytes total), so memcmp order == +// id order. Absent ("negative") keys use 2*id+1, interleaved with present +// keys. Value = 100 bytes: id (LE u64), generation (LE u64), filler. +// +// Each invocation: create/open the DB, run the listed phases in order, close. +// Phase syntax (optional "@T" overrides the thread count): +// load:random | load:seq fixed-count insert of all N ids, then close +// (close timed separately as "drain") +// warm parallel full scan; verifies every id once +// point:uniform|zipf|seq|neg fixed-duration lookups +// range:uniform|zipf:L fixed-duration forward range queries +// ow:uniform|zipf fixed-duration overwrites (insert existing) +// One CSV row per phase is appended to --csv. + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "splinterdb/default_data_config.h" +#include "splinterdb/splinterdb.h" + +#define KEY_SIZE 64 +#define VALUE_SIZE 100 +#define MAX_PHASES 64 +#define MAX_WORKERS 32 + + + +/* ------------------------------------------------------------------------ */ +/* Time, RNG, permutations, zipf */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +now_ns(void) +{ + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000000000ull + ts.tv_nsec; +} + +/* Bijective 64-bit mixer (splitmix64 finalizer). */ +static inline uint64_t +mix(uint64_t x) +{ + x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9); + x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb); + return x ^ (x >> 31); +} + +static inline uint64_t +rng_next(uint64_t *s) +{ + *s += UINT64_C(0x9e3779b97f4a7c15); + return mix(*s); +} + +static inline double +rng_unit(uint64_t *s) +{ + return (double)(rng_next(s) >> 11) * 0x1.0p-53; +} + +/* + * Pseudo-random bijection on [0,n): a 4-round balanced Feistel network over + * 2*half bits (2^(2*half) >= n), with cycle-walking to stay inside [0,n). + */ +typedef struct { + uint64_t n; + unsigned half; + uint64_t mask; + uint64_t keys[4]; +} perm_t; + +static void +perm_init(perm_t *p, uint64_t n, uint64_t seed) +{ + unsigned bits = 1; + while (bits < 64 && (UINT64_C(1) << bits) < n) { + bits++; + } + p->n = n; + p->half = (bits + 1) / 2; + if (p->half < 1) { + p->half = 1; + } + p->mask = (UINT64_C(1) << p->half) - 1; + for (int r = 0; r < 4; r++) { + p->keys[r] = mix(seed * UINT64_C(0x632be59bd9b4e019) + r + 1); + } +} + +static inline uint64_t +feistel(const perm_t *p, uint64_t x) +{ + uint64_t l = x >> p->half, r = x & p->mask; + for (int i = 0; i < 4; i++) { + uint64_t t = l ^ (mix(r ^ p->keys[i]) & p->mask); + l = r; + r = t; + } + return (l << p->half) | r; +} + +static inline uint64_t +perm_apply(const perm_t *p, uint64_t i) +{ + uint64_t x = i; + do { + x = feistel(p, x); + } while (x >= p->n); + return x; +} + +/* YCSB-style zipfian over ranks [0,n). */ +typedef struct { + uint64_t n; + double theta, zetan, zeta2, alpha, eta, half_pow_theta; +} zipf_t; + +static double +zeta_sum(uint64_t n, double theta) +{ + uint64_t m = n < 2000000 ? n : 2000000; + double s = 0; + for (uint64_t i = 1; i <= m; i++) { + s += pow((double)i, -theta); + } + if (n > m) { + /* Euler-Maclaurin tail: sum_{k=m+1}^{n} k^-t */ + s += (pow((double)n, 1 - theta) - pow((double)m, 1 - theta)) / (1 - theta) + + 0.5 * (pow((double)n, -theta) - pow((double)m, -theta)); + } + return s; +} + +static void +zipf_init(zipf_t *z, uint64_t n, double theta) +{ + z->n = n; + z->theta = theta; + z->zetan = zeta_sum(n, theta); + z->zeta2 = 1.0 + pow(0.5, theta); + z->alpha = 1.0 / (1.0 - theta); + z->eta = + (1.0 - pow(2.0 / (double)n, 1.0 - theta)) / (1.0 - z->zeta2 / z->zetan); + z->half_pow_theta = pow(0.5, theta); +} + +static inline uint64_t +zipf_next(const zipf_t *z, uint64_t *rng) +{ + double u = rng_unit(rng); + double uz = u * z->zetan; + if (uz < 1.0) { + return 0; + } + if (uz < 1.0 + z->half_pow_theta) { + return 1; + } + uint64_t r = + (uint64_t)((double)z->n * pow(z->eta * u - z->eta + 1.0, z->alpha)); + return r >= z->n ? z->n - 1 : r; +} + +/* ------------------------------------------------------------------------ */ +/* Histogram: log2 buckets with 32 linear sub-buckets (~3% resolution) */ +/* ------------------------------------------------------------------------ */ + +#define HSUB_BITS 5 +#define HSUB (1u << HSUB_BITS) +#define HBUCKETS (64 * HSUB) + +typedef struct { + uint64_t b[HBUCKETS]; + uint64_t count, sum, max; +} hist_t; + +static inline unsigned +hidx(uint64_t v) +{ + if (v < HSUB) { + return (unsigned)v; + } + unsigned e = 63 - __builtin_clzll(v); + unsigned sub = (unsigned)((v >> (e - HSUB_BITS)) & (HSUB - 1)); + return (e - HSUB_BITS + 1) * HSUB + sub; +} + +static inline uint64_t +hval(unsigned idx) +{ + if (idx < HSUB) { + return idx; + } + unsigned e = idx / HSUB + HSUB_BITS - 1; + unsigned sub = idx % HSUB; + uint64_t lo = (UINT64_C(1) << e) | ((uint64_t)sub << (e - HSUB_BITS)); + uint64_t width = UINT64_C(1) << (e - HSUB_BITS); + return lo + width / 2; +} + +static inline void +hist_add(hist_t *h, uint64_t v) +{ + h->b[hidx(v)]++; + h->count++; + h->sum += v; + if (v > h->max) { + h->max = v; + } +} + +static void +hist_merge(hist_t *dst, const hist_t *src) +{ + for (unsigned i = 0; i < HBUCKETS; i++) { + dst->b[i] += src->b[i]; + } + dst->count += src->count; + dst->sum += src->sum; + if (src->max > dst->max) { + dst->max = src->max; + } +} + +static double +hist_pct_us(const hist_t *h, double p) +{ + if (!h->count) { + return NAN; + } + uint64_t rank = (uint64_t)ceil(p * (double)h->count); + if (rank < 1) { + rank = 1; + } + uint64_t acc = 0; + for (unsigned i = 0; i < HBUCKETS; i++) { + acc += h->b[i]; + if (acc >= rank) { + uint64_t v = hval(i); + return (double)(v > h->max ? h->max : v) / 1e3; + } + } + return (double)h->max / 1e3; +} + +static double +hist_mean_us(const hist_t *h) +{ + return h->count ? (double)h->sum / (double)h->count / 1e3 : NAN; +} + +/* ------------------------------------------------------------------------ */ +/* Options / global state */ +/* ------------------------------------------------------------------------ */ + +enum phase_kind { PH_LOAD, PH_WARM, PH_POINT, PH_RANGE, PH_OW }; +enum dist { D_UNIFORM, D_ZIPF, D_SEQ, D_NEG, D_RANDOM }; + +typedef struct { + char name[64]; + enum phase_kind kind; + enum dist dist; + uint64_t L; + int threads; +} phase_t; + +typedef struct { + const char *db, *csv, *hang_dir; + const char *vtag, *stag, *otag; + int rep; + bool create; + uint64_t n, cache_mib, disk_gib, memtable_mib; + int use_log, threads, mt_bg, normal_bg; + double secs, warmup; + uint64_t sabotage; + uint64_t hang_secs; + uint64_t seed; + int nphases; + phase_t phases[MAX_PHASES]; +} options; + +static options opt; +static splinterdb *kvs; +static data_config data_cfg; +static perm_t load_perm, zipf_perm; +static zipf_t zipf; +static uint64_t generation; /* value generation for overwrites */ + +enum { ST_WAIT = 0, ST_WARMUP = 1, ST_MEASURE = 2, ST_STOP = 3 }; +static _Atomic int run_state; +static _Atomic uint64_t seq_counter; + +/* Watchdog */ +enum { WD_IDLE, WD_OPS, WD_OPENCLOSE }; +static _Atomic int wd_mode; +static _Atomic uint64_t wd_mode_since_ns; +static const char *wd_what = ""; + +typedef struct worker { + pthread_t th; + int idx; + const phase_t *ph; + hist_t lat; + hist_t startup; + uint64_t ops, tuples, pt_ns, pt_div, deinit_ns, deinit_n; + uint64_t violations, errors, notfound, found; + uint64_t rng; + uint64_t measure_rng; + bool measure_rng_captured; + _Atomic uint64_t progress; + char first_violation[256]; +} worker_t; + +static worker_t *workers; +static int nworkers; + +/* ------------------------------------------------------------------------ */ +/* Keys / values */ +/* ------------------------------------------------------------------------ */ + + +static int prefix_pattern; +static uint64_t *prefix_random_words; + +static int +prefix_word_compare(const void *a, const void *b) +{ + uint64_t x = *(const uint64_t *)a, y = *(const uint64_t *)b; + return (x > y) - (x < y); +} + +static int +prefix_nonlexical_compare(const data_config *cfg, user_key a, user_key b) +{ + (void)cfg; + if (slice_length(a.key) != KEY_SIZE || slice_length(b.key) != KEY_SIZE) + abort(); + return memcmp((const char *)slice_data(a.key) + 56, + (const char *)slice_data(b.key) + 56, 8); +} + +static void +prefix_configure(void) +{ + const char *pattern = getenv("PREFIX_PATTERN"); + if (pattern == NULL || strcmp(pattern, "common") == 0) prefix_pattern = 0; + else if (strcmp(pattern, "random") == 0) prefix_pattern = 1; + else if (strcmp(pattern, "nonlexical") == 0) prefix_pattern = 2; + else { fprintf(stderr, "Unknown PREFIX_PATTERN %s\n", pattern); exit(2); } + if (prefix_pattern == 2) data_cfg.key_compare = prefix_nonlexical_compare; +#ifdef KVBENCH_PREFIX_SUPPORT + data_cfg.key_compare_is_lexical = prefix_pattern != 2 + && getenv("PREFIX_DISABLE") == NULL; +#endif + if (prefix_pattern == 1) { + if (opt.n > SIZE_MAX / 2 / sizeof(uint64_t)) abort(); + prefix_random_words = malloc(2 * opt.n * sizeof(uint64_t)); + if (!prefix_random_words) abort(); + for (uint64_t i = 0; i < 2 * opt.n; i++) + prefix_random_words[i] = mix(i + opt.seed * 1000003); + qsort(prefix_random_words, 2 * opt.n, sizeof(uint64_t), prefix_word_compare); + } + printf("prefix-pattern=%s key_bytes=%d compression_disabled=%s\n", + pattern ? pattern : "common", KEY_SIZE, + getenv("PREFIX_DISABLE") ? "true" : "false"); +} + +static inline void +prefix_encode_word(uint64_t word, char *key) +{ + for (int i = 0; i < 8; i++) key[i] = (char)(word >> (56 - 8 * i)); +} + +static inline void +make_key(uint64_t k, char *key) +{ + if (prefix_pattern == 0) { + memset(key, 'p', 48); + prefix_encode_word(k, key + 48); + } else { + for (unsigned i = 0; i < 7; i++) + prefix_encode_word(mix(k + (uint64_t)i * UINT64_C(0x9e3779b97f4a7c15)), + key + i * 8); + if (prefix_pattern == 1) prefix_encode_word(prefix_random_words[k], key); + } + prefix_encode_word(k, key + 56); +} + +static inline bool +decode_key(slice s, uint64_t *k) +{ + if (slice_length(s) != KEY_SIZE) return false; + const unsigned char *bytes = slice_data(s); + uint64_t rank = 0; + for (unsigned i = 56; i < 64; i++) rank = (rank << 8) | bytes[i]; + if (rank >= 2 * opt.n) return false; + char expected[KEY_SIZE]; + make_key(rank, expected); + *k = rank; + return memcmp(bytes, expected, KEY_SIZE) == 0; +} + +static inline void +make_value(uint64_t id, uint64_t gen, char *val) +{ + memcpy(val, &id, 8); + memcpy(val + 8, &gen, 8); + memset(val + 16, 'v', VALUE_SIZE - 16); +} + +static inline bool +value_id_ok(slice v, uint64_t id) +{ + if (slice_length(v) != VALUE_SIZE) { + return false; + } + uint64_t got; + memcpy(&got, slice_data(v), 8); + return got == id; +} + +static inline bool +value_generation_ok(slice v, uint64_t id, uint64_t expected_generation) +{ + if (!value_id_ok(v, id)) { + return false; + } + uint64_t got_generation; + memcpy(&got_generation, (const char *)slice_data(v) + 8, 8); + return got_generation == expected_generation; +} + +static void +violation(worker_t *w, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); + +static void +violation(worker_t *w, const char *fmt, ...) +{ + w->violations++; + if (w->violations <= 3) { + char buf[256]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + if (w->violations == 1) { + snprintf(w->first_violation, sizeof(w->first_violation), "%s", buf); + } + fprintf(stderr, "VIOLATION [thread %d]: %s\n", w->idx, buf); + } +} + +/* ------------------------------------------------------------------------ */ +/* Process metrics */ +/* ------------------------------------------------------------------------ */ + +typedef struct { + uint64_t t_ns; + double cpu_s; + uint64_t rd, wr; + uint64_t swpin, swpout; + uint64_t majflt; +} snap_t; + +static void +proc_io(uint64_t *rd, uint64_t *wr) +{ + *rd = *wr = 0; + FILE *f = fopen("/proc/self/io", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "read_bytes:")) { + *rd = v; + } else if (!strcmp(name, "write_bytes:")) { + *wr = v; + } + } + fclose(f); +} + +static void +vm_swap(uint64_t *in, uint64_t *out) +{ + *in = *out = 0; + FILE *f = fopen("/proc/vmstat", "r"); + if (!f) { + return; + } + char name[64]; + uint64_t v; + while (fscanf(f, "%63s %" SCNu64, name, &v) == 2) { + if (!strcmp(name, "pswpin")) { + *in = v; + } else if (!strcmp(name, "pswpout")) { + *out = v; + } + } + fclose(f); +} + +static void +take_snap(snap_t *s) +{ + struct rusage ru; + getrusage(RUSAGE_SELF, &ru); + s->cpu_s = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1e6 + + ru.ru_stime.tv_sec + ru.ru_stime.tv_usec / 1e6; + s->majflt = ru.ru_majflt; + proc_io(&s->rd, &s->wr); + vm_swap(&s->swpin, &s->swpout); + s->t_ns = now_ns(); +} + +/* ------------------------------------------------------------------------ */ +/* DB lifecycle */ +/* ------------------------------------------------------------------------ */ + +static void +fill_config(splinterdb_config *cfg) +{ + *cfg = (splinterdb_config){ + .filename = opt.db, + .cache_size = opt.cache_mib << 20, + .disk_size = opt.disk_gib << 30, + .data_cfg = &data_cfg, + .io_flags = O_RDWR | O_CREAT | O_DIRECT, + .io_perms = 0644, + .use_log = opt.use_log ? 1 : 0, + .memtable_capacity = opt.memtable_mib << 20, + .fanout = 8, + .num_memtable_bg_threads = (uint64)opt.mt_bg, + .num_normal_bg_threads = (uint64)opt.normal_bg, + .queue_scale_percent = 100, + }; +#ifdef KVBENCH_SPACE_MODE + cfg->use_stats = 1; +#endif +} + +static double open_secs; + +static void +db_open(bool create) +{ + splinterdb_config cfg; + fill_config(&cfg); + wd_what = create ? "create" : "open"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); + int rc = + create ? splinterdb_create(&cfg, &kvs) : splinterdb_open(&cfg, &kvs); + open_secs = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + if (rc) { + fprintf(stderr, "FATAL: splinterdb_%s failed rc=%d\n", wd_what, rc); + exit(3); + } + fprintf(stderr, "%s took %.3f s\n", wd_what, open_secs); +} + +static double +db_close(void) +{ +#ifdef KVBENCH_SPACE_MODE + /* Space/stats build only: dump insertion + allocator stats for the session. + */ + if (getenv("KVBENCH_STATS_BEFORE_CLOSE")) { + platform_set_log_streams(stdout, stderr); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + } +#endif + wd_what = "close"; + atomic_store(&wd_mode_since_ns, now_ns()); + atomic_store(&wd_mode, WD_OPENCLOSE); + uint64_t t0 = now_ns(); +#ifdef KVBENCH_CLOSE_HAS_FORCE + int rc = splinterdb_close(&kvs, 0); + if (rc) { + fprintf(stderr, + "FINDING: splinterdb_close(force=0) refused rc=%d; forcing\n", + rc); + rc = splinterdb_close(&kvs, 1); + if (rc) { + fprintf(stderr, "FINDING: splinterdb_close(force=1) rc=%d\n", rc); + } + } +#else + splinterdb_close(&kvs); +#endif + double s = (now_ns() - t0) / 1e9; + atomic_store(&wd_mode, WD_IDLE); + kvs = NULL; + fprintf(stderr, "close took %.3f s\n", s); + return s; +} + +/* ------------------------------------------------------------------------ */ +/* Watchdog */ +/* ------------------------------------------------------------------------ */ + +static void +hang_dump(const char *why) +{ + char path[512], cmd[1024]; + snprintf(path, + sizeof(path), + "%s/hang-%s-%s-%d-%ld.txt", + opt.hang_dir ? opt.hang_dir : ".", + opt.vtag, + wd_what, + (int)getpid(), + (long)time(NULL)); + fprintf(stderr, + "HANG DETECTED (%s) during %s; dumping stacks to %s\n", + why, + wd_what, + path); + snprintf(cmd, + sizeof(cmd), + "gdb -batch -ex 'info threads' -ex 'thread apply all bt' -p %d > " + "'%s' 2>&1", + (int)getpid(), + path); + int rc = system(cmd); + fprintf(stderr, "gdb rc=%d; exiting with status 99\n", rc); + fflush(stderr); + _exit(99); +} + +static void * +watchdog_main(void *arg) +{ + (void)arg; + uint64_t last_prog = 0, last_change = now_ns(), last_report = now_ns(); + uint64_t last_report_prog = 0; + double last_cpu = -1; + uint64_t last_io = 0; + int last_mode = WD_IDLE; + for (;;) { + sleep(1); + int mode = atomic_load(&wd_mode); + uint64_t now = now_ns(); + if (mode != last_mode) { + last_mode = mode; + last_change = now; + last_prog = 0; + last_report_prog = 0; + last_report = now; + last_cpu = -1; + } + if (mode == WD_OPS) { + uint64_t prog = 0; + for (int i = 0; i < nworkers; i++) { + prog += + atomic_load_explicit(&workers[i].progress, memory_order_relaxed); + } + if (prog != last_prog) { + last_prog = prog; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no op progress for hang_secs"); + } + if (now - last_report >= 10ull * 1000000000ull) { + fprintf(stderr, + " [%s] progress %" PRIu64 " ops (+%.0f ops/s)\n", + wd_what, + prog, + (prog - last_report_prog) / ((now - last_report) / 1e9)); + last_report = now; + last_report_prog = prog; + } + } else if (mode == WD_OPENCLOSE) { + snap_t s; + take_snap(&s); + uint64_t io = s.rd + s.wr; + if (last_cpu < 0 || s.cpu_s - last_cpu > 0.05 || io != last_io) { + last_cpu = s.cpu_s; + last_io = io; + last_change = now; + } else if (now - last_change > opt.hang_secs * 1000000000ull) { + hang_dump("no CPU or IO progress for hang_secs"); + } + uint64_t since = atomic_load(&wd_mode_since_ns); + if (now - since > 2400ull * 1000000000ull) { + hang_dump("open/close exceeded 40 minutes"); + } + } + } + return NULL; +} + +/* ------------------------------------------------------------------------ */ +/* Worker bodies */ +/* ------------------------------------------------------------------------ */ + +static inline uint64_t +pick_id(worker_t *w, enum dist d, uint64_t *seqpos, uint64_t lo, uint64_t hi) +{ + switch (d) { + case D_ZIPF: + return perm_apply(&zipf_perm, zipf_next(&zipf, &w->rng)); + case D_SEQ: + { + uint64_t id = *seqpos; + *seqpos = (id + 1 >= hi) ? lo : id + 1; + return id; + } + case D_UNIFORM: + case D_NEG: + default: + return rng_next(&w->rng) % opt.n; + } +} + +static inline void +wait_start(void) +{ + while (atomic_load_explicit(&run_state, memory_order_acquire) == ST_WAIT) { + struct timespec d = {.tv_nsec = 100000}; + nanosleep(&d, NULL); + } +} + +static void * +load_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + wait_start(); + uint64_t pos = lo, chunk_end = 0, cur = 0; + for (;;) { + uint64_t id; + if (w->ph->dist == D_RANDOM) { + if (pos >= hi) { + break; + } + id = perm_apply(&load_perm, pos++); + } else { + if (cur >= chunk_end) { + cur = atomic_fetch_add(&seq_counter, 64); + if (cur >= opt.n) { + break; + } + chunk_end = cur + 64 > opt.n ? opt.n : cur + 64; + } + id = cur++; + } + make_key(2 * id, key); + make_value(id, 0, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: insert id=%" PRIu64 " rc=%d\n", id, rc); + } + } + hist_add(&w->lat, t1 - t0); + w->ops++; + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + return NULL; +} + +static void * +warm_worker(void *arg) +{ + worker_t *w = arg; + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + if ((opt.sabotage & 8) && w->idx == nworkers - 1) { + hi++; /* sabotage: expect one more id than exists */ + } + char key[KEY_SIZE]; + make_key(2 * lo, key); + wait_start(); + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator_init rc=%d\n", rc); + return NULL; + } + uint64_t expect = lo; + while (expect < hi && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk; + splinterdb_iterator_get_current(it, &k, &v); + if (!decode_key(k, &kk) || kk != 2 * expect || !value_id_ok(v, expect)) { + violation(w, + "warm: expected id %" PRIu64 " got key %" PRIu64 + " (len %" PRIu64 ")", + expect, + kk, + slice_length(k)); + if (kk > 2 * expect && (kk & 1) == 0) { + expect = kk / 2; /* resync after a gap */ + } + } + expect++; + w->ops++; + if ((w->ops & 1023) == 0) { + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + } + if (expect < hi) { + splinterdb_iterator_next(it); + } + } + rc = splinterdb_iterator_status(it); + if (rc) { + w->errors++; + fprintf(stderr, "ERROR: warm iterator status rc=%d\n", rc); + } + if (expect != hi) { + violation(w, + "warm: range [%" PRIu64 ",%" PRIu64 ") ended at %" PRIu64, + lo, + hi, + expect); + } + splinterdb_iterator_deinit(it); + atomic_store_explicit(&w->progress, w->ops, memory_order_relaxed); + return NULL; +} + +static void * +point_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + char buf[256]; + splinterdb_lookup_result res; + splinterdb_lookup_result_init( + kvs, &res, SPLINTERDB_LOOKUP_VALUE, sizeof(buf), buf); + uint64_t T = (uint64_t)nworkers; + uint64_t lo = opt.n * (uint64_t)w->idx / T, + hi = opt.n * (uint64_t)(w->idx + 1) / T; + uint64_t seqpos = lo; + bool neg = w->ph->dist == D_NEG; + wait_start(); + uint64_t n = 0; + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, lo, hi); + bool q_neg = neg; + bool e_neg = neg; + if (opt.sabotage & 1) { + q_neg = true; /* sabotage: query absent key, expect present */ + } + if ((opt.sabotage & 16) && n > 1000) { + sleep(100000); /* test hook: simulate a hang for the watchdog */ + } + if (opt.sabotage & 2) { + q_neg = false; /* sabotage: query present key, expect absent */ + } + make_key(q_neg ? 2 * id + 1 : 2 * id, key); + uint64_t t0 = now_ns(); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &res); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: lookup id=%" PRIu64 " rc=%d\n", id, rc); + } + continue; + } + bool found = splinterdb_lookup_found(&res); + if (found) { + w->found++; + } else { + w->notfound++; + } + if (e_neg) { + if (found) { + violation(w, "negative key 2*%" PRIu64 "+1 found", id); + } + } else { + slice v; + if (!found) { + violation(w, "present id %" PRIu64 " not found", id); + } else if (splinterdb_lookup_result_value(&res, &v) != 0 + || !value_id_ok(v, id)) + { + violation(w, "present id %" PRIu64 " wrong value", id); + } + } + } + splinterdb_lookup_result_deinit(&res); + return NULL; +} + +static void * +range_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE]; + uint64_t L = w->ph->L; + uint64_t seqpos = 0; + uint64_t n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + uint64_t start = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + uint64_t expect = opt.n - start < L ? opt.n - start : L; + if (opt.sabotage & 4) { + expect++; /* sabotage: expect one extra tuple */ + } + make_key(2 * start, key); + uint64_t t0 = now_ns(), t1 = 0, tl = 0; + splinterdb_iterator *it; + int rc = splinterdb_iterator_init( + kvs, &it, greater_than_or_equal, slice_create(KEY_SIZE, key)); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator_init rc=%d\n", rc); + } + continue; + } + uint64_t got = 0; + bool bad = false; + while (got < L && splinterdb_iterator_valid(it)) { + slice k, v; + uint64_t kk = 0; + splinterdb_iterator_get_current(it, &k, &v); + if (!bad + && (!decode_key(k, &kk) || kk != 2 * (start + got) + || !value_id_ok(v, start + got))) + { + bad = true; + if (st == ST_MEASURE) { + violation(w, + "range start %" PRIu64 " tuple %" PRIu64 + ": expected key %" PRIu64 " got %" PRIu64, + start, + got, + 2 * (start + got), + kk); + } + } + got++; + if (got == 1) { + t1 = now_ns(); + } + if (got == L) { + tl = now_ns(); + break; + } + splinterdb_iterator_next(it); + } + int status = splinterdb_iterator_status(it); + uint64_t t2 = now_ns(); + splinterdb_iterator_deinit(it); + uint64_t t3 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (st != ST_MEASURE) { + continue; + } + if (status) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: iterator status rc=%d\n", status); + } + } + if (got != expect) { + violation(w, + "range start %" PRIu64 " L=%" PRIu64 ": got %" PRIu64 + " tuples, expected %" PRIu64, + start, + L, + got, + expect); + } + w->ops++; + w->tuples += got; + hist_add(&w->lat, t3 - t0); + if (got >= 1) { + hist_add(&w->startup, t1 - t0); + } + if (L > 1 && got == L) { + w->pt_ns += tl - t1; + w->pt_div += L - 1; + } + w->deinit_ns += t3 - t2; + w->deinit_n++; + } + return NULL; +} + +static void * +ow_worker(void *arg) +{ + worker_t *w = arg; + char key[KEY_SIZE], val[VALUE_SIZE]; + uint64_t seqpos = 0, n = 0; + wait_start(); + for (;;) { + int st = atomic_load_explicit(&run_state, memory_order_relaxed); + if (st == ST_STOP) { + break; + } + if (st == ST_MEASURE && !w->measure_rng_captured) { + w->measure_rng = w->rng; + w->measure_rng_captured = true; + } + uint64_t id = pick_id(w, w->ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + make_value(id, generation, val); + uint64_t t0 = now_ns(); + int rc = splinterdb_insert( + kvs, slice_create(KEY_SIZE, key), slice_create(VALUE_SIZE, val), NULL); + uint64_t t1 = now_ns(); + n++; + atomic_store_explicit(&w->progress, n, memory_order_relaxed); + if (rc) { + w->errors++; + if (w->errors <= 3) { + fprintf(stderr, "ERROR: overwrite id=%" PRIu64 " rc=%d\n", id, rc); + } + } + if (st != ST_MEASURE) { + continue; + } + w->ops++; + hist_add(&w->lat, t1 - t0); + } + return NULL; +} + +/* + * Validate an untimed deterministic sample from the beginning of each + * overwrite worker's measured stream. Replaying the saved RNG state keeps all + * validation work out of the measured hot path. + */ +static void +verify_overwrite_sample(const phase_t *ph, int threads) +{ + enum { SAMPLES_PER_WORKER = 4096 }; + char key[KEY_SIZE], buffer[VALUE_SIZE]; + splinterdb_lookup_result result; + splinterdb_lookup_result_init( + kvs, &result, SPLINTERDB_LOOKUP_VALUE, sizeof(buffer), buffer); + + for (int i = 0; i < threads; i++) { + worker_t *original = &workers[i]; + if (original->ops == 0) { + continue; + } + if (!original->measure_rng_captured) { + original->errors++; + fprintf( + stderr, + "ERROR: overwrite verifier has no measurement RNG for thread %d\n", + i); + continue; + } + worker_t replay = {.rng = original->measure_rng}; + uint64_t seqpos = 0; + uint64_t samples = original->ops < SAMPLES_PER_WORKER + ? original->ops + : SAMPLES_PER_WORKER; + for (uint64_t sample = 0; sample < samples; sample++) { + uint64_t id = pick_id(&replay, ph->dist, &seqpos, 0, opt.n); + make_key(2 * id, key); + int rc = splinterdb_lookup(kvs, slice_create(KEY_SIZE, key), &result); + if (rc != 0) { + original->errors++; + if (original->errors <= 3) { + fprintf(stderr, + "ERROR: overwrite verification id=%" PRIu64 " rc=%d\n", + id, + rc); + } + continue; + } + slice value; + if (!splinterdb_lookup_found(&result) + || splinterdb_lookup_result_value(&result, &value) != 0 + || !value_generation_ok(value, id, generation)) + { + violation(original, + "overwrite verification id=%" PRIu64 + " did not return generation %" PRIu64, + id, + generation); + } + } + } + splinterdb_lookup_result_deinit(&result); +} + +/* ------------------------------------------------------------------------ */ +/* Phase driver */ +/* ------------------------------------------------------------------------ */ + +static const char * +dist_name(enum dist d) +{ + switch (d) { + case D_UNIFORM: + return "uniform"; + case D_ZIPF: + return "zipf"; + case D_SEQ: + return "seq"; + case D_NEG: + return "neg"; + case D_RANDOM: + return "random"; + } + return "?"; +} + +static void +sleep_secs(double s) +{ + uint64_t end = now_ns() + (uint64_t)(s * 1e9); + for (;;) { + uint64_t now = now_ns(); + if (now >= end) { + break; + } + uint64_t rem = end - now; + struct timespec d = {.tv_sec = rem / 1000000000ull, + .tv_nsec = rem % 1000000000ull}; + nanosleep(&d, NULL); + } +} + +static void +file_sizes(uint64_t *apparent, uint64_t *alloc) +{ + struct stat st; + if (stat(opt.db, &st) == 0) { + *apparent = (uint64_t)st.st_size; + *alloc = (uint64_t)st.st_blocks * 512; + } else { + *apparent = *alloc = 0; + } +} + +static int csv_header_written; + +static void +csv_row(const phase_t *ph, + int threads, + hist_t *lat, + hist_t *startup, + uint64_t ops, + uint64_t tuples, + uint64_t pt_ns, + uint64_t pt_div, + uint64_t deinit_ns, + uint64_t deinit_n, + uint64_t viol, + uint64_t errs, + const snap_t *a, + const snap_t *b, + double insert_s, + double drain_s, + const snap_t *da, + const snap_t *db_, + uint64_t app, + uint64_t alc) +{ + double secs = (b->t_ns - a->t_ns) / 1e9; + double cpu = b->cpu_s - a->cpu_s; + uint64_t rd = b->rd - a->rd, wr = b->wr - a->wr; + double d_cpu = da ? db_->cpu_s - da->cpu_s : 0; + uint64_t d_rd = da ? db_->rd - da->rd : 0, d_wr = da ? db_->wr - da->wr : 0; + uint64_t swin = b->swpin - a->swpin + (da ? db_->swpin - da->swpin : 0); + uint64_t swout = b->swpout - a->swpout + (da ? db_->swpout - da->swpout : 0); + uint64_t majflt = b->majflt - a->majflt; + double logical = (double)ops * (KEY_SIZE + VALUE_SIZE); + double wamp = (ph->kind == PH_LOAD || ph->kind == PH_OW) && ops + ? (double)(wr + d_wr) / logical + : NAN; + double pt = pt_div ? (double)pt_ns / (double)pt_div : NAN; + double dmean = deinit_n ? (double)deinit_ns / (double)deinit_n / 1e3 : NAN; + + printf("== %-22s T=%-2d ops=%-10" PRIu64 " secs=%7.2f ops/s=%11.0f " + "lat us p50=%.2f p99=%.2f p99.9=%.2f max=%.1f mean=%.2f\n", + ph->name, + threads, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat)); + printf(" cpu=%.2fs ops/cpu-s=%.0f rd=%.1f B/op wr=%.1f B/op " + "violations=%" PRIu64 " errors=%" PRIu64 " swapin=%" PRIu64 + " swapout=%" PRIu64 " majflt=%" PRIu64 "\n", + cpu, + ops / cpu, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + viol, + errs, + swin, + swout, + majflt); + if (ph->kind == PH_RANGE) { + printf(" startup us p50=%.2f p99=%.2f mean=%.2f per-tuple=%.1f ns " + "deinit mean=%.2f us tuples/s=%.0f\n", + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples / secs); + } + if (da) { + printf( + " insert/run=%.2fs drain(close)=%.2fs total=%.2fs drain_cpu=%.2fs " + "drain_rd=%" PRIu64 " drain_wr=%" PRIu64 " wamp=%.3f " + "db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc); + } + fflush(stdout); + + if (!opt.csv) { + return; + } + FILE *f = fopen(opt.csv, "a"); + if (!f) { + perror(opt.csv); + return; + } + if (!csv_header_written) { + fseek(f, 0, SEEK_END); + if (ftell(f) == 0) { + fprintf(f, + "version,size,order,log,phase,threads,rep,n,ops,secs,ops_s," + "p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s," + "rd_bytes,wr_bytes,rd_B_op,wr_B_op," + "startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns," + "deinit_mean_us,tuples,tuples_s," + "insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp," + "db_apparent,db_alloc,open_s,violations,errors,swapin,swapout," + "majflt\n"); + } + csv_header_written = 1; + } + fprintf(f, + "%s,%s,%s,%d,%s,%d,%d,%" PRIu64 ",%" PRIu64 ",%.3f,%.1f," + "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.1f," + "%" PRIu64 ",%" PRIu64 ",%.2f,%.2f," + "%.3f,%.3f,%.3f,%.2f," + "%.3f,%" PRIu64 ",%.1f," + "%.3f,%.3f,%.3f,%.3f,%" PRIu64 ",%" PRIu64 ",%.4f," + "%" PRIu64 ",%" PRIu64 ",%.3f,%" PRIu64 ",%" PRIu64 ",%" PRIu64 + ",%" PRIu64 ",%" PRIu64 "\n", + opt.vtag, + opt.stag, + opt.otag, + opt.use_log, + ph->name, + threads, + opt.rep, + opt.n, + ops, + secs, + ops / secs, + hist_pct_us(lat, 0.5), + hist_pct_us(lat, 0.99), + hist_pct_us(lat, 0.999), + (double)lat->max / 1e3, + hist_mean_us(lat), + cpu, + ops / cpu, + rd, + wr, + ops ? (double)rd / ops : 0, + ops ? (double)wr / ops : 0, + hist_pct_us(startup, 0.5), + hist_pct_us(startup, 0.99), + hist_mean_us(startup), + pt, + dmean, + tuples, + tuples / secs, + insert_s, + drain_s, + insert_s + drain_s, + d_cpu, + d_rd, + d_wr, + wamp, + app, + alc, + open_secs, + viol, + errs, + swin, + swout, + majflt); + fclose(f); +} + +static void +run_phase(const phase_t *ph, bool last) +{ + int T = ph->threads > 0 ? ph->threads : opt.threads; + nworkers = T; + workers = calloc((size_t)T, sizeof(worker_t)); + if (!workers) { + fprintf(stderr, "FATAL: out of memory\n"); + exit(3); + } + void *(*fn)(void *) = NULL; + switch (ph->kind) { + case PH_LOAD: + fn = load_worker; + break; + case PH_WARM: + fn = warm_worker; + break; + case PH_POINT: + fn = point_worker; + break; + case PH_RANGE: + fn = range_worker; + break; + case PH_OW: + fn = ow_worker; + break; + } + bool fixed_count = ph->kind == PH_LOAD || ph->kind == PH_WARM; + atomic_store(&run_state, ST_WAIT); + atomic_store(&seq_counter, 0); + for (int i = 0; i < T; i++) { + workers[i].idx = i; + workers[i].ph = ph; + workers[i].rng = mix(opt.seed * 1000003 + (uint64_t)i * 7919 + 17 + + (uint64_t)ph->kind * 131 + (uint64_t)ph->dist); + if (pthread_create(&workers[i].th, NULL, fn, &workers[i])) { + fprintf(stderr, "FATAL: pthread_create\n"); + exit(3); + } + } + fprintf(stderr, + "phase %s: T=%d dist=%s %s\n", + ph->name, + T, + dist_name(ph->dist), + fixed_count ? "(fixed count)" : "(fixed duration)"); + wd_what = ph->name; + atomic_store(&wd_mode, WD_OPS); + snap_t a, b; + if (fixed_count) { + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + take_snap(&b); + } else { + atomic_store_explicit(&run_state, ST_WARMUP, memory_order_release); + sleep_secs(opt.warmup); + take_snap(&a); + atomic_store_explicit(&run_state, ST_MEASURE, memory_order_release); + sleep_secs(opt.secs); + atomic_store_explicit(&run_state, ST_STOP, memory_order_release); + take_snap(&b); + for (int i = 0; i < T; i++) { + pthread_join(workers[i].th, NULL); + } + } + atomic_store(&wd_mode, WD_IDLE); + + if (ph->kind == PH_OW) { + verify_overwrite_sample(ph, T); + } + + hist_t *lat = calloc(1, sizeof(hist_t)), + *startup = calloc(1, sizeof(hist_t)); + uint64_t ops = 0, tuples = 0, pt_ns = 0, pt_div = 0, dns = 0, dn = 0, + viol = 0, errs = 0, found = 0, notfound = 0; + for (int i = 0; i < T; i++) { + worker_t *w = &workers[i]; + hist_merge(lat, &w->lat); + hist_merge(startup, &w->startup); + ops += w->ops; + tuples += w->tuples; + pt_ns += w->pt_ns; + pt_div += w->pt_div; + dns += w->deinit_ns; + dn += w->deinit_n; + viol += w->violations; + errs += w->errors; + found += w->found; + notfound += w->notfound; + } + if (ph->kind == PH_WARM) { + tuples = ops; + if (ops != opt.n && !(opt.sabotage & 8)) { + fprintf(stderr, + "VIOLATION: warm scanned %" PRIu64 " tuples, expected %" PRIu64 + "\n", + ops, + opt.n); + viol++; + } + } + if (ph->kind == PH_POINT) { + fprintf(stderr, + " found=%" PRIu64 " notfound=%" PRIu64 "\n", + found, + notfound); + } + + double insert_s = (b.t_ns - a.t_ns) / 1e9, drain_s = 0; + snap_t da, dbs; + uint64_t app = 0, alc = 0; + bool closed = false; + if (ph->kind == PH_LOAD || last) { + take_snap(&da); + drain_s = db_close(); + take_snap(&dbs); + file_sizes(&app, &alc); + closed = true; + } + csv_row(ph, + T, + lat, + startup, + ops, + tuples, + pt_ns, + pt_div, + dns, + dn, + viol, + errs, + &a, + &b, + insert_s, + drain_s, + closed ? &da : NULL, + closed ? &dbs : NULL, + app, + alc); + if (viol) { + printf(" FINDING: %" PRIu64 + " correctness violations in %s (first: %s)\n", + viol, + ph->name, + workers[0].first_violation[0] ? workers[0].first_violation + : "see stderr"); + } + free(lat); + free(startup); + free(workers); + workers = NULL; + nworkers = 0; + if (closed && !last) { + db_open(false); + } +} + +/* ------------------------------------------------------------------------ */ +/* CLI */ +/* ------------------------------------------------------------------------ */ + +static void +usage(void) +{ + fprintf( + stderr, + "usage: kvbench --db PATH (--create|--open) --n N --cache-mib M " + "--disk-gib G --log 0|1\n" + " [--threads 6] [--mt-bg 1] [--normal-bg 4] [--memtable-mib 24]\n" + " [--secs 20] [--warmup 3] [--csv FILE] [--hang-dir DIR]\n" + " [--vtag S] [--stag S] [--otag S] [--rep R] [--seed S]\n" + " [--sabotage MASK] (1: point present->query absent; 2: point " + "neg->query present;\n" + " 4: range expects +1; 8: warm expects +1; 16: " + "point threads hang)\n" + " [--hang-secs 120] (no-progress timeout before gdb dump + exit 99\n" + " phase... load:random|load:seq warm point:uniform|zipf|seq|neg\n" + " range:uniform|zipf:L ow:uniform|zipf (suffix @T = " + "threads)\n"); + exit(2); +} + +static bool +parse_phase(const char *s, phase_t *ph) +{ + memset(ph, 0, sizeof(*ph)); + snprintf(ph->name, sizeof(ph->name), "%s", s); + char buf[64]; + snprintf(buf, sizeof(buf), "%s", s); + char *at = strchr(buf, '@'); + if (at) { + *at = 0; + ph->threads = atoi(at + 1); + } + char *a = strtok(buf, ":"), *b = strtok(NULL, ":"), *c = strtok(NULL, ":"); + if (!a) { + return false; + } + enum dist d = D_UNIFORM; + if (b) { + if (!strcmp(b, "uniform")) + d = D_UNIFORM; + else if (!strcmp(b, "zipf")) + d = D_ZIPF; + else if (!strcmp(b, "seq")) + d = D_SEQ; + else if (!strcmp(b, "neg")) + d = D_NEG; + else if (!strcmp(b, "random")) + d = D_RANDOM; + else + return false; + } + ph->dist = d; + if (!strcmp(a, "load")) { + ph->kind = PH_LOAD; + return b && (d == D_RANDOM || d == D_SEQ); + } else if (!strcmp(a, "warm")) { + ph->kind = PH_WARM; + return true; + } else if (!strcmp(a, "point")) { + ph->kind = PH_POINT; + return b != NULL; + } else if (!strcmp(a, "range")) { + ph->kind = PH_RANGE; + if (!b || !c || (d != D_UNIFORM && d != D_ZIPF)) { + return false; + } + ph->L = strtoull(c, NULL, 10); + return ph->L >= 1; + } else if (!strcmp(a, "ow")) { + ph->kind = PH_OW; + return b && (d == D_UNIFORM || d == D_ZIPF); + } + return false; +} + +int +main(int argc, char **argv) +{ + opt = (options){.threads = 6, + .mt_bg = 1, + .normal_bg = 4, + .memtable_mib = 24, + .secs = 20, + .warmup = 3, + .vtag = "?", + .stag = "?", + .otag = "?", + .rep = 1, + .seed = 42, + .hang_secs = 120, + .use_log = -1}; + int mode = -1; +#ifdef KVBENCH_SPACE_MODE + /* + * Space-check build only: open with use_stats, print insertion stats + * (which include allocator "Currently Allocated" extents, recomputed from + * the persisted allocator map at open), close. No phases, no writes. + */ + bool space_mode = false; +#endif + for (int i = 1; i < argc; i++) { + const char *s = argv[i]; +#define ARG(name) (!strcmp(s, name) && i + 1 < argc) + if (!strcmp(s, "--create")) + mode = 1; + else if (!strcmp(s, "--open")) + mode = 0; + else if (ARG("--db")) + opt.db = argv[++i]; + else if (ARG("--csv")) + opt.csv = argv[++i]; + else if (ARG("--hang-dir")) + opt.hang_dir = argv[++i]; + else if (ARG("--vtag")) + opt.vtag = argv[++i]; + else if (ARG("--stag")) + opt.stag = argv[++i]; + else if (ARG("--otag")) + opt.otag = argv[++i]; + else if (ARG("--rep")) + opt.rep = atoi(argv[++i]); + else if (ARG("--n")) + opt.n = strtoull(argv[++i], NULL, 0); + else if (ARG("--cache-mib")) + opt.cache_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--disk-gib")) + opt.disk_gib = strtoull(argv[++i], NULL, 0); + else if (ARG("--memtable-mib")) + opt.memtable_mib = strtoull(argv[++i], NULL, 0); + else if (ARG("--log")) + opt.use_log = atoi(argv[++i]); + else if (ARG("--threads")) + opt.threads = atoi(argv[++i]); + else if (ARG("--mt-bg")) + opt.mt_bg = atoi(argv[++i]); + else if (ARG("--normal-bg")) + opt.normal_bg = atoi(argv[++i]); + else if (ARG("--secs")) + opt.secs = atof(argv[++i]); + else if (ARG("--warmup")) + opt.warmup = atof(argv[++i]); + else if (ARG("--sabotage")) + opt.sabotage = strtoull(argv[++i], NULL, 0); + else if (ARG("--hang-secs")) + opt.hang_secs = strtoull(argv[++i], NULL, 0); + else if (ARG("--seed")) + opt.seed = strtoull(argv[++i], NULL, 0); +#ifdef KVBENCH_SPACE_MODE + else if (!strcmp(s, "space")) + space_mode = true; +#endif + else if (s[0] == '-') + usage(); + else { + if (opt.nphases >= MAX_PHASES + || !parse_phase(s, &opt.phases[opt.nphases])) + { + fprintf(stderr, "bad phase '%s'\n", s); + usage(); + } + opt.nphases++; + } +#undef ARG + } +#ifdef KVBENCH_SPACE_MODE + if (space_mode && opt.db && opt.cache_mib && opt.disk_gib + && opt.use_log >= 0) + { + default_data_config_init(&data_cfg); prefix_configure(); + platform_set_log_streams(stdout, stderr); + db_open(false); + splinterdb_stats_print_insertion(kvs); + fflush(stdout); + db_close(); + uint64_t app, alc; + file_sizes(&app, &alc); + printf("space: db_apparent=%" PRIu64 " db_alloc=%" PRIu64 "\n", app, alc); + return 0; + } +#endif + if (!opt.db || mode < 0 || !opt.n || !opt.cache_mib || !opt.disk_gib + || opt.use_log < 0 || !opt.nphases || opt.threads < 1 + || opt.threads > MAX_WORKERS) + { + usage(); + } + for (int i = 0; i < opt.nphases; i++) { + if (opt.phases[i].threads > MAX_WORKERS) { + usage(); + } + } + prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + setvbuf(stdout, NULL, _IOLBF, 0); + + default_data_config_init(&data_cfg); prefix_configure(); + perm_init(&load_perm, opt.n, opt.seed * 2 + 1); + perm_init(&zipf_perm, opt.n, opt.seed * 2 + 2); + zipf_init(&zipf, opt.n, 0.99); + generation = (uint64_t)time(NULL); + + printf("kvbench version=%s splinter=%s db=%s mode=%s n=%" PRIu64 + " cache_mib=%" PRIu64 " disk_gib=%" PRIu64 + " log=%d threads=%d mt_bg=%d normal_bg=%d memtable_mib=%" PRIu64 + " secs=%.1f warmup=%.1f rep=%d sabotage=%" PRIu64 "\n", + opt.vtag, + splinterdb_get_version(), + opt.db, + mode ? "create" : "open", + opt.n, + opt.cache_mib, + opt.disk_gib, + opt.use_log, + opt.threads, + opt.mt_bg, + opt.normal_bg, + opt.memtable_mib, + opt.secs, + opt.warmup, + opt.rep, + opt.sabotage); + + pthread_t wd; + pthread_create(&wd, NULL, watchdog_main, NULL); + + db_open(mode == 1); + for (int i = 0; i < opt.nphases; i++) { + run_phase(&opt.phases[i], i == opt.nphases - 1); + } + if (kvs) { + db_close(); + } + return 0; +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/host.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/host.json new file mode 100644 index 000000000..be17442e1 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/host.json @@ -0,0 +1,14 @@ +{ + "uname": { + "system": "Linux", + "node": "snafu", + "release": "6.12.107+deb13-amd64", + "version": "#1 SMP PREEMPT_DYNAMIC Debian 6.12.107-1 (2026-08-29)", + "machine": "x86_64", + "processor": "" + }, + "gcc": "gcc (Debian 14.2.0-19) 14.2.0", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "cpu": "{\n \"lscpu\": [\n {\n \"field\": \"Architecture:\",\n \"data\": \"x86_64\"\n },{\n \"field\": \"CPU op-mode(s):\",\n \"data\": \"32-bit, 64-bit\"\n },{\n \"field\": \"Address sizes:\",\n \"data\": \"46 bits physical, 48 bits virtual\"\n },{\n \"field\": \"Byte Order:\",\n \"data\": \"Little Endian\"\n },{\n \"field\": \"CPU(s):\",\n \"data\": \"20\"\n },{\n \"field\": \"On-line CPU(s) list:\",\n \"data\": \"0-19\"\n },{\n \"field\": \"Vendor ID:\",\n \"data\": \"GenuineIntel\"\n },{\n \"field\": \"Model name:\",\n \"data\": \"12th Gen Intel(R) Core(TM) i7-12800H\"\n },{\n \"field\": \"CPU family:\",\n \"data\": \"6\"\n },{\n \"field\": \"Model:\",\n \"data\": \"154\"\n },{\n \"field\": \"Thread(s) per core:\",\n \"data\": \"2\"\n },{\n \"field\": \"Core(s) per socket:\",\n \"data\": \"14\"\n },{\n \"field\": \"Socket(s):\",\n \"data\": \"1\"\n },{\n \"field\": \"Stepping:\",\n \"data\": \"3\"\n },{\n \"field\": \"CPU(s) scaling MHz:\",\n \"data\": \"57%\"\n },{\n \"field\": \"CPU max MHz:\",\n \"data\": \"4800.0000\"\n },{\n \"field\": \"CPU min MHz:\",\n \"data\": \"400.0000\"\n },{\n \"field\": \"BogoMIPS:\",\n \"data\": \"5606.40\"\n },{\n \"field\": \"Flags:\",\n \"data\": \"fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities\"\n },{\n \"field\": \"Virtualization:\",\n \"data\": \"VT-x\"\n },{\n \"field\": \"L1d cache:\",\n \"data\": \"544 KiB (14 instances)\"\n },{\n \"field\": \"L1i cache:\",\n \"data\": \"704 KiB (14 instances)\"\n },{\n \"field\": \"L2 cache:\",\n \"data\": \"11.5 MiB (8 instances)\"\n },{\n \"field\": \"L3 cache:\",\n \"data\": \"24 MiB (1 instance)\"\n },{\n \"field\": \"NUMA node(s):\",\n \"data\": \"1\"\n },{\n \"field\": \"NUMA node0 CPU(s):\",\n \"data\": \"0-19\"\n },{\n \"field\": \"Vulnerability Gather data sampling:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Indirect target selection:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Itlb multihit:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability L1tf:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Mds:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Meltdown:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Mmio stale data:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Reg file data sampling:\",\n \"data\": \"Mitigation; Clear Register File\"\n },{\n \"field\": \"Vulnerability Retbleed:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Spec rstack overflow:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Spec store bypass:\",\n \"data\": \"Mitigation; Speculative Store Bypass disabled via prctl\"\n },{\n \"field\": \"Vulnerability Spectre v1:\",\n \"data\": \"Mitigation; usercopy/swapgs barriers and __user pointer sanitization\"\n },{\n \"field\": \"Vulnerability Spectre v2:\",\n \"data\": \"Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S\"\n },{\n \"field\": \"Vulnerability Srbds:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Tsa:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Tsx async abort:\",\n \"data\": \"Not affected\"\n },{\n \"field\": \"Vulnerability Vmscape:\",\n \"data\": \"Mitigation; IBPB before exit to userspace\"\n }\n ]\n}\n", + "main": "fc0bc8f7e39566f14822bb598376458bdf1e28b3" +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/imported-run_matrix.py b/benchmarks/results-20261013/main-fc0bc8f7-screen/imported-run_matrix.py new file mode 100644 index 000000000..532cb8667 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/imported-run_matrix.py @@ -0,0 +1,156 @@ +"""Fresh main integration screening. Invoke every mode under run_job.py benchmark.""" +import argparse,csv,hashlib,json,os,re,resource,signal,statistics,subprocess,time +from pathlib import Path +ROOT=Path('/home/rob/projects/splinterdb'); CAMP=ROOT/'.cache/projects-20261011' +COORD=Path(__file__).resolve().parent; OUT=CAMP/'benchmarks/main-7bb5fab' +VARIANTS=['disk-format','filtered-ranges','log-group-limit','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic'] +ORDER=['main',*VARIANTS,'main',*reversed(VARIANTS),'main'] +def sha(path): + h=hashlib.sha256() + with Path(path).open('rb') as f: + for b in iter(lambda:f.read(1024*1024),b''):h.update(b) + return h.hexdigest() +def save(path,value):path.write_text(json.dumps(value,indent=2)+'\n') +def rows(path): + with path.open() as f:return list(csv.DictReader(f)) +def csvwrite(path,data): + if not data:return + with path.open('w') as f: + w=csv.DictWriter(f,fieldnames=list(data[0]),lineterminator='\n');w.writeheader();w.writerows(data) +def build(name): + r=json.loads((COORD/(name+'-build.json')).read_text()) + assert sha(r['library'])==r['library_sha256'],name + for filename,expected in r['source_files_sha256'].items():assert sha(Path(r['tree'])/filename)==expected,(name,filename) + for b in r['binaries'].values(): + assert sha(b['binary'])==b['binary_sha256'],name + assert sha(b['source'])==b['source_sha256'],(name,b['source']) + return r +def cmdrun(folder,manifest,label,profile,binary,args,env=None,timeout=600): + b=build(profile);exe=b['binaries'][binary] + cmd=['taskset','-c','0-11',exe['binary'],*map(str,args)] + rec=dict(label=label,profile=profile,command=cmd,started=time.time(),binary_sha256=exe['binary_sha256'],library_sha256=b['library_sha256'],source_head=b['head'],verified=False) + print(label,flush=True) + log=folder/(label+'.log') + try: + before=resource.getrusage(resource.RUSAGE_CHILDREN) + with log.open('w') as f: + p=subprocess.Popen(cmd,env=dict(os.environ,**(env or {})),stdout=f,stderr=subprocess.STDOUT,start_new_session=True) + try:p.wait(timeout=timeout) + except BaseException: + try:os.killpg(p.pid,signal.SIGKILL) + except ProcessLookupError:pass + p.wait() + raise + after=resource.getrusage(resource.RUSAGE_CHILDREN) + rec.update(returncode=p.returncode,finished=time.time(),log_sha256=sha(log),process_cpu_s=(after.ru_utime+after.ru_stime-before.ru_utime-before.ru_stime),process_read_bytes=512*(after.ru_inblock-before.ru_inblock),process_write_bytes=512*(after.ru_oublock-before.ru_oublock)) + except BaseException as e: + rec.update(exception=str(e),finished=time.time());manifest['runs'].append(rec);save(folder/'manifest.json',manifest);raise + manifest['runs'].append(rec);save(folder/'manifest.json',manifest) + assert p.returncode==0,rec + assert 'FINDING: splinterdb_close' not in log.read_text(),rec + return rec + +def newmode(mode): + folder=OUT/mode;folder.mkdir(parents=True,exist_ok=False) + fs=subprocess.check_output(['findmnt','-n','-o','FSTYPE,SOURCE','-T',str(folder)],text=True).strip();assert fs.split()[0] not in ['tmpfs','ramfs'] and fs.split()[1].startswith('/dev/') + manifest=dict(mode=mode,storage=fs,io='O_DIRECT',cpu_affinity='0-11',scope='Updated feature branches versus fresh main; not an isolation of merge cost',runner_sha256=sha(__file__),runs=[]) + save(folder/'manifest.json',manifest);return folder,manifest + +def kvargs(db,csvpath,profile,regime,index,secs=6,prefix=False,create=False): + return ['--db',db,'--create' if create else '--open','--n',200000 if regime=='resident' else 2000000,'--cache-mib',128 if regime=='resident' else 64,'--disk-gib',8,'--log',0,'--threads',1 if create else 8,'--mt-bg',0,'--normal-bg',0,'--memtable-mib',4,'--secs',secs,'--warmup',1,'--csv',csvpath,'--vtag',profile,'--stag',regime,'--otag',index,'--rep',index,'--seed',42,'--hang-secs',60,'--hang-dir',str(csvpath.parent)] +def verifykv(csvpath,index,count): + rr=[r for r in rows(csvpath) if r['order']==str(index)] + assert len(rr)==count,(index,len(rr),count) + assert all(int(r['ops'])>0 and int(r['errors'])==0 and int(r['violations'])==0 for r in rr),rr + assert all(int(r['ops'])==int(r['n']) for r in rr if r['phase']=='warm' or r['phase'].startswith('load:')),rr + return rr + +def fixtures(): + folder,m=newmode('fixtures');ff={} + for regime in ['resident','disk']: + for profile,pattern in [('main','ordinary'),('disk-format','ordinary'),('main','common'),('branch-prefix','common'),('main','random'),('branch-prefix','random')]: + label=f'{regime}-{profile}-{pattern}';db=folder/(label+'.db');binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,folder/(label+'.csv'),profile,regime,0,secs=1,create=True)+['load:random'],dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + verifykv(folder/(label+'.csv'),0,1) + with db.open('rb') as f:os.fsync(f.fileno()) + rec.update(verified=True,verification_kind='load API errors and operation count; query phases later validate data',errors=0,violations=0,fixture=str(db),fixture_sha256=sha(db),allocated_bytes=db.stat().st_blocks*512,apparent_bytes=db.stat().st_size) + ff[label]={k:rec[k] for k in ['fixture','fixture_sha256','allocated_bytes','apparent_bytes']};save(folder/'manifest.json',m);save(folder/'fixtures.json',ff) + m['complete']=True;save(folder/'manifest.json',m) + +def query_one(folder,m,index,profile,regime,phases,pattern='ordinary'): + f=json.loads((OUT/'fixtures/fixtures.json').read_text());owner=profile if profile in ['disk-format','branch-prefix'] else 'main' + fixture=f[f'{regime}-{owner}-{pattern}'];src=Path(fixture['fixture']);before=src.stat() + db=folder/'scratch.db';assert not db.exists() + subprocess.run(['cp','--reflink=auto','--sparse=always',str(src),str(db)],check=True) + with db.open('rb') as image:os.fsync(image.fileno()) + label=f'{index:02d}-{profile}';csvpath=folder/'results.csv';binary='kvbench' if pattern=='ordinary' else 'prefix_kvbench' + rec=cmdrun(folder,m,label,profile,binary,kvargs(db,csvpath,profile,regime,index,secs=6 if regime=='resident' else 5)+phases,dict(PREFIX_PATTERN=pattern) if pattern!='ordinary' else None) + rr=verifykv(csvpath,index,len(phases)) + rec.update(verified=True,verification_kind='query key/value/range validation and successful close',errors=sum(int(r['errors']) for r in rr),violations=sum(int(r['violations']) for r in rr),fixture=fixture,fixture_copy_fsynced=True,db_allocated_bytes=db.stat().st_blocks*512) + assert src.stat().st_mtime_ns==before.st_mtime_ns + save(folder/'manifest.json',m);db.unlink() + +def queries(regime): + folder,m=newmode(regime) + phases=['warm','point:uniform@1','point:uniform@8','range:uniform:1@1','range:uniform:1@8','range:uniform:10000@8'] if regime=='resident' else ['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + m.update(order=ORDER,phases=phases) + for i,profile in enumerate(ORDER):query_one(folder,m,i,profile,regime,phases) + m['complete']=True;save(folder/'manifest.json',m) + +def prefix(): + for regime in ['resident','disk']: + for pattern in ['common','random']: + folder,m=newmode(f'prefix-{regime}-{pattern}') + phases=['warm','point:uniform@8','range:uniform:1@8','range:uniform:10000@8'] + if regime=='resident':phases+=['ow:uniform@8'] + for i,profile in enumerate(['main','branch-prefix','branch-prefix','main']):query_one(folder,m,i,profile,regime,phases,pattern) + m['complete']=True;save(folder/'manifest.json',m) + +def insert(): + folder,m=newmode('insert');data=[] + profiles=['disk-format','filtered-ranges','lazy-merge','async-durable-barrier','cache-invalid-addresses','directory-direct','directory-bucket','directory-bucket-simd','directory-bucket-atomic','log-disabled','log-default'] + for wal,versions in [(1,['main',*profiles,'main',*reversed(profiles),'main']),(0,['main','cache-invalid-addresses','directory-bucket-atomic','directory-bucket-atomic','cache-invalid-addresses','main'])]: + for i,version in enumerate(versions): + profile='log-group-limit' if version.startswith('log-') else version + label=f'wal{wal}-{i:02d}-{version}';stem=folder/label;db=folder/'scratch.db';assert not db.exists() + args=['--db',db,'--csv',str(stem)+'.csv','--summary',str(stem)+'.summary.csv','--records',100000000,'--seconds',5,'--report-ms',100,'--cache-mib',256,'--disk-gib',16,'--direct','--inserters',8,'--readers',0,'--memtable-bg',1,'--normal-bg',3,'--memtable-mib',8,'--key-size',16,'--value-size',16,'--min-free-gib',12,'--seed',42] + if not wal:args+=['--no-log'] + if version.startswith('log-'):args+=['--log-group-size-pages',2**64-1 if version=='log-disabled' else 0] + rec=cmdrun(folder,m,label,profile,'insert_benchmark',args,timeout=240) + summary=rows(Path(str(stem)+'.summary.csv'));assert len(summary)==1;summary=summary[0];inserted=int(summary['inserted']);assert inserted>0 + log=(folder/(label+'.log')).read_text();error_match=re.search(r'load_end .* error=([0-9]+)(?: |\n)',log);assert error_match and int(error_match[1])==0 + close=re.search(r'close_s=([\d.]+) close_rc=0',log);assert close + interval=rows(Path(str(stem)+'.csv'));cpu=sum(float(r['cpu_cores'])*float(r['interval_s']) for r in interval) + data.append(dict(wal=wal,version=version,index=i,errors=int(error_match[1]),violations=0,verification_kind='API return, positive insert count, successful close; no readback',ops_s=float(summary['achieved_insert_ops_s']),inserted=inserted,close_s=float(close[1]),drain_ops_s=inserted/(float(summary['elapsed_s'])+float(close[1])),cpu_us_op=cpu*1e6/inserted,p99_us=1000*float(summary['insert_service_p99_ms']),max_ms=float(summary['insert_service_max_ms']),read_B_op=sum(float(r['read_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted,write_B_op=sum(float(r['write_mib_s'])*float(r['interval_s']) for r in interval)*2**20/inserted)) + rec.update(verified=True,errors=int(error_match[1]),verification_kind='API return, positive insert count, successful close; no readback',allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);csvwrite(folder/'results.csv',data);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def hash_range(): + folder,m=newmode('hash');reference=None + for i,profile in enumerate(['main','filtered-ranges','filtered-ranges','main']): + label=f'{i}-{profile}';db=folder/'scratch.db';rec=cmdrun(folder,m,label,profile,'hash_range_benchmark',[db,16384,1000],timeout=900) + lines=(folder/(label+'.log')).read_text().splitlines();start=next(j for j,x in enumerate(lines) if x.startswith('mode,keys_per_tenant,'));rr=list(csv.DictReader(lines[start:]));assert len(rr)==4 + assert [int(r['limit']) for r in rr]==[1,2,10,100] and all(int(r['queries'])==1000 and int(r['keys_per_tenant'])==16384 for r in rr),rr + checks=[x['checksum'] for x in rr] + if reference is None:reference=checks + assert checks==reference + rec.update(verified=True,rows=rr,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +def barrier(): + folder,m=newmode('barrier') + for wal in [0,1]: + for workers in [0,1]: + order=[('main','sync'),('async-durable-barrier','sync'),('async-durable-barrier','async'),('async-durable-barrier','async'),('async-durable-barrier','sync'),('main','sync')] + for i,(profile,mode) in enumerate(order): + label=f'wal{wal}-workers{workers}-{i}-{profile}-{mode}';db=folder/'scratch.db';csvpath=folder/'results.csv' + rec=cmdrun(folder,m,label,profile,'barrier_bench',[db,csvpath,label,mode,wal,workers,256,2048 if wal else 512],dict(BARRIER_DEPTH='1')) + rr=rows(csvpath);assert rr[-1]['label']==label and int(rr[-1]['verified'])==1 + rec.update(verified=True,allocated_bytes=db.stat().st_blocks*512);save(folder/'manifest.json',m);db.unlink() + m['complete']=True;save(folder/'manifest.json',m) + +if __name__=='__main__': + def interrupted(signum,frame):raise InterruptedError(f'benchmark interrupted by signal {signum}') + for signum in [signal.SIGTERM,signal.SIGHUP]:signal.signal(signum,interrupted) + p=argparse.ArgumentParser();p.add_argument('mode',choices=['fixtures','resident','disk','prefix','insert','hash','barrier']);a=p.parse_args() + {'fixtures':fixtures,'resident':lambda:queries('resident'),'disk':lambda:queries('disk'),'prefix':prefix,'insert':insert,'hash':hash_range,'barrier':barrier}[a.mode]() diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/log-async-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/log-async-build.json new file mode 100644 index 000000000..34c31a3f2 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/log-async-build.json @@ -0,0 +1,158 @@ +{ + "profile": "log-async", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit", + "head": "9bc5ebf403196affb43a0c04fdf0e9234f24d025", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "library_sha256": "e3cdc682d417984ba85019687a3cdeed56dc32a6f659b5698606900a137bc5bc", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "60d90eb75eb504e33ff589fb86bedc130b0939310ad7c6a818b5364e9534ac2d", + "src/shard_log.h": "c6e13b991af5be285b3ad52440f3a51e296604590111a171d0de49293481a729", + "src/splinterdb.c": "70c88c0c09caecd6d9adbb0b6e98c1b7cc928c2f6539595f0e99f1a96cfeac6e", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "1e6bcdbedef94cd67f7b29a198e9d1d1a3fc4855ccfdddf2affa3aec0ee9c4e7" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/build-main-fc0bc8f7/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/log-async/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/log-async/insert_benchmark", + "binary_sha256": "e11dd692d5a428f8b44ff337b6d246bf65342ab6d8c0cb3a4556ef7e57c4dc7c", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + } + }, + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/log-group-limit/build-main-fc0bc8f7/release/build-config.fb6bc8eeb8390429253883c09491f5bd": { + "sha256": "cfc28a3afe21caf2d8b1257c9014c27c1a9365d2e39601fe18e4d8f0b002b035", + "text": "BUILD_ROOT=build-main-fc0bc8f7\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/tmp/splinter-log-async-fc0-build-release-42zytmqa/GMfifo7 -- BUILD_MODE=release BUILD_ROOT=build-main-fc0bc8f7\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + }, + "verified_runtime_commit": "72a1044e0e43c52103be9b0688659df9bf382ff7" +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/log-sync-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/log-sync-build.json new file mode 100644 index 000000000..ea8109f73 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/log-sync-build.json @@ -0,0 +1,158 @@ +{ + "profile": "log-sync", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync", + "head": "9bc5ebf403196affb43a0c04fdf0e9234f24d025", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/build/release/lib/libsplinterdb.a", + "library_sha256": "6ac594c38088b1ea291e68cbc220c989f69c01a2b5bed5f267a09a67c710d8a9", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "9531c90dd5d0afba0e5d2182c76ab255506694242a7655802d46dc1d4fe7d91c", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "829c05999cbc17485511970dd28527f2ee13c340ff59a94f0c26614c2bd03c49", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "da44e45ffd14c64bb13a3b1376ac9c0b749632da6d5b17ee2fbcd8356f39aed4", + "src/shard_log.h": "e47279d0fe727dd0f1dd787779d2415d54d8b942f3c47fd845f06848d6b416ac", + "src/splinterdb.c": "70c88c0c09caecd6d9adbb0b6e98c1b7cc928c2f6539595f0e99f1a96cfeac6e", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "1ea9663bb9bbf615303365d3b63f58caf977c83ab7088fb5f10c18ba4da49021" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/log-sync/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/log-sync/insert_benchmark", + "binary_sha256": "d8471c69f9a8ae349c7477b07b86ac38386763a49e10aed0519f2b77494e3387", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + } + }, + "verified_runtime_commit": "9bc5ebf403196affb43a0c04fdf0e9234f24d025", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/log-sync/build/release/build-config.348fafc9ffa4704dcb2b7890cf9058ef": { + "sha256": "65b6e863a8c72f10f7a383167625e6201b9c3716d65ecad6d08829eddc84a402", + "text": "MAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-fc0-log-sync-build-kyhtryu6/GMfifo7 -- BUILD_MODE=release CC=gcc\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC=gcc\nCC = gcc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = gcc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/main-build.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/main-build.json new file mode 100644 index 000000000..7b2403a7b --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/main-build.json @@ -0,0 +1,232 @@ +{ + "profile": "main", + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main", + "head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/build/release/lib/libsplinterdb.a", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "dfb8412a91370d831fb5181d84a6d6f0c2cb8183866847dca9d7bc2596f08404", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0" + }, + "binaries": { + "insert_benchmark": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_NO_LOG_GROUP_LIMIT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/insert_benchmark" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/insert_benchmark", + "binary_sha256": "cff146208f64da53e018dccdcd63e5b9c2719cba4bbfe478c529f9475d1be5b9", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/insert_benchmark.c", + "source_sha256": "da57ae18e97c88352479be897eedee0ecc9b54bb2b968c579421738dadd8d8b4" + }, + "kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench", + "binary_sha256": "908373d8f7eb7ec39a004bdfdc7f0a02edb3efe864efce4aeda73d63e73fe48e", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/kvbench.c", + "source_sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + }, + "prefix_kvbench": { + "command": [ + "gcc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/include", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/src/platform_linux", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench" + ], + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "source": "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/harnesses/prefix_kvbench.c", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51" + } + }, + "verified_runtime_commit": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "library_build_configs": { + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/sources/main/build/release/build-config.348fafc9ffa4704dcb2b7890cf9058ef": { + "sha256": "af76b87dcdc416f18f8c4b6df74bda6a7d662852067a3607c029a2bc81f1405e", + "text": "MAKEFLAGS= -j4 --jobserver-auth=fifo:/tmp/splinter-fc0-main-baseline-build-_tgr69fx/GMfifo6 -- BUILD_MODE=release CC=gcc\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC=gcc\nCC = gcc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = gcc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + } + } +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/run_benchmarks-screen.py b/benchmarks/results-20261013/main-fc0bc8f7-screen/run_benchmarks-screen.py new file mode 100644 index 000000000..e54f8b2a2 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/run_benchmarks-screen.py @@ -0,0 +1,107 @@ +"""Run only through campaign run_job.py benchmark (exclusive real-disk lock).""" +import argparse +import csv +import hashlib +import importlib.util +import json +import os +import re +import statistics +from pathlib import Path + +HERE = Path(__file__).resolve().parent +CAMP = HERE.parent.parent +spec = importlib.util.spec_from_file_location('runner', HERE.parent / 'main-7bb5fab/benchmarks/run_matrix.py') +r = importlib.util.module_from_spec(spec) +spec.loader.exec_module(r) +r.COORD = HERE +r.OUT = CAMP / 'benchmarks/main-fc0bc8f7' + +def log_matrix(): + folder, m = r.newmode('log-async') + m['scope'] = 'Same main base; sync versus async policy, disabled policy, and threshold sensitivity' + m['verification'] = 'Positive inserts, API errors, successful draining close; recovery validated separately' + data = [] + options = {'main': ('main', 0), 'disabled': ('log-async', 2**64-1), + 'sync64': ('log-sync', 0), 'async64': ('log-async', 0), + 'sync1024': ('log-sync', 1024), 'async1024': ('log-async', 1024)} + rounds = [ + ['main', 'disabled', 'sync64', 'async64', 'sync1024', 'async1024', 'main'], + ['main', 'async1024', 'sync1024', 'async64', 'sync64', 'disabled', 'main'], + ['main', 'async64', 'disabled', 'sync1024', 'async1024', 'sync64', 'main'], + ] + for threads in [1, 8]: + for rep, order in enumerate(rounds): + for index, version in enumerate(order): + profile, pages = options[version] + label = f't{threads}-r{rep}-{index}-{version}' + stem = folder / label + db = folder / 'scratch.db' + assert not db.exists() + args = ['--db', db, '--csv', str(stem)+'.csv', '--summary', str(stem)+'.summary.csv', '--records', 100000000, '--seconds', 8, '--report-ms', 100, '--cache-mib', 256, '--disk-gib', 16, '--direct', '--inserters', threads, '--readers', 0, '--memtable-bg', 1, '--normal-bg', 3, '--memtable-mib', 8, '--key-size', 16, '--value-size', 16, '--min-free-gib', 12, '--seed', 42, '--log-group-size-pages', pages] + rec = r.cmdrun(folder, m, label, profile, 'insert_benchmark', args, timeout=180) + summary = r.rows(Path(str(stem)+'.summary.csv')) + assert len(summary) == 1 + summary = summary[0] + inserted = int(summary['inserted']) + assert inserted > 0 + log = (folder / (label+'.log')).read_text() + error = re.search(r'load_end .* error=([0-9]+)(?: |\n)', log) + assert error and int(error[1]) == 0 + close = re.search(r'close_s=([\d.]+) close_rc=0', log) + assert close + assert not re.search(r'automatic.*(failed|error)', log, re.I), log[-2000:] + intervals = r.rows(Path(str(stem)+'.csv')) + cpu = sum(float(x['cpu_cores'])*float(x['interval_s']) for x in intervals) + row = dict(threads=threads, rep=rep, index=index, version=version, ops_s=float(summary['achieved_insert_ops_s']), inserted=inserted, elapsed_s=float(summary['elapsed_s']), close_s=float(close[1]), drain_ops_s=inserted/(float(summary['elapsed_s'])+float(close[1])), cpu_us_op=cpu*1e6/inserted, p99_us=1000*float(summary['insert_service_p99_ms']), p999_us=1000*float(summary['insert_service_p999_ms']), max_ms=float(summary['insert_service_max_ms']), read_B_op=sum(float(x['read_mib_s'])*float(x['interval_s']) for x in intervals)*2**20/inserted, write_B_op=sum(float(x['write_mib_s'])*float(x['interval_s']) for x in intervals)*2**20/inserted) + data.append(row) + rec.update(verified=True, errors=0, inserted=inserted, close_s=row['close_s'], allocated_bytes=db.stat().st_blocks*512) + r.save(folder/'manifest.json', m) + r.csvwrite(folder/'results.csv', data) + db.unlink() + m['complete'] = True + r.save(folder/'manifest.json', m) + +def branch_screen(): + folder, m = r.newmode('branch-screen') + m['scope'] = 'Small resident integration screen; real-disk databases, not comprehensive retuning' + fixtures = {} + for profile, pattern in [('main', 'ordinary'), ('main', 'common'), ('branch-prefix', 'common'), ('main', 'random'), ('branch-prefix', 'random')]: + label = f'fixture-{profile}-{pattern}' + db = folder / (label+'.db') + binary = 'kvbench' if pattern == 'ordinary' else 'prefix_kvbench' + args = r.kvargs(db, folder/(label+'.csv'), profile, 'resident', 0, secs=1, create=True)+['load:random'] + rec = r.cmdrun(folder, m, label, profile, binary, args, {'PREFIX_PATTERN': pattern} if pattern != 'ordinary' else None) + r.verifykv(folder/(label+'.csv'), 0, 1) + with db.open('rb') as f: + os.fsync(f.fileno()) + rec.update(verified=True, fixture_sha256=r.sha(db), allocated_bytes=db.stat().st_blocks*512) + fixtures[(profile, pattern)] = db + r.save(folder/'manifest.json', m) + cases = [('ordinary', ['main', 'cache-invalid-addresses', 'directory-direct', 'directory-bucket', 'directory-bucket-simd', 'directory-bucket-atomic', 'main', 'directory-bucket-atomic', 'directory-bucket-simd', 'directory-bucket', 'directory-direct', 'cache-invalid-addresses', 'main']), + ('common', ['main', 'branch-prefix', 'branch-prefix', 'main']), + ('random', ['main', 'branch-prefix', 'branch-prefix', 'main'])] + for pattern, order in cases: + for index, profile in enumerate(order): + label = f'{pattern}-{index}-{profile}' + db = folder/'scratch.db' + assert not db.exists() + fixture = fixtures[('branch-prefix' if profile == 'branch-prefix' else 'main', pattern)] + r.subprocess.run(['cp', '--reflink=auto', '--sparse=always', str(fixture), str(db)], check=True) + with db.open('rb') as f: + os.fsync(f.fileno()) + csvpath = folder/(pattern+'-results.csv') + args = r.kvargs(db, csvpath, profile, 'resident', index, secs=3)+['warm', 'point:uniform@8', 'range:uniform:1@8', 'range:uniform:10000@8'] + rec = r.cmdrun(folder, m, label, profile, 'kvbench' if pattern == 'ordinary' else 'prefix_kvbench', args, {'PREFIX_PATTERN': pattern} if pattern != 'ordinary' else None) + rows = r.verifykv(csvpath, index, 4) + rec.update(verified=True, errors=0, violations=0, fixture=str(fixture), allocated_bytes=db.stat().st_blocks*512) + r.save(folder/'manifest.json', m) + db.unlink() + m['complete'] = True + r.save(folder/'manifest.json', m) + +if __name__ == '__main__': + p = argparse.ArgumentParser() + p.add_argument('mode', choices=['log', 'screen']) + a = p.parse_args() + {'log': log_matrix, 'screen': branch_screen}[a.mode]() diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/run_job.py b/benchmarks/results-20261013/main-fc0bc8f7-screen/run_job.py new file mode 100644 index 000000000..299c91084 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/run_job.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +"""Coordinate this campaign's builds/tests and disk-backed benchmarks.""" +import argparse +import fcntl +import json +import os +from pathlib import Path +import subprocess +import tempfile +import time + +ROOT = Path(__file__).resolve().parent.parent +p = argparse.ArgumentParser() +p.add_argument('mode', choices=['build', 'test', 'benchmark']) +p.add_argument('--name', required=True) +p.add_argument('--db-dir', type=Path) +p.add_argument('command', nargs=argparse.REMAINDER) +a = p.parse_args() +command = a.command[1:] if a.command[:1] == ['--'] else a.command +if not command: + p.error('command required after --') +if a.mode == 'benchmark': + if a.db_dir is None: + p.error('benchmark requires --db-dir') + a.db_dir.mkdir(parents=True, exist_ok=True) + db_dir = a.db_dir.resolve() + if not db_dir.is_relative_to(ROOT / 'benchmarks'): + p.error('benchmark database directory must be under the campaign benchmarks directory') + fs = subprocess.check_output(['findmnt', '-n', '-o', 'FSTYPE,SOURCE', '-T', str(db_dir)], text=True).strip() + if fs.split()[0] in {'tmpfs', 'ramfs'} or not fs.split()[1].startswith('/dev/'): + p.error('benchmark storage must be a verified disk filesystem: ' + fs) + bench_lock = open(ROOT / 'coordination' / 'benchmark.lock', 'a+') + fcntl.flock(bench_lock, fcntl.LOCK_EX) + print('Benchmark database storage:', fs, str(db_dir), flush=True) +machine_lock = open(ROOT / 'coordination' / 'machine.lock', 'a+') +fcntl.flock(machine_lock, fcntl.LOCK_EX if a.mode == 'benchmark' else fcntl.LOCK_SH) +record = dict(name=a.name, mode=a.mode, cwd=os.getcwd(), command=command, + started=time.time(), pid=os.getpid()) +if a.db_dir is not None: + record['db_dir'] = str(a.db_dir.resolve()) +print('Starting', a.name, a.mode, flush=True) +try: + # Tool commands run in distinct PID namespaces; GNU make's FIFO names + # otherwise collide when several builds choose /tmp/GMfifo8. + with tempfile.TemporaryDirectory(prefix='splinter-' + a.name + '-', dir='/tmp') as temporary: + environment = dict(os.environ, TMPDIR=temporary) + result = subprocess.run(command, env=environment) + record['returncode'] = result.returncode +finally: + record['finished'] = time.time() + with open(ROOT / 'coordination' / 'jobs.jsonl', 'a') as journal: + fcntl.flock(journal, fcntl.LOCK_EX) + journal.write(json.dumps(record) + '\n') +raise SystemExit(result.returncode) diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-0-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-0-main.log new file mode 100644 index 000000000..45aa1fa93 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-0-main.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15946688 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3585000 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=12722971 notfound=0 +== point:uniform@8 T=8 ops=12722971 secs= 3.00 ops/s= 4240675 lat us p50=1.78 p99=2.46 p99.9=6.85 max=144.4 mean=1.81 + cpu=24.00s ops/cpu-s=530227 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=5 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3328680 secs= 3.00 ops/s= 1109478 lat us p50=6.34 p99=9.86 p99.9=16.64 max=104.2 mean=7.16 + cpu=24.00s ops/cpu-s=138699 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=9.34 mean=6.74 per-tuple=nan ns deinit mean=0.37 us tuples/s=1109478 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 13234 ops (+1323 ops/s) +close took 0.087 s +== range:uniform:10000@8 T=8 ops=13381 secs= 3.00 ops/s= 4460 lat us p50=1425.41 p99=3702.78 p99.9=3833.86 max=3926.2 mean=1793.18 + cpu=24.00s ops/cpu-s=558 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=3 swapout=0 majflt=0 + startup us p50=8.83 p99=14.98 mean=8.96 per-tuple=182.8 ns deinit mean=0.67 us tuples/s=43488063 + insert/run=3.00s drain(close)=0.09s total=3.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-1-branch-prefix.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-1-branch-prefix.log new file mode 100644 index 000000000..6b8e9d84e --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-1-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 17817439 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=4187517 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=13170594 notfound=0 +== point:uniform@8 T=8 ops=13170594 secs= 3.00 ops/s= 4389853 lat us p50=1.68 p99=2.40 p99.9=5.82 max=1022.1 mean=1.75 + cpu=24.00s ops/cpu-s=548846 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3398763 secs= 3.00 ops/s= 1132839 lat us p50=6.08 p99=9.86 p99.9=17.15 max=92.3 mean=7.01 + cpu=24.03s ops/cpu-s=141438 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.70 p99=9.09 mean=6.54 per-tuple=nan ns deinit mean=0.43 us tuples/s=1132839 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11132 ops (+1113 ops/s) +close took 0.065 s +== range:uniform:10000@8 T=8 ops=11280 secs= 3.00 ops/s= 3760 lat us p50=1982.46 p99=5046.27 p99.9=5832.70 max=6230.7 mean=2127.12 + cpu=24.00s ops/cpu-s=470 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.10 p99=16.26 mean=7.95 per-tuple=217.1 ns deinit mean=0.67 us tuples/s=36692714 + insert/run=3.00s drain(close)=0.07s total=3.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-2-branch-prefix.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-2-branch-prefix.log new file mode 100644 index 000000000..c4798c92f --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-2-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=2 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 17887171 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=3805030 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=12696511 notfound=0 +== point:uniform@8 T=8 ops=12696511 secs= 3.00 ops/s= 4231833 lat us p50=1.78 p99=2.53 p99.9=5.95 max=118.6 mean=1.81 + cpu=23.99s ops/cpu-s=529209 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=28 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3397676 secs= 3.00 ops/s= 1132470 lat us p50=6.08 p99=9.86 p99.9=17.66 max=143.2 mean=7.02 + cpu=24.00s ops/cpu-s=141595 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.70 p99=9.34 mean=6.54 per-tuple=nan ns deinit mean=0.42 us tuples/s=1132470 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10821 ops (+1082 ops/s) +close took 0.075 s +== range:uniform:10000@8 T=8 ops=10885 secs= 3.00 ops/s= 3628 lat us p50=2326.53 p99=5308.42 p99.9=5439.49 max=6226.9 mean=2203.71 + cpu=24.00s ops/cpu-s=454 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.98 p99=11.65 mean=7.60 per-tuple=225.2 ns deinit mean=0.63 us tuples/s=35401408 + insert/run=3.00s drain(close)=0.08s total=3.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-3-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-3-main.log new file mode 100644 index 000000000..53d44ad15 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-3-main.log @@ -0,0 +1,21 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14096139 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2875422 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=12648917 notfound=0 +== point:uniform@8 T=8 ops=12648917 secs= 3.00 ops/s= 4215987 lat us p50=1.81 p99=2.46 p99.9=8.32 max=90.0 mean=1.82 + cpu=24.00s ops/cpu-s=527105 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3334860 secs= 3.00 ops/s= 1111537 lat us p50=6.21 p99=10.11 p99.9=17.66 max=86.0 mean=7.15 + cpu=24.00s ops/cpu-s=138961 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.82 p99=9.60 mean=6.74 per-tuple=nan ns deinit mean=0.37 us tuples/s=1111537 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11056 ops (+1106 ops/s) +close took 0.067 s +== range:uniform:10000@8 T=8 ops=11117 secs= 3.00 ops/s= 3705 lat us p50=2080.77 p99=4521.98 p99.9=4521.98 max=4600.3 mean=2158.06 + cpu=24.00s ops/cpu-s=463 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.87 p99=12.42 mean=8.38 per-tuple=220.2 ns deinit mean=0.64 us tuples/s=36169664 + insert/run=3.00s drain(close)=0.07s total=3.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-results.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-results.csv new file mode 100644 index 000000000..b38bb1917 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/common-results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.013,15946688.3,nan,nan,nan,0.000,nan,0.056,3585000.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15946688.3,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,point:uniform@8,8,0,200000,12722971,3.000,4240675.2,1.776,2.464,6.848,144.408,1.813,23.995,530227.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,5,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,3328680,3.000,1109477.8,6.336,9.856,16.640,104.178,7.159,23.999,138699.0,0,0,0.00,0.00,5.952,9.344,6.745,nan,0.373,3328680,1109477.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,13381,3.000,4459.9,1425.408,3702.784,3833.856,3926.199,1793.176,23.999,557.6,0,0,0.00,0.00,8.832,14.976,8.957,182.81,0.668,130476692,43488062.6,3.000,0.087,3.087,0.014,0,307200,nan,237375488,37285888,0.005,0,0,3,0,0 +branch-prefix,resident,1,0,warm,8,1,200000,200000,0.011,17817438.6,nan,nan,nan,0.000,nan,0.048,4187517.0,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17817438.6,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.006,0,0,0,0,2 +branch-prefix,resident,1,0,point:uniform@8,8,1,200000,13170594,3.000,4389852.9,1.680,2.400,5.824,1022.077,1.747,23.997,548845.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:1@8,8,1,200000,3398763,3.000,1132838.7,6.080,9.856,17.152,92.296,7.013,24.030,141438.2,0,0,0.00,0.00,5.696,9.088,6.537,nan,0.427,3398763,1132838.7,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:10000@8,8,1,200000,11280,3.000,3759.7,1982.464,5046.272,5832.704,6230.693,2127.119,23.996,470.1,0,0,0.00,0.00,7.104,16.256,7.950,217.14,0.669,110088184,36692714.1,3.000,0.065,3.065,0.012,0,307200,nan,207360000,26005504,0.006,0,0,0,0,0 +branch-prefix,resident,2,0,warm,8,2,200000,200000,0.011,17887170.9,nan,nan,nan,0.000,nan,0.053,3805030.2,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,17887170.9,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.005,0,0,0,0,1 +branch-prefix,resident,2,0,point:uniform@8,8,2,200000,12696511,3.000,4231832.6,1.776,2.528,5.952,118.559,1.814,23.991,529208.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,28,0,0 +branch-prefix,resident,2,0,range:uniform:1@8,8,2,200000,3397676,3.000,1132470.5,6.080,9.856,17.664,143.219,7.015,23.996,141594.7,0,0,0.00,0.00,5.696,9.344,6.544,nan,0.424,3397676,1132470.5,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:10000@8,8,2,200000,10885,3.000,3628.0,2326.528,5308.416,5439.488,6226.860,2203.708,23.997,453.6,0,0,0.00,0.00,6.976,11.648,7.600,225.23,0.627,106213843,35401408.2,3.000,0.075,3.076,0.012,0,307200,nan,207360000,26005504,0.005,0,0,0,0,0 +main,resident,3,0,warm,8,3,200000,200000,0.014,14096139.3,nan,nan,nan,0.000,nan,0.070,2875422.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14096139.3,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,point:uniform@8,8,3,200000,12648917,3.000,4215987.0,1.808,2.464,8.320,89.988,1.824,23.997,527105.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,3334860,3.000,1111536.9,6.208,10.112,17.664,86.009,7.147,23.998,138961.4,0,0,0.00,0.00,5.824,9.600,6.738,nan,0.368,3334860,1111536.9,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,11117,3.000,3705.4,2080.768,4521.984,4521.984,4600.280,2158.058,23.999,463.2,0,0,0.00,0.00,7.872,12.416,8.384,220.23,0.638,108518028,36169663.9,3.000,0.067,3.067,0.013,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.csv new file mode 100644 index 000000000..869000c59 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,resident,0,0,load:random,1,0,200000,200000,0.257,776817.0,0.616,2.720,4.672,41964.040,1.249,0.257,776901.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.257,0.109,0.366,0.025,0,25972736,0.7919,207360000,26128384,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.log new file mode 100644 index 000000000..3f473be08 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-common.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random: T=1 dist=random (fixed count) +close took 0.109 s +== load:random T=1 ops=200000 secs= 0.26 ops/s= 776817 lat us p50=0.62 p99=2.72 p99.9=4.67 max=41964.0 mean=1.25 + cpu=0.26s ops/cpu-s=776901 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.26s drain(close)=0.11s total=0.37s drain_cpu=0.02s drain_rd=0 drain_wr=25972736 wamp=0.792 db_apparent=207360000 db_alloc=26128384 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.csv new file mode 100644 index 000000000..81729cba5 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +branch-prefix,resident,0,0,load:random,1,0,200000,200000,0.323,620079.8,0.744,3.616,6.208,38302.613,1.472,0.323,620128.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.323,0.130,0.453,0.028,4096,37253120,1.1358,237375488,37408768,0.011,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.log new file mode 100644 index 000000000..c282a751e --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-branch-prefix-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-random.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.011 s +phase load:random: T=1 dist=random (fixed count) +close took 0.130 s +== load:random T=1 ops=200000 secs= 0.32 ops/s= 620080 lat us p50=0.74 p99=3.62 p99.9=6.21 max=38302.6 mean=1.47 + cpu=0.32s ops/cpu-s=620128 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.32s drain(close)=0.13s total=0.45s drain_cpu=0.03s drain_rd=4096 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.csv new file mode 100644 index 000000000..9cd144093 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random,1,0,200000,200000,0.260,768482.1,0.632,2.720,4.672,41774.566,1.262,0.260,768952.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.260,0.128,0.389,0.024,0,37253120,1.1358,237375488,37408768,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.log new file mode 100644 index 000000000..1714a7701 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-common.log @@ -0,0 +1,8 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-common.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random: T=1 dist=random (fixed count) +close took 0.128 s +== load:random T=1 ops=200000 secs= 0.26 ops/s= 768482 lat us p50=0.63 p99=2.72 p99.9=4.67 max=41774.6 mean=1.26 + cpu=0.26s ops/cpu-s=768953 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.26s drain(close)=0.13s total=0.39s drain_cpu=0.02s drain_rd=0 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.csv new file mode 100644 index 000000000..b36eb917b --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random,1,0,200000,200000,0.205,976751.0,0.568,2.912,5.056,3573.105,0.985,0.205,977283.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.205,0.084,0.288,0.021,0,28749824,1.1593,162664448,28905472,0.015,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.log new file mode 100644 index 000000000..4c32aadc4 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-ordinary.log @@ -0,0 +1,7 @@ +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.015 s +phase load:random: T=1 dist=random (fixed count) +close took 0.084 s +== load:random T=1 ops=200000 secs= 0.20 ops/s= 976751 lat us p50=0.57 p99=2.91 p99.9=5.06 max=3573.1 mean=0.99 + cpu=0.20s ops/cpu-s=977283 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.20s drain(close)=0.08s total=0.29s drain_cpu=0.02s drain_rd=0 drain_wr=28749824 wamp=1.159 db_apparent=162664448 db_alloc=28905472 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.csv new file mode 100644 index 000000000..a4b2f8aad --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random,1,0,200000,200000,0.255,784707.3,0.584,2.656,4.544,35898.399,1.162,0.255,784701.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.255,0.118,0.373,0.025,4096,37253120,1.1358,237375488,37408768,0.009,0,0,0,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.log new file mode 100644 index 000000000..58e181b7f --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/fixture-main-random.log @@ -0,0 +1,8 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-random.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.009 s +phase load:random: T=1 dist=random (fixed count) +close took 0.118 s +== load:random T=1 ops=200000 secs= 0.25 ops/s= 784707 lat us p50=0.58 p99=2.66 p99.9=4.54 max=35898.4 mean=1.16 + cpu=0.25s ops/cpu-s=784701 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.25s drain(close)=0.12s total=0.37s drain_cpu=0.02s drain_rd=4096 drain_wr=37253120 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/manifest.json b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/manifest.json new file mode 100644 index 000000000..81df0e5f1 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/manifest.json @@ -0,0 +1,1757 @@ +{ + "mode": "branch-screen", + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb]", + "io": "O_DIRECT", + "cpu_affinity": "0-11", + "scope": "Small resident integration screen; real-disk databases, not comprehensive retuning", + "runner_sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50", + "runs": [ + { + "label": "fixture-main-ordinary", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "load:random" + ], + "started": 1791959762.3273494, + "binary_sha256": "908373d8f7eb7ec39a004bdfdc7f0a02edb3efe864efce4aeda73d63e73fe48e", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959762.6426835, + "log_sha256": "ec24ffc5ed923d68c10142bdd8921a7fcb8ed58bd37d0d61d6c3c000254ce10b", + "process_cpu_s": 0.23388599999999998, + "process_read_bytes": 0, + "process_write_bytes": 28803072, + "fixture_sha256": "c853e677543afdfa7efcd67fa13e5c9d57b0a1465aff245641584f65c1dbecc4", + "allocated_bytes": 28905472 + }, + { + "label": "fixture-main-common", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-common.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-common.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "load:random" + ], + "started": 1791959762.8063462, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959763.2212973, + "log_sha256": "4e6a1eae1130ebf28013220575a11954444f00b42af2820e6724ae53e7ebade2", + "process_cpu_s": 0.29361200000000004, + "process_read_bytes": 0, + "process_write_bytes": 37306368, + "fixture_sha256": "325f07b69e6e848fca8c9e3c87c1e4244133ac0b29842c59caac438959028581", + "allocated_bytes": 37408768 + }, + { + "label": "fixture-branch-prefix-common", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-common.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-common.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "load:random" + ], + "started": 1791959763.4527442, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791959763.8683407, + "log_sha256": "ecb2f7cb3cbe4c825d92c5f3c6f1cfe8f13323382a64c7d22233e46dc15ce74e", + "process_cpu_s": 0.29173699999999997, + "process_read_bytes": 0, + "process_write_bytes": 26025984, + "fixture_sha256": "bfd207b642845d8ad999e339e6c14bc8d30d9b976c201c81f496db0f895589da", + "allocated_bytes": 26128384 + }, + { + "label": "fixture-main-random", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-random.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-random.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "load:random" + ], + "started": 1791959764.049308, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959764.514802, + "log_sha256": "c75d5666625b43ecf66c59d80abc902affce1583a78e2273fa95924592bc3727", + "process_cpu_s": 0.3284659999999999, + "process_read_bytes": 4096, + "process_write_bytes": 37306368, + "fixture_sha256": "1fce9f05737cd68b50285519341b632bb8395257bb4a3afb408e5bb1c93abc58", + "allocated_bytes": 37408768 + }, + { + "label": "fixture-branch-prefix-random", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-random.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-random.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "load:random" + ], + "started": 1791959764.7439816, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791959765.2596247, + "log_sha256": "81bde8489c71c772a3bc336e1808077a75ed081965be097529f9d74a573a9a58", + "process_cpu_s": 0.39998200000000017, + "process_read_bytes": 4096, + "process_write_bytes": 37306368, + "fixture_sha256": "538f638fb4208f0c9073e3acd5363e73dd6129bcde05e7628791182a6dcfbc39", + "allocated_bytes": 37408768 + }, + { + "label": "ordinary-0-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959765.5244884, + "binary_sha256": "908373d8f7eb7ec39a004bdfdc7f0a02edb3efe864efce4aeda73d63e73fe48e", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959777.6138947, + "log_sha256": "1f5d5a4d7cc0806312c0acc2bc372c62df385f4f369a0c750de4e7dc672ca8e9", + "process_cpu_s": 96.04211799999999, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-1-cache-invalid-addresses", + "profile": "cache-invalid-addresses", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "cache-invalid-addresses", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959777.6488676, + "binary_sha256": "be2fa0a4349ef38ec50215b84d085074df2449c01c84f709df4112cbc2d0053b", + "library_sha256": "25d2a1d3e62b987ee8393f2ba50be459564edded1b53c884e8c43ebcfea26adc", + "source_head": "d70fd5b21fe489d9956f89cbb10abafb00b30191", + "verified": true, + "returncode": 0, + "finished": 1791959789.7999249, + "log_sha256": "d5f4d3ba17042fc4bc49d8361a68c9d08f84f0c67f30b5116a60a65831fc3bbe", + "process_cpu_s": 96.063686, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-2-directory-direct", + "profile": "directory-direct", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-direct", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959789.8444479, + "binary_sha256": "d2f18f3c5db44c76bc004745ddd4a58f56c4cac066aa8afb00918fb349b5d557", + "library_sha256": "ed0819b95675d8410608040d675dc84aa8c3aa09a7c5a5ff24ac296d21285887", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959801.9948912, + "log_sha256": "cb28adb38b2b22073f8e75f1fdfc049615065a5359e3fcf2f3865e6e5fc25b48", + "process_cpu_s": 96.07296899999999, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-3-directory-bucket", + "profile": "directory-bucket", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959802.0380113, + "binary_sha256": "13f5659f74dbf982ac51469ec72efc15320b9cdc01b97ac5bc0104fb7187cb30", + "library_sha256": "fe67f4ddb4a7d0f1c741b66737eaad46339f3dab798910610747ff34c0f8a009", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959814.192149, + "log_sha256": "32ea1a879823e98e5533ff94c85170f1077a743c00746a02a914ad715ac03fa2", + "process_cpu_s": 96.08005000000004, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-4-directory-bucket-simd", + "profile": "directory-bucket-simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket-simd", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "4", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959814.2371008, + "binary_sha256": "69e24c6955bddd1804f81687e14939d7f7a986e847293a7dd1e16cb26523d499", + "library_sha256": "3e5c01572bcdd3a7643b65f390a912602eaf49b55c24b8350b5491e2b5b2ac39", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959826.34286, + "log_sha256": "488425c15969e707ef9d24ba626a9ad09810b4e6f255f45530b3c4cbd0a9fc7c", + "process_cpu_s": 96.07594099999996, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-5-directory-bucket-atomic", + "profile": "directory-bucket-atomic", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket-atomic", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "5", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959826.3871453, + "binary_sha256": "70b72a8fa46aedf0859dafab6d01f1db5955c23fe30bb0c4e459623ca6a60948", + "library_sha256": "b9d6621ae64de6f5f5d8eca54ee7117e25575c1a26af6057c4c138c2e2cf3b07", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959838.491201, + "log_sha256": "587eef33408ce4d0c51d94bffebfa70d13fa36acdef92d9bc5d4bc8d1fec2293", + "process_cpu_s": 96.06533500000002, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-6-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "6", + "--rep", + "6", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959838.5337577, + "binary_sha256": "908373d8f7eb7ec39a004bdfdc7f0a02edb3efe864efce4aeda73d63e73fe48e", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959850.6345708, + "log_sha256": "9c56215fca60ec0d53ffd68452d87f6c96e245aab8edbe75431749859c1fd302", + "process_cpu_s": 96.08179499999996, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-7-directory-bucket-atomic", + "profile": "directory-bucket-atomic", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-atomic/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket-atomic", + "--stag", + "resident", + "--otag", + "7", + "--rep", + "7", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959850.6797967, + "binary_sha256": "70b72a8fa46aedf0859dafab6d01f1db5955c23fe30bb0c4e459623ca6a60948", + "library_sha256": "b9d6621ae64de6f5f5d8eca54ee7117e25575c1a26af6057c4c138c2e2cf3b07", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959862.828484, + "log_sha256": "755d7fec7b2b17887c69a39a81f75642874e5049e6cf0b1062f48458a87b11e7", + "process_cpu_s": 96.06822799999996, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-8-directory-bucket-simd", + "profile": "directory-bucket-simd", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket-simd/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket-simd", + "--stag", + "resident", + "--otag", + "8", + "--rep", + "8", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959862.8711677, + "binary_sha256": "69e24c6955bddd1804f81687e14939d7f7a986e847293a7dd1e16cb26523d499", + "library_sha256": "3e5c01572bcdd3a7643b65f390a912602eaf49b55c24b8350b5491e2b5b2ac39", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959874.9706755, + "log_sha256": "a77a95913bf5e26ad82a7db384201e0b5733dbe9b400bed2a1692d7073a7ab9a", + "process_cpu_s": 96.07693700000011, + "process_read_bytes": 28295168, + "process_write_bytes": 323584, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-9-directory-bucket", + "profile": "directory-bucket", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-bucket/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-bucket", + "--stag", + "resident", + "--otag", + "9", + "--rep", + "9", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959875.0054111, + "binary_sha256": "13f5659f74dbf982ac51469ec72efc15320b9cdc01b97ac5bc0104fb7187cb30", + "library_sha256": "fe67f4ddb4a7d0f1c741b66737eaad46339f3dab798910610747ff34c0f8a009", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959887.1617172, + "log_sha256": "8c7816859b271ce9337faf3f687b951a09ea561afb7e41d2bd4124684a035560", + "process_cpu_s": 96.07674199999991, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-10-directory-direct", + "profile": "directory-direct", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/directory-direct/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "directory-direct", + "--stag", + "resident", + "--otag", + "10", + "--rep", + "10", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959887.2074113, + "binary_sha256": "d2f18f3c5db44c76bc004745ddd4a58f56c4cac066aa8afb00918fb349b5d557", + "library_sha256": "ed0819b95675d8410608040d675dc84aa8c3aa09a7c5a5ff24ac296d21285887", + "source_head": "67f88f289b5b470d9dba27c78d5befdf78352220", + "verified": true, + "returncode": 0, + "finished": 1791959899.3113718, + "log_sha256": "a8a9413c4853daa7a02bbaa53c1eaf08c1eb3a53f88e453a00d1704ce347fea5", + "process_cpu_s": 96.05716900000002, + "process_read_bytes": 28295168, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-11-cache-invalid-addresses", + "profile": "cache-invalid-addresses", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/cache-invalid-addresses/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "cache-invalid-addresses", + "--stag", + "resident", + "--otag", + "11", + "--rep", + "11", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959899.3485749, + "binary_sha256": "be2fa0a4349ef38ec50215b84d085074df2449c01c84f709df4112cbc2d0053b", + "library_sha256": "25d2a1d3e62b987ee8393f2ba50be459564edded1b53c884e8c43ebcfea26adc", + "source_head": "d70fd5b21fe489d9956f89cbb10abafb00b30191", + "verified": true, + "returncode": 0, + "finished": 1791959911.5016584, + "log_sha256": "b1bbe94a0f1fe166088d979dc8a0065f998aa867a8e506109e9e8b6b1041634f", + "process_cpu_s": 96.0703540000001, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "ordinary-12-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/ordinary-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "12", + "--rep", + "12", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959911.5552957, + "binary_sha256": "908373d8f7eb7ec39a004bdfdc7f0a02edb3efe864efce4aeda73d63e73fe48e", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959923.7116256, + "log_sha256": "4c63cdfb549fba47a0e57ac7d494c551759b3d7776bc8bfac672e151f005ce3f", + "process_cpu_s": 96.07884400000006, + "process_read_bytes": 28295168, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-ordinary.db", + "allocated_bytes": 28655616 + }, + { + "label": "common-0-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/common-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959923.763234, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959935.9191551, + "log_sha256": "ddc4fee0c9a2d7b54f5837177c1db1e29fb0fb4ec1e3ec5ad5d96d8ec41af62c", + "process_cpu_s": 96.06361999999989, + "process_read_bytes": 36823040, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-common.db", + "allocated_bytes": 37285888 + }, + { + "label": "common-1-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/common-results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959935.9650848, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791959948.0699124, + "log_sha256": "adc2a2dca4986f4ae87d901a5c90882c5f9f900ac3213d346e96bcc3a4b5b243", + "process_cpu_s": 96.05673400000012, + "process_read_bytes": 25542656, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-common.db", + "allocated_bytes": 26005504 + }, + { + "label": "common-2-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/common-results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959948.1121461, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791959960.216237, + "log_sha256": "a6f93fe7aaef848dfdb2cdf86fb0bbc13a459fc4493244f015d4139ac204f91f", + "process_cpu_s": 96.05154899999991, + "process_read_bytes": 25542656, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-common.db", + "allocated_bytes": 26005504 + }, + { + "label": "common-3-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/common-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959960.2670915, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959972.3721137, + "log_sha256": "a50d12509f7e55a73a2bbd5e33c42d89dbb4440965ff6a0bbc6efac8c155ca35", + "process_cpu_s": 96.08460899999996, + "process_read_bytes": 36823040, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-common.db", + "allocated_bytes": 37285888 + }, + { + "label": "random-0-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/random-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959972.420665, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791959984.5727596, + "log_sha256": "d0c1da7e9f21b859e6c0f7e7925527139e100db6f9cdd203d11099c5aad0b028", + "process_cpu_s": 96.08285799999987, + "process_read_bytes": 36823040, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-random.db", + "allocated_bytes": 37285888 + }, + { + "label": "random-1-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/random-results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959984.6204815, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791959996.7717874, + "log_sha256": "03e31f3adfd2b96874d3f6658f912faadda30d7c732d21094b4e3d97b4cc3764", + "process_cpu_s": 96.10628999999985, + "process_read_bytes": 36823040, + "process_write_bytes": 315392, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-random.db", + "allocated_bytes": 37285888 + }, + { + "label": "random-2-branch-prefix", + "profile": "branch-prefix", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/branch-prefix/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/random-results.csv", + "--vtag", + "branch-prefix", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791959996.8195274, + "binary_sha256": "fc2a0b259b70e57cb659ab6778b99bc8e3d6c4dfbb22731a1079d1e9d7180719", + "library_sha256": "bc960553ec64162d7531c3de1ae38d361838c262cf041eeab46f9180675feaf1", + "source_head": "100800cb1a11a60a259869f4b195d9572b9da86c", + "verified": true, + "returncode": 0, + "finished": 1791960008.974462, + "log_sha256": "f7ebdf631982d76650bc542dc6dd6dab8ae21a4e7e6da0cea3052bada1f53338", + "process_cpu_s": 96.11134599999994, + "process_read_bytes": 36823040, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-branch-prefix-random.db", + "allocated_bytes": 37285888 + }, + { + "label": "random-3-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/main-fc0bc8f7/bin/main/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "3", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/random-results.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1791960009.025616, + "binary_sha256": "7a44f4665daee510e3108224cf625d7ffe4f6ee2a015c372db435ad6836b404d", + "library_sha256": "78dd1b4bfc8367bacd45de4c6cd0100803ab11da69326bd6a4d391df5afb907d", + "source_head": "fc0bc8f7e39566f14822bb598376458bdf1e28b3", + "verified": true, + "returncode": 0, + "finished": 1791960021.2331228, + "log_sha256": "98a03b068a5157fac5b85f036012fb3afc63ce4fb0293cc12ec6932854fdb2bb", + "process_cpu_s": 96.09224099999987, + "process_read_bytes": 36823040, + "process_write_bytes": 319488, + "errors": 0, + "violations": 0, + "fixture": "/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/fixture-main-random.db", + "allocated_bytes": 37285888 + } + ], + "complete": true, + "execution_driver_sha256": "283a0b06d41b61bb6f8eae78fa3be28883b07b41966f8453b6bc19233f2fc48f", + "execution_driver_snapshot": "run_benchmarks-screen.py", + "environment_audit": "Every prefix harness log reports expected pattern and compression_disabled=false; environment overrides are in saved driver." +} diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-0-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-0-main.log new file mode 100644 index 000000000..ccb4129b4 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-0-main.log @@ -0,0 +1,20 @@ +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=0 sabotage=0 +open took 0.004 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9613257 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3548553 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=3 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=16094659 notfound=0 +== point:uniform@8 T=8 ops=16094659 secs= 3.00 ops/s= 5364500 lat us p50=1.42 p99=2.03 p99.9=2.85 max=645.4 mean=1.45 + cpu=23.99s ops/cpu-s=671005 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1636465 secs= 3.00 ops/s= 545448 lat us p50=13.70 p99=19.71 p99.9=29.44 max=926.4 mean=14.62 + cpu=23.99s ops/cpu-s=68210 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=13.18 p99=18.69 mean=13.98 per-tuple=nan ns deinit mean=0.60 us tuples/s=545448 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11618 ops (+1162 ops/s) +close took 0.046 s +== range:uniform:10000@8 T=8 ops=11710 secs= 3.00 ops/s= 3903 lat us p50=1916.93 p99=2457.60 p99.9=2523.14 max=2694.6 mean=2049.61 + cpu=23.99s ops/cpu-s=488 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=17.66 p99=26.88 mean=17.98 per-tuple=208.2 ns deinit mean=0.86 us tuples/s=38077893 + insert/run=3.00s drain(close)=0.05s total=3.05s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-1-cache-invalid-addresses.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-1-cache-invalid-addresses.log new file mode 100644 index 000000000..9e08171b7 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-1-cache-invalid-addresses.log @@ -0,0 +1,20 @@ +kvbench version=cache-invalid-addresses splinter=splinterdb_build_version 698ae40f-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=1 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9318201 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3359989 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=15793690 notfound=0 +== point:uniform@8 T=8 ops=15793690 secs= 3.00 ops/s= 5264167 lat us p50=1.46 p99=2.03 p99.9=3.55 max=311.9 mean=1.48 + cpu=24.00s ops/cpu-s=658195 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1527458 secs= 3.00 ops/s= 509115 lat us p50=14.46 p99=21.25 p99.9=31.49 max=178.0 mean=15.66 + cpu=23.99s ops/cpu-s=63664 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=13.95 p99=20.22 mean=14.98 per-tuple=nan ns deinit mean=0.65 us tuples/s=509115 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11349 ops (+1135 ops/s) +close took 0.088 s +== range:uniform:10000@8 T=8 ops=11400 secs= 3.00 ops/s= 3800 lat us p50=1982.46 p99=2523.14 p99.9=2588.67 max=2659.0 mean=2105.31 + cpu=24.00s ops/cpu-s=475 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=17.66 p99=24.83 mean=18.01 per-tuple=213.8 ns deinit mean=0.89 us tuples/s=37093953 + insert/run=3.00s drain(close)=0.09s total=3.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-10-directory-direct.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-10-directory-direct.log new file mode 100644 index 000000000..dc9e2342d --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-10-directory-direct.log @@ -0,0 +1,20 @@ +kvbench version=directory-direct splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=10 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9575523 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3512161 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=15254528 notfound=0 +== point:uniform@8 T=8 ops=15254528 secs= 3.00 ops/s= 5084446 lat us p50=1.49 p99=2.14 p99.9=4.42 max=447.2 mean=1.53 + cpu=23.99s ops/cpu-s=635878 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1542002 secs= 3.00 ops/s= 513960 lat us p50=14.21 p99=20.74 p99.9=29.95 max=116.4 mean=15.52 + cpu=24.00s ops/cpu-s=64256 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=13.70 p99=19.71 mean=14.84 per-tuple=nan ns deinit mean=0.64 us tuples/s=513960 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10581 ops (+1058 ops/s) +close took 0.058 s +== range:uniform:10000@8 T=8 ops=10744 secs= 3.00 ops/s= 3581 lat us p50=2129.92 p99=2719.74 p99.9=2719.74 max=2747.9 mean=2233.58 + cpu=24.03s ops/cpu-s=447 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=18.69 p99=24.83 mean=18.93 per-tuple=227.0 ns deinit mean=0.94 us tuples/s=34925459 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-11-cache-invalid-addresses.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-11-cache-invalid-addresses.log new file mode 100644 index 000000000..2f2bcdac3 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-11-cache-invalid-addresses.log @@ -0,0 +1,20 @@ +kvbench version=cache-invalid-addresses splinter=splinterdb_build_version 698ae40f-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=11 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9621620 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=3643717 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=15486368 notfound=0 +== point:uniform@8 T=8 ops=15486368 secs= 3.00 ops/s= 5161738 lat us p50=1.49 p99=2.08 p99.9=3.62 max=138.9 mean=1.51 + cpu=23.99s ops/cpu-s=645405 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1434014 secs= 3.00 ops/s= 477968 lat us p50=15.23 p99=21.76 p99.9=32.00 max=101.5 mean=16.69 + cpu=24.00s ops/cpu-s=59754 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=14.72 p99=21.25 mean=15.94 per-tuple=nan ns deinit mean=0.70 us tuples/s=477968 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11164 ops (+1116 ops/s) +close took 0.068 s +== range:uniform:10000@8 T=8 ops=11260 secs= 3.00 ops/s= 3753 lat us p50=1982.46 p99=2588.67 p99.9=2654.21 max=2760.3 mean=2131.58 + cpu=24.00s ops/cpu-s=469 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=17.66 p99=27.39 mean=18.25 per-tuple=216.4 ns deinit mean=0.89 us tuples/s=36646350 + insert/run=3.00s drain(close)=0.07s total=3.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-12-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-12-main.log new file mode 100644 index 000000000..a624c5c68 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-12-main.log @@ -0,0 +1,20 @@ +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=12 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9342765 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3234310 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=6 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=14803808 notfound=0 +== point:uniform@8 T=8 ops=14803808 secs= 3.00 ops/s= 4934239 lat us p50=1.55 p99=2.14 p99.9=3.30 max=131.7 mean=1.58 + cpu=24.03s ops/cpu-s=616088 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1480470 secs= 3.00 ops/s= 493451 lat us p50=14.98 p99=21.25 p99.9=30.98 max=451.2 mean=16.16 + cpu=24.00s ops/cpu-s=61695 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + startup us p50=14.46 p99=20.74 mean=15.44 per-tuple=nan ns deinit mean=0.68 us tuples/s=493451 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10793 ops (+1079 ops/s) +close took 0.108 s +== range:uniform:10000@8 T=8 ops=10853 secs= 3.00 ops/s= 3617 lat us p50=2048.00 p99=2654.21 p99.9=2719.74 max=2733.5 mean=2211.59 + cpu=24.00s ops/cpu-s=452 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + startup us p50=18.69 p99=25.34 mean=18.95 per-tuple=224.6 ns deinit mean=0.94 us tuples/s=35291429 + insert/run=3.00s drain(close)=0.11s total=3.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-2-directory-direct.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-2-directory-direct.log new file mode 100644 index 000000000..ef4981157 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-2-directory-direct.log @@ -0,0 +1,20 @@ +kvbench version=directory-direct splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=2 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9137143 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3420558 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=15016386 notfound=0 +== point:uniform@8 T=8 ops=15016386 secs= 3.00 ops/s= 5005074 lat us p50=1.52 p99=2.14 p99.9=3.17 max=154.3 mean=1.55 + cpu=24.00s ops/cpu-s=625770 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1487398 secs= 3.00 ops/s= 495761 lat us p50=14.98 p99=21.25 p99.9=32.00 max=92.1 mean=16.09 + cpu=24.00s ops/cpu-s=61983 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=14.21 p99=20.22 mean=15.39 per-tuple=nan ns deinit mean=0.65 us tuples/s=495761 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11330 ops (+1133 ops/s) +close took 0.084 s +== range:uniform:10000@8 T=8 ops=11373 secs= 3.00 ops/s= 3791 lat us p50=1982.46 p99=2523.14 p99.9=2588.67 max=2618.7 mean=2110.12 + cpu=24.00s ops/cpu-s=474 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=17.66 p99=24.83 mean=18.02 per-tuple=214.3 ns deinit mean=0.91 us tuples/s=37001775 + insert/run=3.00s drain(close)=0.08s total=3.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-3-directory-bucket.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-3-directory-bucket.log new file mode 100644 index 000000000..2caa9c780 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-3-directory-bucket.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=3 sabotage=0 +open took 0.003 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9046247 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3054228 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11877724 notfound=0 +== point:uniform@8 T=8 ops=11877724 secs= 3.00 ops/s= 3958934 lat us p50=1.94 p99=2.98 p99.9=7.87 max=85.2 mean=1.98 + cpu=24.00s ops/cpu-s=494974 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1289397 secs= 3.00 ops/s= 429768 lat us p50=17.15 p99=24.83 p99.9=35.33 max=106.0 mean=18.57 + cpu=24.00s ops/cpu-s=53733 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=16.64 p99=23.81 mean=17.91 per-tuple=nan ns deinit mean=0.62 us tuples/s=429768 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11145 ops (+1114 ops/s) +close took 0.084 s +== range:uniform:10000@8 T=8 ops=11213 secs= 3.00 ops/s= 3737 lat us p50=2015.23 p99=2588.67 p99.9=2588.67 max=2636.1 mean=2140.01 + cpu=24.00s ops/cpu-s=467 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=19.71 p99=26.37 mean=19.95 per-tuple=217.3 ns deinit mean=0.86 us tuples/s=36471756 + insert/run=3.00s drain(close)=0.08s total=3.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-4-directory-bucket-simd.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-4-directory-bucket-simd.log new file mode 100644 index 000000000..cf592867a --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-4-directory-bucket-simd.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket-simd splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=4 sabotage=0 +open took 0.002 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 8896486 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2967623 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=5 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11910982 notfound=0 +== point:uniform@8 T=8 ops=11910982 secs= 3.00 ops/s= 3970033 lat us p50=1.90 p99=3.04 p99.9=8.13 max=93.7 mean=1.97 + cpu=24.00s ops/cpu-s=496325 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1249432 secs= 3.00 ops/s= 416446 lat us p50=18.18 p99=26.37 p99.9=38.40 max=483.5 mean=19.16 + cpu=24.03s ops/cpu-s=52002 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=8 swapout=0 majflt=0 + startup us p50=17.15 p99=25.34 mean=18.43 per-tuple=nan ns deinit mean=0.68 us tuples/s=416446 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10801 ops (+1080 ops/s) +close took 0.069 s +== range:uniform:10000@8 T=8 ops=11330 secs= 3.00 ops/s= 3776 lat us p50=1982.46 p99=2588.67 p99.9=2588.67 max=2684.8 mean=2118.33 + cpu=24.00s ops/cpu-s=472 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=19.20 p99=25.34 mean=19.70 per-tuple=215.0 ns deinit mean=0.84 us tuples/s=36839944 + insert/run=3.00s drain(close)=0.07s total=3.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-5-directory-bucket-atomic.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-5-directory-bucket-atomic.log new file mode 100644 index 000000000..9976494c3 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-5-directory-bucket-atomic.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket-atomic splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=5 sabotage=0 +open took 0.002 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9398382 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3612847 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=14990840 notfound=0 +== point:uniform@8 T=8 ops=14990840 secs= 3.00 ops/s= 4996572 lat us p50=1.52 p99=2.21 p99.9=3.94 max=129.7 mean=1.56 + cpu=24.03s ops/cpu-s=623922 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1408388 secs= 3.00 ops/s= 469426 lat us p50=15.74 p99=22.78 p99.9=33.28 max=168.4 mean=16.99 + cpu=24.00s ops/cpu-s=58692 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=15.23 p99=21.76 mean=16.26 per-tuple=nan ns deinit mean=0.69 us tuples/s=469426 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10544 ops (+1054 ops/s) +close took 0.056 s +== range:uniform:10000@8 T=8 ops=10664 secs= 3.00 ops/s= 3554 lat us p50=2129.92 p99=2719.74 p99.9=2719.74 max=2787.7 mean=2250.50 + cpu=24.00s ops/cpu-s=444 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=19.71 p99=25.34 mean=19.98 per-tuple=228.6 ns deinit mean=0.95 us tuples/s=34667296 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-6-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-6-main.log new file mode 100644 index 000000000..3d8715a9b --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-6-main.log @@ -0,0 +1,20 @@ +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=6 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9016337 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3059133 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=16139732 notfound=0 +== point:uniform@8 T=8 ops=16139732 secs= 3.00 ops/s= 5379428 lat us p50=1.39 p99=2.03 p99.9=3.36 max=94.2 mean=1.44 + cpu=24.00s ops/cpu-s=672614 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1529426 secs= 3.00 ops/s= 509768 lat us p50=14.46 p99=20.74 p99.9=30.98 max=142.1 mean=15.64 + cpu=24.00s ops/cpu-s=63737 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=13.70 p99=20.22 mean=14.95 per-tuple=nan ns deinit mean=0.65 us tuples/s=509768 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10536 ops (+1054 ops/s) +close took 0.061 s +== range:uniform:10000@8 T=8 ops=10569 secs= 3.00 ops/s= 3523 lat us p50=2129.92 p99=2719.74 p99.9=2785.28 max=2854.4 mean=2271.11 + cpu=24.00s ops/cpu-s=440 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=19.20 p99=25.86 mean=19.65 per-tuple=230.8 ns deinit mean=0.95 us tuples/s=34351584 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-7-directory-bucket-atomic.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-7-directory-bucket-atomic.log new file mode 100644 index 000000000..e24627a12 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-7-directory-bucket-atomic.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket-atomic splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=7 sabotage=0 +open took 0.003 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 8968911 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3076450 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=14407382 notfound=0 +== point:uniform@8 T=8 ops=14407382 secs= 3.00 ops/s= 4802080 lat us p50=1.58 p99=2.21 p99.9=4.67 max=97.4 mean=1.62 + cpu=24.00s ops/cpu-s=600339 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1407204 secs= 3.00 ops/s= 469028 lat us p50=15.74 p99=22.78 p99.9=33.28 max=105.8 mean=17.01 + cpu=24.00s ops/cpu-s=58640 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=14.98 p99=21.76 mean=16.28 per-tuple=nan ns deinit mean=0.68 us tuples/s=469028 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10573 ops (+1057 ops/s) +close took 0.101 s +== range:uniform:10000@8 T=8 ops=10466 secs= 3.00 ops/s= 3488 lat us p50=2129.92 p99=2850.82 p99.9=2981.89 max=3438.4 mean=2293.06 + cpu=24.00s ops/cpu-s=436 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=20.74 p99=34.30 mean=21.40 per-tuple=233.0 ns deinit mean=0.98 us tuples/s=34002560 + insert/run=3.00s drain(close)=0.10s total=3.10s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-8-directory-bucket-simd.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-8-directory-bucket-simd.log new file mode 100644 index 000000000..1bcbc84f0 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-8-directory-bucket-simd.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket-simd splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=8 sabotage=0 +open took 0.002 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 9365649 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3339958 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11630857 notfound=0 +== point:uniform@8 T=8 ops=11630857 secs= 3.00 ops/s= 3876651 lat us p50=1.97 p99=3.10 p99.9=8.32 max=82.6 mean=2.02 + cpu=24.00s ops/cpu-s=484643 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1309640 secs= 3.00 ops/s= 436515 lat us p50=17.15 p99=24.83 p99.9=34.30 max=101.1 mean=18.28 + cpu=24.00s ops/cpu-s=54574 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=16.26 p99=23.81 mean=17.59 per-tuple=nan ns deinit mean=0.65 us tuples/s=436515 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10915 ops (+1091 ops/s) +close took 0.059 s +== range:uniform:10000@8 T=8 ops=11065 secs= 3.00 ops/s= 3688 lat us p50=2015.23 p99=2654.21 p99.9=2654.21 max=2712.6 mean=2168.94 + cpu=24.00s ops/cpu-s=461 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=20.22 p99=25.86 mean=20.16 per-tuple=220.3 ns deinit mean=0.86 us tuples/s=35970351 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-9-directory-bucket.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-9-directory-bucket.log new file mode 100644 index 000000000..84bebe550 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-9-directory-bucket.log @@ -0,0 +1,20 @@ +kvbench version=directory-bucket splinter=splinterdb_build_version 9ca98481-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=9 sabotage=0 +open took 0.002 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 8897521 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3318731 rd=138.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11165139 notfound=0 +== point:uniform@8 T=8 ops=11165139 secs= 3.00 ops/s= 3721427 lat us p50=2.08 p99=3.17 p99.9=8.13 max=85.1 mean=2.11 + cpu=24.00s ops/cpu-s=465235 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=1283040 secs= 3.00 ops/s= 427649 lat us p50=17.15 p99=24.83 p99.9=34.30 max=79.1 mean=18.66 + cpu=24.00s ops/cpu-s=53462 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=16.64 p99=23.81 mean=17.99 per-tuple=nan ns deinit mean=0.62 us tuples/s=427649 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10446 ops (+1045 ops/s) +close took 0.093 s +== range:uniform:10000@8 T=8 ops=10552 secs= 3.00 ops/s= 3517 lat us p50=2129.92 p99=2785.28 p99.9=2785.28 max=2836.7 mean=2274.00 + cpu=24.00s ops/cpu-s=440 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=21.25 p99=28.42 mean=21.41 per-tuple=230.9 ns deinit mean=0.97 us tuples/s=34299367 + insert/run=3.00s drain(close)=0.09s total=3.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=162664448 db_alloc=28655616 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-results.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-results.csv new file mode 100644 index 000000000..cb763234f --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/ordinary-results.csv @@ -0,0 +1,53 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.021,9613256.8,nan,nan,nan,0.000,nan,0.056,3548553.1,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9613256.8,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.004,0,0,0,0,3 +main,resident,0,0,point:uniform@8,8,0,200000,16094659,3.000,5364500.1,1.424,2.032,2.848,645.440,1.451,23.986,671005.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.004,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,1636465,3.000,545448.4,13.696,19.712,29.440,926.415,14.621,23.992,68209.5,0,0,0.00,0.00,13.184,18.688,13.981,nan,0.599,1636465,545448.4,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.004,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,11710,3.000,3903.0,1916.928,2457.600,2523.136,2694.595,2049.614,23.994,488.0,0,0,0.00,0.00,17.664,26.880,17.977,208.16,0.859,114242796,38077893.2,3.000,0.046,3.046,0.013,0,307200,nan,162664448,28655616,0.004,0,0,0,0,0 +cache-invalid-addresses,resident,1,0,warm,8,1,200000,200000,0.021,9318200.8,nan,nan,nan,0.000,nan,0.060,3359989.2,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9318200.8,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.005,0,0,0,0,2 +cache-invalid-addresses,resident,1,0,point:uniform@8,8,1,200000,15793690,3.000,5264167.4,1.456,2.032,3.552,311.879,1.478,23.995,658194.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,1,0,range:uniform:1@8,8,1,200000,1527458,3.000,509114.8,14.464,21.248,31.488,177.984,15.665,23.992,63664.3,0,0,0.00,0.00,13.952,20.224,14.977,nan,0.645,1527458,509114.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,1,0,range:uniform:10000@8,8,1,200000,11400,3.000,3799.7,1982.464,2523.136,2588.672,2659.004,2105.315,23.996,475.1,0,0,0.00,0.00,17.664,24.832,18.012,213.79,0.891,111291566,37093953.1,3.000,0.088,3.088,0.012,0,307200,nan,162664448,28655616,0.005,0,0,0,0,0 +directory-direct,resident,2,0,warm,8,2,200000,200000,0.022,9137143.5,nan,nan,nan,0.000,nan,0.058,3420557.6,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9137143.5,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.005,0,0,0,0,2 +directory-direct,resident,2,0,point:uniform@8,8,2,200000,15016386,3.000,5005073.6,1.520,2.144,3.168,154.253,1.552,23.997,625770.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +directory-direct,resident,2,0,range:uniform:1@8,8,2,200000,1487398,3.000,495761.0,14.976,21.248,32.000,92.053,16.087,23.997,61983.4,0,0,0.00,0.00,14.208,20.224,15.392,nan,0.650,1487398,495761.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +directory-direct,resident,2,0,range:uniform:10000@8,8,2,200000,11373,3.000,3790.7,1982.464,2523.136,2588.672,2618.660,2110.120,23.998,473.9,0,0,0.00,0.00,17.664,24.832,18.025,214.32,0.907,111014273,37001775.2,3.000,0.084,3.085,0.012,0,307200,nan,162664448,28655616,0.005,0,0,0,0,0 +directory-bucket,resident,3,0,warm,8,3,200000,200000,0.022,9046247.4,nan,nan,nan,0.000,nan,0.065,3054227.8,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9046247.4,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket,resident,3,0,point:uniform@8,8,3,200000,11877724,3.000,3958933.7,1.936,2.976,7.872,85.167,1.980,23.997,494973.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket,resident,3,0,range:uniform:1@8,8,3,200000,1289397,3.000,429768.0,17.152,24.832,35.328,105.983,18.566,23.996,53733.4,0,0,0.00,0.00,16.640,23.808,17.906,nan,0.616,1289397,429768.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket,resident,3,0,range:uniform:10000@8,8,3,200000,11213,3.000,3737.4,2015.232,2588.672,2588.672,2636.113,2140.007,23.998,467.2,0,0,0.00,0.00,19.712,26.368,19.951,217.27,0.862,109424230,36471756.4,3.000,0.084,3.084,0.012,0,307200,nan,162664448,28655616,0.003,0,0,0,0,0 +directory-bucket-simd,resident,4,0,warm,8,4,200000,200000,0.022,8896485.7,nan,nan,nan,0.000,nan,0.067,2967623.2,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,8896485.7,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.002,0,0,0,0,5 +directory-bucket-simd,resident,4,0,point:uniform@8,8,4,200000,11910982,3.000,3970032.8,1.904,3.040,8.128,93.678,1.973,23.998,496324.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-simd,resident,4,0,range:uniform:1@8,8,4,200000,1249432,3.000,416446.1,18.176,26.368,38.400,483.494,19.160,24.026,52002.5,0,0,0.00,0.00,17.152,25.344,18.431,nan,0.684,1249432,416446.1,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,8,0,0 +directory-bucket-simd,resident,4,0,range:uniform:10000@8,8,4,200000,11330,3.000,3776.4,1982.464,2588.672,2588.672,2684.788,2118.332,23.997,472.1,0,0,0.00,0.00,19.200,25.344,19.703,215.02,0.840,110528023,36839944.4,3.000,0.069,3.069,0.012,0,307200,nan,162664448,28655616,0.002,0,0,0,0,0 +directory-bucket-atomic,resident,5,0,warm,8,5,200000,200000,0.021,9398381.9,nan,nan,nan,0.000,nan,0.055,3612847.3,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9398381.9,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-atomic,resident,5,0,point:uniform@8,8,5,200000,14990840,3.000,4996571.7,1.520,2.208,3.936,129.747,1.559,24.027,623921.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-atomic,resident,5,0,range:uniform:1@8,8,5,200000,1408388,3.000,469425.8,15.744,22.784,33.280,168.371,16.991,23.996,58692.3,0,0,0.00,0.00,15.232,21.760,16.257,nan,0.689,1408388,469425.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-atomic,resident,5,0,range:uniform:10000@8,8,5,200000,10664,3.000,3554.3,2129.920,2719.744,2719.744,2787.713,2250.500,23.997,444.4,0,0,0.00,0.00,19.712,25.344,19.985,228.60,0.946,104011236,34667296.5,3.000,0.056,3.057,0.012,0,307200,nan,162664448,28655616,0.002,0,0,0,0,0 +main,resident,6,0,warm,8,6,200000,200000,0.022,9016337.0,nan,nan,nan,0.000,nan,0.065,3059133.0,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9016337.0,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,6,0,point:uniform@8,8,6,200000,16139732,3.000,5379428.3,1.392,2.032,3.360,94.167,1.444,23.996,672614.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,6,0,range:uniform:1@8,8,6,200000,1529426,3.000,509768.5,14.464,20.736,30.976,142.100,15.644,23.996,63736.8,0,0,0.00,0.00,13.696,20.224,14.953,nan,0.648,1529426,509768.5,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,6,0,range:uniform:10000@8,8,6,200000,10569,3.000,3522.7,2129.920,2719.744,2785.280,2854.398,2271.112,23.996,440.4,0,0,0.00,0.00,19.200,25.856,19.647,230.77,0.948,103064572,34351583.8,3.000,0.061,3.062,0.013,0,307200,nan,162664448,28655616,0.005,0,0,0,0,0 +directory-bucket-atomic,resident,7,0,warm,8,7,200000,200000,0.022,8968911.1,nan,nan,nan,0.000,nan,0.065,3076449.8,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,8968911.1,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket-atomic,resident,7,0,point:uniform@8,8,7,200000,14407382,3.000,4802080.0,1.584,2.208,4.672,97.426,1.621,23.999,600338.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket-atomic,resident,7,0,range:uniform:1@8,8,7,200000,1407204,3.000,469028.0,15.744,22.784,33.280,105.847,17.006,23.997,58640.2,0,0,0.00,0.00,14.976,21.760,16.278,nan,0.682,1407204,469028.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.003,0,0,0,0,0 +directory-bucket-atomic,resident,7,0,range:uniform:10000@8,8,7,200000,10466,3.000,3488.4,2129.920,2850.816,2981.888,3438.430,2293.059,23.996,436.2,0,0,0.00,0.00,20.736,34.304,21.396,232.96,0.978,102016793,34002559.8,3.000,0.101,3.102,0.012,0,307200,nan,162664448,28655616,0.003,0,0,0,0,0 +directory-bucket-simd,resident,8,0,warm,8,8,200000,200000,0.021,9365649.1,nan,nan,nan,0.000,nan,0.060,3339957.6,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9365649.1,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.002,0,0,0,0,2 +directory-bucket-simd,resident,8,0,point:uniform@8,8,8,200000,11630857,3.000,3876650.7,1.968,3.104,8.320,82.644,2.021,23.999,484642.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-simd,resident,8,0,range:uniform:1@8,8,8,200000,1309640,3.000,436515.1,17.152,24.832,34.304,101.093,18.280,23.997,54574.4,0,0,0.00,0.00,16.256,23.808,17.589,nan,0.648,1309640,436515.1,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket-simd,resident,8,0,range:uniform:10000@8,8,8,200000,11065,3.000,3688.0,2015.232,2654.208,2654.208,2712.640,2168.944,23.998,461.1,0,0,0.00,0.00,20.224,25.856,20.163,220.30,0.856,107919580,35970351.5,3.000,0.059,3.060,0.012,0,307200,nan,162664448,28655616,0.002,0,0,0,0,0 +directory-bucket,resident,9,0,warm,8,9,200000,200000,0.022,8897521.1,nan,nan,nan,0.000,nan,0.060,3318730.9,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,8897521.1,0.022,0.000,0.022,0.000,0,0,nan,0,0,0.002,0,0,0,0,2 +directory-bucket,resident,9,0,point:uniform@8,8,9,200000,11165139,3.000,3721427.4,2.080,3.168,8.128,85.100,2.106,23.999,465234.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket,resident,9,0,range:uniform:1@8,8,9,200000,1283040,3.000,427648.9,17.152,24.832,34.304,79.053,18.658,23.999,53462.1,0,0,0.00,0.00,16.640,23.808,17.994,nan,0.620,1283040,427648.9,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.002,0,0,0,0,0 +directory-bucket,resident,9,0,range:uniform:10000@8,8,9,200000,10552,3.000,3517.0,2129.920,2785.280,2785.280,2836.700,2274.000,23.997,439.7,0,0,0.00,0.00,21.248,28.416,21.415,230.93,0.966,102907260,34299367.2,3.000,0.093,3.094,0.012,0,307200,nan,162664448,28655616,0.002,0,0,0,0,0 +directory-direct,resident,10,0,warm,8,10,200000,200000,0.021,9575523.3,nan,nan,nan,0.000,nan,0.057,3512160.9,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9575523.3,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +directory-direct,resident,10,0,point:uniform@8,8,10,200000,15254528,3.000,5084446.0,1.488,2.144,4.416,447.231,1.530,23.990,635877.5,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +directory-direct,resident,10,0,range:uniform:1@8,8,10,200000,1542002,3.000,513959.8,14.208,20.736,29.952,116.374,15.517,23.998,64256.3,0,0,0.00,0.00,13.696,19.712,14.837,nan,0.637,1542002,513959.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +directory-direct,resident,10,0,range:uniform:10000@8,8,10,200000,10744,3.000,3581.0,2129.920,2719.744,2719.744,2747.861,2233.580,24.030,447.1,0,0,0.00,0.00,18.688,24.832,18.930,227.01,0.944,104785747,34925458.6,3.000,0.058,3.058,0.006,0,307200,nan,162664448,28655616,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,11,0,warm,8,11,200000,200000,0.021,9621619.7,nan,nan,nan,0.000,nan,0.055,3643717.3,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9621619.7,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,11,0,point:uniform@8,8,11,200000,15486368,3.000,5161737.6,1.488,2.080,3.616,138.889,1.507,23.995,645404.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,11,0,range:uniform:1@8,8,11,200000,1434014,3.000,477968.0,15.232,21.760,32.000,101.528,16.686,23.999,59753.9,0,0,0.00,0.00,14.720,21.248,15.944,nan,0.696,1434014,477968.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +cache-invalid-addresses,resident,11,0,range:uniform:10000@8,8,11,200000,11260,3.000,3753.0,1982.464,2588.672,2654.208,2760.334,2131.583,23.997,469.2,0,0,0.00,0.00,17.664,27.392,18.250,216.36,0.893,109948136,36646349.5,3.000,0.068,3.069,0.012,0,307200,nan,162664448,28655616,0.005,0,0,0,0,0 +main,resident,12,0,warm,8,12,200000,200000,0.021,9342765.4,nan,nan,nan,0.000,nan,0.062,3234309.6,27672576,0,138.36,0.00,nan,nan,nan,nan,nan,200000,9342765.4,0.021,0.000,0.021,0.000,0,0,nan,0,0,0.006,0,0,0,0,6 +main,resident,12,0,point:uniform@8,8,12,200000,14803808,3.000,4934239.5,1.552,2.144,3.296,131.695,1.576,24.029,616088.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,12,0,range:uniform:1@8,8,12,200000,1480470,3.000,493450.8,14.976,21.248,30.976,451.183,16.161,23.997,61694.6,0,0,0.00,0.00,14.464,20.736,15.440,nan,0.675,1480470,493450.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.006,0,0,2,0,0 +main,resident,12,0,range:uniform:10000@8,8,12,200000,10853,3.000,3617.3,2048.000,2654.208,2719.744,2733.513,2211.589,23.998,452.2,0,0,0.00,0.00,18.688,25.344,18.951,224.64,0.937,105883663,35291428.8,3.000,0.108,3.108,0.013,0,307200,nan,162664448,28655616,0.006,0,0,1,0,0 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-0-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-0-main.log new file mode 100644 index 000000000..7d9236462 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-0-main.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=0 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14907959 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=3640335 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11845141 notfound=0 +== point:uniform@8 T=8 ops=11845141 secs= 3.00 ops/s= 3948079 lat us p50=1.84 p99=2.53 p99.9=7.62 max=114.5 mean=1.87 + cpu=24.00s ops/cpu-s=493579 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3251826 secs= 3.00 ops/s= 1083863 lat us p50=6.34 p99=10.11 p99.9=17.66 max=452.2 mean=7.23 + cpu=23.99s ops/cpu-s=135543 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=9.60 mean=6.80 per-tuple=nan ns deinit mean=0.39 us tuples/s=1083863 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 10208 ops (+1021 ops/s) +close took 0.043 s +== range:uniform:10000@8 T=8 ops=10186 secs= 3.00 ops/s= 3395 lat us p50=2129.92 p99=4784.13 p99.9=4915.20 max=5084.6 mean=2355.18 + cpu=24.00s ops/cpu-s=424 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=14.72 mean=8.96 per-tuple=240.9 ns deinit mean=0.67 us tuples/s=33093493 + insert/run=3.00s drain(close)=0.04s total=3.04s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-1-branch-prefix.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-1-branch-prefix.log new file mode 100644 index 000000000..271919619 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-1-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=1 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15509499 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3221961 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=12455154 notfound=0 +== point:uniform@8 T=8 ops=12455154 secs= 3.00 ops/s= 4151388 lat us p50=1.74 p99=2.59 p99.9=7.10 max=272.2 mean=1.77 + cpu=23.99s ops/cpu-s=519084 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3076317 secs= 3.00 ops/s= 1025362 lat us p50=6.59 p99=10.62 p99.9=18.18 max=89.0 mean=7.64 + cpu=24.00s ops/cpu-s=128189 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=9.86 mean=7.13 per-tuple=nan ns deinit mean=0.46 us tuples/s=1025362 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11001 ops (+1100 ops/s) +close took 0.056 s +== range:uniform:10000@8 T=8 ops=11092 secs= 3.00 ops/s= 3697 lat us p50=1196.03 p99=4653.06 p99.9=4784.13 max=4885.6 mean=2162.60 + cpu=24.00s ops/cpu-s=462 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.74 p99=12.16 mean=8.34 per-tuple=221.0 ns deinit mean=0.66 us tuples/s=36056323 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-2-branch-prefix.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-2-branch-prefix.log new file mode 100644 index 000000000..7205c52a3 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-2-branch-prefix.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=branch-prefix splinter=splinterdb_build_version 100800cb-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14714134 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3284018 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=11900064 notfound=0 +== point:uniform@8 T=8 ops=11900064 secs= 3.00 ops/s= 3966374 lat us p50=1.81 p99=2.53 p99.9=5.44 max=60.0 mean=1.86 + cpu=24.00s ops/cpu-s=495849 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3183221 secs= 3.00 ops/s= 1060998 lat us p50=6.34 p99=10.37 p99.9=18.69 max=88.1 mean=7.39 + cpu=24.00s ops/cpu-s=132640 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=9.60 mean=6.90 per-tuple=nan ns deinit mean=0.44 us tuples/s=1060998 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 9287 ops (+929 ops/s) +close took 0.062 s +== range:uniform:10000@8 T=8 ops=9377 secs= 3.00 ops/s= 3125 lat us p50=2654.21 p99=4259.84 p99.9=4259.84 max=4356.1 mean=2559.23 + cpu=24.00s ops/cpu-s=391 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=11.14 mean=8.42 per-tuple=261.5 ns deinit mean=0.69 us tuples/s=30492432 + insert/run=3.00s drain(close)=0.06s total=3.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-3-main.log b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-3-main.log new file mode 100644 index 000000000..39f2cd635 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-3-main.log @@ -0,0 +1,21 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version fc0bc8f7 db=/home/rob/projects/splinterdb/.cache/projects-20261011/benchmarks/main-fc0bc8f7/branch-screen/scratch.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=3.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15599265 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3341408 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=12688388 notfound=0 +== point:uniform@8 T=8 ops=12688388 secs= 3.00 ops/s= 4229122 lat us p50=1.71 p99=2.34 p99.9=6.34 max=164.2 mean=1.75 + cpu=23.99s ops/cpu-s=528797 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) +== range:uniform:1@8 T=8 ops=3128885 secs= 3.00 ops/s= 1042880 lat us p50=6.59 p99=10.62 p99.9=18.69 max=87.9 mean=7.52 + cpu=24.00s ops/cpu-s=130380 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=10.11 mean=7.08 per-tuple=nan ns deinit mean=0.39 us tuples/s=1042880 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 11527 ops (+1153 ops/s) +close took 0.096 s +== range:uniform:10000@8 T=8 ops=11570 secs= 3.00 ops/s= 3856 lat us p50=1916.93 p99=3899.39 p99.9=4030.46 max=4324.0 mean=2074.23 + cpu=24.00s ops/cpu-s=482 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=13.95 mean=9.33 per-tuple=211.4 ns deinit mean=0.66 us tuples/s=37627377 + insert/run=3.00s drain(close)=0.10s total=3.10s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-results.csv b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-results.csv new file mode 100644 index 000000000..b32239fa1 --- /dev/null +++ b/benchmarks/results-20261013/main-fc0bc8f7-screen/runs/random-results.csv @@ -0,0 +1,17 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.013,14907958.6,nan,nan,nan,0.000,nan,0.055,3640334.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14907958.6,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,point:uniform@8,8,0,200000,11845141,3.000,3948079.3,1.840,2.528,7.616,114.474,1.873,23.998,493579.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,3251826,3.000,1083863.1,6.336,10.112,17.664,452.164,7.228,23.991,135542.7,0,0,0.00,0.00,5.952,9.600,6.799,nan,0.386,3251826,1083863.1,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,10186,3.000,3395.0,2129.920,4784.128,4915.200,5084.630,2355.177,23.997,424.5,0,0,0.00,0.00,8.320,14.720,8.958,240.88,0.669,99289511,33093492.6,3.000,0.043,3.043,0.007,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 +branch-prefix,resident,1,0,warm,8,1,200000,200000,0.013,15509499.1,nan,nan,nan,0.000,nan,0.062,3221960.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15509499.1,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,1,0,point:uniform@8,8,1,200000,12455154,3.000,4151388.4,1.744,2.592,7.104,272.248,1.771,23.994,519083.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:1@8,8,1,200000,3076317,3.000,1025361.8,6.592,10.624,18.176,89.048,7.640,23.998,128189.5,0,0,0.00,0.00,6.208,9.856,7.131,nan,0.460,3076317,1025361.8,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,1,0,range:uniform:10000@8,8,1,200000,11092,3.000,3697.0,1196.032,4653.056,4784.128,4885.604,2162.603,23.998,462.2,0,0,0.00,0.00,7.744,12.160,8.344,221.01,0.659,108178040,36056322.7,3.000,0.056,3.056,0.013,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 +branch-prefix,resident,2,0,warm,8,2,200000,200000,0.014,14714134.2,nan,nan,nan,0.000,nan,0.061,3284018.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14714134.2,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,2,0,point:uniform@8,8,2,200000,11900064,3.000,3966374.4,1.808,2.528,5.440,60.004,1.862,23.999,495849.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:1@8,8,2,200000,3183221,3.000,1060998.1,6.336,10.368,18.688,88.061,7.388,23.999,132640.4,0,0,0.00,0.00,5.952,9.600,6.897,nan,0.441,3183221,1060998.1,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +branch-prefix,resident,2,0,range:uniform:10000@8,8,2,200000,9377,3.000,3125.4,2654.208,4259.840,4259.840,4356.108,2559.225,23.999,390.7,0,0,0.00,0.00,8.320,11.136,8.423,261.47,0.695,91485084,30492432.1,3.000,0.062,3.062,0.007,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 +main,resident,3,0,warm,8,3,200000,200000,0.013,15599264.9,nan,nan,nan,0.000,nan,0.060,3341408.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15599264.9,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.007,0,0,0,0,2 +main,resident,3,0,point:uniform@8,8,3,200000,12688388,3.000,4229121.7,1.712,2.336,6.336,164.216,1.751,23.995,528797.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,3128885,3.000,1042880.4,6.592,10.624,18.688,87.917,7.515,23.998,130379.6,0,0,0.00,0.00,6.208,10.112,7.077,nan,0.394,3128885,1042880.4,3.000,0.000,3.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,11570,3.000,3856.3,1916.928,3899.392,4030.464,4324.016,2074.231,23.997,482.1,0,0,0.00,0.00,9.344,13.952,9.329,211.40,0.659,112892582,37627376.6,3.000,0.096,3.097,0.013,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/.gitattributes b/benchmarks/results-20261013/prefix-main-fc0bc8f7/.gitattributes new file mode 100644 index 000000000..25a2cf819 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/.gitattributes @@ -0,0 +1,2 @@ +# Preserve raw test output exactly. +*.log -whitespace diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/README.md b/benchmarks/results-20261013/prefix-main-fc0bc8f7/README.md new file mode 100644 index 000000000..7671b1281 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/README.md @@ -0,0 +1,34 @@ +# Prefix integration with main fc0bc8f7 + +Merged main `fc0bc8f7e39566f14822bb598376458bdf1e28b3` into the prefix +experiment, preserving its old head `100800cb` at +`backup/branch-prefix-before-main-fc0bc8f7`. + +The integrated experiment uses branch format 2 with main's superblock format 8. +Format 1 branch references are rejected before page access; old standalone +prefix superblocks (0x8007) are rejected. The lexical flag remains a construction +policy: a new regression reopens compressed and uncompressed leaves with the +opposite flag, then checks full-key predicate-only and routing-pruned iteration +in both directions. The existing roundtrip still verifies actual compressed +pages, point/async reads, forward/reverse scans and repeated seeks. + +The iterator merge initializes its owned reconstruction buffers before checking +branch compatibility, preserving safe destruction after rejected versions. + +`make -j4 BUILD_ROOT=build-main-fc0bc8f7 BUILD_MODE={debug,release} all` +built libraries, tools, examples and all test binaries. Debug and release each +passed 137 unit cases: B-tree 12, superblock 17, merge 10, public quick API 57, +and internal Splinter 41. All builds and tests used the campaign coordinator. +The first debug run exposed an obsolete test expectation: unsupported formats +now return INVALID_STATE rather than NOT_FOUND. The diagnostic log is retained; +the corrected test passed in both modes. An initial runner also mistakenly +requested a standalone blob test executable; blob cases are part of the core +suite and passed in the final runs. + +Changed C sources pass clang-format-19 and the source/doc diff passes whitespace +checks. `source-manifest.json` hashes the tested runtime and test sources; +per-mode results record commands, timestamps, executable hashes and log hashes. +Historical prefix evidence moved unchanged under `benchmarks/branch-prefix-history` +to avoid collisions with main's archives; historical-archive-proof.json verifies +all 292 original archive files byte-for-byte. No historical timings were rerun or +reinterpreted in this integration; fresh performance is coordinated separately. diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-btree.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-btree.log new file mode 100644 index 000000000..ed8455c05 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-btree.log @@ -0,0 +1,36 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/12 btree:test_compressed_suffix_copy [OK] +TEST 2/12 btree:test_leaf_hdr [OK] +TEST 3/12 btree:test_leaf_hdr_search [OK] +TEST 4/12 btree:test_index_hdr [OK] +TEST 5/12 btree:test_index_hdr_search [OK] +TEST 6/12 btree:test_leaf_split [OK] +TEST 7/12 btree:test_defragmented_leaf_bytes [OK] +TEST 8/12 btree:test_defragmented_index_bytes [OK] +TEST 9/12 btree:test_invalid_branch_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 10/12 btree:test_invalid_branch_async_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 11/12 btree:test_invalid_branch_iterator Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 12/12 btree:test_invalid_branch_metadata_queries Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 14 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-build.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-build.log new file mode 100644 index 000000000..55c94a6ec --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-build.log @@ -0,0 +1,137 @@ +Starting prefix-main-fc0-debug-build build +Checking for mismatched config...No mismatched config found +Saving config to build-main-fc0bc8f7/debug/build-config.e33dfc688a9c2bf2dad4e17ef758ec3e +Compiling src/PackedArray.c [build-main-fc0bc8f7/debug/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-fc0bc8f7/debug/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-fc0bc8f7/debug/obj/src/core.o] +Compiling src/default_data_config.c [build-main-fc0bc8f7/debug/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-fc0bc8f7/debug/obj/src/memtable.o] +Compiling src/merge.c [build-main-fc0bc8f7/debug/obj/src/merge.o] +Compiling src/notification.c [build-main-fc0bc8f7/debug/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-fc0bc8f7/debug/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-fc0bc8f7/debug/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-fc0bc8f7/debug/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-fc0bc8f7/debug/obj/src/superblock.o] +Compiling src/trunk.c [build-main-fc0bc8f7/debug/obj/src/trunk.o] +Compiling tools/splinter_inspect.c [build-main-fc0bc8f7/debug/obj/tools/splinter_inspect.o] +Compiling src/allocator.c [build-main-fc0bc8f7/debug/obj/src/allocator.o] +Compiling src/blob.c [build-main-fc0bc8f7/debug/obj/src/blob.o] +Compiling src/blob_build.c [build-main-fc0bc8f7/debug/obj/src/blob_build.o] +Compiling src/btree.c [build-main-fc0bc8f7/debug/obj/src/btree.o] +Compiling src/clockcache.c [build-main-fc0bc8f7/debug/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-fc0bc8f7/debug/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-fc0bc8f7/debug/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-fc0bc8f7/debug/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-fc0bc8f7/debug/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-fc0bc8f7/debug/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-fc0bc8f7/debug/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-fc0bc8f7/debug/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-fc0bc8f7/debug/obj/src/task.o] +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Compiling src/util.c [build-main-fc0bc8f7/debug/obj/src/util.o] +Compiling src/writeback_set.c [build-main-fc0bc8f7/debug/obj/src/writeback_set.o] +Compiling tests/functional/avlTree.c [build-main-fc0bc8f7/debug/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-fc0bc8f7/debug/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-fc0bc8f7/debug/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-fc0bc8f7/debug/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-fc0bc8f7/debug/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-fc0bc8f7/debug/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-fc0bc8f7/debug/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-fc0bc8f7/debug/obj/tests/config.o] +Compiling tests/test_common.c [build-main-fc0bc8f7/debug/obj/tests/test_common.o] +Compiling tests/test_data.c [build-main-fc0bc8f7/debug/obj/tests/test_data.o] +Linking build-main-fc0bc8f7/debug/lib/libsplinterdb.so +Compiling tests/unit/btree_stress_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-fc0bc8f7/debug/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-fc0bc8f7/debug/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/misc_test.o] +Compiling tests/unit/notification_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/notification_test.o] +Compiling tests/unit/platform_apis_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-fc0bc8f7/debug/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/writeback_set_test.o] +Linking build-main-fc0bc8f7/debug/bin/unit/btree_stress_test +Linking build-main-fc0bc8f7/debug/bin/unit/btree_test +Compiling tests/unit/config_parse_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-fc0bc8f7/debug/bin/unit/limitations_test +Linking build-main-fc0bc8f7/debug/bin/unit/merge_test +Linking build-main-fc0bc8f7/debug/bin/unit/misc_test +Linking build-main-fc0bc8f7/debug/bin/unit/notification_test +Linking build-main-fc0bc8f7/debug/bin/unit/platform_apis_test +Linking build-main-fc0bc8f7/debug/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinter_test.o] +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-fc0bc8f7/debug/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-fc0bc8f7/debug/bin/unit/splinterdb_optimize_test +Linking build-main-fc0bc8f7/debug/bin/unit/splinterdb_quick_test +Linking build-main-fc0bc8f7/debug/bin/unit/splinterdb_stress_test +Linking build-main-fc0bc8f7/debug/bin/unit/superblock_test +Linking build-main-fc0bc8f7/debug/bin/unit/task_system_test +Linking build-main-fc0bc8f7/debug/bin/unit/trunk_async_test +Linking build-main-fc0bc8f7/debug/bin/unit/trunk_gc_test +Linking build-main-fc0bc8f7/debug/bin/unit/trunk_split_test +Linking build-main-fc0bc8f7/debug/bin/unit/util_test +Linking build-main-fc0bc8f7/debug/bin/unit/vector_test +Linking build-main-fc0bc8f7/debug/bin/unit/writable_buffer_test +Linking build-main-fc0bc8f7/debug/bin/unit/writeback_set_test +Compiling examples/splinterdb_custom_ipv4_addr_sortcmp_example.c [build-main-fc0bc8f7/debug/obj/examples/splinterdb_custom_ipv4_addr_sortcmp_example.o] +Compiling examples/splinterdb_intro_example.c [build-main-fc0bc8f7/debug/obj/examples/splinterdb_intro_example.o] +Compiling examples/splinterdb_iterators_example.c [build-main-fc0bc8f7/debug/obj/examples/splinterdb_iterators_example.o] +Compiling examples/splinterdb_optimize_example.c [build-main-fc0bc8f7/debug/obj/examples/splinterdb_optimize_example.o] +Compiling examples/splinterdb_wide_values_example.c [build-main-fc0bc8f7/debug/obj/examples/splinterdb_wide_values_example.o] +Building archive build-main-fc0bc8f7/debug/lib/libsplinterdb.a +Linking build-main-fc0bc8f7/debug/bin/driver_test +Linking build-main-fc0bc8f7/debug/bin/unit_test +Linking build-main-fc0bc8f7/debug/bin/unit/config_parse_test +Linking build-main-fc0bc8f7/debug/bin/unit/large_inserts_stress_test +Linking build-main-fc0bc8f7/debug/bin/unit/splinterdb_forked_child_test +Linking build-main-fc0bc8f7/debug/bin/examples/splinterdb_custom_ipv4_addr_sortcmp_example +Linking build-main-fc0bc8f7/debug/bin/examples/splinterdb_intro_example +Linking build-main-fc0bc8f7/debug/bin/examples/splinterdb_iterators_example +Linking build-main-fc0bc8f7/debug/bin/examples/splinterdb_optimize_example +Linking build-main-fc0bc8f7/debug/bin/examples/splinterdb_wide_values_example +Linking build-main-fc0bc8f7/debug/bin/splinter_inspect +Linking build-main-fc0bc8f7/debug/bin/unit/splinter_test +Starting prefix-main-fc0-debug-rebuild build +Checking for mismatched config...No mismatched config found +Compiling tests/unit/superblock_test.c [build-main-fc0bc8f7/debug/obj/tests/unit/superblock_test.o] +Linking build-main-fc0bc8f7/debug/bin/unit_test +Linking build-main-fc0bc8f7/debug/bin/unit/superblock_test diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-merge.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-merge.log new file mode 100644 index 000000000..96e9e40ce --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-merge.log @@ -0,0 +1,18 @@ +Running 1 CTests, suite name 'merge', test case 'all'. +TEST 1/10 merge:direction_change_propagates_child_errors [OK] +TEST 2/10 merge:direction_change_succeeds [OK] +TEST 3/10 merge:failed_direction_change_preserves_iterator_ownership setup_ordered_iterators: exception: Cannot allocate memory +setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 4/10 merge:failed_creation_cleans_up setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 5/10 merge:maximum_arity_is_accepted merge_iterator_create: bad parameter merge_itor 0x7ffd133ca768 num_trees 1025 itor_arr 0x7ffd133ca770 cfg 0x7ffd133cc7b0 +[OK] +TEST 6/10 merge:direction_change_clears_stale_equal_key_flag [OK] +TEST 7/10 merge:direction_change_at_duplicate_key_moves_to_adjacent_key [OK] +TEST 8/10 merge:random_direction_changes_match_merged_sequence [OK] +TEST 9/10 merge:filtering_does_not_eagerly_drain_nonmatching_sources [OK] +TEST 10/10 merge:filtering_propagates_errors_while_skipping_rejected_keys setup_ordered_iterators: exception: Input/output error +setup_ordered_iterators: exception: Input/output error +[OK] +RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 1 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results-before-status-update.json b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results-before-status-update.json new file mode 100644 index 000000000..ea319e7d9 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results-before-status-update.json @@ -0,0 +1,28 @@ +[ + { + "name": "btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/btree_test" + ], + "binary_sha256": "ead5a86bb8ebe576962f3cc4aee4586e817e2dec9b2f447485ca8ce63d4cfeb2", + "started": 1791959409.9132185, + "returncode": 0, + "finished": 1791959409.9275556, + "log_sha256": "b548b3cade464538b85250d6838ea1c6483836541d00b0603d89c617a9ab8d1e", + "summaries": [ + "RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 13 ms" + ] + }, + { + "name": "superblock", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/superblock_test" + ], + "binary_sha256": "999ec0b233f039df965442663e0994e350df80746fb7739fa4238774066c37c0", + "started": 1791959409.9280472, + "returncode": -6, + "finished": 1791959409.9412553, + "log_sha256": "18e06db6efadfebc0e0017b8796cc285dd4df33811087e9d11fb7c5aa60edd34", + "summaries": [] + } +] diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results.json b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results.json new file mode 100644 index 000000000..e333f7f9d --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-results.json @@ -0,0 +1,78 @@ +[ + { + "name": "btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/btree_test" + ], + "binary_sha256": "ead5a86bb8ebe576962f3cc4aee4586e817e2dec9b2f447485ca8ce63d4cfeb2", + "started": 1791959458.4605818, + "returncode": 0, + "finished": 1791959458.4770203, + "log_sha256": "6346da6b14eacbfcc92f83021e08b8812212ce5725048bfe87a9723862015f71", + "summaries": [ + "RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 14 ms" + ] + }, + { + "name": "superblock", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/superblock_test" + ], + "binary_sha256": "8beaa6a0e904e9961a640dfa730255ade59ebd54cb21ea86ada9f39b30fd152b", + "started": 1791959458.4778826, + "returncode": 0, + "finished": 1791959458.5129135, + "log_sha256": "4066201b28a14966f9dc8a07b6f2ba54c784ebeba1460c7a6b179aa1e25a7ca4", + "summaries": [ + "RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 33 ms" + ] + }, + { + "name": "merge", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/merge_test" + ], + "binary_sha256": "f4899bb5864956dd08b389df35b7b61a6172705a7c03c84f2ef997856ccda395", + "started": 1791959458.5134087, + "returncode": 0, + "finished": 1791959458.516288, + "log_sha256": "9d63b1f08cb37323104d7bcae492db1e32f9060345599994389f42c429e07d44", + "summaries": [ + "RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 1 ms" + ] + }, + { + "name": "splinterdb_quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/splinterdb_quick_test" + ], + "binary_sha256": "d7d123e37c141b375d56962cadd7d688cc86cb02fd37878477020882c04bdabe", + "started": 1791959458.5170405, + "returncode": 0, + "finished": 1791959472.331525, + "log_sha256": "70436b5cc006d7da2c2a5377ff16b24d50651f545f83f3d1f48c26b4384ae6f8", + "summaries": [ + "RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 13812 ms" + ] + }, + { + "name": "splinter", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/debug/bin/unit/splinter_test", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix-main-fc0bc8f7/scratch-debug/core.db", + "--cache-capacity-mib", + "128", + "--db-capacity-gib", + "64" + ], + "binary_sha256": "8c32e394c9cfcdd9a4d63dd4c0bbb334b655140dd627460da1570ffc220b9cad", + "started": 1791959472.3323362, + "returncode": 0, + "finished": 1791959577.1396105, + "log_sha256": "5be7592693bdf1cd87dea3e731be7ed6486d8b6f7f44fce835664efb468a2364", + "summaries": [ + "RESULTS: 41 tests (41 ok, 0 failed, 0 skipped) ran in 104805 ms" + ] + } +] diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinter.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinter.log new file mode 100644 index 000000000..4cb532a0b --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinter.log @@ -0,0 +1,91 @@ +Running 1 CTests, suite name 'splinter', test case 'all'. +TEST 1/41 splinter:test_blob_checksums [OK] +TEST 2/41 splinter:test_inserts [OK] +TEST 3/41 splinter:test_btree_pack_abort_releases_reserved_extents btree_pack error status: 5 +[OK] +TEST 4/41 splinter:test_btree_pack_rejects_counter_overflow btree_pack: output statistics exceed the on-disk limit +btree_pack error status: 28 +[OK] +TEST 5/41 splinter:test_malformed_trunk_pivot_bundle [OK] +TEST 6/41 splinter:test_invalid_branch_reference_rejected Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +[OK] +TEST 7/41 splinter:test_malformed_trunk_pivot_stats trunk_merge_lookup: ondisk_node_find_pivot failed: 22 +trunk_merge_lookup_async: ondisk_node_find_pivot_async failed: 22 +[OK] +TEST 8/41 splinter:test_malformed_trunk_child_height trunk_merge_lookup_async: ondisk_node_handle_init_async failed: 22 +[OK] +TEST 9/41 splinter:test_two_log_checkpoint [OK] +TEST 10/41 splinter:test_reopen_with_changed_filter_config [OK] +TEST 11/41 splinter:test_logged_large_insert_shares_blob_extents [OK] +TEST 12/41 splinter:test_durable_barrier_waits_for_visible_insert_log_write [OK] +TEST 13/41 splinter:test_durable_barrier_packs_concurrent_small_tails [OK] +TEST 14/41 splinter:test_shard_log_first_fit_decreasing_packing [OK] +TEST 15/41 splinter:test_shard_log_page_alloc_failure_retries_open_buffer shard_log_graduate_buffer: out of log space +shard_log_graduate_group: failed to terminate group 1: No space left on device +[OK] +TEST 16/41 splinter:test_async_durable_barrier_reports_device_failure [OK] +TEST 17/41 splinter:test_async_durable_barrier_defers_nested_wait [OK] +TEST 18/41 splinter:test_async_durable_barrier_launches_with_blocked_device [OK] +TEST 19/41 splinter:test_durable_barrier_without_log_publishes_root [OK] +TEST 20/41 splinter:test_checkpoint_reports_terminal_incorporation_failure trunk_node_serialize():2802: cache_alloc() failedserialize_nodes():2986: node_serialize() failedserialize_nodes_and_save_contingent_compactions: serialize_nodes failed: 12 +restore_balance_leaf():6155: serialize_nodes() failed: Cannot allocate memorytrunk_flush_prepare: flush_then_compact failed: 12 +trunk_incorporate_prepare failed: Cannot allocate memory +Memtable incorporation failed: generation=0 state=INCORPORATION_ASSIGNED status=Cannot allocate memory memtable_root=2228224 +memtable flush failed: Cannot allocate memory +Shutdown found memtable from failed incorporation: generation=0 state=INCORPORATION_FAILED status=Cannot allocate memory memtable_root=2228224 compacted_root=0 +[OK] +TEST 21/41 splinter:test_durable_barrier_reopens_writers_before_device_barrier [OK] +TEST 22/41 splinter:test_concurrent_durable_barriers_coalesce [OK] +TEST 23/41 splinter:test_durable_barrier_waits_for_checkpoint_publication [OK] +TEST 24/41 splinter:test_log_prepare_failure_leaves_update_unapplied core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_unmount: failed to publish the unmount root: Input/output error +core_unmount: shutdown retained recovery state; the next mount must recover +[OK] +TEST 25/41 splinter:test_checkpoint_advance_retries_cut_publish_failure core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +[OK] +TEST 26/41 splinter:test_checkpoint_advance_retries_completion_failure core_checkpoint_advance: completion publish failed: Input/output error +core_checkpoint_advance: completion publish failed: Input/output error +[OK] +TEST 27/41 splinter:test_self_managed_checkpoints_reclaim_log_space [OK] +TEST 28/41 splinter:test_auto_checkpoint [OK] +TEST 29/41 splinter:test_auto_checkpoint_grace_allows_natural_rotation [OK] +TEST 30/41 splinter:test_auto_checkpoint_grace_forces_overwrite_rotation [OK] +TEST 31/41 splinter:test_auto_checkpoint_on_overwrites [OK] +TEST 32/41 splinter:test_recover_allocations_reproduces_persisted_map [OK] +TEST 33/41 splinter:test_unmount_skips_allocator_map_that_needs_rebuild core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 34/41 splinter:test_late_reclamation_failure_requires_recovery WARNING: abandoned reclamation of mini allocator at 8519680 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +WARNING: core_unmount: reclamation failed (Connection timed out); remaining space was retained. Shutdown requires recovery and the next open will rebuild allocation state. +core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 35/41 splinter:test_mount_active_checkpoint_stays_mountable [OK] +TEST 36/41 splinter:test_lookups [OK] +TEST 37/41 splinter:test_splinter_print_diags [OK] +TEST 38/41 splinter:test_cache_read_errors_reach_core_operations ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 110 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 110 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 110 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 110 +[OK] +TEST 39/41 splinter:test_blob_descriptor_sizes [OK] +TEST 40/41 splinter:test_blob_trees [OK] +TEST 41/41 splinter:test_blob_height_three_and_large_stats [OK] +RESULTS: 41 tests (41 ok, 0 failed, 0 skipped) ran in 104805 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinterdb_quick.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinterdb_quick.log new file mode 100644 index 000000000..42da4bfd5 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-splinterdb_quick.log @@ -0,0 +1,64 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/57 splinterdb_quick:test_get_config_returns_effective_config [OK] +TEST 2/57 splinterdb_quick:test_get_cost_stats [OK] +TEST 3/57 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 4/57 splinterdb_quick:test_durable_barrier [OK] +TEST 5/57 splinterdb_quick:test_async_durable_barrier_notifications [OK] +TEST 6/57 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 7/57 splinterdb_quick:test_basic_flow [OK] +TEST 8/57 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 9/57 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 10/57 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 11/57 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 12/57 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 13/57 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 14/57 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 15/57 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 16/57 splinterdb_quick:test_apis_for_large_key [OK] +TEST 17/57 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 18/57 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 19/57 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 20/57 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 21/57 splinterdb_quick:test_variable_length_values [OK] +TEST 22/57 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 23/57 splinterdb_quick:test_basic_iterator [OK] +TEST 24/57 splinterdb_quick:test_iterator_delete_current [OK] +TEST 25/57 splinterdb_quick:test_empty_iterator [OK] +TEST 26/57 splinterdb_quick:test_bounded_iterator [OK] +TEST 27/57 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 28/57 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 29/57 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 30/57 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 31/57 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 32/57 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 33/57 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 34/57 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 35/57 splinterdb_quick:test_close_and_reopen [OK] +TEST 36/57 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 37/57 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 38/57 splinterdb_quick:test_custom_data_config [OK] +TEST 39/57 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 40/57 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 41/57 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 42/57 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 43/57 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 44/57 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 45/57 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 46/57 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 47/57 splinterdb_quick:test_iterator_init_bug [OK] +TEST 48/57 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 49/57 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 50/57 splinterdb_quick:test_filtered_range_merges_only_matching_keys [OK] +TEST 51/57 splinterdb_quick:test_filtered_range_crosses_empty_trunk_leaves [OK] +TEST 52/57 splinterdb_quick:test_filtered_range_persisted_mixed_seeds [OK] +TEST 53/57 splinterdb_quick:test_filtered_range_predicate_only_and_bounds [OK] +TEST 54/57 splinterdb_quick:test_filtered_range_propagates_matching_merge_errors setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 55/57 splinterdb_quick:test_filtered_range_context_survives_thread_handoff [OK] +TEST 56/57 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 57/57 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 13812 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock-before-status-update.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock-before-status-update.log new file mode 100644 index 000000000..e252d7958 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock-before-status-update.log @@ -0,0 +1,7 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/17 superblock:test_format_sets_fresh_state [OK] +TEST 2/17 superblock:test_rejects_other_experiment_formats Unsupported superblock format version 7; this build requires version 8. +[FAIL] + ERR: tests/unit/superblock_test.c:190 should be true +TEST 3/17 superblock:test_snapshot_persists_state OS-pid=9, OS-tid=9, Thread-ID=0, Assertion failed at src/platform_linux/platform_threads.c:420:platform_register_thread(): "thread_tid == INVALID_TID". Attempt to register thread that is already registered as thread 0 + diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock.log new file mode 100644 index 000000000..fb3304616 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/debug-superblock.log @@ -0,0 +1,50 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/17 superblock:test_format_sets_fresh_state [OK] +TEST 2/17 superblock:test_rejects_other_experiment_formats Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +[OK] +TEST 3/17 superblock:test_snapshot_persists_state [OK] +TEST 4/17 superblock:test_two_log_checkpoint_transitions [OK] +TEST 5/17 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 6/17 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 7/17 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 8/17 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 9/17 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 10/17 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 11/17 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 12/17 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 13/17 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/17 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 15/17 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +TEST 16/17 superblock:test_unknown_structure_version_rejected Unsupported trunk format version 2; this build requires version 1. +Unsupported trunk format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +[OK] +TEST 17/17 superblock:test_unsupported_superblock_version_rejected Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +[OK] +RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 33 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/historical-archive-proof.json b/benchmarks/results-20261013/prefix-main-fc0bc8f7/historical-archive-proof.json new file mode 100644 index 000000000..e7d87495f --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/historical-archive-proof.json @@ -0,0 +1,1462 @@ +[ + { + "original": "benchmarks/results-20261011/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/README.md", + "sha256": "b7bd9c79c31a7b68a215f8c606e9320b535d8aebbc40c64cb443187b8b969906" + }, + { + "original": "benchmarks/results-20261011/baseline-build.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/baseline-build.json", + "sha256": "3bb47d777e81ce770a646a73e2fc2e13cbf70559293bb0cba1be39562f7354c2" + }, + { + "original": "benchmarks/results-20261011/cache-errors/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/README.md", + "sha256": "7cbbf671576313900bea3b5d0015d7b9eb7e95facda7fdc1d0132662e9c6c0d9" + }, + { + "original": "benchmarks/results-20261011/cache-errors/binaries/baseline-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-insert_benchmark-cache-projects.json", + "sha256": "ef62cd5d27d2528cd3e4baf5aa34d5e4b1ef317c9bd4c929afdc62b269db0a4a" + }, + { + "original": "benchmarks/results-20261011/cache-errors/binaries/baseline-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/baseline-kvbench.json", + "sha256": "36f532fb117b4846d508836f2681257ba837fb80761728625ecbc31d62b571b8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/binaries/cache-errors-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-insert_benchmark-cache-projects.json", + "sha256": "0707b7a32bedaec67a84566d4f8412378772005094a0972bc3216056135195bb" + }, + { + "original": "benchmarks/results-20261011/cache-errors/binaries/cache-errors-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/binaries/cache-errors-kvbench.json", + "sha256": "e273ab6c45303409f2126865203597904916bf344e9a018f3eb52d073093bfae" + }, + { + "original": "benchmarks/results-20261011/cache-errors/disk-log0-prefetch-guard/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/manifest.json", + "sha256": "5f3c94b83477ad08dc17497c793590d779729c69a90fc95f2a1b2c7722879a4a" + }, + { + "original": "benchmarks/results-20261011/cache-errors/disk-log0-prefetch-guard/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/results.csv", + "sha256": "98e9fc98c132f26030331a44aee13cae58e992347b0fc2ec56a45d77d77e1ecc" + }, + { + "original": "benchmarks/results-20261011/cache-errors/disk-log0-prefetch-guard/summary.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-prefetch-guard/summary.txt", + "sha256": "309f9d74b697f6d54bc85975fd9c08eb7d980cb8e7e46f0168c88717390a2cf1" + }, + { + "original": "benchmarks/results-20261011/cache-errors/disk-log0-receipt/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/manifest.json", + "sha256": "9022f496e20f3f7c97d0e52ce59d3cc8094793ffa0581ea206155fbc28b3909e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/disk-log0-receipt/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/disk-log0-receipt/results.csv", + "sha256": "86735e4e22b0c55f3478d18f6755e86113970d4571c50a871421248c97f87fbf" + }, + { + "original": "benchmarks/results-20261011/cache-errors/environment.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/environment.json", + "sha256": "7129ec569adf3e168bed95f0a457605df2e7ecfe47154a95cfb14937de777386" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/manifest.json", + "sha256": "b369d36d2b2fa5f57aa2c05ac1d1592794f28e3fe6fd1fb1eb6854a6024717de" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/summary.csv", + "sha256": "8f55159669bcd97bdfa902f591b9db118c97f51a026482af846acd7d274eb09d" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-0-baseline.summary.csv", + "sha256": "ca62b29582562fae3870d0b6b1d5c82a35cd05a08d18acd20051750a650cbb34" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-1-cache-errors.summary.csv", + "sha256": "152c9202cc3ebd7c7c6805877dfce7593d428b18c6c7eccd67f65e3bbcbeff4d" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-2-cache-handoff.summary.csv", + "sha256": "bbaca653d026cb57b3dea789cf38d5c4ea2fd3741778ae5b0c0b96fbe5a20fe0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-3-scalar.summary.csv", + "sha256": "287446c0bb81acc96b117efcc0d42db5465f784a22db115632027ef665ef7a44" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-4-simd.summary.csv", + "sha256": "ac8ca673f5a7349e9e45a9a1ea7d7b551e30580189f1abb3008fd617b7684df7" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-5-simd.summary.csv", + "sha256": "07c7736af1a7e23dc6f7b76ca9bd5dfe3a941f98e7207c55f537cec9ac8d6520" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-6-scalar.summary.csv", + "sha256": "783284da5c2a8e91e4f12813e3e1cebbd1c8e27fc8348eb4199c23d07b4aaabd" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-7-cache-handoff.summary.csv", + "sha256": "7332867c8088d3037ef9df66345ca3bd296e2cd2d0a4c443660fc16efb953106" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-8-cache-errors.summary.csv", + "sha256": "c73f79725ae3501c14acc756972e82cd777e60409595698d3b7ff885b617232e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal0-t8-9-baseline.summary.csv", + "sha256": "adebe66ff0bb640581e143416a0a572bde219efe4ee5dde9ed15ede4a02c80bc" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-0-baseline.summary.csv", + "sha256": "c19712e834c2222a9e0026cf0ddd14999f884c487df2f09e1f30c85ea774ef84" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-1-cache-errors.summary.csv", + "sha256": "2610e30f060cb05c684461eee5a9374a93ddc70c73ec835bab6bfec45c7b00c0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-2-cache-handoff.summary.csv", + "sha256": "a3bb7baabfca87dd14e00f534a49142e3ab0d23d8bd03b6addbc52ede3d9ee2c" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-3-scalar.summary.csv", + "sha256": "8b63f68133685be76609cc009a860dbeffca4e939beaf730de002a024a8086d5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-4-simd.summary.csv", + "sha256": "852efafbe36238cfbacd7c4ba72351911b343e02e37b7a5f599035bafdea3246" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-5-simd.summary.csv", + "sha256": "666282a63340557757f33fa57e04d3df74669b6d5ed1eb6a32896c0f06d07235" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-6-scalar.summary.csv", + "sha256": "e2915674c625ce38a559060ccfb073f412c5cabe55d3426400f84f5a262afcec" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-7-cache-handoff.summary.csv", + "sha256": "e2ee9549d45a9ba1a17862fb89710ac88f67c509ef935b3da0e33d2b7ed8f2e0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-8-cache-errors.summary.csv", + "sha256": "44253ff3b8990d4489157ef9402be39cc65116e245534379b639af8f2f9a1389" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt-fixed20m-20ms/wal1-t8-9-baseline.summary.csv", + "sha256": "a02e3b68e8b05ea867391122bf9b3ba240c5bd1a8b46a516b79c1401eb199e6e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/manifest.json", + "sha256": "9e3bf7627659a5b3d1d5f3a6f0f1ae511a4e084b533c2056ed12529d236eff35" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/summary.csv", + "sha256": "87bd2b43982e2753a4dd0e67953e6af909431508ed52b1ae645c8b6052b613ea" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-0-baseline.summary.csv", + "sha256": "e215beec23836cafd43324625827ac4d50fd9ed70a4d51900a9fee7d1fac8263" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-1-cache-errors.summary.csv", + "sha256": "a235135fcdda175bff0bbbb345535226b804a2a1b16af6cdf843ff147a6f9313" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-2-cache-handoff.summary.csv", + "sha256": "f089808a922706045995322d2605c7b6ad583d640bf2e40e8471ea7f818243fb" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-3-scalar.summary.csv", + "sha256": "03d76cdc42a179b8e6d7de169777d2627add48ea898bc3211c3d66b75f6a4ca8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-4-simd.summary.csv", + "sha256": "341c77c10eb17ebdc75d12d67dacce20587d4167e5f0aab962aeceb209957052" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-5-simd.summary.csv", + "sha256": "ceb9910b5e5924785b4185dfee8f81dc67eceb3fec897a5342dbfa9ffc784baa" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-6-scalar.summary.csv", + "sha256": "ec87f483114bfa1d1ae9720375a4c821499e28b051752de870fc215d93626cfa" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-7-cache-handoff.summary.csv", + "sha256": "8781aca4bacc2d24eca1f5d2a93d052a3a753568a3a6161d51de307ee0a9c704" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-8-cache-errors.summary.csv", + "sha256": "14408ef2a818a1553c4caca7631a636d3d54c313455a3fe9bea93b1423db2b9f" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t1-9-baseline.summary.csv", + "sha256": "2b584e1ebcc0425771eceec2d6b7f9eb0202a2ffc91975a01d30f414e7da4ec2" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-0-baseline.summary.csv", + "sha256": "aa3dd2425f644a1345874b5193233fbafdb04610396352246c67a2d5f27237fe" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-1-cache-errors.summary.csv", + "sha256": "f034107287e6307b11ff31ceec52089bef160b41488df180ef69291bbd214f86" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-2-cache-handoff.summary.csv", + "sha256": "b6ac02aacbf0a68ee1f2da3baf1086837749edc1f058e12583c53159491a0e57" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-3-scalar.summary.csv", + "sha256": "022af5bd21145975c36af96a4726fecaf0980e3380c4b8b9bc9b8a8c05f7566f" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-4-simd.summary.csv", + "sha256": "4834ba7f0bd306166884ec91f2e54d264fc0a1e35f6f391004049923789b98c6" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-5-simd.summary.csv", + "sha256": "9ead2fce0c977e8e400d460123295f9954502cf97c49ab7d1e15540da4f7a5e8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-6-scalar.summary.csv", + "sha256": "f25f92f1b64f264a8bb214612c585d1f7a0c21ca1f00669b2dc159675520c746" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-7-cache-handoff.summary.csv", + "sha256": "6afd81f8014efc6c4a0853bc89b86bb568b21f3b3c59a83336d08298fcc010e9" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-8-cache-errors.summary.csv", + "sha256": "7b5c867a11b81c2de4f9c11d8353b4238fa800a3b443293c31c282f6b9d8db4e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal0-t8-9-baseline.summary.csv", + "sha256": "43824bdb28f81858b207c85857e65f43b7ef92dd41568883b97a26f888be0779" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-0-baseline.summary.csv", + "sha256": "de3f63b1ec0253521216c2ceb48aefcf54e6d64be1edbaa533b8aef4d8a85345" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-1-cache-errors.summary.csv", + "sha256": "148bb2db1fe6b1dc508e607a76a81d59628ce66e9cf04a644e6a70518cb56c5d" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-2-cache-handoff.summary.csv", + "sha256": "1588d71c683949ff7731637b0f08eecfa33b6f2a2efc8a4de38facc26e9329f9" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-3-scalar.summary.csv", + "sha256": "af251ccaa072c92aa1bef42c479ed3d0c9cb2e7a785e51f21d27c7aa69e7b999" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-4-simd.summary.csv", + "sha256": "7b387811d0f2ca11b93a19b7d61585797904430009fccd4e8c5770f7e7dbc013" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-5-simd.summary.csv", + "sha256": "9bd9ad5857721f854d869420ce7dd7607ef717cdf0da8012b02dc7c5bae201d6" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-6-scalar.summary.csv", + "sha256": "dee66b05a00d0808ab9829e3673f52dc3763d878d8c6867569709c1fa7d84b2c" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-7-cache-handoff.summary.csv", + "sha256": "a32bf7a5bee197890c635e00d995885539a84053771d69159ed9daa1eebf34b1" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-8-cache-errors.summary.csv", + "sha256": "89c055ac64877ff99e2f8318ab853a02ac02d54cfae51c5b1d4667750f4ca554" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t1-9-baseline.summary.csv", + "sha256": "8459d5601f3add484e841d88c00277005a3b19aa584af3f049a9dce7f65257ca" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-0-baseline.summary.csv", + "sha256": "ea0f3961b3e8895e8d7427616bce421dbe7c293413834019558b782053ed738e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-1-cache-errors.summary.csv", + "sha256": "f607a58a9d1a493a8ebd96da62f4958792261cfba000b12202a3455b4c9b7621" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-2-cache-handoff.summary.csv", + "sha256": "882a719880cea570303e9d55912d58f4035e6c828adbca874f9f2f047292ddf0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-3-scalar.summary.csv", + "sha256": "998bd6bda94c3ad82904c863ad33f573d71073155ab959247019cb4f6e8ea685" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-4-simd.summary.csv", + "sha256": "8fef67831caacd4e493c4fb34e9588a1b8ff266dd9bdb0b5c5a467325e853a72" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-5-simd.summary.csv", + "sha256": "f48ff7b1e8a6ae925d9f9a910c93b9b7c846077cbe35eef91523910a6fffd8d9" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-6-scalar.summary.csv", + "sha256": "b323deb7cacf011f016b35caa909ab61cf7213d56ca1d06682d26017c30fc436" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-7-cache-handoff.summary.csv", + "sha256": "fdc147bdfa769f9f119aaa74c9f1709cf6ee4532e9d880cae09188f23f29cb40" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-8-cache-errors.summary.csv", + "sha256": "1d8c5ba9805e696d22a7f1e1510042d3400f8ef7f4e242ba3b8162299f0046eb" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-receipt/wal1-t8-9-baseline.summary.csv", + "sha256": "1bb590647536d5462f062c3ec3d87df10e1683de009a4f658021c42d586f3cfd" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/manifest.json", + "sha256": "601e7ed412d7c94bd4f0c449729559146b54a69fe8c2a80dc1c5532b40dba758" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/summary.csv", + "sha256": "9731f916f91f09e165c2ee81f8ed9171d5a02171cf09caf136985318e0611c7f" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-0-baseline.summary.csv", + "sha256": "4ac3858e0af3ed02b239fcf2001830ae026f6140e06f517221bdb1519f001e54" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-1-cache-errors.summary.csv", + "sha256": "2cedfb6dfbd1150c00ae2492fc5d746a73958311a3dcfeffdaee60c9d9bf29f7" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-10-cache-errors.summary.csv", + "sha256": "ac520f38b9b9e4625be324dba798bf70170b652a48688eb0c2057a91700bfe2f" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-11-baseline.summary.csv", + "sha256": "10e3356b3c3535fedc2b28e253a6af43daac6754f3c3c1663e06fa25606679a1" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-2-baseline.summary.csv", + "sha256": "e129251aee4fb7625c7949f3bda842b72ad051aec5f2c9d9b35f9d44ed0febc7" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-3-cache-handoff.summary.csv", + "sha256": "decfb8a7deeedfeedd90c3038319d38a64acc05d2a39c047b718d0efb1381da2" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-4-baseline.summary.csv", + "sha256": "41e842f7377742aee75ca764099d529d89479a4b1a2135f2ea1a650efe825984" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-5-tagged.summary.csv", + "sha256": "0b971e4c434e150b857ce323cfaa703211ff305a14c41400f9e5bb1a821c8356" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-6-tagged.summary.csv", + "sha256": "321aa0897a20b0e3daa53c54657129e2b0cb1867bff5cf6c444a2836055b4e50" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-7-baseline.summary.csv", + "sha256": "b0fb02b5ccce5e86f7aa4b0e8c9d72d887fb2e891cec64acda329b182f10e1e8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-8-cache-handoff.summary.csv", + "sha256": "d0241c15b105ffcf34be2f8e300a8de169f4ff50295d7803f3a5a128c9702689" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal0-t8-9-baseline.summary.csv", + "sha256": "4d0f547a3f1b0b7066b0b0e93451a7f71096b4e718772ea643bb4f87f3b64795" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-0-baseline.summary.csv", + "sha256": "11026c7fe02a65830458d7d68adf22524b7f3085323c16131c2d76b2b2892905" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-1-cache-errors.summary.csv", + "sha256": "f3cc7b2235edbaf6bf19499859fb35d978ec4efb1f2c9a81aa74986e6c5a6a10" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-10-cache-errors.summary.csv", + "sha256": "4148db7b0de0465b7594e233d6094d73a1961f02737e893673da05a8d101debc" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-11-baseline.summary.csv", + "sha256": "9a2795c11a5951cbecebf9350557ddbb8e7dc1b6b02b5877df3e83a83286ff76" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-2-baseline.summary.csv", + "sha256": "0581cccc8a05e878a8a6d066194dae547b3ee297e69a98b7183cffb689295ab0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-3-cache-handoff.summary.csv", + "sha256": "7656c360d3f02c4faf97ee983d5d1ca7e8fd04ad13c3dfb9dec482956fa5b896" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-4-baseline.summary.csv", + "sha256": "428c9d580b33c3f8ed907310e7cef16d2e64d553eaf41c8f1cf0eccec7b9b755" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-5-tagged.summary.csv", + "sha256": "fec31072e20d336d7283ddf22aff9acb37f8b51f8f366a36008143c988197c21" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-6-tagged.summary.csv", + "sha256": "be5f8ac2cee36a47f5fb8f3d7dbbb835b0a58207ee280190d2a0314a8ff642db" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-7-baseline.summary.csv", + "sha256": "80cc08c87a8e252a3f2c1da5506c388a80fc3644d3bc512971edf8cbaeb6e6a8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-8-cache-handoff.summary.csv", + "sha256": "9d7c56540fac6001e6640f86902b18f79cbbbda1e3c551ed45fc3d29e4aeaf0c" + }, + { + "original": "benchmarks/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/insert-tagged-bracket20m/wal1-t8-9-baseline.summary.csv", + "sha256": "4081c12c4eb0e22ce6604bb7e4b8f1ba2b043b637486fd8afdb12db6a2bd011c" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/README.md", + "sha256": "3acc65056838ccd01c9ee7bf97901a2be0867d60c8d195aa9cc09b9cba5bdbd8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/fixed-async.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-async.log", + "sha256": "f54a0e5b6888eed6aeeb9da407fcb277eaa5c506ca941dc70fb147ce2a627a7a" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/fixed-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-manifest.json", + "sha256": "02d95a63a953db592afed213e128f4c1b75c57b979fe6b0bc31cd53ab7c5b6e5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/fixed-quick.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-quick.log", + "sha256": "1beb17ae1e65f9b695f485dd1c865ad697fc1477718581ed50afe663fe84cbb0" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/fixed-regression.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-regression.log", + "sha256": "c1ac3e793ac2cb46a8721ca06fde608b817d9e9084f27b62a6fc3d477e22e953" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/fixed-writeback.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/fixed-writeback.log", + "sha256": "f3bc6f66db01e79c401926850730b056b6c48b95ca586636707d1fd6153b79ee" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/README.md", + "sha256": "5ffe5bbe31a1804063578e122f176f701bd7aa542105cc56721e499c27d79566" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-manifest.json", + "sha256": "c42905f9b872f014bcd1a4468827c915842852f40b5cbbf8984e0333eef23870" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-quick.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-quick.log", + "sha256": "d3121b22afe2f2ad29278b813d673c2feb8cca761245e20cdbf5e320fd6b4946" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-writeback.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/invalid-zero-selection/fixed-writeback.log", + "sha256": "16a6221b34eaada5458c201053452698bfa83e9982e58e248799c2460b11e2a5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/old-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-manifest.json", + "sha256": "10984f7786df318277c4f220bf85da3ef9d54fd0ac4f748df5f2f71cabb46ad5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/old-regression.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-regression.log", + "sha256": "7e5c64be37f098eba2f374067fea4476607d9ae5640abb58af6b4a55da63daba" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/old-test-and-hooks.diff", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/old-test-and-hooks.diff", + "sha256": "03395eee6bdcb5d164693b07d1d18485ac928f2b29d257d071282a6b81a89cf5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/prefetch-admission/release-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/prefetch-admission/release-manifest.json", + "sha256": "b6669a98a1ff87696e8187b504b884ce62143fb6a43cbd4bf619fe510362bc18" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/manifest.json", + "sha256": "e6d5e3b831184cc43b6744d76e3f718d37f0ebdc7ae03d24436631e530bd0a7e" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/queries.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/queries.csv", + "sha256": "8f4894060ec7118cfd37bea226a11e022f04bde484b6e425fb13ea84a086352d" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/record-baseline-point8.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-point8.txt", + "sha256": "d3d3a974ec379ea4594ca997bc9f8d08b2c7510782071f08004d0ce574de9ce5" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/record-baseline-range1_8.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-baseline-range1_8.txt", + "sha256": "f8f69df753a4dc0803ed406c2df03dc30e05a75b6b3c5d821491d37111739b71" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/record-candidate-point8.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-point8.txt", + "sha256": "a5420b802cd76c0c25a861e3bb80ef2ea2df6fd4ab83eeaabb14bb9ee91439e7" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/record-candidate-range1_8.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/record-candidate-range1_8.txt", + "sha256": "18ee7999a5a6d258b0c1453b2c7ef062708dc8c912594923ca4593ce714737aa" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/stat-baseline-point8.stat", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-point8.stat", + "sha256": "af1d6c4d26970ab57a3c4fa814914aca988673923169cc41417eadd609ae4baa" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/stat-baseline-range1_8.stat", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-baseline-range1_8.stat", + "sha256": "7db83fe93dc537df7b9894ba19a0beffcf6a1c2bfdb4c5e2d11677ea1cc9e718" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/stat-candidate-point8.stat", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-point8.stat", + "sha256": "ee01fcf31396c642b534b5aff4105948b634ab3d37e2933e91e6c02497879db8" + }, + { + "original": "benchmarks/results-20261011/cache-errors/profile-receipt/stat-candidate-range1_8.stat", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/profile-receipt/stat-candidate-range1_8.stat", + "sha256": "532b0e49b56dc57034d0b40407a6c88ab5dcde75e707afb10875b3a453d4ee13" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-receipt-repeat15/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/manifest.json", + "sha256": "a3034b31dfe18ea8a1e77d2f7be29e02d795740f41ce130311f63356e795abba" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-receipt-repeat15/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt-repeat15/results.csv", + "sha256": "4d80cf7cd26a191ee2a790460ff989753018520ef661d4ab2670b23a2e0058d6" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-receipt15/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/manifest.json", + "sha256": "b1f4c4d2c7ed818836a87342107e69e8a3539964fea5b95399d705197f394709" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-receipt15/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-receipt15/results.csv", + "sha256": "f9e9d7117299a0fa6acf9ab0221aee88bc1aaecb33c5117d065634f53634c2aa" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-repeat15/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/manifest.json", + "sha256": "ed7ed9d7ac14496966ffd6b868fffc811cfbaf75f42a8550bd753eaa860eb065" + }, + { + "original": "benchmarks/results-20261011/cache-errors/resident-log0-repeat15/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-errors/resident-log0-repeat15/results.csv", + "sha256": "94a1bc67df4599ff5fe29b55a47d4692e9319263f524d7eb71e8d4df6581e3f9" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/README.md", + "sha256": "cb7b1522f0817bceae06681fa6adaca1fb578e2217b93c69a6c3b494802bcbc2" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/baseline-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-insert_benchmark-cache-projects.json", + "sha256": "ef62cd5d27d2528cd3e4baf5aa34d5e4b1ef317c9bd4c929afdc62b269db0a4a" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/baseline-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/baseline-kvbench.json", + "sha256": "36f532fb117b4846d508836f2681257ba837fb80761728625ecbc31d62b571b8" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/cache-errors-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-insert_benchmark-cache-projects.json", + "sha256": "0707b7a32bedaec67a84566d4f8412378772005094a0972bc3216056135195bb" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/cache-errors-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/cache-errors-kvbench.json", + "sha256": "e273ab6c45303409f2126865203597904916bf344e9a018f3eb52d073093bfae" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/handoff-16b-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-insert_benchmark-cache-projects.json", + "sha256": "e9f093bca152bd56c4a93ada08ee54f45cfb1bb5f594ec4ad77d8e8294d81309" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/handoff-16b-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-16b-kvbench.json", + "sha256": "6d154b1485190a04eddf8bbc5b0178177a8a01f870cca0a7ef4f0da2408fb439" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/handoff-tagged-8b-insert_benchmark-cache-projects.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-insert_benchmark-cache-projects.json", + "sha256": "31e3b7730fdf16870add938f766a8f09cbc5e92713c27ae95a01badda7a5ad90" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/binaries/handoff-tagged-8b-kvbench.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/binaries/handoff-tagged-8b-kvbench.json", + "sha256": "1b3e3323953acf402a5ac597112bc82eeddd96ab08ec90b1d643d4000b908223" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/manifest.json", + "sha256": "d423ee7f970c4eec2d4f2b574fcdb800301f86385211cbb274c0509fa953ed52" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/results.csv", + "sha256": "740b88deec7131a60e71aca8a53ffdeb0800c69cb47f3eab95c82db5db2608ab" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/summary.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard-short10/summary.txt", + "sha256": "0c1d4bd85940aac554582aa30a115a7dda9332cd8b799394d57eac55a33fc5a9" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/manifest.json", + "sha256": "75749e6a6bea74b730e669985e716197840c01877f15acd0f4598eb5be1b21ce" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/results.csv", + "sha256": "c1f9cf79589fd99d1d51df83452696cc1b980b694ed19ef188317f768c2da4f3" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-prefetch-guard/summary.txt", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-prefetch-guard/summary.txt", + "sha256": "65ce981badcc6ae1cf8117915ed153e3f16af9f0a0804aeb65215e672549b705" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-receipt-repeat10/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/manifest.json", + "sha256": "2e70f0e09ef99c468d395754b1c195d8f0f6a8ad6a385233dcc54519fb893b67" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt-repeat10/results.csv", + "sha256": "6e21e5a3015cc2f449645aded5cb709a3e3e2b9e30186bbfbebccc1dd9fb62e3" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-receipt/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/manifest.json", + "sha256": "6d146c3d180e9a868f02934a8ea3ee8d2801c059decf631ac89ee9706c00300d" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-log0-receipt/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-log0-receipt/results.csv", + "sha256": "77960d8284ea947e95275e3d74853a3fe1d71989152531016ccb24f131499fb8" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-shared-bracket10/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/manifest.json", + "sha256": "de9d66015b943e37f9562c37022d99998ec3b4979df0f5b020ecc435193264f6" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/disk-shared-bracket10/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/disk-shared-bracket10/results.csv", + "sha256": "a39ac451dfe2a6f4bd07883fca0c012228e17ce02665b5c1c6af14731176bd7b" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/environment.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/environment.json", + "sha256": "7129ec569adf3e168bed95f0a457605df2e7ecfe47154a95cfb14937de777386" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/README.md", + "sha256": "d92a152386d110f2aed65c0b192cc9c30157e09d7f15de4b989bc70a8fcd3f5d" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/handoff-async.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-async.log", + "sha256": "e5d421d3fecedea336ccb63263cc04798c9cd3325422b351c03a1a4b032e186c" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/handoff-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-manifest.json", + "sha256": "7b212a45854163fe5fe250fa139b4f1da72fa00dbbf569d7419fcffbd9a4f727" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/handoff-quick.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-quick.log", + "sha256": "fcf07175312e4cc83a9646dbfdad7332b4a02dfbde9b481df47364bfbd316487" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/handoff-regression.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-regression.log", + "sha256": "69b176bde8923a0e52ac10c2c897a68283b6da870e266c725d2fa38886427761" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/handoff-writeback.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/handoff-writeback.log", + "sha256": "57aa92ef938c6d62912275cc522a15dc56afd801f3dab194e471568372fcaf6b" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/prefetch-admission/release-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/prefetch-admission/release-manifest.json", + "sha256": "57bbcaa0c54e383cd7230bb62c843f4c893eba3d3da14da37061aac4908fafff" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/manifest.json", + "sha256": "62a8202441fc9dfb9c59f1ae851c557bf8918bd7798662755afd92f7d45aee9f" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt-short-repeat20/results.csv", + "sha256": "edb09c77790fe091fc07951c7a6e0c2d31bf3868c3247ad5569ed5d503c5c646" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-log0-receipt15/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/manifest.json", + "sha256": "5ebaaf14cb5efd8110fe0e81277e447241083b9aa55d4523931faeed6c84161f" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-log0-receipt15/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-log0-receipt15/results.csv", + "sha256": "c708e18ca20d1b4b7eba92272b9d620a78ab97ad925fc24692870fe28dc36129" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-tagged10/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/manifest.json", + "sha256": "6a6a88e9fe1ddb7ce227b8efc3066fff22e8a08ea2cbe4857e870b227775b7a0" + }, + { + "original": "benchmarks/results-20261011/cache-handoff/resident-tagged10/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/cache-handoff/resident-tagged10/results.csv", + "sha256": "488581c5b89764339c4c511c6742235b6446d2f86e286bb2213a94b75a419246" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/0-baseline.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/0-baseline.log", + "sha256": "f1a829ad44b4ae79895f5e719a29a784668c5bad9c88a1b8ef1482c4e5579f64" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/1-candidate.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/1-candidate.log", + "sha256": "e99ebad8e9417473aab53ddd1e79ca2ee0087ec986ecc719d008a4cd5efd6620" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/2-candidate.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/2-candidate.log", + "sha256": "9a598fa815671c68d9149af921abc2e9bcd4a456c439d4cfcadc68b774a8bb21" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/3-baseline.log", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/3-baseline.log", + "sha256": "b7497b72d09bb065fb7affc10d8e0e8ae9fe2f14b90332aea68404c74ccff4d6" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/README.md", + "sha256": "4947d8bbb0c2f4482e838eb79d0712129fa04a28184ed7f2864f0155c667cc55" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/manifest.json", + "sha256": "1cfc0f7745a710f9e705cf69218267051337a396298ccdc3578abe88d15502f6" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/prefix_synced_disk_compare.py", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/prefix_synced_disk_compare.py", + "sha256": "669706446b57184094b873340fe07d8ea3b0ce8bfa6f472d5d40c18471311807" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/results.csv", + "sha256": "b4e7da96459cdb59aac0a61f6ba32aed0d164b5d11ab9296fe5027f3582885a5" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final-fsynced/summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final-fsynced/summary.csv", + "sha256": "bedea706845f52870269ca7922f4524982f17268e73098eaabfd36374f6021c1" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/manifest.json", + "sha256": "79f683cf7403ed4466eda21ec8542d15d92f7fb0c93851565e4cd391a20f7d9a" + }, + { + "original": "benchmarks/results-20261011/disk-common-fixed-final/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common-fixed-final/results.csv", + "sha256": "61f05132db6f55c9bc397a375535d7f48bb5c85217df04c032e309a64f8a650c" + }, + { + "original": "benchmarks/results-20261011/disk-common/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common/manifest.json", + "sha256": "8099bfa2fa4c0b5ba2ebb4995ec6969390169da5bf2504dba3bc7823a7b11f33" + }, + { + "original": "benchmarks/results-20261011/disk-common/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-common/results.csv", + "sha256": "1dee95b8f2189329a2b4af0634d932bea883dd4a7b03b01fb1ee70b49bc380dc" + }, + { + "original": "benchmarks/results-20261011/disk-nonlexical-fixed-final/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/manifest.json", + "sha256": "7d5483f11cb113d9e4fce70f4ece2eae95967ffc796ecb2b816fea49e7738860" + }, + { + "original": "benchmarks/results-20261011/disk-nonlexical-fixed-final/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-nonlexical-fixed-final/results.csv", + "sha256": "8580bbc88a03940e949b46dc47ff340a12ec5ad645b83e7c5084e08d0bab9171" + }, + { + "original": "benchmarks/results-20261011/disk-nonlexical/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/manifest.json", + "sha256": "dc8003dff3b13c79bf64cdde910c76cc2c86251495bea56e27d6099c2b79b177" + }, + { + "original": "benchmarks/results-20261011/disk-nonlexical/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-nonlexical/results.csv", + "sha256": "fdde79dd4705c600e12a60781ea96d0b25fa5a2c3233df779b3eb9784f6f0cfc" + }, + { + "original": "benchmarks/results-20261011/disk-random/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-random/manifest.json", + "sha256": "c212828a88d188dd38e8ad82d29df36ee38e23a247eca57c4ca69d46b6a16831" + }, + { + "original": "benchmarks/results-20261011/disk-random/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/disk-random/results.csv", + "sha256": "6a6e2dd0a658e9007b9d62eedae94e5bdc9b33bcde2521b7abcc614897ce4611" + }, + { + "original": "benchmarks/results-20261011/final-candidate-build.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/final-candidate-build.json", + "sha256": "5e03505a57a517621759e4c56ab4c3c1b45f40acae9d9d26ab115ce071a6ebe0" + }, + { + "original": "benchmarks/results-20261011/final-implementation.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/final-implementation.json", + "sha256": "dab40abfef7aeba74b1b97e5887c582373e01ef08c9ed14525b613772dc23b3b" + }, + { + "original": "benchmarks/results-20261011/prefix-pre-reconstruct.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/prefix-pre-reconstruct.json", + "sha256": "c96ba2b08ff403ad1a61e32d2cd77a0edefcf0c829c3428878981c19f11349c8" + }, + { + "original": "benchmarks/results-20261011/prefix_compare.py", + "preserved": "benchmarks/branch-prefix-history/results-20261011/prefix_compare.py", + "sha256": "a9e6b0c1320ffbc80815dcac639fc5a2093e581e92f9973eba68916681d41a29" + }, + { + "original": "benchmarks/results-20261011/prefix_fixed_compare.py", + "preserved": "benchmarks/branch-prefix-history/results-20261011/prefix_fixed_compare.py", + "sha256": "3723135becf54d833df112e6414019d3c9312985eef83de621ab93968757d0d8" + }, + { + "original": "benchmarks/results-20261011/previous-candidate-build.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/previous-candidate-build.json", + "sha256": "566fe8d1319ba295da774f105b309a5c245a424ecd57e8e9ddfdc07638a99236" + }, + { + "original": "benchmarks/results-20261011/resident-common-disabled/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/manifest.json", + "sha256": "571159dbeb317d9a148ef1cc36c8f8bf855b74a0775746229531977fa7d03822" + }, + { + "original": "benchmarks/results-20261011/resident-common-disabled/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common-disabled/results.csv", + "sha256": "a4924aa7ebe1c952df36db780117d0c34e31d64c67a36ceddd3992f2d82729ca" + }, + { + "original": "benchmarks/results-20261011/resident-common-fixed-final/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/manifest.json", + "sha256": "0aaf9b913c9f5ce963d0efa74b1ffdd83b1b6f9651d92ac513d9e97a35be1b2a" + }, + { + "original": "benchmarks/results-20261011/resident-common-fixed-final/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common-fixed-final/results.csv", + "sha256": "da02b09b1c8167019a878c277f173ad677b62aaa109d8ce1bf43f8202d21e45b" + }, + { + "original": "benchmarks/results-20261011/resident-common/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common/manifest.json", + "sha256": "50de1e8e18ead5986fe69cd3f32df8f6fd1f1af65ab39ffafb4282574061ba23" + }, + { + "original": "benchmarks/results-20261011/resident-common/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-common/results.csv", + "sha256": "90dddd2a026fe52516caf6adb6d57a1413423e6890fc781e7bdcfbb494af806a" + }, + { + "original": "benchmarks/results-20261011/resident-nonlexical/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/manifest.json", + "sha256": "14f43041ce6f2622dae605d7d0aa021767240446f394a87ff922a1f4708e4bbb" + }, + { + "original": "benchmarks/results-20261011/resident-nonlexical/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-nonlexical/results.csv", + "sha256": "b3e9effdda9a96dce588b5f2cf55514a69f1da8687c92338f781138b67baf46b" + }, + { + "original": "benchmarks/results-20261011/resident-random/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-random/manifest.json", + "sha256": "05fe3e88a2bd7819ca0df49ea5eaacc49c1d06924ea04f8611c4049955688a6a" + }, + { + "original": "benchmarks/results-20261011/resident-random/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261011/resident-random/results.csv", + "sha256": "2a0316fb81704d5c7883c22dae6b8e69b78218ccec4b0db33dd7bbffb0641ae1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/.gitattributes", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/.gitattributes", + "sha256": "670687e4ad700463ad3f1740817423f05fc5f1c7b25c5821710e0ab719e383f5" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/README.md", + "sha256": "7cbe54afd32ae696a684006eef4b79e79ad0b49cbf8373998bb277b33a24017c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/audit.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.json", + "sha256": "ad2fc696155945dd8d7c31db1295ae1f824e7a4324f1523d290f106f95f87d03" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/audit.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/audit.py", + "sha256": "0a35a54b0932296bd60df29d54b4a1e28a1c3a4ff680ab096ce6d94c0f696b6c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/benchmark-jobs.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/benchmark-jobs.json", + "sha256": "a208b7be9c97f8c7d1d92fda93941d24a29cdf4d47f255946c33aab465f645c7" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/branch-prefix-build.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/branch-prefix-build.json", + "sha256": "1c739c9b4b71c2013e741a237b5695ab8be32cd0a018a95badcb443bf8fd4524" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/build_all.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/build_all.py", + "sha256": "eb087dd5567dd000d7e0bf27d76839ac45e0ced00037f6f618e2494e5e518a20" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/control-drift.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/control-drift.csv", + "sha256": "0c5f1c505305edd8f6c55943719aaceb9ff8ded781a746819df64bb305f0e941" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/feature-summaries.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/feature-summaries.json", + "sha256": "be843d623a1047071f5ecf28698812b3a1a5570fb81ace0d2280c0aadaa0b3dc" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.csv", + "sha256": "9226e9a602269d5039015465332a2f0092e121514cf443dc15355b8982cac4a1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-common.log", + "sha256": "b11a5b04f6ddd933f929c3865df4e2bd06ce651a72bf7e584dd5390996a3e75e" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.csv", + "sha256": "95d2457f612158df1b5c5e03643fe2b68cbe35fc08749f2a0953436010eaf1d1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-branch-prefix-random.log", + "sha256": "1c81c74b950464070a27ea33b414070bdd799e5ee1ef7a75c60f45110f6dcd21" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.csv", + "sha256": "3f69e21f32a526e0a5fc6665064e7b110d02e641855dfab9172be7809775c888" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-common.log", + "sha256": "da29089bd2140d5730ff76b4639a024cb8b1b329befc7188ae63815d98cf030c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.csv", + "sha256": "49fb27f0110fefed4a356ad27f5fce059ca8caa5fd35c5bec637001d44525df1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/disk-main-random.log", + "sha256": "9f44a160497eabf26a2aa9695eaa55dd74985dd18d52d45ad58f87979dd97275" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/manifest.json", + "sha256": "494155fb4cb7c54dcfefe3465c065dc47c3dcf8a574a9f703b86b20bea3ef68c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.csv", + "sha256": "6af2ef867e30a26e1a0e8cc30533b46b00e0c9bc97526d8d49933678f7d1623c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-common.log", + "sha256": "a5f29c881b0aea3aa1d4796ff0aa76f008d8c77255987e1dd998d611a06167db" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.csv", + "sha256": "1e38d20fa71a6de9afdc2f057796ca6e8abe5be3fcd825450dde46a6668f2334" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-branch-prefix-random.log", + "sha256": "8b1cf60c008ef9d5236f48e4ba5bec86187504809e77e5492da049123147e707" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.csv", + "sha256": "4569ca5e2d582575c3e68866098a0c19b590bef925cb4376e014d2a382d39357" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-common.log", + "sha256": "a47d1404ca64590e9328650770b461a74beede07946a715b48cba9efe68aeff1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.csv", + "sha256": "53b14d40824cb351838d8d791598c85d9521c9ea7787e53298d5c73bd0dc0d7a" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/fixtures/resident-main-random.log", + "sha256": "6e5d5621436b2a3040731eec91b9115fa68fbe1c1efa5a79511abc3c9df1543f" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/host.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/host.json", + "sha256": "3f6265a71d00bb4c31f35d6774a1ac19bdc4b10ffd758947d96b0d0b81538eb3" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/insert_benchmark.c", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/insert_benchmark.c", + "sha256": "75acbda52b2a8949f1d61710a8d89250d4dac63b12ec9803b89170f9c2cc0b26" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/inventory.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/inventory.json", + "sha256": "43e35b676fe7a89d7bfd37240cda9496d98ebcbd9a7dd827ca0b7cab46e9744b" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/kvbench.c", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/kvbench.c", + "sha256": "45cf9d2e1f74e90719885955d5a78651cc5c1d97cda2daed534a3c0cb07f48a9" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/main-build.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/main-build.json", + "sha256": "e9bf905fadeacebf8082f22d9772e86f17791ef5aa9d4537ce9ecc0fc245f520" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/package.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/package.py", + "sha256": "8591b68385dafd2e808ed6b623a7f4e645c890b3aa1c023a49906061580fb79c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/00-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/00-main.log", + "sha256": "8d0024fdee92e235956a39eaa0af8e7c5d160dd13af124adf757428bfdefb2c1" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/01-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/01-branch-prefix.log", + "sha256": "2ff3af1f12a4e985b2e6ec9597d1c8bde2efb433e464f5133d6bfe995a78a6de" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/02-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/02-branch-prefix.log", + "sha256": "45409b0754d8f55324e38c4c2ea0d581dfcbc171e1f1b82c975c5235a8f3f749" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/03-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/03-main.log", + "sha256": "54af21c34826d0545715b9d5c0c16a1337c15e8b937cb0fb0dcb7011226570ef" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/manifest.json", + "sha256": "c00c57d1ef183b407b0f9ed8055cbbbf0c5d67b991e3f9d40be835d96557ff06" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-common/results.csv", + "sha256": "b2677f1d0169c4630b80339cdabe928641f1e878b9074839c1f68c5195c24b8b" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/00-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/00-main.log", + "sha256": "52f92b1b3b03ec70c368f511691860e03f02b9ca532c6a64875e6679b53f1746" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/01-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/01-branch-prefix.log", + "sha256": "e8e3fc5c397bc81464ae90c46f98dca02c65adad9f68952cf9cc6510439a68d7" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/02-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/02-branch-prefix.log", + "sha256": "d7f487c19e519901fe055675d79d3770236eaac10383099b7769de207a276775" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/03-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/03-main.log", + "sha256": "db7811cf8ee3db0777aea834b0b95a18087f88228eb96259da5d1728587b7a29" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/manifest.json", + "sha256": "d28ba6cc39673b01907efe5706145e517e5ec2d0807b6eea03e3dbab45f91dd5" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-disk-random/results.csv", + "sha256": "bac120d4b193584f5e96f7ba22cacfef84dd72a70aebc998eee294c98d57b9eb" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/00-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/00-main.log", + "sha256": "81be21b00ecbed2be204e32274e68cc4d24993159e75690ea087b3c1200666c8" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/01-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/01-branch-prefix.log", + "sha256": "2e39f08e79cc7e8253059d3e7f7f72e96e5a0803746db04c67a73d870e1afe17" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/02-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/02-branch-prefix.log", + "sha256": "78fd26a69427bc99e3043e819895aaa3df89e69caac2f73fb072688cde0737b0" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/03-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/03-main.log", + "sha256": "902192d5930a5eca8f186bddfaa28dd76726f27922b0abe417be119fc44f0d6f" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/manifest.json", + "sha256": "044faaba3f0a603947359171571c448d76f8167bb842a6e655116653a110e309" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-common/results.csv", + "sha256": "f19990b60a99e8c5b370f94feee0dd9c0b5bca0ac4b10e468c9a286c8e479a1b" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/00-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/00-main.log", + "sha256": "71cf5be0548497291166644a6778581a973a08e9bf8d3cde8b8a391549c56453" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/01-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/01-branch-prefix.log", + "sha256": "ad18f1ba8ff2a7aeb658b10fd5f1b14848cf021e28e644898f5a516591d4e8ad" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/02-branch-prefix.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/02-branch-prefix.log", + "sha256": "f800c70665b447549b9be2d0ad06598bee20062046839cad5130912e9f81620e" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/03-main.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/03-main.log", + "sha256": "66593aeb81bd645d57696f350af69de5dd112425f95b43ce3a999b8418a81cb4" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/manifest.json", + "sha256": "a022b3e1c5015995cf7299566d2100c8b99b9fb7f85596f9802354a892cf385f" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/results.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix-resident-random/results.csv", + "sha256": "b3e42532f4eab763a7d198a300a023d39c2bd26a2e64f06e73aa77cf456626cb" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/prefix_kvbench.c", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/prefix_kvbench.c", + "sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/preparation.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/preparation.json", + "sha256": "1de4fc5b02c3b6b5134859e33a99b881132ca60c193aa611370795131bb80c09" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/repeat.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/repeat.py", + "sha256": "81fc83731f123067d5183231468513ad7243578ffc051a0d63073b684362fd53" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/report.md", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.md", + "sha256": "9649eb4828bef7e39b3b28b1bdcd2ab3ddb72ceb0f71bb5d07c12605c8b417bc" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/report.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/report.py", + "sha256": "5c1a9ef7925653b45ee3c211863706ba6cbf2924783a77c1efd7e0b83c3622a6" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/run_job.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_job.py", + "sha256": "908d86de805e6efd41b423c919187f2df14715104f047e10fa8a6c57129cc773" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/run_matrix-fixtures.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix-fixtures.py", + "sha256": "776d2ee23705f3a60a54f4e78b4f305a24d4a124eeecfe75dfacf5a90e4329c5" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/run_matrix.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/run_matrix.py", + "sha256": "536f10a1a7fd4b1e8e0250ea01cfe36793c7d6e2345f141092616ec06f64ee50" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/status.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/status.json", + "sha256": "205604ab3e1bae378e250d6c43e2bd578bc467ebe943d07956752349892ee675" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/benchmarks/summary.csv", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/benchmarks/summary.csv", + "sha256": "4fdb17bf1add3d91e339606a108d9d85181766cb608403542413a6af2cf3946d" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/README.md", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/README.md", + "sha256": "aa07a642a35ed8960d60bc806351a5fb2b8686ce70cfcf5afd7f588a5f4d3820" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/archive-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/archive-manifest.json", + "sha256": "2cc0edd89d8fc2da26bfef9757fdb52a126433984dcdbcb70afc5ab6e51864ff" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-blob.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-blob.log", + "sha256": "f68e584fc108c24bbed3c01bb22bad1bfdc5a330f938c6f799badaf7736cf5de" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-btree.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-btree.log", + "sha256": "08bdb2849c344dd919ef595814e83157a7f198551585059b6b7177ba599fdea9" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-build.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-build.log", + "sha256": "ea406c8082403a4a184ea32b097f3d3fab38c73cf0a9f086f3ae810c6458d79c" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-quick.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-quick.log", + "sha256": "ff420edb080aacfadc961e9578592062d935ddb6b301dc04e57b4578b23d5ba2" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-results.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-results.json", + "sha256": "afa555a6d8381fd36d0f6af6f8543d8802132954fe59f19ed3e51d4c6f8824cf" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-superblock.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-superblock.log", + "sha256": "ce8f373e651be079421f983c55a4ecaf7390e2a244ffe465ab6fe0480db173e3" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/debug-tests.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/debug-tests.log", + "sha256": "aefccc97d75e60b6c43b3eb03a11cd12bde0be5ab5dfe456f275b3c9a61332bc" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/kvbench-build.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/kvbench-build.log", + "sha256": "c2d29076000b1f194479e527ddca47ac881d4580a11c75d10dfa40d1af87b038" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-blob.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-blob.log", + "sha256": "fc56ed8d22c0de9cd45503f5ce14efb4a3bb858428b61c2c409c9e5d0ff5c047" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-btree.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-btree.log", + "sha256": "944240f8b9608708a3f23e609104f64e437fff5962e6f09ca62a8a086bff0456" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-build.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-build.log", + "sha256": "75884dfafb11f4a0f00892c01395e1ecadb90cef0ac622373e0d157f6cddca2f" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-libs.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-libs.log", + "sha256": "9b12919c5cb6c1023469ee3dc8c24272a86e4ce9e8717b4dec5a30b2e7b3ab02" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-quick.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-quick.log", + "sha256": "a9c563de4a052a66cf05c01a49d33c7d91fefc9b63c3deae8d0ab1fd813f0144" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-results.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-results.json", + "sha256": "4aabf17366109b53a26b805b182d956bb57fed3796d4a98414c9c015386686fc" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-superblock.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-superblock.log", + "sha256": "5536ef09f9d3b7b40871add22169cb31b12bc1080dc29f1f8b9a6ecf0732214f" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/release-tests.log", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/release-tests.log", + "sha256": "17ec2a04103575e282e04046e88bcbd32970454d7f65abc2782dc48366cf7029" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/shared/before.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/before.json", + "sha256": "133ae8f9f5fda20e884fd1d283d857d389a96cef6a74a82b7a17fa094a0cc6e5" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/shared/run_job.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/run_job.py", + "sha256": "908d86de805e6efd41b423c919187f2df14715104f047e10fa8a6c57129cc773" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/shared/test_root_branches.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/shared/test_root_branches.py", + "sha256": "36f5b93940442f3806266d12284fe4da2927b56b4f1882c957df7519696d3da7" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/source-manifest.json", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/source-manifest.json", + "sha256": "563c6d5865c3d7b305e41f21da5ab4476acd6f154a366c636e50c2e983496d0a" + }, + { + "original": "benchmarks/results-20261013/main-7bb5fab/tests/validate.py", + "preserved": "benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/tests/validate.py", + "sha256": "590b5ab354f540780c61f2da9e198e50293b7ae2f3c02fc0f4595ec56da2930a" + } +] diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-btree.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-btree.log new file mode 100644 index 000000000..caa24aca7 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-btree.log @@ -0,0 +1,36 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/12 btree:test_leaf_hdr [OK] +TEST 2/12 btree:test_leaf_hdr_search [OK] +TEST 3/12 btree:test_index_hdr [OK] +TEST 4/12 btree:test_index_hdr_search [OK] +TEST 5/12 btree:test_leaf_split [OK] +TEST 6/12 btree:test_defragmented_leaf_bytes [OK] +TEST 7/12 btree:test_defragmented_index_bytes [OK] +TEST 8/12 btree:test_invalid_branch_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 9/12 btree:test_invalid_branch_async_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 10/12 btree:test_invalid_branch_iterator Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 11/12 btree:test_invalid_branch_metadata_queries Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 12/12 btree:test_compressed_suffix_copy [OK] +RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 1 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-build.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-build.log new file mode 100644 index 000000000..fe1677085 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-build.log @@ -0,0 +1,137 @@ +Starting prefix-main-fc0-release-build build +Checking for mismatched config...No mismatched config found +Saving config to build-main-fc0bc8f7/release/build-config.fb6bc8eeb8390429253883c09491f5bd +Compiling src/PackedArray.c [build-main-fc0bc8f7/release/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-fc0bc8f7/release/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-fc0bc8f7/release/obj/src/core.o] +Compiling src/default_data_config.c [build-main-fc0bc8f7/release/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-fc0bc8f7/release/obj/src/memtable.o] +Compiling src/merge.c [build-main-fc0bc8f7/release/obj/src/merge.o] +Compiling src/notification.c [build-main-fc0bc8f7/release/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-fc0bc8f7/release/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-fc0bc8f7/release/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-fc0bc8f7/release/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-fc0bc8f7/release/obj/src/superblock.o] +Compiling src/trunk.c [build-main-fc0bc8f7/release/obj/src/trunk.o] +Compiling tools/splinter_inspect.c [build-main-fc0bc8f7/release/obj/tools/splinter_inspect.o] +Compiling src/allocator.c [build-main-fc0bc8f7/release/obj/src/allocator.o] +Compiling src/blob.c [build-main-fc0bc8f7/release/obj/src/blob.o] +Compiling src/blob_build.c [build-main-fc0bc8f7/release/obj/src/blob_build.o] +Compiling src/btree.c [build-main-fc0bc8f7/release/obj/src/btree.o] +Compiling src/clockcache.c [build-main-fc0bc8f7/release/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-fc0bc8f7/release/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-fc0bc8f7/release/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-fc0bc8f7/release/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-fc0bc8f7/release/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-fc0bc8f7/release/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-fc0bc8f7/release/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-fc0bc8f7/release/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-fc0bc8f7/release/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-fc0bc8f7/release/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-fc0bc8f7/release/obj/src/task.o] +Compiling src/util.c [build-main-fc0bc8f7/release/obj/src/util.o] +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Compiling src/writeback_set.c [build-main-fc0bc8f7/release/obj/src/writeback_set.o] +Compiling tests/functional/avlTree.c [build-main-fc0bc8f7/release/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-fc0bc8f7/release/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-fc0bc8f7/release/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-fc0bc8f7/release/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-fc0bc8f7/release/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-fc0bc8f7/release/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-fc0bc8f7/release/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-fc0bc8f7/release/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-fc0bc8f7/release/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-fc0bc8f7/release/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-fc0bc8f7/release/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-fc0bc8f7/release/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-fc0bc8f7/release/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-fc0bc8f7/release/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-fc0bc8f7/release/obj/tests/config.o] +Compiling tests/test_common.c [build-main-fc0bc8f7/release/obj/tests/test_common.o] +Compiling tests/test_data.c [build-main-fc0bc8f7/release/obj/tests/test_data.o] +Linking build-main-fc0bc8f7/release/lib/libsplinterdb.so +Compiling tests/unit/btree_stress_test.c [build-main-fc0bc8f7/release/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-fc0bc8f7/release/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-fc0bc8f7/release/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-fc0bc8f7/release/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-fc0bc8f7/release/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-fc0bc8f7/release/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-fc0bc8f7/release/obj/tests/unit/misc_test.o] +Compiling tests/unit/notification_test.c [build-main-fc0bc8f7/release/obj/tests/unit/notification_test.o] +Compiling tests/unit/platform_apis_test.c [build-main-fc0bc8f7/release/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-fc0bc8f7/release/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-fc0bc8f7/release/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-fc0bc8f7/release/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-fc0bc8f7/release/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-fc0bc8f7/release/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-fc0bc8f7/release/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-fc0bc8f7/release/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-fc0bc8f7/release/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-fc0bc8f7/release/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-fc0bc8f7/release/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-fc0bc8f7/release/obj/tests/unit/writeback_set_test.o] +Linking build-main-fc0bc8f7/release/bin/unit/btree_stress_test +Linking build-main-fc0bc8f7/release/bin/unit/btree_test +Compiling tests/unit/config_parse_test.c [build-main-fc0bc8f7/release/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-fc0bc8f7/release/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-fc0bc8f7/release/bin/unit/misc_test +Linking build-main-fc0bc8f7/release/bin/unit/platform_apis_test +Linking build-main-fc0bc8f7/release/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinter_test.o] +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-fc0bc8f7/release/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-fc0bc8f7/release/bin/unit/util_test +Linking build-main-fc0bc8f7/release/bin/unit/vector_test +Linking build-main-fc0bc8f7/release/bin/unit/writeback_set_test +Compiling examples/splinterdb_custom_ipv4_addr_sortcmp_example.c [build-main-fc0bc8f7/release/obj/examples/splinterdb_custom_ipv4_addr_sortcmp_example.o] +Compiling examples/splinterdb_intro_example.c [build-main-fc0bc8f7/release/obj/examples/splinterdb_intro_example.o] +Compiling examples/splinterdb_iterators_example.c [build-main-fc0bc8f7/release/obj/examples/splinterdb_iterators_example.o] +Compiling examples/splinterdb_optimize_example.c [build-main-fc0bc8f7/release/obj/examples/splinterdb_optimize_example.o] +Compiling examples/splinterdb_wide_values_example.c [build-main-fc0bc8f7/release/obj/examples/splinterdb_wide_values_example.o] +Building archive build-main-fc0bc8f7/release/lib/libsplinterdb.a +Linking build-main-fc0bc8f7/release/bin/splinter_inspect +Linking build-main-fc0bc8f7/release/bin/driver_test +Linking build-main-fc0bc8f7/release/bin/unit_test +Linking build-main-fc0bc8f7/release/bin/unit/config_parse_test +Linking build-main-fc0bc8f7/release/bin/unit/large_inserts_stress_test +Linking build-main-fc0bc8f7/release/bin/unit/limitations_test +Linking build-main-fc0bc8f7/release/bin/unit/merge_test +Linking build-main-fc0bc8f7/release/bin/unit/notification_test +Linking build-main-fc0bc8f7/release/bin/unit/splinter_test +Linking build-main-fc0bc8f7/release/bin/unit/splinterdb_forked_child_test +Linking build-main-fc0bc8f7/release/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-fc0bc8f7/release/bin/unit/splinterdb_optimize_test +Linking build-main-fc0bc8f7/release/bin/unit/splinterdb_quick_test +Linking build-main-fc0bc8f7/release/bin/unit/splinterdb_stress_test +Linking build-main-fc0bc8f7/release/bin/unit/superblock_test +Linking build-main-fc0bc8f7/release/bin/unit/task_system_test +Linking build-main-fc0bc8f7/release/bin/unit/trunk_async_test +Linking build-main-fc0bc8f7/release/bin/unit/trunk_gc_test +Linking build-main-fc0bc8f7/release/bin/unit/trunk_split_test +Linking build-main-fc0bc8f7/release/bin/unit/writable_buffer_test +Linking build-main-fc0bc8f7/release/bin/examples/splinterdb_custom_ipv4_addr_sortcmp_example +Linking build-main-fc0bc8f7/release/bin/examples/splinterdb_intro_example +Linking build-main-fc0bc8f7/release/bin/examples/splinterdb_iterators_example +Linking build-main-fc0bc8f7/release/bin/examples/splinterdb_optimize_example +Linking build-main-fc0bc8f7/release/bin/examples/splinterdb_wide_values_example +Starting prefix-main-fc0-release-rebuild build +Checking for mismatched config...No mismatched config found +Compiling tests/unit/superblock_test.c [build-main-fc0bc8f7/release/obj/tests/unit/superblock_test.o] +Linking build-main-fc0bc8f7/release/bin/unit_test +Linking build-main-fc0bc8f7/release/bin/unit/superblock_test diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-merge.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-merge.log new file mode 100644 index 000000000..fc8390c15 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-merge.log @@ -0,0 +1,18 @@ +Running 1 CTests, suite name 'merge', test case 'all'. +TEST 1/10 merge:filtering_propagates_errors_while_skipping_rejected_keys setup_ordered_iterators: exception: Input/output error +setup_ordered_iterators: exception: Input/output error +[OK] +TEST 2/10 merge:filtering_does_not_eagerly_drain_nonmatching_sources [OK] +TEST 3/10 merge:random_direction_changes_match_merged_sequence [OK] +TEST 4/10 merge:direction_change_at_duplicate_key_moves_to_adjacent_key [OK] +TEST 5/10 merge:direction_change_clears_stale_equal_key_flag [OK] +TEST 6/10 merge:maximum_arity_is_accepted merge_iterator_create: bad parameter merge_itor 0x7fff34317548 num_trees 1025 itor_arr 0x7fff343175d0 cfg 0x7fff34317550 +[OK] +TEST 7/10 merge:failed_creation_cleans_up setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 8/10 merge:failed_direction_change_preserves_iterator_ownership setup_ordered_iterators: exception: Cannot allocate memory +setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 9/10 merge:direction_change_succeeds [OK] +TEST 10/10 merge:direction_change_propagates_child_errors [OK] +RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 0 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-results.json b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-results.json new file mode 100644 index 000000000..87aafaac6 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-results.json @@ -0,0 +1,78 @@ +[ + { + "name": "btree", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/bin/unit/btree_test" + ], + "binary_sha256": "b75efb5604e85053b2827c1f27f32b1a8c9d13d58b7dcb7eaa792c4c2af0782c", + "started": 1791959469.7585487, + "returncode": 0, + "finished": 1791959469.7612143, + "log_sha256": "303311eabb3c23d3e8547fc9619f995fcb9577f8b6e4742b2ea189760d68b576", + "summaries": [ + "RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 1 ms" + ] + }, + { + "name": "superblock", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/bin/unit/superblock_test" + ], + "binary_sha256": "0384ed1b1c89d2c399c8f60550ee120f64084f7f7cbb8156cb0198df2328f827", + "started": 1791959469.7616577, + "returncode": 0, + "finished": 1791959469.7946498, + "log_sha256": "b0ca1bfdd1ff47da4089ba873ff23e3d85eaa68bb4377a970dc02ffb1ba4faec", + "summaries": [ + "RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 31 ms" + ] + }, + { + "name": "merge", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/bin/unit/merge_test" + ], + "binary_sha256": "81405cbc315621c40c53b1c2be8a504e8cce580e0ddc626d1a30c855d4d224bb", + "started": 1791959469.794978, + "returncode": 0, + "finished": 1791959469.7967503, + "log_sha256": "4803d42f357b2c06ba53d4c7ef9ff7ca11ba8398b47095fd0afb664d4fa94837", + "summaries": [ + "RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 0 ms" + ] + }, + { + "name": "splinterdb_quick", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/bin/unit/splinterdb_quick_test" + ], + "binary_sha256": "a73a0ba0317c0367f6fb32287b10c2884cc25269bd9c11b67e159e6c12f130c1", + "started": 1791959469.7973664, + "returncode": 0, + "finished": 1791959481.6876996, + "log_sha256": "2988e28001adfe50fc4c22d1ecb0b26748c32a901867dfb7488e82bd42fe68b7", + "summaries": [ + "RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 11888 ms" + ] + }, + { + "name": "splinter", + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-fc0bc8f7/release/bin/unit/splinter_test", + "--db-location", + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/prefix-main-fc0bc8f7/scratch-release/core.db", + "--cache-capacity-mib", + "128", + "--db-capacity-gib", + "64" + ], + "binary_sha256": "1b86e18aec33127aaa342909799d0ea8176c4843bdb53811936a6e6ac650a817", + "started": 1791959481.6892905, + "returncode": 0, + "finished": 1791959526.4000459, + "log_sha256": "f77de74a5857ce739651d9b0532bdb6a102227cfd1a49648cf42f948a17c7ca7", + "summaries": [ + "RESULTS: 41 tests (41 ok, 0 failed, 0 skipped) ran in 44708 ms" + ] + } +] diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinter.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinter.log new file mode 100644 index 000000000..b493a1d6c --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinter.log @@ -0,0 +1,91 @@ +Running 1 CTests, suite name 'splinter', test case 'all'. +TEST 1/41 splinter:test_inserts [OK] +TEST 2/41 splinter:test_btree_pack_abort_releases_reserved_extents btree_pack error status: 5 +[OK] +TEST 3/41 splinter:test_btree_pack_rejects_counter_overflow btree_pack: output statistics exceed the on-disk limit +btree_pack error status: 28 +[OK] +TEST 4/41 splinter:test_malformed_trunk_pivot_bundle [OK] +TEST 5/41 splinter:test_invalid_branch_reference_rejected Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +[OK] +TEST 6/41 splinter:test_malformed_trunk_pivot_stats trunk_merge_lookup: ondisk_node_find_pivot failed: 22 +trunk_merge_lookup_async: ondisk_node_find_pivot_async failed: 22 +[OK] +TEST 7/41 splinter:test_malformed_trunk_child_height trunk_merge_lookup_async: ondisk_node_handle_init_async failed: 22 +[OK] +TEST 8/41 splinter:test_two_log_checkpoint [OK] +TEST 9/41 splinter:test_reopen_with_changed_filter_config [OK] +TEST 10/41 splinter:test_logged_large_insert_shares_blob_extents [OK] +TEST 11/41 splinter:test_durable_barrier_waits_for_visible_insert_log_write [OK] +TEST 12/41 splinter:test_durable_barrier_packs_concurrent_small_tails [OK] +TEST 13/41 splinter:test_shard_log_first_fit_decreasing_packing [OK] +TEST 14/41 splinter:test_shard_log_page_alloc_failure_retries_open_buffer shard_log_graduate_buffer: out of log space +shard_log_graduate_group: failed to terminate group 1: No space left on device +[OK] +TEST 15/41 splinter:test_async_durable_barrier_reports_device_failure [OK] +TEST 16/41 splinter:test_async_durable_barrier_defers_nested_wait [OK] +TEST 17/41 splinter:test_async_durable_barrier_launches_with_blocked_device [OK] +TEST 18/41 splinter:test_durable_barrier_without_log_publishes_root [OK] +TEST 19/41 splinter:test_checkpoint_reports_terminal_incorporation_failure trunk_node_serialize():2802: cache_alloc() failedserialize_nodes():2986: node_serialize() failedserialize_nodes_and_save_contingent_compactions: serialize_nodes failed: 12 +restore_balance_leaf():6155: serialize_nodes() failed: Cannot allocate memorytrunk_flush_prepare: flush_then_compact failed: 12 +trunk_incorporate_prepare failed: Cannot allocate memory +Memtable incorporation failed: generation=0 state=INCORPORATION_ASSIGNED status=Cannot allocate memory memtable_root=2228224 +memtable flush failed: Cannot allocate memory +Shutdown found memtable from failed incorporation: generation=0 state=INCORPORATION_FAILED status=Cannot allocate memory memtable_root=2228224 compacted_root=0 +[OK] +TEST 20/41 splinter:test_durable_barrier_reopens_writers_before_device_barrier [OK] +TEST 21/41 splinter:test_concurrent_durable_barriers_coalesce [OK] +TEST 22/41 splinter:test_durable_barrier_waits_for_checkpoint_publication [OK] +TEST 23/41 splinter:test_log_prepare_failure_leaves_update_unapplied core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_unmount: failed to publish the unmount root: Input/output error +core_unmount: shutdown retained recovery state; the next mount must recover +[OK] +TEST 24/41 splinter:test_checkpoint_advance_retries_cut_publish_failure core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +[OK] +TEST 25/41 splinter:test_checkpoint_advance_retries_completion_failure core_checkpoint_advance: completion publish failed: Input/output error +core_checkpoint_advance: completion publish failed: Input/output error +[OK] +TEST 26/41 splinter:test_self_managed_checkpoints_reclaim_log_space [OK] +TEST 27/41 splinter:test_auto_checkpoint [OK] +TEST 28/41 splinter:test_auto_checkpoint_grace_allows_natural_rotation [OK] +TEST 29/41 splinter:test_auto_checkpoint_grace_forces_overwrite_rotation [OK] +TEST 30/41 splinter:test_auto_checkpoint_on_overwrites [OK] +TEST 31/41 splinter:test_recover_allocations_reproduces_persisted_map [OK] +TEST 32/41 splinter:test_unmount_skips_allocator_map_that_needs_rebuild core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 33/41 splinter:test_late_reclamation_failure_requires_recovery WARNING: abandoned reclamation of mini allocator at 8519680 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +WARNING: core_unmount: reclamation failed (Connection timed out); remaining space was retained. Shutdown requires recovery and the next open will rebuild allocation state. +core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 34/41 splinter:test_mount_active_checkpoint_stays_mountable [OK] +TEST 35/41 splinter:test_lookups [OK] +TEST 36/41 splinter:test_splinter_print_diags [OK] +TEST 37/41 splinter:test_cache_read_errors_reach_core_operations ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 110 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 110 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 110 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 110 +[OK] +TEST 38/41 splinter:test_blob_descriptor_sizes [OK] +TEST 39/41 splinter:test_blob_trees [OK] +TEST 40/41 splinter:test_blob_height_three_and_large_stats [OK] +TEST 41/41 splinter:test_blob_checksums [OK] +RESULTS: 41 tests (41 ok, 0 failed, 0 skipped) ran in 44708 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinterdb_quick.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinterdb_quick.log new file mode 100644 index 000000000..748bf92a7 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-splinterdb_quick.log @@ -0,0 +1,64 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/57 splinterdb_quick:test_get_cost_stats [OK] +TEST 2/57 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 3/57 splinterdb_quick:test_durable_barrier [OK] +TEST 4/57 splinterdb_quick:test_async_durable_barrier_notifications [OK] +TEST 5/57 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 6/57 splinterdb_quick:test_basic_flow [OK] +TEST 7/57 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 8/57 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 9/57 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 10/57 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 11/57 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 12/57 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 13/57 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 14/57 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 15/57 splinterdb_quick:test_apis_for_large_key [OK] +TEST 16/57 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 17/57 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 18/57 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 19/57 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 20/57 splinterdb_quick:test_variable_length_values [OK] +TEST 21/57 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 22/57 splinterdb_quick:test_basic_iterator [OK] +TEST 23/57 splinterdb_quick:test_iterator_delete_current [OK] +TEST 24/57 splinterdb_quick:test_empty_iterator [OK] +TEST 25/57 splinterdb_quick:test_bounded_iterator [OK] +TEST 26/57 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 27/57 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 28/57 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 29/57 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 30/57 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 31/57 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 32/57 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 33/57 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 34/57 splinterdb_quick:test_close_and_reopen [OK] +TEST 35/57 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 36/57 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 37/57 splinterdb_quick:test_custom_data_config [OK] +TEST 38/57 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 39/57 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 40/57 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 41/57 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 42/57 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 43/57 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 44/57 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 45/57 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 46/57 splinterdb_quick:test_iterator_init_bug [OK] +TEST 47/57 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 48/57 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 49/57 splinterdb_quick:test_filtered_range_merges_only_matching_keys [OK] +TEST 50/57 splinterdb_quick:test_filtered_range_crosses_empty_trunk_leaves [OK] +TEST 51/57 splinterdb_quick:test_filtered_range_persisted_mixed_seeds [OK] +TEST 52/57 splinterdb_quick:test_filtered_range_predicate_only_and_bounds [OK] +TEST 53/57 splinterdb_quick:test_filtered_range_propagates_matching_merge_errors setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 54/57 splinterdb_quick:test_filtered_range_context_survives_thread_handoff [OK] +TEST 55/57 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 56/57 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +TEST 57/57 splinterdb_quick:test_get_config_returns_effective_config [OK] +RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 11888 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-superblock.log b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-superblock.log new file mode 100644 index 000000000..25dcde6cf --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/release-superblock.log @@ -0,0 +1,50 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/17 superblock:test_rejects_other_experiment_formats Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +[OK] +TEST 2/17 superblock:test_snapshot_persists_state [OK] +TEST 3/17 superblock:test_two_log_checkpoint_transitions [OK] +TEST 4/17 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 5/17 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 6/17 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 7/17 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 8/17 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 9/17 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 10/17 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 11/17 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 12/17 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 13/17 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/17 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +TEST 15/17 superblock:test_unknown_structure_version_rejected Unsupported trunk format version 2; this build requires version 1. +Unsupported trunk format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +[OK] +TEST 16/17 superblock:test_unsupported_superblock_version_rejected Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +[OK] +TEST 17/17 superblock:test_format_sets_fresh_state [OK] +RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 31 ms diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/source-manifest.json b/benchmarks/results-20261013/prefix-main-fc0bc8f7/source-manifest.json new file mode 100644 index 000000000..07ec9f0d8 --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/source-manifest.json @@ -0,0 +1,169 @@ +{ + "Makefile": "64ffc4bcbe25fca2a45da700ead4a6d4add7601c6f406290e2cf5cde52e95296", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "8a6533879de25f1e448a866c4c03304037e40c6e39e20923c0557e9c87d4fda0", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "fa4361b3aad52f2ba60a9e1964ef765fb5c0efb68d82487afab4ca66cae1999b", + "src/core.h": "2d4141f4b351cafae8e71e21dc6f570a6d0a4bf3b8b91df86f83dd3e9c0a7809", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "3e7eb447259e7901b915b52b7545e2d5088475171af1716dd9c849dab4c3d1b9", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "b601c29a5dbcbf5ad5c0859ca87a3e9dc2088a10cad77327ee4f1c7f46c02f91", + "src/shard_log.h": "bde00a5cbe72e72ac7133006796e61f046ae758e8e4667aa610e184ed6ef4fd7", + "src/splinterdb.c": "dfb8412a91370d831fb5181d84a6d6f0c2cb8183866847dca9d7bc2596f08404", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "e44ffe45687560ef6605bd086709251d53cccfbadbc94fd3bdfd0106721f3698", + "tests/config.h": "c1f80b62a51e77255d8d91ace4b2e6777c7311010167149430edd41a6d5ce142", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "c011e72c204cc7640d1d259c791ba7ead40ef2a2c01fcfff3140d988d6666547", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "d58945f7c783584c65963381068c0225ed34dcb8d7dad7b2dfe865692a452853", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "fc67a09c147248b4a480bdf1a39a0810dd94ad3e8443b0da468e276defa3d5ec", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "cb06609cf0134f1952a8742d19ef850ff4c80d86a6ffca85607998a2c921b17a", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "e495226245728b72d4108f627642e98d7fba399f6fca3b733e18e4d2b218fb30", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "1aa7a844349a1070f497f8ded0be9a36a5cf492d8731b49d626a771664f3ba79", + "tests/unit/btree_test.c": "cfb4057349c6580acead4950876f9665ac0d0d38ef7d8289bf90db00e88878e3", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "8c916b53e14f3a1f03b314f33d6d67975d7c60909a06c5c5b41b62ef02dc94f4", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/notification_test.c": "b9dcf332b319cf1ff0c1f9c3aa7fc32a35c9f19b81f8122d55c6ed7f6e02e84b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "686fb10c3b77eebc2512b120aa299ede6e5d86a78fb3a11430833f57d182777f", + "tests/unit/splinterdb_forked_child_test.c": "32bf91450ba812947ecdc7551ea2996823c05808159786ce746eba0265010a72", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "719af1e83c60df31e63dfd782ace852605edbc355dfb487608e9c77a8f33ebae", + "tests/unit/splinterdb_quick_test.c": "309cc0d01b8bdbe0a37b2e7f9ebc228d3008ba699c9db07144b404db36ec3b97", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "04864b8fce2142d49abefebd0dd3acca6158ebea495484ef05d670013a6c8977", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "4237641a463b28b7be333ed5d4f80a4830c3b0ef75335b196da34318a9f58b18", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" +} diff --git a/benchmarks/results-20261013/prefix-main-fc0bc8f7/validate.py b/benchmarks/results-20261013/prefix-main-fc0bc8f7/validate.py new file mode 100644 index 000000000..12e106ecf --- /dev/null +++ b/benchmarks/results-20261013/prefix-main-fc0bc8f7/validate.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +"""Run after run_job.py acquires the campaign test lock.""" +import hashlib +import json +from pathlib import Path +import re +import subprocess +import sys +import time + +mode = sys.argv[1] +tree = Path.cwd() +archive = tree / 'benchmarks/results-20261013/prefix-main-fc0bc8f7' +scratch = tree.parents[1] / 'coordination/prefix-main-fc0bc8f7' / ('scratch-' + mode) +scratch.mkdir(parents=True, exist_ok=True) +build = tree / 'build-main-fc0bc8f7' +link = scratch / build.name +if not link.exists(): + link.symlink_to(build, target_is_directory=True) +unit = build / mode / 'bin/unit' +records = [] +for name in ['btree', 'superblock', 'merge', 'splinterdb_quick', 'splinter']: + binary = unit / (name + '_test') + command = [str(binary)] + if name == 'splinter': + command += ['--db-location', str(scratch / 'core.db'), '--cache-capacity-mib', '128', '--db-capacity-gib', '64'] + record = dict(name=name, command=command, binary_sha256=hashlib.sha256(binary.read_bytes()).hexdigest(), started=time.time()) + log = archive / (mode + '-' + name + '.log') + with log.open('w') as output: + result = subprocess.run(command, cwd=scratch, stdout=output, stderr=subprocess.STDOUT) + content = log.read_text() + record.update(returncode=result.returncode, finished=time.time(), log_sha256=hashlib.sha256(log.read_bytes()).hexdigest(), summaries=[line for line in content.splitlines() if 'RESULTS:' in line]) + records.append(record) + (archive / (mode + '-results.json')).write_text(json.dumps(records, indent=2) + '\n') + print(name, result.returncode, record['summaries'], flush=True) + if result.returncode: + raise SystemExit(result.returncode) + assert re.search(r'RESULTS: [1-9][0-9]* tests', content) diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/.gitattributes b/benchmarks/results-20261014/prefix-main-6105c49f/.gitattributes new file mode 100644 index 000000000..38e0d5830 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/.gitattributes @@ -0,0 +1 @@ +*.log whitespace=-blank-at-eol,-blank-at-eof,-space-before-tab diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/.gitignore b/benchmarks/results-20261014/prefix-main-6105c49f/.gitignore new file mode 100644 index 000000000..c18dd8d83 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/README.md b/benchmarks/results-20261014/prefix-main-6105c49f/README.md new file mode 100644 index 000000000..2d5251ca9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/README.md @@ -0,0 +1,117 @@ +# Prefix integration and performance assessment, 2026-10-14 + +Merged `origin/main` at `6105c49f66a24d3006ba0464d9558b52e692e27c` into +`robj/branch-prefix` as `97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789`. +The new main change bounds automatic log groups; it merged without conflicts. +A final fetch after measurements still found main at `6105c49f`. +The custom IPv4 comparator example now clears `key_compare_is_lexical`, as its +ordering does not meet that flag's contract. No measured runtime source changed. + +## Merge assessment + +The branch is suitable for a review PR, but this evidence does not support +merging the default-enabled implementation yet. The strongest performance +blocker is resident nonlexical length-1 scans: throughput fell 5.36% in the +initial ABBA and 5.73% in three longer paired repetitions, with nonoverlapping +sample ranges in both. Compression is disabled for this comparator, so the +workload pays overhead without receiving compression's space benefit. +The repeat's mean p99 increased 7.23%. + +Common-prefix resident length-10,000 scans averaged 14.97% slower initially and +12.10% slower in the longer repeat. Both sets have overlapping sample ranges, +so these are recurring concerns, not precise estimates of a universal slowdown. +The initial 20.10% compression-disabled long-scan loss did not reproduce: +the longer repeat was -2.38% at eight readers and +1.89% at one reader, both +with overlapping ranges. Historical random resident scan losses also did not +reproduce in the new initial matrix. Retain these distinctions when reviewing. + +Logged random overwrites lost 9.98% including close/drain in the initial screen, +and 6.09% in the repeat. The latter ranges overlap substantially; these short +overwrite runs do not establish steady-state insertion performance or an +isolated regression caused by the new log-group policy. + +Shared-prefix disk benefits remain clear in this matrix: points +10.45%, +length-1 scans +10.86%, length-10,000 scans +20.29%, with nonoverlapping +throughput sample ranges. Their read bytes per operation fell 9.06%, 22.75%, +and 29.09%, respectively. File allocation fell 34.73% on disk and 30.16% in +the resident fixture. Mounted live extents fell 24.28% and 25.15%. + +There is also unconditional iterator memory overhead. DWARF from the measured +libraries gives `sizeof(btree_iterator)` 336 -> 488 and +`sizeof(core_range_iterator)` 94,592 -> 133,504 bytes: 38 KiB more per public +iterator, including nonlexical and compression-disabled workloads. The core +iterator embeds 256 branch iterators. These are object sizes, not measured RSS. + +Source review identifies costs worth profiling before a merge: owned full-key +buffers on the scan path, reconstruction for compressed leaves, and packing +even when a small prefix does not provide space for another tuple. The buffer +layout and allocation changes are candidates for the nonlexical overhead; +key reconstruction cannot explain a comparator with compression disabled. +No causal attribution or performance repair was established in this update. + +The subsequent [nonlexical diagnosis](../prefix-nonlexical-diagnosis/README.md) +confirmed the uncompressed key path already skips reconstruction and measured +avoidable iterator setup/state costs. Its lazy-state prototype reduced a later +batch's throughput gap from 1.96% to 0.46%, with compressed-path validation still +outstanding. The original results above remain unchanged. + +The lazy-state fix has since been applied and tested, including compressed +pages, allocation failures and leak detection. See the +[fix validation archive](../prefix-lazy-6105c49f/README.md) for its measurements +and updated merge assessment. This archive describes the pre-fix implementation. + +## Validation and measurement scope + +Debug and release each passed 141 unit cases: B-tree 12, superblock 17, merge +10, public API 57, internal Splinter 44, and automatic-log process-exit recovery +1. Both functional log runs passed and replayed 500,000 records. This covers +prefix roundtrip/reopen, predicate scans, blobs, and the new automatic log +barrier behavior. All build targets passed, including the corrected example. + +The benchmark campaign completed 68 query/overwrite invocations: 28 reads, +16 overwrites, and 24 targeted followups, plus 17 fixture load/space pairs. +Every completed invocation succeeded; all phase rows have zero errors and +correctness violations. Reads use seven-second phases, overwrites eight, and +followups fifteen. Initial comparisons use ABBA; followups use three alternating +pairs (A B / B A / A B). The [generated report](report.md) and [summary CSV](summary.csv) +retain all results, including contrary and overlapping evidence. + +All database files use O_DIRECT on ext4 `/dev/mapper/snafu-root_crypt`, with CPU +affinity 0-11. Benchmarks hold the existing campaign's exclusive benchmark and +machine locks; tests completed before timing. Each query uses a separate fsynced +copy of a fixed per-format image. Logical keys, seed, cache size, and harness +source match. Default logged runs exercise main's automatic group limit. +These are closed-loop workloads, not offered-rate latency measurements. + +Resident configurations use 200,000 64-byte keys, 100-byte values and a 128 MiB +cache; disk configurations use two million keys and a 64 MiB cache. Loading +uses one thread, no background workers and a 4 MiB memtable. The random-key +generator retains a 16-byte-per-logical-key array in both versions. This is an +equal-cache comparison, not an enforced total-memory cap; the iterator object +growth above is additional candidate memory. Fixture loading is measured only +once and is too short for a sustained-write conclusion. CPU frequency and +uncoordinated host activity are not controlled; sample ranges show substantial +resident variability. Sample ranges are not statistical confidence intervals. + +## Reproduction and provenance + +`build.json` records commits, all runtime source hashes, compiler/link commands, +build flags, library hashes, and identical generated harness hashes. Baseline +runtime was exported from main with `git archive`, then built with +`make -B -j8 BUILD_MODE=release GIT_VERSION=6105c49f libs`. Candidate debug and +release builds use `BUILD_ROOT=build-main-6105c49f`. The existing +`benchmarks/build_prefix_bench.py` builds both harnesses. No database images or +binaries are committed here; the files remain under the worktree's `.cache` +and build directories. Earlier unrelated build directories are preserved. + +`tests/validate.py` reproduces build/test commands. `run_benchmarks.py --mode +reads` and `--mode writes` reproduce the first matrix; their caller must hold +the campaign locks. `followup.py` acquires those locks itself. Runs deliberately +refuse to overwrite existing result directories or images: use a fresh archive +and scratch destination for a new campaign. `report.py` regenerates the table +and CSV from recorded samples. `audit.py` verifies hashes, source correspondence, +test results, and serialization and records iterator object sizes. + +Codex workspace-requirements errors interrupted orchestration during preparation; +they were not test failures. The completed process logs and manifests are the +evidence for successful execution. diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/audit.json b/benchmarks/results-20261014/prefix-main-6105c49f/audit.json new file mode 100644 index 000000000..c1d9dcbdc --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/audit.json @@ -0,0 +1,53 @@ +{ + "source_and_binary_hashes_match": true, + "identical_harness": true, + "benchmark_subprocesses": 102, + "query_invocations": 68, + "phase_rows": 223, + "errors": 0, + "violations": 0, + "benchmark_intervals_do_not_overlap": true, + "tests_before_benchmarks": true, + "tests": { + "debug": { + "unit_cases": 141, + "functional_log_passed": true + }, + "release": { + "unit_cases": 141, + "functional_log_passed": true + } + }, + "iterator_object_sizes": { + "main": { + "command": [ + "gdb", + "-nx", + "-batch", + "-ex", + "p sizeof(btree_iterator)", + "-ex", + "p sizeof(core_range_iterator)", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.so" + ], + "btree_iterator": 336, + "core_range_iterator": 94592, + "output": "$1 = 336\n$2 = 94592\n" + }, + "candidate": { + "command": [ + "gdb", + "-nx", + "-batch", + "-ex", + "p sizeof(btree_iterator)", + "-ex", + "p sizeof(core_range_iterator)", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.so" + ], + "btree_iterator": 488, + "core_range_iterator": 133504, + "output": "$1 = 488\n$2 = 133504\n" + } + } +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/audit.py b/benchmarks/results-20261014/prefix-main-6105c49f/audit.py new file mode 100644 index 000000000..5c3cec08f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/audit.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Check this campaign's source, artifacts, outcomes, and serialization.""" + +import csv +import hashlib +import json +from pathlib import Path +import re +import subprocess + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] + + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + + +def main(): + builds = json.loads((HERE / "build.json").read_text()) + sizes = {} + for profile, build in builds.items(): + for field in ("binary", "library"): + assert sha(build[field]) == build[field + "_sha256"], (profile, field) + assert sha(Path(build["binary"]).with_suffix(".c")) == build["source_sha256"] + for name, expected in build["source_files_sha256"].items(): + assert sha(Path(build["tree"]) / name) == expected, (profile, name) + committed = subprocess.check_output( + ["git", "show", build["commit"] + ":" + name], cwd=ROOT) + assert hashlib.sha256(committed).hexdigest() == expected, (profile, name) + command = ["gdb", "-nx", "-batch", "-ex", "p sizeof(btree_iterator)", + "-ex", "p sizeof(core_range_iterator)", + str(Path(build["library"]).with_suffix(".so"))] + output = subprocess.check_output(command, text=True) + values = [int(value) for value in re.findall(r"\$\d+ = (\d+)", output)] + assert len(values) == 2 + sizes[profile] = dict(command=command, btree_iterator=values[0], + core_range_iterator=values[1], output=output) + assert builds["main"]["source_sha256"] == builds["candidate"]["source_sha256"] + + runs = [] + query_count = 0 + phase_count = 0 + for mode in ("reads", "writes", "repeat"): + manifest = json.loads((HERE / mode / "manifest.json").read_text()) + assert manifest["complete"] + assert sha(HERE / "run_benchmarks.py") == manifest["runner_sha256"] + assert sha(HERE / "build.json") == manifest["build_json_sha256"] + if mode == "repeat": + assert sha(HERE / "followup.py") == manifest["followup_sha256"] + for run in manifest["runs"]: + assert run["returncode"] == 0 and run["verified"], run["label"] + assert sha(HERE / run["log"]) == run["log_sha256"], run["label"] + if "csv" in run: + csvpath = HERE / run["csv"] + if "csv_sha256" in run: + assert sha(csvpath) == run["csv_sha256"], run["label"] + with csvpath.open() as stream: + rows = list(csv.DictReader(stream)) + assert all(int(row["ops"]) > 0 and int(row["errors"]) == 0 + and int(row["violations"]) == 0 for row in rows) + phase_count += len(rows) + query_count += "case" in run + runs.append(run) + ordered = sorted(runs, key=lambda run: run["started"]) + assert all(a["finished"] <= b["started"] for a, b in zip(ordered, ordered[1:])) + + tests = {} + for mode in ("debug", "release"): + records = json.loads((HERE / "tests" / (mode + "-results.json")).read_text()) + count = 0 + for record in records: + assert record["returncode"] == 0 + assert sha(HERE / "tests" / record["log"]) == record["log_sha256"] + assert sha(record["command"][0]) == record["binary_sha256"] + assert record["finished"] < ordered[0]["started"] + if record["name"] != "functional-log": + assert len(record["summaries"]) == 1 + count += int(re.search(r"RESULTS: (\d+) tests", record["summaries"][0])[1]) + else: + assert "log returned 500000 of 500000 entries" in ( + HERE / "tests" / record["log"]).read_text() + assert count == 141 + assert json.loads((HERE / "tests" / (mode + "-source-check.json")).read_text())["unchanged"] + tests[mode] = dict(unit_cases=count, functional_log_passed=True) + + result = dict(source_and_binary_hashes_match=True, identical_harness=True, + benchmark_subprocesses=len(runs), query_invocations=query_count, + phase_rows=phase_count, errors=0, violations=0, + benchmark_intervals_do_not_overlap=True, tests_before_benchmarks=True, + tests=tests, iterator_object_sizes=sizes) + (HERE / "audit.json").write_text(json.dumps(result, indent=2) + "\n") + archive = {str(path.relative_to(HERE)): sha(path) for path in sorted(HERE.rglob("*")) + if path.is_file() and "__pycache__" not in path.parts + and path.name != "sha256.json"} + (HERE / "sha256.json").write_text(json.dumps(archive, indent=2) + "\n") + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/build.json b/benchmarks/results-20261014/prefix-main-6105c49f/build.json new file mode 100644 index 000000000..62f8eafc1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/build.json @@ -0,0 +1,303 @@ +{ + "main": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main", + "commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "MAKEFLAGS=B -j8 --jobserver-auth=fifo:/tmp/prefix-main-build-6105c49f/GMfifo3 -- GIT_VERSION=6105c49f BUILD_MODE=release\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557" + } + }, + "candidate": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "BUILD_ROOT=build-main-6105c49f\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-xn10vunh/GMfifo3 -- BUILD_MODE=release BUILD_ROOT=build-main-6105c49f\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a" + } + } +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/candidate-harness-build.log b/benchmarks/results-20261014/prefix-main-6105c49f/candidate-harness-build.log new file mode 100644 index 000000000..c6f97c919 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/candidate-harness-build.log @@ -0,0 +1,3 @@ +lto-wrapper: warning: using serial compilation of 13 LTRANS jobs +lto-wrapper: note: see the ‘-flto’ option documentation for more information +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures.json b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures.json new file mode 100644 index 000000000..85a6d6e02 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures.json @@ -0,0 +1,1124 @@ +{ + "main-resident-common-wal0": { + "key": "main-resident-common-wal0", + "profile": "main", + "regime": "resident", + "pattern": "common", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal0.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792007321270730148, + "inode": 26116948, + "allocated_bytes": 37408768 + }, + "sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "live_extents": 342, + "load": { + "version": "main", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.247", + "ops_s": "811108.6", + "p50_us": "0.584", + "p99_us": "2.784", + "p999_us": "8.832", + "max_us": "34176.859", + "mean_us": "1.196", + "cpu_s": "0.246", + "ops_per_cpu_s": "811490.7", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.247", + "drain_s": "0.105", + "total_s": "0.352", + "drain_cpu_s": "0.022", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.008", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-resident-common-wal0.log", + "space_log": "fixtures/space-main-resident-common-wal0.log" + }, + "candidate-resident-common-wal0": { + "key": "candidate-resident-common-wal0", + "profile": "candidate", + "regime": "resident", + "pattern": "common", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0.db", + "identity": { + "size": 207360000, + "mtime_ns": 1792007346130382508, + "inode": 26116955, + "allocated_bytes": 26128384 + }, + "sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "live_extents": 256, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.242", + "ops_s": "826551.8", + "p50_us": "0.584", + "p99_us": "2.592", + "p999_us": "5.184", + "max_us": "39375.946", + "mean_us": "1.172", + "cpu_s": "0.242", + "ops_per_cpu_s": "826856.3", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.242", + "drain_s": "0.104", + "total_s": "0.346", + "drain_cpu_s": "0.023", + "drain_rd": "0", + "drain_wr": "25980928", + "wamp": "0.7921", + "db_apparent": "207360000", + "db_alloc": "26128384", + "open_s": "0.008", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-common-wal0.log", + "space_log": "fixtures/space-candidate-resident-common-wal0.log" + }, + "main-resident-random-wal0": { + "key": "main-resident-random-wal0", + "profile": "main", + "regime": "resident", + "pattern": "random", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal0.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792007419429361804, + "inode": 26116965, + "allocated_bytes": 37408768 + }, + "sha256": "61b6513de7a5bc2bee5ea8de5e4f475dfefa9fe9afd5de49b2353066e11a4b1a", + "live_extents": 342, + "load": { + "version": "main", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.318", + "ops_s": "629687.1", + "p50_us": "0.696", + "p99_us": "3.552", + "p999_us": "6.592", + "max_us": "39049.718", + "mean_us": "1.431", + "cpu_s": "0.317", + "ops_per_cpu_s": "631881.6", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.318", + "drain_s": "0.126", + "total_s": "0.443", + "drain_cpu_s": "0.029", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.011", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-resident-random-wal0.log", + "space_log": "fixtures/space-main-resident-random-wal0.log" + }, + "candidate-resident-random-wal0": { + "key": "candidate-resident-random-wal0", + "profile": "candidate", + "regime": "resident", + "pattern": "random", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal0.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792007452620901550, + "inode": 26116971, + "allocated_bytes": 37408768 + }, + "sha256": "fd1e976b91a26f529f5d3f7a2341b16f0dd61f0166973da8ee0424907081ef84", + "live_extents": 342, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.293", + "ops_s": "681835.5", + "p50_us": "0.632", + "p99_us": "2.912", + "p999_us": "4.928", + "max_us": "42604.857", + "mean_us": "1.327", + "cpu_s": "0.293", + "ops_per_cpu_s": "681898.0", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.293", + "drain_s": "0.129", + "total_s": "0.422", + "drain_cpu_s": "0.028", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.010", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-random-wal0.log", + "space_log": "fixtures/space-candidate-resident-random-wal0.log" + }, + "main-resident-nonlexical-wal0": { + "key": "main-resident-nonlexical-wal0", + "profile": "main", + "regime": "resident", + "pattern": "nonlexical", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-nonlexical-wal0.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792007549963557870, + "inode": 26116981, + "allocated_bytes": 37408768 + }, + "sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "live_extents": 342, + "load": { + "version": "main", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.251", + "ops_s": "796925.8", + "p50_us": "0.600", + "p99_us": "2.720", + "p999_us": "4.800", + "max_us": "36833.475", + "mean_us": "1.204", + "cpu_s": "0.251", + "ops_per_cpu_s": "798132.4", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.251", + "drain_s": "0.129", + "total_s": "0.379", + "drain_cpu_s": "0.023", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.010", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-resident-nonlexical-wal0.log", + "space_log": "fixtures/space-main-resident-nonlexical-wal0.log" + }, + "candidate-resident-nonlexical-wal0": { + "key": "candidate-resident-nonlexical-wal0", + "profile": "candidate", + "regime": "resident", + "pattern": "nonlexical", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-nonlexical-wal0.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792007574943214393, + "inode": 26116987, + "allocated_bytes": 37408768 + }, + "sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "live_extents": 342, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.266", + "ops_s": "750987.7", + "p50_us": "0.632", + "p99_us": "2.848", + "p999_us": "4.928", + "max_us": "41285.393", + "mean_us": "1.277", + "cpu_s": "0.266", + "ops_per_cpu_s": "751207.6", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.266", + "drain_s": "0.143", + "total_s": "0.409", + "drain_cpu_s": "0.025", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.010", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-nonlexical-wal0.log", + "space_log": "fixtures/space-candidate-resident-nonlexical-wal0.log" + }, + "main-disk-common-wal0": { + "key": "main-disk-common-wal0", + "profile": "main", + "regime": "disk", + "pattern": "common", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-common-wal0.db", + "identity": { + "size": 3671330816, + "mtime_ns": 1792007652098156502, + "inode": 26116997, + "allocated_bytes": 833761280 + }, + "sha256": "dec5f2be82945a2752b28cc27276343ef7fab4af03af36a1c2d56a8cc0152d7a", + "live_extents": 3414, + "load": { + "version": "main", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "4.010", + "ops_s": "498727.1", + "p50_us": "0.680", + "p99_us": "1.872", + "p999_us": "8.832", + "max_us": "51402.315", + "mean_us": "1.943", + "cpu_s": "3.138", + "ops_per_cpu_s": "637446.9", + "rd_bytes": "345849856", + "wr_bytes": "752586752", + "rd_B_op": "172.92", + "wr_B_op": "376.29", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "4.010", + "drain_s": "0.235", + "total_s": "4.245", + "drain_cpu_s": "0.101", + "drain_rd": "46579712", + "drain_wr": "80932864", + "wamp": "2.5412", + "db_apparent": "3671330816", + "db_alloc": "833761280", + "open_s": "0.009", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-disk-common-wal0.log", + "space_log": "fixtures/space-main-disk-common-wal0.log" + }, + "candidate-disk-common-wal0": { + "key": "candidate-disk-common-wal0", + "profile": "candidate", + "regime": "disk", + "pattern": "common", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-common-wal0.db", + "identity": { + "size": 3250065408, + "mtime_ns": 1792007684809709246, + "inode": 26117003, + "allocated_bytes": 544198656 + }, + "sha256": "94cc9c3c0b4ecf1ed96ea3248119b7d092a7c33cf2c5751ecea3aa31c61b1b61", + "live_extents": 2585, + "load": { + "version": "candidate", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "3.844", + "ops_s": "520279.9", + "p50_us": "0.696", + "p99_us": "1.936", + "p999_us": "7.872", + "max_us": "41856.682", + "mean_us": "1.859", + "cpu_s": "3.156", + "ops_per_cpu_s": "633811.0", + "rd_bytes": "220692480", + "wr_bytes": "470503424", + "rd_B_op": "110.35", + "wr_B_op": "235.25", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "3.844", + "drain_s": "0.227", + "total_s": "4.071", + "drain_cpu_s": "0.102", + "drain_rd": "31875072", + "drain_wr": "73469952", + "wamp": "1.6585", + "db_apparent": "3250065408", + "db_alloc": "544198656", + "open_s": "0.013", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-disk-common-wal0.log", + "space_log": "fixtures/space-candidate-disk-common-wal0.log" + }, + "main-disk-random-wal0": { + "key": "main-disk-random-wal0", + "profile": "main", + "regime": "disk", + "pattern": "random", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-random-wal0.db", + "identity": { + "size": 3671592960, + "mtime_ns": 1792007768764564378, + "inode": 26117013, + "allocated_bytes": 833708032 + }, + "sha256": "0cfdb1bb3524e67d180e901b89b5db112353509ce4a1b18a296db3312c1b9353", + "live_extents": 3415, + "load": { + "version": "main", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "4.419", + "ops_s": "452591.1", + "p50_us": "0.664", + "p99_us": "1.840", + "p999_us": "8.832", + "max_us": "84283.057", + "mean_us": "2.037", + "cpu_s": "3.421", + "ops_per_cpu_s": "584605.1", + "rd_bytes": "347729920", + "wr_bytes": "748556288", + "rd_B_op": "173.86", + "wr_B_op": "374.28", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "4.419", + "drain_s": "0.321", + "total_s": "4.740", + "drain_cpu_s": "0.115", + "drain_rd": "46604288", + "drain_wr": "84901888", + "wamp": "2.5410", + "db_apparent": "3671592960", + "db_alloc": "833708032", + "open_s": "0.056", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-disk-random-wal0.log", + "space_log": "fixtures/space-main-disk-random-wal0.log" + }, + "candidate-disk-random-wal0": { + "key": "candidate-disk-random-wal0", + "profile": "candidate", + "regime": "disk", + "pattern": "random", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-random-wal0.db", + "identity": { + "size": 3671592960, + "mtime_ns": 1792007804536077772, + "inode": 26117019, + "allocated_bytes": 833789952 + }, + "sha256": "89cfb2d29cfb753c81867285e315cf6fa1ff347bf115264d8a3314c5dbe68fff", + "live_extents": 3415, + "load": { + "version": "candidate", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "4.565", + "ops_s": "438125.6", + "p50_us": "0.648", + "p99_us": "1.744", + "p999_us": "8.000", + "max_us": "87744.948", + "mean_us": "2.114", + "cpu_s": "3.522", + "ops_per_cpu_s": "567821.1", + "rd_bytes": "347389952", + "wr_bytes": "748695552", + "rd_B_op": "173.69", + "wr_B_op": "374.35", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "4.565", + "drain_s": "0.307", + "total_s": "4.872", + "drain_cpu_s": "0.138", + "drain_rd": "46288896", + "drain_wr": "84848640", + "wamp": "2.5413", + "db_apparent": "3671592960", + "db_alloc": "833789952", + "open_s": "0.064", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-disk-random-wal0.log", + "space_log": "fixtures/space-candidate-disk-random-wal0.log" + }, + "main-disk-nonlexical-wal0": { + "key": "main-disk-nonlexical-wal0", + "profile": "main", + "regime": "disk", + "pattern": "nonlexical", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-nonlexical-wal0.db", + "identity": { + "size": 3671461888, + "mtime_ns": 1792007891050903478, + "inode": 26117029, + "allocated_bytes": 833634304 + }, + "sha256": "24e07320763a98e7d8ef2e2c36272f1a13f309b5a0e0d01eec6dc0a5e7c7b14d", + "live_extents": 3414, + "load": { + "version": "main", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "4.576", + "ops_s": "437032.4", + "p50_us": "0.696", + "p99_us": "1.968", + "p999_us": "12.160", + "max_us": "77505.681", + "mean_us": "2.209", + "cpu_s": "3.450", + "ops_per_cpu_s": "579688.1", + "rd_bytes": "348377088", + "wr_bytes": "747790336", + "rd_B_op": "174.19", + "wr_B_op": "373.90", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "4.576", + "drain_s": "0.336", + "total_s": "4.913", + "drain_cpu_s": "0.142", + "drain_rd": "46260224", + "drain_wr": "85602304", + "wamp": "2.5408", + "db_apparent": "3671461888", + "db_alloc": "833634304", + "open_s": "0.029", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-disk-nonlexical-wal0.log", + "space_log": "fixtures/space-main-disk-nonlexical-wal0.log" + }, + "candidate-disk-nonlexical-wal0": { + "key": "candidate-disk-nonlexical-wal0", + "profile": "candidate", + "regime": "disk", + "pattern": "nonlexical", + "wal": 0, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-nonlexical-wal0.db", + "identity": { + "size": 3671461888, + "mtime_ns": 1792007925574435800, + "inode": 26117035, + "allocated_bytes": 834351104 + }, + "sha256": "a20e0ea73c5fd2bcd76bd881d8454ed33499cfeac1f7eb57c6d3a94e3ce44532", + "live_extents": 3414, + "load": { + "version": "candidate", + "size": "disk", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "2000000", + "ops": "2000000", + "secs": "4.508", + "ops_s": "443658.3", + "p50_us": "0.696", + "p99_us": "2.080", + "p999_us": "12.928", + "max_us": "76941.355", + "mean_us": "2.176", + "cpu_s": "3.470", + "ops_per_cpu_s": "576378.7", + "rd_bytes": "345686016", + "wr_bytes": "752422912", + "rd_B_op": "172.84", + "wr_B_op": "376.21", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "4.508", + "drain_s": "0.339", + "total_s": "4.847", + "drain_cpu_s": "0.143", + "drain_rd": "46575616", + "drain_wr": "81694720", + "wamp": "2.5430", + "db_apparent": "3671461888", + "db_alloc": "834351104", + "open_s": "0.027", + "violations": "0", + "errors": "0", + "swapin": "1", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-disk-nonlexical-wal0.log", + "space_log": "fixtures/space-candidate-disk-nonlexical-wal0.log" + }, + "candidate-resident-common-wal0-disabled": { + "key": "candidate-resident-common-wal0-disabled", + "profile": "candidate", + "regime": "resident", + "pattern": "common", + "wal": 0, + "disabled": true, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0-disabled.db", + "identity": { + "size": 237375488, + "mtime_ns": 1792008038092914694, + "inode": 26117047, + "allocated_bytes": 37408768 + }, + "sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "live_extents": 342, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "0", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.270", + "ops_s": "741416.0", + "p50_us": "0.664", + "p99_us": "2.912", + "p999_us": "5.184", + "max_us": "39839.759", + "mean_us": "1.306", + "cpu_s": "0.270", + "ops_per_cpu_s": "742040.7", + "rd_bytes": "0", + "wr_bytes": "0", + "rd_B_op": "0.00", + "wr_B_op": "0.00", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.270", + "drain_s": "0.156", + "total_s": "0.425", + "drain_cpu_s": "0.028", + "drain_rd": "0", + "drain_wr": "37261312", + "wamp": "1.1360", + "db_apparent": "237375488", + "db_alloc": "37408768", + "open_s": "0.030", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-common-wal0-disabled.log", + "space_log": "fixtures/space-candidate-resident-common-wal0-disabled.log" + }, + "main-resident-common-wal1": { + "key": "main-resident-common-wal1", + "profile": "main", + "regime": "resident", + "pattern": "common", + "wal": 1, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal1.db", + "identity": { + "size": 277090304, + "mtime_ns": 1792008214726534715, + "inode": 26117077, + "allocated_bytes": 76468224 + }, + "sha256": "856cb8b26a6a90a57c1a5dd1452889f50403360304aba11e61052b4ce625390a", + "live_extents": 347, + "load": { + "version": "main", + "size": "resident", + "order": "0", + "log": "1", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.589", + "ops_s": "339480.5", + "p50_us": "0.776", + "p99_us": "26.368", + "p999_us": "65.024", + "max_us": "60585.007", + "mean_us": "2.901", + "cpu_s": "0.420", + "ops_per_cpu_s": "476204.1", + "rd_bytes": "0", + "wr_bytes": "39043072", + "rd_B_op": "0.00", + "wr_B_op": "195.22", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.589", + "drain_s": "0.117", + "total_s": "0.706", + "drain_cpu_s": "0.030", + "drain_rd": "0", + "drain_wr": "37269504", + "wamp": "2.3266", + "db_apparent": "277090304", + "db_alloc": "76468224", + "open_s": "0.032", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-resident-common-wal1.log", + "space_log": "fixtures/space-main-resident-common-wal1.log" + }, + "candidate-resident-common-wal1": { + "key": "candidate-resident-common-wal1", + "profile": "candidate", + "regime": "resident", + "pattern": "common", + "wal": 1, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal1.db", + "identity": { + "size": 247074816, + "mtime_ns": 1792008225726386764, + "inode": 26117083, + "allocated_bytes": 65187840 + }, + "sha256": "30d7a46071ee083cf56fee4dc1a28135ad39412918fb7e51b093f49bddf178aa", + "live_extents": 261, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "1", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.562", + "ops_s": "356121.9", + "p50_us": "0.792", + "p99_us": "24.320", + "p999_us": "65.024", + "max_us": "43529.684", + "mean_us": "2.765", + "cpu_s": "0.408", + "ops_per_cpu_s": "490252.6", + "rd_bytes": "0", + "wr_bytes": "39043072", + "rd_B_op": "0.00", + "wr_B_op": "195.22", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.562", + "drain_s": "0.096", + "total_s": "0.657", + "drain_cpu_s": "0.028", + "drain_rd": "0", + "drain_wr": "25989120", + "wamp": "1.9827", + "db_apparent": "247074816", + "db_alloc": "65187840", + "open_s": "0.038", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-common-wal1.log", + "space_log": "fixtures/space-candidate-resident-common-wal1.log" + }, + "main-resident-random-wal1": { + "key": "main-resident-random-wal1", + "profile": "main", + "regime": "resident", + "pattern": "random", + "wal": 1, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal1.db", + "identity": { + "size": 277090304, + "mtime_ns": 1792008256825968605, + "inode": 26117095, + "allocated_bytes": 76468224 + }, + "sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "live_extents": 347, + "load": { + "version": "main", + "size": "resident", + "order": "0", + "log": "1", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.734", + "ops_s": "272463.6", + "p50_us": "1.016", + "p99_us": "32.000", + "p999_us": "76.800", + "max_us": "55309.314", + "mean_us": "3.491", + "cpu_s": "0.547", + "ops_per_cpu_s": "365573.2", + "rd_bytes": "0", + "wr_bytes": "39043072", + "rd_B_op": "0.00", + "wr_B_op": "195.22", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.734", + "drain_s": "0.122", + "total_s": "0.856", + "drain_cpu_s": "0.032", + "drain_rd": "0", + "drain_wr": "37269504", + "wamp": "2.3266", + "db_apparent": "277090304", + "db_alloc": "76468224", + "open_s": "0.035", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "load_log": "fixtures/load-main-resident-random-wal1.log", + "space_log": "fixtures/space-main-resident-random-wal1.log" + }, + "candidate-resident-random-wal1": { + "key": "candidate-resident-random-wal1", + "profile": "candidate", + "regime": "resident", + "pattern": "random", + "wal": 1, + "disabled": false, + "path": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal1.db", + "identity": { + "size": 277090304, + "mtime_ns": 1792008268173816076, + "inode": 26115666, + "allocated_bytes": 76468224 + }, + "sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "live_extents": 347, + "load": { + "version": "candidate", + "size": "resident", + "order": "0", + "log": "1", + "phase": "load:random@1", + "threads": "1", + "rep": "0", + "n": "200000", + "ops": "200000", + "secs": "0.587", + "ops_s": "340970.8", + "p50_us": "0.792", + "p99_us": "24.832", + "p999_us": "62.976", + "max_us": "43972.900", + "mean_us": "2.788", + "cpu_s": "0.439", + "ops_per_cpu_s": "455774.0", + "rd_bytes": "0", + "wr_bytes": "39043072", + "rd_B_op": "0.00", + "wr_B_op": "195.22", + "startup_p50_us": "nan", + "startup_p99_us": "nan", + "startup_mean_us": "nan", + "per_tuple_ns": "nan", + "deinit_mean_us": "nan", + "tuples": "0", + "tuples_s": "0.0", + "insert_s": "0.587", + "drain_s": "0.108", + "total_s": "0.695", + "drain_cpu_s": "0.030", + "drain_rd": "0", + "drain_wr": "37269504", + "wamp": "2.3266", + "db_apparent": "277090304", + "db_alloc": "76468224", + "open_s": "0.032", + "violations": "0", + "errors": "0", + "swapin": "0", + "swapout": "0", + "majflt": "0" + }, + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "load_log": "fixtures/load-candidate-resident-random-wal1.log", + "space_log": "fixtures/space-candidate-resident-random-wal1.log" + } +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-common-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-common-wal0.csv new file mode 100644 index 000000000..5270c2b55 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-common-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,0,0,load:random@1,1,0,2000000,2000000,3.844,520279.9,0.696,1.936,7.872,41856.682,1.859,3.156,633811.0,220692480,470503424,110.35,235.25,nan,nan,nan,nan,nan,0,0.0,3.844,0.227,4.071,0.102,31875072,73469952,1.6585,3250065408,544198656,0.013,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-nonlexical-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-nonlexical-wal0.csv new file mode 100644 index 000000000..2d3161cab --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-nonlexical-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,0,0,load:random@1,1,0,2000000,2000000,4.508,443658.3,0.696,2.080,12.928,76941.355,2.176,3.470,576378.7,345686016,752422912,172.84,376.21,nan,nan,nan,nan,nan,0,0.0,4.508,0.339,4.847,0.143,46575616,81694720,2.5430,3671461888,834351104,0.027,0,0,1,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-random-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-random-wal0.csv new file mode 100644 index 000000000..0bdf87f1f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-random-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,0,0,load:random@1,1,0,2000000,2000000,4.565,438125.6,0.648,1.744,8.000,87744.948,2.114,3.522,567821.1,347389952,748695552,173.69,374.35,nan,nan,nan,nan,nan,0,0.0,4.565,0.307,4.872,0.138,46288896,84848640,2.5413,3671592960,833789952,0.064,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0-disabled.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0-disabled.csv new file mode 100644 index 000000000..15155c88c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0-disabled.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,0,load:random@1,1,0,200000,200000,0.270,741416.0,0.664,2.912,5.184,39839.759,1.306,0.270,742040.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.270,0.156,0.425,0.028,0,37261312,1.1360,237375488,37408768,0.030,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0.csv new file mode 100644 index 000000000..111e11529 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,0,load:random@1,1,0,200000,200000,0.242,826551.8,0.584,2.592,5.184,39375.946,1.172,0.242,826856.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.242,0.104,0.346,0.023,0,25980928,0.7921,207360000,26128384,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal1.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal1.csv new file mode 100644 index 000000000..a4371f7ea --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal1.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,1,load:random@1,1,0,200000,200000,0.562,356121.9,0.792,24.320,65.024,43529.684,2.765,0.408,490252.6,0,39043072,0.00,195.22,nan,nan,nan,nan,nan,0,0.0,0.562,0.096,0.657,0.028,0,25989120,1.9827,247074816,65187840,0.038,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-nonlexical-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-nonlexical-wal0.csv new file mode 100644 index 000000000..7671e2174 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-nonlexical-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,0,load:random@1,1,0,200000,200000,0.266,750987.7,0.632,2.848,4.928,41285.393,1.277,0.266,751207.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.266,0.143,0.409,0.025,0,37261312,1.1360,237375488,37408768,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal0.csv new file mode 100644 index 000000000..1ae8686c2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,0,load:random@1,1,0,200000,200000,0.293,681835.5,0.632,2.912,4.928,42604.857,1.327,0.293,681898.0,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.293,0.129,0.422,0.028,0,37261312,1.1360,237375488,37408768,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal1.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal1.csv new file mode 100644 index 000000000..a24b963f2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal1.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,0,1,load:random@1,1,0,200000,200000,0.587,340970.8,0.792,24.832,62.976,43972.900,2.788,0.439,455774.0,0,39043072,0.00,195.22,nan,nan,nan,nan,nan,0,0.0,0.587,0.108,0.695,0.030,0,37269504,2.3266,277090304,76468224,0.032,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-common-wal0.log new file mode 100644 index 000000000..7a3e041a1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-common-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-common-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.013 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 205 +max: 41855941 +mean: 1799 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +156771 <= 500 +1677168 <= 1000 +163575 <= 5000 +677 <= 10000 +170 <= 100000 +869 <= 500000 +379 <= 1000000 +298 <= 5000000 +44 <= 10000000 +49 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 924910 | 1024604 | 18690604 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 2960 | 112 | 20269 | 20618 | 7039880 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 1670181.7400 | 16058975 | 0 | +| 2 | 56 | 1591981.9821 | 18360824 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 37829.1414 | 330.8451 | 29529.8182 | 181667 | 41850789 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 21149.3171 | 169.3194 | 6677.2049 | 13612 | 3779721 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 7210.9308 | 121.5139 | 9254.1538 | 11527 | 3189770 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 18.4452 | 4030036 | 0 | 0 | 0.0000 | +| 1 | 205 | 21.8927 | 1083864 | 0 | 0 | 0.0000 | +| 2 | 130 | 22.2647 | 852885 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 8290162.3333 | 14649889 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 20801362 +| max runtime func : 0x5573f67af4d0 +| total queue_wait_time (ns) : 106841 +| max queue_wait_time (ns) : 2061 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 41854082 +| max runtime func : 0x5573f6782d20 +| total queue_wait_time (ns) : 8136791916 +| max queue_wait_time (ns) : 124456625 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4944 | 202947 | 6784388 | 25188 | 0 | 0 | +cache misses | 8 | 5800 | 0 | 74 | 0 | 0 | +cache miss time | 0.00s | 0.27s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 33 | 107371 | 26 | 7447 | 0 | 0 | +pages read | 8 | 52204 | 0 | 5336 | 0 | 0 | +avg prefetch pg | -nan | 22.56 | -nan | 31.89 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 25.05 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 2547 extents (~318.37 MiB) | +| Max Allocated: 2750 extents (~343.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 13276 | 11040 | 2236 (~279.50 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1811 | 1632 | 179 (~22.37 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 2544 extents (318 MiB) + +close took 0.227 s +== load:random@1 T=1 ops=2000000 secs= 3.84 ops/s= 520280 lat us p50=0.70 p99=1.94 p99.9=7.87 max=41856.7 mean=1.86 + cpu=3.16s ops/cpu-s=633811 rd=110.3 B/op wr=235.3 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=3.84s drain(close)=0.23s total=4.07s drain_cpu=0.10s drain_rd=31875072 drain_wr=73469952 wamp=1.658 db_apparent=3250065408 db_alloc=544198656 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-nonlexical-wal0.log new file mode 100644 index 000000000..20cbc3dc9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-nonlexical-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-nonlexical-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.027 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 197 +max: 76940553 +mean: 2112 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +221492 <= 500 +1585156 <= 1000 +190587 <= 5000 +693 <= 10000 +325 <= 100000 +974 <= 500000 +330 <= 1000000 +332 <= 5000000 +31 <= 10000000 +80 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 1599667 | 1707361 | 28343740 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 3307 | 114 | 20269 | 20618 | 8770275 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 2956905.7200 | 25637738 | 0 | +| 2 | 56 | 2764748.5536 | 27907706 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 187914.6162 | 449.4584 | 29530.7879 | 181667 | 76935955 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 65390.3073 | 210.9843 | 6677.1317 | 13595 | 12426353 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 23773.6308 | 168.7054 | 9254.3923 | 11527 | 5247880 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 20.9599 | 5345623 | 0 | 0 | 0.0000 | +| 1 | 205 | 24.1121 | 2073044 | 0 | 0 | 0.0000 | +| 2 | 130 | 27.6211 | 1780511 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 14190836.8333 | 24528849 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 31733003 +| max runtime func : 0x55dad70854d0 +| total queue_wait_time (ns) : 133663 +| max queue_wait_time (ns) : 2510 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 76939076 +| max runtime func : 0x55dad7058d20 +| total queue_wait_time (ns) : 10821123118 +| max queue_wait_time (ns) : 186679122 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4920 | 276849 | 6784388 | 25188 | 0 | 0 | +cache misses | 32 | 6935 | 0 | 75 | 0 | 0 | +cache miss time | 0.00s | 0.45s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 65 | 175687 | 42 | 7911 | 0 | 0 | +pages read | 32 | 83681 | 0 | 5367 | 0 | 0 | +avg prefetch pg | -nan | 24.71 | -nan | 31.88 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 26.60 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3376 extents (422 MiB) | +| Max Allocated: 3668 extents (~458.50 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 16385 | 13320 | 3065 (~383.12 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1812 | 1633 | 179 (~22.37 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 3373 extents (~421.62 MiB) + +close took 0.339 s +== load:random@1 T=1 ops=2000000 secs= 4.51 ops/s= 443658 lat us p50=0.70 p99=2.08 p99.9=12.93 max=76941.4 mean=2.18 + cpu=3.47s ops/cpu-s=576379 rd=172.8 B/op wr=376.2 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + insert/run=4.51s drain(close)=0.34s total=4.85s drain_cpu=0.14s drain_rd=46575616 drain_wr=81694720 wamp=2.543 db_apparent=3671461888 db_alloc=834351104 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-random-wal0.log new file mode 100644 index 000000000..2a1383dec --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-disk-random-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-random-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.064 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 210 +max: 87744207 +mean: 2055 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +293274 <= 500 +1558209 <= 1000 +146027 <= 5000 +581 <= 10000 +182 <= 100000 +1000 <= 500000 +257 <= 1000000 +357 <= 5000000 +38 <= 10000000 +75 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 1525946 | 1626916 | 30036851 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 3025 | 119 | 20269 | 20618 | 7103260 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 2795924.8400 | 25267357 | 0 | +| 2 | 56 | 2638331.7143 | 29636957 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 185642.6667 | 450.5565 | 29530.7879 | 181667 | 87739942 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 63490.0146 | 213.5971 | 6677.1317 | 13595 | 8180876 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 32073.6385 | 193.3096 | 9254.3923 | 11527 | 6550813 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 20.3712 | 4753062 | 0 | 0 | 0.0000 | +| 1 | 205 | 22.3683 | 2021895 | 0 | 0 | 0.0000 | +| 2 | 130 | 26.4586 | 2031840 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 13408496.8333 | 22922875 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 37141079 +| max runtime func : 0x5590d60614d0 +| total queue_wait_time (ns) : 115220 +| max queue_wait_time (ns) : 2029 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 87742910 +| max runtime func : 0x5590d6034d20 +| total queue_wait_time (ns) : 10673608690 +| max queue_wait_time (ns) : 176070305 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4925 | 276821 | 6784388 | 25189 | 0 | 0 | +cache misses | 27 | 6963 | 0 | 75 | 0 | 0 | +cache miss time | 0.00s | 0.45s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 56 | 174835 | 42 | 7862 | 0 | 0 | +pages read | 27 | 84103 | 0 | 5342 | 0 | 0 | +avg prefetch pg | -nan | 24.50 | -nan | 31.73 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 26.65 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3377 extents (~422.12 MiB) | +| Max Allocated: 3669 extents (~458.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 16385 | 13320 | 3065 (~383.12 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1813 | 1633 | 180 (~22.50 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 3374 extents (~421.75 MiB) + +close took 0.307 s +== load:random@1 T=1 ops=2000000 secs= 4.56 ops/s= 438126 lat us p50=0.65 p99=1.74 p99.9=8.00 max=87744.9 mean=2.11 + cpu=3.52s ops/cpu-s=567821 rd=173.7 B/op wr=374.3 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=4.56s drain(close)=0.31s total=4.87s drain_cpu=0.14s drain_rd=46288896 drain_wr=84848640 wamp=2.541 db_apparent=3671592960 db_alloc=833789952 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0-disabled.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0-disabled.log new file mode 100644 index 000000000..7734f7264 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0-disabled.log @@ -0,0 +1,188 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0-disabled.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.030 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 192 +max: 39839140 +mean: 1248 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +27621 <= 500 +156491 <= 1000 +15703 <= 5000 +125 <= 10000 +30 <= 100000 +4 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 17292 | 103426 | 133674 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3184 | 111 | 20326 | 20507 | 2426877 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 54279.3333 | 179.1720 | 38375.2222 | 182940 | 39835564 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 17.3103 | 3039660 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 37710.0000 | 37710 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2529882 +| max runtime func : 0x55ceedd684d0 +| total queue_wait_time (ns) : 9849 +| max queue_wait_time (ns) : 2326 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 39838057 +| max runtime func : 0x55ceedd3bd20 +| total queue_wait_time (ns) : 779432 +| max queue_wait_time (ns) : 91599 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.156 s +== load:random@1 T=1 ops=200000 secs= 0.27 ops/s= 741416 lat us p50=0.66 p99=2.91 p99.9=5.18 max=39839.8 mean=1.31 + cpu=0.27s ops/cpu-s=742041 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.27s drain(close)=0.16s total=0.43s drain_cpu=0.03s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0.log new file mode 100644 index 000000000..54de24711 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 162 +max: 39375372 +mean: 1120 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +73951 <= 500 +110193 <= 1000 +15653 <= 5000 +73 <= 10000 +100 <= 100000 +4 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 12064 | 86981 | 119429 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 2523 | 86 | 20326 | 20507 | 1978144 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 51449.6667 | 168.2817 | 38375.2222 | 182940 | 39372063 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 14.9931 | 2675562 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 34772.0000 | 34772 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2061776 +| max runtime func : 0x55c8c083c4d0 +| total queue_wait_time (ns) : 7835 +| max queue_wait_time (ns) : 1397 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 39374392 +| max runtime func : 0x55c8c080fd20 +| total queue_wait_time (ns) : 678109 +| max queue_wait_time (ns) : 77826 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 11452 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 279 extents (~34.87 MiB) | +| Max Allocated: 454 extents (~56.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 714 | 535 | 179 (~22.37 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 276 extents (~34.50 MiB) + +close took 0.104 s +== load:random@1 T=1 ops=200000 secs= 0.24 ops/s= 826552 lat us p50=0.58 p99=2.59 p99.9=5.18 max=39375.9 mean=1.17 + cpu=0.24s ops/cpu-s=826856 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.24s drain(close)=0.10s total=0.35s drain_cpu=0.02s drain_rd=0 drain_wr=25980928 wamp=0.792 db_apparent=207360000 db_alloc=26128384 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal1.log new file mode 100644 index 000000000..ac9549ba0 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-common-wal1.log @@ -0,0 +1,188 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal1.db mode=create n=200000 cache_mib=128 disk_gib=8 log=1 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.038 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 236 +max: 43528926 +mean: 2701 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +5105 <= 500 +162949 <= 1000 +21909 <= 5000 +415 <= 10000 +9521 <= 100000 +66 <= 500000 +1 <= 1000000 +33 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 16557 | 107677 | 150193 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3687 | 97 | 20326 | 20507 | 2297397 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 68967.7778 | 187.4469 | 38375.2222 | 182940 | 43523269 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 18.2601 | 3352660 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 38299.0000 | 38299 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2410964 +| max runtime func : 0x56435565c4d0 +| total queue_wait_time (ns) : 14240 +| max queue_wait_time (ns) : 3266 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 43526402 +| max runtime func : 0x56435562fd20 +| total queue_wait_time (ns) : 822364 +| max queue_wait_time (ns) : 99733 +| total tasks enqueued : 27 consumed=864 bytes (864 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 27 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 11452 | 670082 | 1666 | 298 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 9533 | 0 | +pages read | 0 | 190 | 0 | 66 | 0 | 0 | +avg prefetch pg | -nan | 23.75 | -nan | 16.50 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 1.80 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 582 extents (~72.75 MiB) | +| Max Allocated: 732 extents (~91.50 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 714 | 535 | 179 (~22.37 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 300 | 0 | 300 (~37.50 MiB)| +| blob | 96 | 81 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 579 extents (~72.37 MiB) + +close took 0.096 s +== load:random@1 T=1 ops=200000 secs= 0.56 ops/s= 356122 lat us p50=0.79 p99=24.32 p99.9=65.02 max=43529.7 mean=2.76 + cpu=0.41s ops/cpu-s=490253 rd=0.0 B/op wr=195.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.56s drain(close)=0.10s total=0.66s drain_cpu=0.03s drain_rd=0 drain_wr=25989120 wamp=1.983 db_apparent=247074816 db_alloc=65187840 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-nonlexical-wal0.log new file mode 100644 index 000000000..385279f1f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-nonlexical-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-nonlexical-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.010 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 182 +max: 41284633 +mean: 1218 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +38747 <= 500 +145460 <= 1000 +15646 <= 5000 +90 <= 10000 +30 <= 100000 +1 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 14671 | 100090 | 129223 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 2661 | 105 | 20326 | 20507 | 2467349 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 51872.3333 | 181.1192 | 38375.2222 | 182940 | 41281031 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 17.4888 | 3211967 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 35804.0000 | 35804 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2584440 +| max runtime func : 0x557ee96794d0 +| total queue_wait_time (ns) : 7784 +| max queue_wait_time (ns) : 1267 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 41283390 +| max runtime func : 0x557ee964cd20 +| total queue_wait_time (ns) : 773856 +| max queue_wait_time (ns) : 88497 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.143 s +== load:random@1 T=1 ops=200000 secs= 0.27 ops/s= 750988 lat us p50=0.63 p99=2.85 p99.9=4.93 max=41285.4 mean=1.28 + cpu=0.27s ops/cpu-s=751208 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.27s drain(close)=0.14s total=0.41s drain_cpu=0.03s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal0.log new file mode 100644 index 000000000..f261a88c3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.010 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 187 +max: 42604162 +mean: 1267 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +35896 <= 500 +147525 <= 1000 +16426 <= 5000 +109 <= 10000 +14 <= 100000 +4 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 16511 | 103982 | 154909 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3034 | 120 | 20326 | 20507 | 2660904 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 40415.2222 | 192.9618 | 38375.2222 | 182940 | 42600429 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 16.8762 | 3020545 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 52178.0000 | 52178 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2815846 +| max runtime func : 0x5625040f44d0 +| total queue_wait_time (ns) : 10604 +| max queue_wait_time (ns) : 2613 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 42603187 +| max runtime func : 0x5625040c7d20 +| total queue_wait_time (ns) : 791445 +| max queue_wait_time (ns) : 89527 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.129 s +== load:random@1 T=1 ops=200000 secs= 0.29 ops/s= 681835 lat us p50=0.63 p99=2.91 p99.9=4.93 max=42604.9 mean=1.33 + cpu=0.29s ops/cpu-s=681898 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.29s drain(close)=0.13s total=0.42s drain_cpu=0.03s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal1.log new file mode 100644 index 000000000..659246b74 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-candidate-resident-random-wal1.log @@ -0,0 +1,188 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal1.db mode=create n=200000 cache_mib=128 disk_gib=8 log=1 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.032 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 234 +max: 43972287 +mean: 2720 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +7004 <= 500 +161711 <= 1000 +21336 <= 5000 +360 <= 10000 +9518 <= 100000 +35 <= 500000 +2 <= 1000000 +32 <= 5000000 +1 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 16904 | 113944 | 148329 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3600 | 117 | 20326 | 20507 | 3282474 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 48140.3333 | 203.6148 | 38375.2222 | 182940 | 43967481 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 19.3876 | 3196780 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 39689.0000 | 39689 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 3422614 +| max runtime func : 0x55ccf53374d0 +| total queue_wait_time (ns) : 14507 +| max queue_wait_time (ns) : 3008 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 43971035 +| max runtime func : 0x55ccf530ad20 +| total queue_wait_time (ns) : 882306 +| max queue_wait_time (ns) : 121047 +| total tasks enqueued : 27 consumed=864 bytes (864 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 27 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 298 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 9533 | 0 | +pages read | 0 | 102 | 0 | 64 | 0 | 0 | +avg prefetch pg | -nan | 12.75 | -nan | 16.00 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 1.80 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 661 extents (~82.62 MiB) | +| Max Allocated: 883 extents (~110.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 300 | 0 | 300 (~37.50 MiB)| +| blob | 96 | 81 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 658 extents (~82.25 MiB) + +close took 0.108 s +== load:random@1 T=1 ops=200000 secs= 0.59 ops/s= 340971 lat us p50=0.79 p99=24.83 p99.9=62.98 max=43972.9 mean=2.79 + cpu=0.44s ops/cpu-s=455774 rd=0.0 B/op wr=195.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.59s drain(close)=0.11s total=0.69s drain_cpu=0.03s drain_rd=0 drain_wr=37269504 wamp=2.327 db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-common-wal0.log new file mode 100644 index 000000000..c3c07da59 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-common-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-common-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.009 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 197 +max: 51401579 +mean: 1884 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +192697 <= 500 +1644345 <= 1000 +160492 <= 5000 +511 <= 10000 +231 <= 100000 +994 <= 500000 +318 <= 1000000 +309 <= 5000000 +42 <= 10000000 +61 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 1193141 | 1305929 | 21955383 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 3097 | 111 | 20269 | 20618 | 7195982 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 2181980.9400 | 17910350 | 0 | +| 2 | 56 | 2057365.0714 | 21315024 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 107877.2323 | 366.9565 | 29530.7879 | 181667 | 51397211 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 45494.9756 | 186.6014 | 6677.1317 | 13595 | 8030450 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 13206.2231 | 160.6334 | 9254.3923 | 11527 | 5349398 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 19.1381 | 4450745 | 0 | 0 | 0.0000 | +| 1 | 205 | 20.7424 | 1206070 | 0 | 0 | 0.0000 | +| 2 | 130 | 24.9556 | 1216383 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 10679124.8333 | 17079935 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 25878420 +| max runtime func : 0x55feaeb11b50 +| total queue_wait_time (ns) : 117541 +| max queue_wait_time (ns) : 1878 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 51400173 +| max runtime func : 0x55feaeae7d60 +| total queue_wait_time (ns) : 8897135915 +| max queue_wait_time (ns) : 144510519 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4922 | 276833 | 6784388 | 25184 | 0 | 0 | +cache misses | 30 | 6951 | 0 | 78 | 0 | 0 | +cache miss time | 0.00s | 0.33s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 61 | 175723 | 42 | 7919 | 0 | 0 | +pages read | 30 | 83676 | 0 | 5411 | 0 | 0 | +avg prefetch pg | -nan | 24.58 | -nan | 31.74 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 26.65 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3376 extents (422 MiB) | +| Max Allocated: 3668 extents (~458.50 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 16385 | 13320 | 3065 (~383.12 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1811 | 1632 | 179 (~22.37 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 3373 extents (~421.62 MiB) + +close took 0.235 s +== load:random@1 T=1 ops=2000000 secs= 4.01 ops/s= 498727 lat us p50=0.68 p99=1.87 p99.9=8.83 max=51402.3 mean=1.94 + cpu=3.14s ops/cpu-s=637447 rd=172.9 B/op wr=376.3 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=4.01s drain(close)=0.23s total=4.25s drain_cpu=0.10s drain_rd=46579712 drain_wr=80932864 wamp=2.541 db_apparent=3671330816 db_alloc=833761280 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-nonlexical-wal0.log new file mode 100644 index 000000000..4e67146eb --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-nonlexical-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-nonlexical-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.029 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 183 +max: 77504947 +mean: 2145 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +215711 <= 500 +1616048 <= 1000 +165525 <= 5000 +673 <= 10000 +252 <= 100000 +1046 <= 500000 +310 <= 1000000 +314 <= 5000000 +43 <= 10000000 +78 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 1582478 | 1694879 | 26252296 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 3240 | 109 | 20269 | 20618 | 6827713 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 2915876.4600 | 23173643 | 0 | +| 2 | 56 | 2735261.0536 | 25850495 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 251149.9293 | 470.0697 | 29530.7879 | 181667 | 77500590 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 61764.5902 | 218.2851 | 6677.1317 | 13595 | 16228811 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 32927.4923 | 186.1459 | 9254.3923 | 11527 | 6602139 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 21.1989 | 5339582 | 0 | 0 | 0.0000 | +| 1 | 205 | 23.6504 | 2910807 | 0 | 0 | 0.0000 | +| 2 | 130 | 27.1975 | 1928095 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 13225657.3333 | 20924628 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 29072557 +| max runtime func : 0x55dbf1d90b50 +| total queue_wait_time (ns) : 130672 +| max queue_wait_time (ns) : 2437 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 77503747 +| max runtime func : 0x55dbf1d66d60 +| total queue_wait_time (ns) : 11270631563 +| max queue_wait_time (ns) : 179695147 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4924 | 276767 | 6784388 | 25187 | 0 | 0 | +cache misses | 28 | 7017 | 0 | 76 | 0 | 0 | +cache miss time | 0.00s | 0.48s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 63 | 174607 | 42 | 7862 | 0 | 0 | +pages read | 28 | 84371 | 0 | 5334 | 0 | 0 | +avg prefetch pg | -nan | 24.53 | -nan | 31.67 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 26.64 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3376 extents (422 MiB) | +| Max Allocated: 3668 extents (~458.50 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 16385 | 13320 | 3065 (~383.12 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1812 | 1633 | 179 (~22.37 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 3373 extents (~421.62 MiB) + +close took 0.336 s +== load:random@1 T=1 ops=2000000 secs= 4.58 ops/s= 437032 lat us p50=0.70 p99=1.97 p99.9=12.16 max=77505.7 mean=2.21 + cpu=3.45s ops/cpu-s=579688 rd=174.2 B/op wr=373.9 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=4.58s drain(close)=0.34s total=4.91s drain_cpu=0.14s drain_rd=46260224 drain_wr=85602304 wamp=2.541 db_apparent=3671461888 db_alloc=833634304 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-random-wal0.log new file mode 100644 index 000000000..f06af6275 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-disk-random-wal0.log @@ -0,0 +1,206 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-random-wal0.db mode=create n=2000000 cache_mib=64 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.056 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 2000000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 202 +max: 84282286 +mean: 1977 +count: 2000000 +0 <= 1 +0 <= 10 +0 <= 100 +290576 <= 500 +1550312 <= 1000 +156562 <= 5000 +601 <= 10000 +191 <= 100000 +981 <= 500000 +348 <= 1000000 +320 <= 5000000 +41 <= 10000000 +68 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 1354999 | 1463024 | 24937126 | 98 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 98 | 3066 | 113 | 20269 | 20618 | 8218412 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|----|-----|-----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 0.0000 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 3.8596 | 0 | 0 | 0 | 135 | 168 | 21 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.3945 | 0 | 432 | 14 | 29 | 18 | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +----------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|-----|-----|----|----|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.5303 | 99 | 9 | 10 | 46 | 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.5337 | 83 | 0 | 273 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 0.8105 | 97 | 415 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------- +Bundle size distribution +--------------------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|-----|-----|-----|-----|----|----|----|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 2.2374 | 45 | 56 | 21 | 20 | 20 | 18 | 12 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1730 | 1.2156 | 777 | 320 | 285 | 228 | 85 | 22 | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 1226 | 0.7602 | 708 | 324 | 81 | 33 | 54 | 25 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Node size distribution +------------------------------------------------------------------------------------------------------------ +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|-----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 198 | 1.0000 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 356 | 1.0000 | 0 | 356 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 512 | 1.0000 | 0 | 512 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------ +Incorporation footprint distribution +----------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|----|---|----|---|---|---|---|---|---|----|----|----|----|----|-------| +| 98 | 2.5102 | 0 | 41 | 6 | 46 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 50 | 2456095.4200 | 21083429 | 0 | +| 2 | 56 | 2329507.2321 | 24555383 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 99 | 148746.2222 | 409.4604 | 29530.7879 | 181667 | 84277515 | 0 | 0 | 0 | 0.0000 | +| 1 | 205 | 68143.0244 | 199.8597 | 6677.1317 | 13595 | 9526050 | 0 | 0 | 0 | 0.0000 | +| 2 | 130 | 24514.8154 | 166.9841 | 9254.3923 | 11527 | 5321362 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 99 | 19.7314 | 4435356 | 0 | 0 | 0.0000 | +| 1 | 205 | 23.6289 | 2557611 | 0 | 0 | 0.0000 | +| 2 | 130 | 26.8545 | 2073647 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 6 | 38 | +| 5 | 5 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 11715397.3333 | 19935352 | 55 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 32088713 +| max runtime func : 0x564ee8c3bb50 +| total queue_wait_time (ns) : 125584 +| max queue_wait_time (ns) : 4928 +| total tasks enqueued : 98 consumed=3136 bytes (~3.06 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 98 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 84280811 +| max runtime func : 0x564ee8c11d60 +| total queue_wait_time (ns) : 9820815701 +| max queue_wait_time (ns) : 160055585 +| total tasks enqueued : 868 consumed=27776 bytes (~27.12 KiB) of memory +| total bg tasks run : 0 +| total fg tasks run : 868 +| current waiting tasks : 0 +| max outstanding tasks : 18 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 4920 | 276791 | 6784388 | 25189 | 0 | 0 | +cache misses | 32 | 6993 | 0 | 75 | 0 | 0 | +cache miss time | 0.00s | 0.38s | 0.00s | 0.01s | 0.00s | 0.00s | +pages written | 68 | 174752 | 43 | 7898 | 0 | 0 | +pages read | 32 | 84192 | 0 | 5409 | 0 | 0 | +avg prefetch pg | -nan | 24.55 | -nan | 31.75 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 26.60 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3377 extents (~422.12 MiB) | +| Max Allocated: 3669 extents (~458.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 1066 | 1020 | 46 (~5.75 MiB)| +| branch | 16385 | 13320 | 3065 (~383.12 MiB)| +| memtable | 6049 | 5978 | 71 (~8.87 MiB)| +| filter | 1813 | 1633 | 180 (~22.50 MiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 1902 | 1890 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 3374 extents (~421.75 MiB) + +close took 0.321 s +== load:random@1 T=1 ops=2000000 secs= 4.42 ops/s= 452591 lat us p50=0.66 p99=1.84 p99.9=8.83 max=84283.1 mean=2.04 + cpu=3.42s ops/cpu-s=584605 rd=173.9 B/op wr=374.3 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=4.42s drain(close)=0.32s total=4.74s drain_cpu=0.11s drain_rd=46604288 drain_wr=84901888 wamp=2.541 db_apparent=3671592960 db_alloc=833708032 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal0.log new file mode 100644 index 000000000..952d69a5a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.008 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 171 +max: 34176127 +mean: 1145 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +77268 <= 500 +105600 <= 1000 +16757 <= 5000 +193 <= 10000 +151 <= 100000 +5 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 20890 | 101025 | 147615 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3432 | 112 | 20326 | 20507 | 3674033 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 54199.3333 | 156.4372 | 38375.2222 | 182940 | 34171256 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 14.4215 | 2521527 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 42675.0000 | 42675 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 3824902 +| max runtime func : 0x563ba1164b50 +| total queue_wait_time (ns) : 11589 +| max queue_wait_time (ns) : 3122 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 34174304 +| max runtime func : 0x563ba113ad60 +| total queue_wait_time (ns) : 721621 +| max queue_wait_time (ns) : 106347 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.105 s +== load:random@1 T=1 ops=200000 secs= 0.25 ops/s= 811109 lat us p50=0.58 p99=2.78 p99.9=8.83 max=34176.9 mean=1.20 + cpu=0.25s ops/cpu-s=811491 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.25s drain(close)=0.11s total=0.35s drain_cpu=0.02s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal1.log new file mode 100644 index 000000000..ae3460667 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-common-wal1.log @@ -0,0 +1,188 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal1.db mode=create n=200000 cache_mib=128 disk_gib=8 log=1 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.032 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 214 +max: 60583880 +mean: 2837 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +7383 <= 500 +162116 <= 1000 +20617 <= 5000 +286 <= 10000 +9506 <= 100000 +56 <= 500000 +2 <= 1000000 +31 <= 5000000 +2 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 16900 | 108943 | 150205 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 3610 | 100 | 20326 | 20507 | 2736225 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 65682.2222 | 235.4714 | 38375.2222 | 182940 | 60576914 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 22.3141 | 6513835 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 38544.0000 | 38544 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2850173 +| max runtime func : 0x557649954b50 +| total queue_wait_time (ns) : 14210 +| max queue_wait_time (ns) : 2432 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 60582204 +| max runtime func : 0x55764992ad60 +| total queue_wait_time (ns) : 834940 +| max queue_wait_time (ns) : 104039 +| total tasks enqueued : 27 consumed=864 bytes (864 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 27 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 298 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 9533 | 0 | +pages read | 0 | 102 | 0 | 66 | 0 | 0 | +avg prefetch pg | -nan | 12.75 | -nan | 16.50 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 1.80 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 661 extents (~82.62 MiB) | +| Max Allocated: 883 extents (~110.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 300 | 0 | 300 (~37.50 MiB)| +| blob | 96 | 81 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 658 extents (~82.25 MiB) + +close took 0.117 s +== load:random@1 T=1 ops=200000 secs= 0.59 ops/s= 339481 lat us p50=0.78 p99=26.37 p99.9=65.02 max=60585.0 mean=2.90 + cpu=0.42s ops/cpu-s=476204 rd=0.0 B/op wr=195.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.59s drain(close)=0.12s total=0.71s drain_cpu=0.03s drain_rd=0 drain_wr=37269504 wamp=2.327 db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-nonlexical-wal0.log new file mode 100644 index 000000000..a0035a62e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-nonlexical-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-nonlexical-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.010 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 177 +max: 36832862 +mean: 1148 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +61147 <= 500 +122767 <= 1000 +15931 <= 5000 +87 <= 10000 +39 <= 100000 +3 <= 500000 +1 <= 1000000 +24 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 14980 | 97043 | 121494 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 2403 | 99 | 20326 | 20507 | 2494212 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 50971.1111 | 165.9763 | 38375.2222 | 182940 | 36829618 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 16.0860 | 2817822 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 34353.0000 | 34353 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 2592391 +| max runtime func : 0x561458c89b50 +| total queue_wait_time (ns) : 8803 +| max queue_wait_time (ns) : 1533 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 36831834 +| max runtime func : 0x561458c5fd60 +| total queue_wait_time (ns) : 742622 +| max queue_wait_time (ns) : 86586 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.129 s +== load:random@1 T=1 ops=200000 secs= 0.25 ops/s= 796926 lat us p50=0.60 p99=2.72 p99.9=4.80 max=36833.5 mean=1.20 + cpu=0.25s ops/cpu-s=798132 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.25s drain(close)=0.13s total=0.38s drain_cpu=0.02s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal0.log new file mode 100644 index 000000000..0ef76a7a2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal0.log @@ -0,0 +1,188 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal0.db mode=create n=200000 cache_mib=128 disk_gib=8 log=0 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.011 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 208 +max: 39048969 +mean: 1362 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +19132 <= 500 +155900 <= 1000 +24501 <= 5000 +397 <= 10000 +39 <= 100000 +4 <= 500000 +1 <= 1000000 +25 <= 5000000 +0 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 22322 | 119446 | 152205 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 4415 | 127 | 20326 | 20507 | 3258511 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 41119.0000 | 182.8127 | 38375.2222 | 182940 | 39044610 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 17.6309 | 3037239 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 38561.0000 | 38561 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 3401701 +| max runtime func : 0x5635f28edb50 +| total queue_wait_time (ns) : 17659 +| max queue_wait_time (ns) : 6750 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 39047389 +| max runtime func : 0x5635f28c3d60 +| total queue_wait_time (ns) : 896527 +| max queue_wait_time (ns) : 121514 +| total tasks enqueued : 18 consumed=576 bytes (576 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 18 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 0 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 0 | 0 | +pages read | 0 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 2.00 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 358 extents (~44.75 MiB) | +| Max Allocated: 605 extents (~75.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 93 | 81 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 355 extents (~44.37 MiB) + +close took 0.126 s +== load:random@1 T=1 ops=200000 secs= 0.32 ops/s= 629687 lat us p50=0.70 p99=3.55 p99.9=6.59 max=39049.7 mean=1.43 + cpu=0.32s ops/cpu-s=631882 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.32s drain(close)=0.13s total=0.44s drain_cpu=0.03s drain_rd=0 drain_wr=37261312 wamp=1.136 db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal1.log new file mode 100644 index 000000000..7e74c2b37 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/load-main-resident-random-wal1.log @@ -0,0 +1,188 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal1.db mode=create n=200000 cache_mib=128 disk_gib=8 log=1 threads=1 mt_bg=0 normal_bg=0 memtable_mib=4 secs=1.0 warmup=1.0 rep=0 sabotage=0 +create took 0.035 s +phase load:random@1: T=1 dist=random (fixed count) +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 200000 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Insert Latency Histogram (ns): +min: 347 +max: 55308095 +mean: 3404 +count: 200000 +0 <= 1 +0 <= 10 +0 <= 100 +365 <= 500 +122271 <= 1000 +66908 <= 5000 +814 <= 10000 +9553 <= 100000 +54 <= 500000 +0 <= 1000000 +31 <= 5000000 +3 <= 10000000 +1 <= 100000000 +0 <= 1000000000 +0 <= 10000000000 +0 > 10000000000 + +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 20191 | 134880 | 180461 | 9 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 9 | 4392 | 125 | 20326 | 20507 | 2982332 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|----|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.0000 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 0.5556 | 9 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 3.6111 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +----------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|----|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 18 | 1.0000 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +----------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 9 | 1.0000 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 9 | 57052.0000 | 237.6922 | 38375.2222 | 182940 | 55302139 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 9 | 23.7171 | 4448166 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 1 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 45205.0000 | 45205 | 8 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 3111167 +| max runtime func : 0x562f29156b50 +| total queue_wait_time (ns) : 17049 +| max queue_wait_time (ns) : 3919 +| total tasks enqueued : 9 consumed=288 bytes (288 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 9 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 55305824 +| max runtime func : 0x562f2912cd60 +| total queue_wait_time (ns) : 1062742 +| max queue_wait_time (ns) : 122776 +| total tasks enqueued : 27 consumed=864 bytes (864 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 27 +| current waiting tasks : 0 +| max outstanding tasks : 1 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 35 | 16208 | 670082 | 1666 | 298 | 0 | +cache misses | 0 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 8 | 0 | 9533 | 0 | +pages read | 0 | 102 | 0 | 64 | 0 | 0 | +avg prefetch pg | -nan | 12.75 | -nan | 16.00 | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: 1.80 +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 661 extents (~82.62 MiB) | +| Max Allocated: 883 extents (~110.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 18 | 17 | 1 (128 KiB)| +| branch | 929 | 671 | 258 (~32.25 MiB)| +| memtable | 628 | 549 | 79 (~9.87 MiB)| +| filter | 45 | 40 | 5 (640 KiB)| +| log | 300 | 0 | 300 (~37.50 MiB)| +| blob | 96 | 81 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 658 extents (~82.25 MiB) + +close took 0.122 s +== load:random@1 T=1 ops=200000 secs= 0.73 ops/s= 272464 lat us p50=1.02 p99=32.00 p99.9=76.80 max=55309.3 mean=3.49 + cpu=0.55s ops/cpu-s=365573 rd=0.0 B/op wr=195.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=0.73s drain(close)=0.12s total=0.86s drain_cpu=0.03s drain_rd=0 drain_wr=37269504 wamp=2.327 db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-common-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-common-wal0.csv new file mode 100644 index 000000000..54ed11624 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-common-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,load:random@1,1,0,2000000,2000000,4.010,498727.1,0.680,1.872,8.832,51402.315,1.943,3.138,637446.9,345849856,752586752,172.92,376.29,nan,nan,nan,nan,nan,0,0.0,4.010,0.235,4.245,0.101,46579712,80932864,2.5412,3671330816,833761280,0.009,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-nonlexical-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-nonlexical-wal0.csv new file mode 100644 index 000000000..d883933d3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-nonlexical-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,load:random@1,1,0,2000000,2000000,4.576,437032.4,0.696,1.968,12.160,77505.681,2.209,3.450,579688.1,348377088,747790336,174.19,373.90,nan,nan,nan,nan,nan,0,0.0,4.576,0.336,4.913,0.142,46260224,85602304,2.5408,3671461888,833634304,0.029,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-random-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-random-wal0.csv new file mode 100644 index 000000000..02c2acbf9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-random-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,load:random@1,1,0,2000000,2000000,4.419,452591.1,0.664,1.840,8.832,84283.057,2.037,3.421,584605.1,347729920,748556288,173.86,374.28,nan,nan,nan,nan,nan,0,0.0,4.419,0.321,4.740,0.115,46604288,84901888,2.5410,3671592960,833708032,0.056,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal0.csv new file mode 100644 index 000000000..ee2d12f9f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random@1,1,0,200000,200000,0.247,811108.6,0.584,2.784,8.832,34176.859,1.196,0.246,811490.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.247,0.105,0.352,0.022,0,37261312,1.1360,237375488,37408768,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal1.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal1.csv new file mode 100644 index 000000000..27f77c2c4 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal1.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,1,load:random@1,1,0,200000,200000,0.589,339480.5,0.776,26.368,65.024,60585.007,2.901,0.420,476204.1,0,39043072,0.00,195.22,nan,nan,nan,nan,nan,0,0.0,0.589,0.117,0.706,0.030,0,37269504,2.3266,277090304,76468224,0.032,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-nonlexical-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-nonlexical-wal0.csv new file mode 100644 index 000000000..6b458fce6 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-nonlexical-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random@1,1,0,200000,200000,0.251,796925.8,0.600,2.720,4.800,36833.475,1.204,0.251,798132.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.251,0.129,0.379,0.023,0,37261312,1.1360,237375488,37408768,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal0.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal0.csv new file mode 100644 index 000000000..6876e692d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal0.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,load:random@1,1,0,200000,200000,0.318,629687.1,0.696,3.552,6.592,39049.718,1.431,0.317,631881.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,0.318,0.126,0.443,0.029,0,37261312,1.1360,237375488,37408768,0.011,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal1.csv b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal1.csv new file mode 100644 index 000000000..d49d8b3de --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal1.csv @@ -0,0 +1,2 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,1,load:random@1,1,0,200000,200000,0.734,272463.6,1.016,32.000,76.800,55309.314,3.491,0.547,365573.2,0,39043072,0.00,195.22,nan,nan,nan,nan,nan,0,0.0,0.734,0.122,0.856,0.032,0,37269504,2.3266,277090304,76468224,0.035,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-common-wal0.log new file mode 100644 index 000000000..15fafe5cc --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-common-wal0.log @@ -0,0 +1,180 @@ +open took 0.005 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 2585 extents (~323.12 MiB) | +| Max Allocated: 2585 extents (~323.12 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.064 s +space: db_apparent=3250065408 db_alloc=544198656 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-nonlexical-wal0.log new file mode 100644 index 000000000..dba4e3c00 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-nonlexical-wal0.log @@ -0,0 +1,180 @@ +open took 0.022 s +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3414 extents (~426.75 MiB) | +| Max Allocated: 3414 extents (~426.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.091 s +space: db_apparent=3671461888 db_alloc=834351104 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-random-wal0.log new file mode 100644 index 000000000..ee7c619a2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-disk-random-wal0.log @@ -0,0 +1,180 @@ +open took 0.051 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3415 extents (~426.87 MiB) | +| Max Allocated: 3415 extents (~426.87 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.085 s +space: db_apparent=3671592960 db_alloc=833789952 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0-disabled.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0-disabled.log new file mode 100644 index 000000000..2d4c3a39f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0-disabled.log @@ -0,0 +1,162 @@ +open took 0.035 s +prefix-pattern=common key_bytes=64 compression_disabled=true +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.074 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0.log new file mode 100644 index 000000000..66544711d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal0.log @@ -0,0 +1,162 @@ +open took 0.006 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 256 extents (32 MiB) | +| Max Allocated: 256 extents (32 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.091 s +space: db_apparent=207360000 db_alloc=26128384 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal1.log new file mode 100644 index 000000000..7bfdf2766 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-common-wal1.log @@ -0,0 +1,162 @@ +open took 0.023 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 261 extents (~32.62 MiB) | +| Max Allocated: 261 extents (~32.62 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 2 | 0 | 2 (256 KiB)| +| blob | 15 | 0 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 53 extents (~6.62 MiB) + +close took 0.075 s +space: db_apparent=247074816 db_alloc=65187840 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-nonlexical-wal0.log new file mode 100644 index 000000000..33ff84d33 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-nonlexical-wal0.log @@ -0,0 +1,162 @@ +open took 0.006 s +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.084 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal0.log new file mode 100644 index 000000000..3b7cd0541 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal0.log @@ -0,0 +1,162 @@ +open took 0.007 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.073 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal1.log new file mode 100644 index 000000000..94002d497 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-candidate-resident-random-wal1.log @@ -0,0 +1,162 @@ +open took 0.010 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 347 extents (~43.37 MiB) | +| Max Allocated: 347 extents (~43.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 2 | 0 | 2 (256 KiB)| +| blob | 15 | 0 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 53 extents (~6.62 MiB) + +close took 0.094 s +space: db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-common-wal0.log new file mode 100644 index 000000000..72d9fc27e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-common-wal0.log @@ -0,0 +1,180 @@ +open took 0.005 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3414 extents (~426.75 MiB) | +| Max Allocated: 3414 extents (~426.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.073 s +space: db_apparent=3671330816 db_alloc=833761280 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-nonlexical-wal0.log new file mode 100644 index 000000000..889132fc3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-nonlexical-wal0.log @@ -0,0 +1,180 @@ +open took 0.037 s +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3414 extents (~426.75 MiB) | +| Max Allocated: 3414 extents (~426.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.068 s +space: db_apparent=3671461888 db_alloc=833634304 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-random-wal0.log new file mode 100644 index 000000000..28b6dd5de --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-disk-random-wal0.log @@ -0,0 +1,180 @@ +open took 0.047 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 2 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +| 1 | 0 | 0.0000 | 0 | 0 | +| 2 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 1 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +| 2 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +| 0 | 0 | +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +| 1 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 3415 extents (~426.87 MiB) | +| Max Allocated: 3415 extents (~426.87 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.077 s +space: db_apparent=3671592960 db_alloc=833708032 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal0.log new file mode 100644 index 000000000..24531c9ed --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal0.log @@ -0,0 +1,162 @@ +open took 0.005 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.063 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal1.log new file mode 100644 index 000000000..cea6efbc9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-common-wal1.log @@ -0,0 +1,162 @@ +open took 0.023 s +prefix-pattern=common key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 347 extents (~43.37 MiB) | +| Max Allocated: 347 extents (~43.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 2 | 0 | 2 (256 KiB)| +| blob | 15 | 0 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 53 extents (~6.62 MiB) + +close took 0.089 s +space: db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-nonlexical-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-nonlexical-wal0.log new file mode 100644 index 000000000..e59cffdeb --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-nonlexical-wal0.log @@ -0,0 +1,162 @@ +open took 0.006 s +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.078 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal0.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal0.log new file mode 100644 index 000000000..16af088c5 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal0.log @@ -0,0 +1,162 @@ +open took 0.006 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 342 extents (~42.75 MiB) | +| Max Allocated: 342 extents (~42.75 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 0 | 0 | 0 (0 bytes)| +| blob | 12 | 0 | 12 (~1.50 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 48 extents (6 MiB) + +close took 0.059 s +space: db_apparent=237375488 db_alloc=37408768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal1.log b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal1.log new file mode 100644 index 000000000..2ca1c74de --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/space-main-resident-random-wal1.log @@ -0,0 +1,162 @@ +open took 0.010 s +prefix-pattern=random key_bytes=64 compression_disabled=false +Overall Statistics +------------------------------------------------------------------------------------ +| insertions: 0 +| updates: 0 +| deletions: 0 +| completed deletes: 0 +------------------------------------------------------------------------------------ +| root stalls: 0 +------------------------------------------------------------------------------------ +| checkpoints: 0 +------------------------------------------------------------------------------------ + +Latency Histogram Statistics +Flush Statistics +--------------------------------------------------------------------------------------------------------- + height | avg wait time (ns) | avg flush time (ns) | max flush time (ns) | full flushes | count flushes | +---------|--------------------|---------------------|---------------------|--------------|---------------| +memtable | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------- + +Compaction Statistics +------------------------------------------------------------------------------------------------------------------------------------------ + height | compactions | avg setup time (ns) | time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | +---------|-------------|---------------------|-------------------|------------|------------|---------------|-------|---------|-----------| + root | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------------------------ + +Filter Build Statistics +--------------------------------------------------------------------------------- +| height | built | avg tuples | avg build time (ns) | build_time / tuple (ns) | +---------|---------|------------|---------------------|-------------------------| +Height: 0 +Fanout distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Inflight bundles distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Bundle size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Node size distribution +---------------------------------------------------------------------------------------------------------- +| height | total | avg | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|--------|-------|--------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------------------------------------------------------------------------------------------------- +Incorporation footprint distribution +--------------------------------------------------------------------------------------------------------------------- +| total incorporations | average footprint | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | >= 15 | +|----------------------|-------------------|---|---|---|---|---|---|---|---|---|---|----|----|----|----|----|-------| +| 0 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +--------------------------------------------------------------------------------------------------------------------- +Flushes +----------------------------------------------------------------- +| height | count | avg time (ns) | max time (ns) | full flushes | +|--------|-------|---------------|---------------|--------------| +| 0 | 0 | 0.0000 | 0 | 0 | +----------------------------------------------------------------- +Compactions +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| height | num compactions | avg setup time (ns) | avg pack time / tuple (ns) | avg tuples | max tuples | max time (ns) | empty | aborted | discarded | fraction wasted time | +|--------|-----------------|---------------------|----------------------------|--------------|------------|---------------|-------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0.0000 | 0.0000 | 0 | 0 | 0 | 0 | 0 | 0.0000 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Maplets +------------------------------------------------------------------------------------------------------------- +| height | num maplets | avg time / tuple (ns) | max time (ns) | aborted | discarded | fraction wasted time | +|--------|-------------|-----------------------|---------------|---------|-----------|----------------------| +| 0 | 0 | 0.0000 | 0 | 0 | 0 | 0.0000 | +------------------------------------------------------------------------------------------------------------- +Splits +---------------------------------- +| num splits | num nodes created | +|------------|-------------------| +| 0 | 0 | +---------------------------------- +Leaf splits +------------------------------------------------------ +| avg time (ns) | max time (ns) | single leaf splits | +|---------------|---------------|--------------------| +| 0.0000 | 0 | 0 | +------------------------------------------------------ +Lookups +--------------------------------------------------------------------- +| height | maplet lookups | maplet false positives | branch lookups | +|--------|----------------|------------------------|----------------| +| 0 | 0 | 0 | 0 | +--------------------------------------------------------------------- + +Memtable Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +Main Task Group Statistics +-------------------------------- +| max runtime (ns) : 0 +| max runtime func : (nil) +| total queue_wait_time (ns) : 0 +| max queue_wait_time (ns) : 0 +| total tasks enqueued : 0 consumed=0 bytes (0 bytes) of memory +| total bg tasks run : 0 +| total fg tasks run : 0 +| current waiting tasks : 0 +| max outstanding tasks : 0 + + +------------------------------------------------------------------------------------ +Cache Statistics +----------------------------------------------------------------------------------------------- +page type | trunk | branch | memtable | filter | log | misc | +----------------|------------|------------|------------|------------|------------|------------| +cache hits | 0 | 0 | 0 | 0 | 0 | 0 | +cache misses | 1 | 0 | 0 | 0 | 0 | 0 | +cache miss time | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | 0.00s | +pages written | 0 | 0 | 0 | 0 | 0 | 0 | +pages read | 1 | 0 | 0 | 0 | 0 | 0 | +avg prefetch pg | -nan | -nan | -nan | -nan | -nan | -nan | +----------------------------------------------------------------------------------------------- +avg write pgs: -nan +|-------------------------------------------------------------------| +| Allocator Stats | +|-------------------------------------------------------------------| +| Currently Allocated: 347 extents (~43.37 MiB) | +| Max Allocated: 347 extents (~43.37 MiB) | +|-------------------------------------------------------------------| +| Page Type | Allocations | Deallocations | Footprint | +| | (Number of extents) | # extents (bytes) | +|-------------------------------------------------------------------| +| trunk | 0 | 0 | 0 (0 bytes)| +| branch | 0 | 0 | 0 (0 bytes)| +| memtable | 36 | 0 | 36 (~4.50 MiB)| +| filter | 0 | 0 | 0 (0 bytes)| +| log | 2 | 0 | 2 (256 KiB)| +| blob | 15 | 0 | 15 (~1.87 MiB)| +| superblock | 0 | 0 | 0 (0 bytes)| +| misc | 0 | 0 | 0 (0 bytes)| +|-------------------------------------------------------------------| +Expected count of extents in-use from footprint = 53 extents (~6.62 MiB) + +close took 0.076 s +space: db_apparent=277090304 db_alloc=76468224 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/followup.py b/benchmarks/results-20261014/prefix-main-6105c49f/followup.py new file mode 100644 index 000000000..b7f6e1838 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/followup.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +"""Longer paired checks of adverse initial results, with exclusive locks.""" + +import argparse +import fcntl +from pathlib import Path +import time + +from run_benchmarks import Campaign, sha + + +def main(): + coordination = Path("/home/rob/projects/splinterdb/.cache/projects-20261011/coordination") + with (coordination / "benchmark.lock").open("rb") as benchmark_lock, \ + (coordination / "machine.lock").open("rb") as machine_lock: + fcntl.flock(benchmark_lock, fcntl.LOCK_EX) + fcntl.flock(machine_lock, fcntl.LOCK_EX) + args = argparse.Namespace(mode="repeat", seconds=15, cpus="0-11") + campaign = Campaign(args) + campaign.manifest["followup_sha256"] = sha(__file__) + campaign.manifest["selection"] = "Adverse initial results: common long scans, disabled long scans, nonlexical short scans, logged random overwrites" + order = ["main", "candidate", "candidate", "main", "main", "candidate"] + cases = [ + ("resident-common", 0, ["warm", "range:uniform:10000@8"]), + ("resident-common-disabled", 0, ["warm", "range:uniform:10000@8", "range:uniform:10000@1"]), + ("resident-nonlexical", 0, ["warm", "range:uniform:1@8"]), + ("resident-random", 1, ["warm", "ow:uniform@8"]), + ] + campaign.manifest["order"] = order + campaign.manifest["cases"] = cases + campaign.save() + for case, wal, phases in cases: + for index, profile in enumerate(order): + campaign.query(case, profile, index, phases, wal) + campaign.manifest.update(complete=True, finished=time.time()) + campaign.save() + + +if __name__ == "__main__": + main() diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/jobs.json b/benchmarks/results-20261014/prefix-main-6105c49f/jobs.json new file mode 100644 index 000000000..dbc08bbbe --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/jobs.json @@ -0,0 +1,28 @@ +[ + { + "mode": "reads", + "command": [ + "python3", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/run_benchmarks.py", + "--mode", + "reads" + ], + "started": 1792007320.8491955, + "locks": "exclusive benchmark and machine", + "finished": 1792008135.14136, + "returncode": 0 + }, + { + "mode": "writes", + "command": [ + "python3", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/run_benchmarks.py", + "--mode", + "writes" + ], + "started": 1792008135.1415071, + "locks": "exclusive benchmark and machine", + "finished": 1792008299.6501558, + "returncode": 0 + } +] diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/main-build.log b/benchmarks/results-20261014/prefix-main-6105c49f/main-build.log new file mode 100644 index 000000000..eb3f6734f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/main-build.log @@ -0,0 +1,49 @@ +make: Entering directory '/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main' +Checking for mismatched config...No mismatched config found +Saving config to build/release/build-config.fb6bc8eeb8390429253883c09491f5bd +Compiling src/PackedArray.c [build/release/obj/src/PackedArray.o] +Compiling src/allocator.c [build/release/obj/src/allocator.o] +Compiling src/batch_rwlock.c [build/release/obj/src/batch_rwlock.o] +Compiling src/blob.c [build/release/obj/src/blob.o] +Compiling src/blob_build.c [build/release/obj/src/blob_build.o] +Compiling src/btree.c [build/release/obj/src/btree.o] +Compiling src/clockcache.c [build/release/obj/src/clockcache.o] +Compiling src/core.c [build/release/obj/src/core.o] +Compiling src/data_blob_build.c [build/release/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build/release/obj/src/data_internal.o] +Compiling src/default_data_config.c [build/release/obj/src/default_data_config.o] +Compiling src/histogram.c [build/release/obj/src/histogram.o] +Compiling src/memtable.c [build/release/obj/src/memtable.o] +Compiling src/merge.c [build/release/obj/src/merge.o] +Compiling src/mini_allocator.c [build/release/obj/src/mini_allocator.o] +Compiling src/notification.c [build/release/obj/src/notification.o] +Compiling src/ondisk_ref.c [build/release/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build/release/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build/release/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build/release/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build/release/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build/release/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build/release/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build/release/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build/release/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build/release/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build/release/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build/release/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build/release/obj/src/rc_allocator.o] +Compiling src/routing_filter.c [build/release/obj/src/routing_filter.o] +Compiling src/shard_log.c [build/release/obj/src/shard_log.o] +Compiling src/splinterdb.c [build/release/obj/src/splinterdb.o] +Compiling src/superblock.c [build/release/obj/src/superblock.o] +Compiling src/task.c [build/release/obj/src/task.o] +Compiling src/trunk.c [build/release/obj/src/trunk.o] +Compiling src/util.c [build/release/obj/src/util.o] +Compiling src/writeback_set.c [build/release/obj/src/writeback_set.o] +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Linking build/release/lib/libsplinterdb.so +Building archive build/release/lib/libsplinterdb.a +make: Leaving directory '/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main' diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/main-harness-build.log b/benchmarks/results-20261014/prefix-main-6105c49f/main-harness-build.log new file mode 100644 index 000000000..0a46cfaf0 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/main-harness-build.log @@ -0,0 +1,3 @@ +lto-wrapper: warning: using serial compilation of 13 LTRANS jobs +lto-wrapper: note: see the ‘-flto’ option documentation for more information +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads-progress.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads-progress.log new file mode 100644 index 000000000..f88a88297 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads-progress.log @@ -0,0 +1,54 @@ +load-main-resident-common-wal0 +space-main-resident-common-wal0 +resident-common-wal0-00-main +load-candidate-resident-common-wal0 +space-candidate-resident-common-wal0 +resident-common-wal0-01-candidate +resident-common-wal0-02-candidate +resident-common-wal0-03-main +load-main-resident-random-wal0 +space-main-resident-random-wal0 +resident-random-wal0-00-main +load-candidate-resident-random-wal0 +space-candidate-resident-random-wal0 +resident-random-wal0-01-candidate +resident-random-wal0-02-candidate +resident-random-wal0-03-main +load-main-resident-nonlexical-wal0 +space-main-resident-nonlexical-wal0 +resident-nonlexical-wal0-00-main +load-candidate-resident-nonlexical-wal0 +space-candidate-resident-nonlexical-wal0 +resident-nonlexical-wal0-01-candidate +resident-nonlexical-wal0-02-candidate +resident-nonlexical-wal0-03-main +load-main-disk-common-wal0 +space-main-disk-common-wal0 +disk-common-wal0-00-main +load-candidate-disk-common-wal0 +space-candidate-disk-common-wal0 +disk-common-wal0-01-candidate +disk-common-wal0-02-candidate +disk-common-wal0-03-main +load-main-disk-random-wal0 +space-main-disk-random-wal0 +disk-random-wal0-00-main +load-candidate-disk-random-wal0 +space-candidate-disk-random-wal0 +disk-random-wal0-01-candidate +disk-random-wal0-02-candidate +disk-random-wal0-03-main +load-main-disk-nonlexical-wal0 +space-main-disk-nonlexical-wal0 +disk-nonlexical-wal0-00-main +load-candidate-disk-nonlexical-wal0 +space-candidate-disk-nonlexical-wal0 +disk-nonlexical-wal0-01-candidate +disk-nonlexical-wal0-02-candidate +disk-nonlexical-wal0-03-main +resident-common-disabled-wal0-00-main +load-candidate-resident-common-wal0-disabled +space-candidate-resident-common-wal0-disabled +resident-common-disabled-wal0-01-candidate +resident-common-disabled-wal0-02-candidate +resident-common-disabled-wal0-03-main diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.csv new file mode 100644 index 000000000..44dcd9f9a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,warm,8,0,2000000,2000000,0.156,12804660.7,nan,nan,nan,0.000,nan,0.605,3304141.2,377290752,32768,188.65,0.02,nan,nan,nan,nan,nan,2000000,12804660.7,0.156,0.000,0.156,0.000,0,0,nan,0,0,0.005,0,0,19,0,0 +main,disk,0,0,point:uniform@8,8,0,2000000,1237618,7.000,176798.2,49.664,87.040,115.712,3563.347,45.185,8.612,143707.5,4365578240,0,3527.40,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,7,0,0 +main,disk,0,0,range:uniform:1@8,8,0,2000000,512044,7.000,73146.7,103.424,266.240,372.736,4158.834,109.298,58.930,8689.1,7241052160,0,14141.46,0.00,101.376,266.240,108.542,nan,0.708,512044,73146.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,2,0,0 +main,disk,0,0,range:uniform:10000@8,8,0,2000000,6428,7.000,918.3,7143.424,23330.816,31195.136,34265.999,8709.849,24.852,258.6,16348430336,0,2543315.24,0.00,339.968,1064.960,376.062,834.96,1.277,64181618,9168476.3,7.000,0.056,7.057,0.009,0,274432,nan,3671330816,833429504,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.log new file mode 100644 index 000000000..0c8e70701 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-00-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.16 ops/s= 12804661 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.61s ops/cpu-s=3304141 rd=188.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=19 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1237618 notfound=0 +== point:uniform@8 T=8 ops=1237618 secs= 7.00 ops/s= 176798 lat us p50=49.66 p99=87.04 p99.9=115.71 max=3563.3 mean=45.18 + cpu=8.61s ops/cpu-s=143707 rd=3527.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=7 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 208915 ops (+20890 ops/s) +== range:uniform:1@8 T=8 ops=512044 secs= 7.00 ops/s= 73147 lat us p50=103.42 p99=266.24 p99.9=372.74 max=4158.8 mean=109.30 + cpu=58.93s ops/cpu-s=8689 rd=14141.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + startup us p50=101.38 p99=266.24 mean=108.54 per-tuple=nan ns deinit mean=0.71 us tuples/s=73147 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 4435 ops (+1844552750263201536 ops/s) +close took 0.056 s +== range:uniform:10000@8 T=8 ops=6428 secs= 7.00 ops/s= 918 lat us p50=7143.42 p99=23330.82 p99.9=31195.14 max=34266.0 mean=8709.85 + cpu=24.85s ops/cpu-s=259 rd=2543315.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=339.97 p99=1064.96 mean=376.06 per-tuple=835.0 ns deinit mean=1.28 us tuples/s=9168476 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=833429504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.csv new file mode 100644 index 000000000..acdbc27df --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,1,0,warm,8,1,2000000,2000000,0.130,15407156.1,nan,nan,nan,0.000,nan,0.533,3749925.0,268484608,32768,134.24,0.02,nan,nan,nan,nan,nan,2000000,15407156.1,0.130,0.000,0.130,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,1,2000000,1363115,7.000,194725.4,49.664,74.752,103.424,1930.738,41.021,8.695,156775.3,4372070400,0,3207.41,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,1,2000000,563331,7.000,80473.3,91.136,260.096,380.928,4319.020,99.341,58.619,9610.0,6160269312,0,10935.43,0.00,89.088,260.096,98.269,nan,1.023,563331,80473.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,1,2000000,7878,7.000,1125.4,5570.560,19136.512,23855.104,29341.283,7105.404,26.886,293.0,14126706688,0,1793184.40,0.00,274.432,909.312,304.249,681.69,1.531,78626492,11231997.7,7.000,0.061,7.062,0.008,0,274432,nan,3250065408,543969280,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.log new file mode 100644 index 000000000..0b98ced8a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-01-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.13 ops/s= 15407156 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.53s ops/cpu-s=3749925 rd=134.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1363115 notfound=0 +== point:uniform@8 T=8 ops=1363115 secs= 7.00 ops/s= 194725 lat us p50=49.66 p99=74.75 p99.9=103.42 max=1930.7 mean=41.02 + cpu=8.69s ops/cpu-s=156775 rd=3207.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 231209 ops (+23120 ops/s) +== range:uniform:1@8 T=8 ops=563331 secs= 7.00 ops/s= 80473 lat us p50=91.14 p99=260.10 p99.9=380.93 max=4319.0 mean=99.34 + cpu=58.62s ops/cpu-s=9610 rd=10935.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=89.09 p99=260.10 mean=98.27 per-tuple=nan ns deinit mean=1.02 us tuples/s=80473 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 5431 ops (+1844562106925195008 ops/s) +close took 0.061 s +== range:uniform:10000@8 T=8 ops=7878 secs= 7.00 ops/s= 1125 lat us p50=5570.56 p99=19136.51 p99.9=23855.10 max=29341.3 mean=7105.40 + cpu=26.89s ops/cpu-s=293 rd=1793184.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=274.43 p99=909.31 mean=304.25 per-tuple=681.7 ns deinit mean=1.53 us tuples/s=11231998 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=543969280 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.csv new file mode 100644 index 000000000..3cb194b62 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,2,0,warm,8,2,2000000,2000000,0.145,13776741.1,nan,nan,nan,0.000,nan,0.595,3360198.1,268894208,32768,134.45,0.02,nan,nan,nan,nan,nan,2000000,13776741.1,0.145,0.000,0.145,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,2,2000000,1269530,7.000,181356.1,49.664,80.896,1196.032,4125.309,44.045,8.489,149546.0,4072955904,0,3208.24,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +candidate,disk,2,0,range:uniform:1@8,8,2,2000000,532198,7.000,76025.5,91.136,299.008,1654.784,7085.342,105.158,58.536,9091.9,5817032704,0,10930.20,0.00,91.136,299.008,104.078,nan,1.032,532198,76025.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,2,2000000,7433,7.000,1061.8,5832.704,23855.104,45613.056,69176.578,7527.076,26.352,282.1,13457387520,0,1810492.07,0.00,282.624,1916.928,339.609,720.10,1.528,74203592,10600154.7,7.000,0.066,7.066,0.009,0,274432,nan,3250065408,543969280,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.log new file mode 100644 index 000000000..7e018e3db --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-02-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.15 ops/s= 13776741 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.60s ops/cpu-s=3360198 rd=134.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1269530 notfound=0 +== point:uniform@8 T=8 ops=1269530 secs= 7.00 ops/s= 181356 lat us p50=49.66 p99=80.90 p99.9=1196.03 max=4125.3 mean=44.04 + cpu=8.49s ops/cpu-s=149546 rd=3208.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 216362 ops (+21635 ops/s) +== range:uniform:1@8 T=8 ops=532198 secs= 7.00 ops/s= 76026 lat us p50=91.14 p99=299.01 p99.9=1654.78 max=7085.3 mean=105.16 + cpu=58.54s ops/cpu-s=9092 rd=10930.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=91.14 p99=299.01 mean=104.08 per-tuple=nan ns deinit mean=1.03 us tuples/s=76026 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 5201 ops (+1844554144100837120 ops/s) +close took 0.066 s +== range:uniform:10000@8 T=8 ops=7433 secs= 7.00 ops/s= 1062 lat us p50=5832.70 p99=23855.10 p99.9=45613.06 max=69176.6 mean=7527.08 + cpu=26.35s ops/cpu-s=282 rd=1810492.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=282.62 p99=1916.93 mean=339.61 per-tuple=720.1 ns deinit mean=1.53 us tuples/s=10600155 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3250065408 db_alloc=543969280 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.csv new file mode 100644 index 000000000..f029c7cd9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,3,0,warm,8,3,2000000,2000000,0.172,11622286.9,nan,nan,nan,0.000,nan,0.651,3070833.4,377511936,32768,188.76,0.02,nan,nan,nan,nan,nan,2000000,11622286.9,0.172,0.000,0.172,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +main,disk,3,0,point:uniform@8,8,3,2000000,1145915,7.000,163698.1,51.712,99.328,1294.336,3697.920,48.800,8.657,132369.3,4042244096,0,3527.53,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +main,disk,3,0,range:uniform:1@8,8,3,2000000,476165,7.000,68021.3,103.424,307.200,1818.624,5747.586,117.520,58.812,8096.3,6744199168,0,14163.58,0.00,103.424,307.200,116.762,nan,0.709,476165,68021.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +main,disk,3,0,range:uniform:10000@8,8,3,2000000,6300,7.000,900.0,7143.424,26476.544,50855.936,71217.334,8885.553,24.722,254.8,15995555840,0,2538977.12,0.00,331.776,1392.640,374.692,852.87,1.278,62901618,8985681.0,7.000,0.068,7.068,0.008,0,274432,nan,3671330816,833429504,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.log new file mode 100644 index 000000000..528b9d1eb --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-03-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.17 ops/s= 11622287 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.65s ops/cpu-s=3070833 rd=188.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1145915 notfound=0 +== point:uniform@8 T=8 ops=1145915 secs= 7.00 ops/s= 163698 lat us p50=51.71 p99=99.33 p99.9=1294.34 max=3697.9 mean=48.80 + cpu=8.66s ops/cpu-s=132369 rd=3527.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 192144 ops (+19213 ops/s) +== range:uniform:1@8 T=8 ops=476165 secs= 7.00 ops/s= 68021 lat us p50=103.42 p99=307.20 p99.9=1818.62 max=5747.6 mean=117.52 + cpu=58.81s ops/cpu-s=8096 rd=14163.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=103.42 p99=307.20 mean=116.76 per-tuple=nan ns deinit mean=0.71 us tuples/s=68021 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 4307 ops (+1844554845354870528 ops/s) +close took 0.068 s +== range:uniform:10000@8 T=8 ops=6300 secs= 7.00 ops/s= 900 lat us p50=7143.42 p99=26476.54 p99.9=50855.94 max=71217.3 mean=8885.55 + cpu=24.72s ops/cpu-s=255 rd=2538977.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=331.78 p99=1392.64 mean=374.69 per-tuple=852.9 ns deinit mean=1.28 us tuples/s=8985681 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671330816 db_alloc=833429504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.csv new file mode 100644 index 000000000..59062a925 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,warm,8,0,2000000,2000000,0.194,10334500.7,nan,nan,nan,0.000,nan,0.678,2950131.0,376700928,32768,188.35,0.02,nan,nan,nan,nan,nan,2000000,10334500.7,0.194,0.000,0.194,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +main,disk,0,0,point:uniform@8,8,0,2000000,933289,7.000,133323.3,64.000,121.856,223.232,2168.179,59.925,6.673,139868.6,3293290496,0,3528.69,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +main,disk,0,0,range:uniform:1@8,8,0,2000000,384987,7.000,54996.1,133.120,380.928,1490.944,4213.364,145.372,58.607,6568.9,5450756096,0,14158.29,0.00,133.120,372.736,144.598,nan,0.724,384987,54996.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +main,disk,0,0,range:uniform:10000@8,8,0,2000000,5364,7.000,766.3,8323.072,33292.288,50855.936,66157.199,10443.372,22.991,233.3,13554495488,0,2526938.01,0.00,421.888,2195.456,490.271,997.25,1.403,53559604,7651106.1,7.000,0.095,7.095,0.008,0,274432,nan,3671461888,833257472,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.log new file mode 100644 index 000000000..f7feedc15 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-00-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.19 ops/s= 10334501 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.68s ops/cpu-s=2950131 rd=188.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=933289 notfound=0 +== point:uniform@8 T=8 ops=933289 secs= 7.00 ops/s= 133323 lat us p50=64.00 p99=121.86 p99.9=223.23 max=2168.2 mean=59.93 + cpu=6.67s ops/cpu-s=139869 rd=3528.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 150782 ops (+15077 ops/s) +== range:uniform:1@8 T=8 ops=384987 secs= 7.00 ops/s= 54996 lat us p50=133.12 p99=380.93 p99.9=1490.94 max=4213.4 mean=145.37 + cpu=58.61s ops/cpu-s=6569 rd=14158.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=133.12 p99=372.74 mean=144.60 per-tuple=nan ns deinit mean=0.72 us tuples/s=54996 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3679 ops (+1844554222304843776 ops/s) +close took 0.095 s +== range:uniform:10000@8 T=8 ops=5364 secs= 7.00 ops/s= 766 lat us p50=8323.07 p99=33292.29 p99.9=50855.94 max=66157.2 mean=10443.37 + cpu=22.99s ops/cpu-s=233 rd=2526938.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=421.89 p99=2195.46 mean=490.27 per-tuple=997.3 ns deinit mean=1.40 us tuples/s=7651106 + insert/run=7.00s drain(close)=0.09s total=7.10s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671461888 db_alloc=833257472 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.csv new file mode 100644 index 000000000..20c52f901 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,1,0,warm,8,1,2000000,2000000,0.174,11495441.7,nan,nan,nan,0.000,nan,0.671,2982025.8,376479744,32768,188.24,0.02,nan,nan,nan,nan,nan,2000000,11495441.7,0.174,0.000,0.174,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,1,2000000,912492,7.000,130352.7,66.560,123.904,165.888,3775.173,61.283,7.582,120347.4,3220148224,0,3528.96,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,1,2000000,389617,7.000,55657.5,133.120,356.352,520.192,4249.382,143.639,58.682,6639.4,5511720960,0,14146.51,0.00,133.120,356.352,142.790,nan,0.798,389617,55657.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,1,2000000,5460,7.000,780.0,8323.072,27525.120,37224.448,42735.669,10252.166,23.414,233.2,13854257152,0,2537409.73,0.00,405.504,1261.568,445.719,982.72,1.600,54509642,7786867.4,7.000,0.101,7.102,0.008,0,274432,nan,3671461888,834019328,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.log new file mode 100644 index 000000000..39a3fb8fb --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-01-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.17 ops/s= 11495442 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=2982026 rd=188.2 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=912492 notfound=0 +== point:uniform@8 T=8 ops=912492 secs= 7.00 ops/s= 130353 lat us p50=66.56 p99=123.90 p99.9=165.89 max=3775.2 mean=61.28 + cpu=7.58s ops/cpu-s=120347 rd=3529.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 157593 ops (+15758 ops/s) +== range:uniform:1@8 T=8 ops=389617 secs= 7.00 ops/s= 55658 lat us p50=133.12 p99=356.35 p99.9=520.19 max=4249.4 mean=143.64 + cpu=58.68s ops/cpu-s=6639 rd=14146.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=133.12 p99=356.35 mean=142.79 per-tuple=nan ns deinit mean=0.80 us tuples/s=55658 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3683 ops (+1844557827073785600 ops/s) +close took 0.101 s +== range:uniform:10000@8 T=8 ops=5460 secs= 7.00 ops/s= 780 lat us p50=8323.07 p99=27525.12 p99.9=37224.45 max=42735.7 mean=10252.17 + cpu=23.41s ops/cpu-s=233 rd=2537409.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1261.57 mean=445.72 per-tuple=982.7 ns deinit mean=1.60 us tuples/s=7786867 + insert/run=7.00s drain(close)=0.10s total=7.10s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671461888 db_alloc=834019328 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.csv new file mode 100644 index 000000000..28f6d036b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,2,0,warm,8,2,2000000,2000000,0.184,10844171.9,nan,nan,nan,0.000,nan,0.674,2967213.8,377155584,32768,188.58,0.02,nan,nan,nan,nan,nan,2000000,10844171.9,0.184,0.000,0.184,0.000,0,0,nan,0,0,0.007,0,0,0,0,2 +candidate,disk,2,0,point:uniform@8,8,2,2000000,1007811,7.000,143969.4,61.952,111.616,149.504,3641.187,55.482,7.827,128761.7,3555962880,0,3528.40,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,1,0,0 +candidate,disk,2,0,range:uniform:1@8,8,2,2000000,420304,7.000,60041.5,123.904,331.776,479.232,2538.208,133.144,58.706,7159.5,5943205888,0,14140.26,0.00,123.904,331.776,132.290,nan,0.802,420304,60041.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,2,2000000,5745,7.000,820.7,7667.712,26476.544,35127.296,38764.660,9747.624,24.041,239.0,14645161984,0,2549201.39,0.00,380.928,1228.800,415.136,935.14,1.506,57357356,8193677.6,7.000,0.074,7.075,0.008,0,274432,nan,3671461888,834019328,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.log new file mode 100644 index 000000000..ba8f16a48 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-02-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.18 ops/s= 10844172 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=2967214 rd=188.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1007811 notfound=0 +== point:uniform@8 T=8 ops=1007811 secs= 7.00 ops/s= 143969 lat us p50=61.95 p99=111.62 p99.9=149.50 max=3641.2 mean=55.48 + cpu=7.83s ops/cpu-s=128762 rd=3528.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 169916 ops (+16991 ops/s) +== range:uniform:1@8 T=8 ops=420304 secs= 7.00 ops/s= 60042 lat us p50=123.90 p99=331.78 p99.9=479.23 max=2538.2 mean=133.14 + cpu=58.71s ops/cpu-s=7160 rd=14140.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=123.90 p99=331.78 mean=132.29 per-tuple=nan ns deinit mean=0.80 us tuples/s=60042 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3935 ops (+1844556000156531712 ops/s) +close took 0.074 s +== range:uniform:10000@8 T=8 ops=5745 secs= 7.00 ops/s= 821 lat us p50=7667.71 p99=26476.54 p99.9=35127.30 max=38764.7 mean=9747.62 + cpu=24.04s ops/cpu-s=239 rd=2549201.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=380.93 p99=1228.80 mean=415.14 per-tuple=935.1 ns deinit mean=1.51 us tuples/s=8193678 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671461888 db_alloc=834019328 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.csv new file mode 100644 index 000000000..a350debb1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,3,0,warm,8,3,2000000,2000000,0.183,10926682.1,nan,nan,nan,0.000,nan,0.724,2761282.9,377020416,32768,188.51,0.02,nan,nan,nan,nan,nan,2000000,10926682.1,0.183,0.000,0.183,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,3,0,point:uniform@8,8,3,2000000,1106307,7.000,158039.7,51.712,101.376,1130.496,2982.664,50.534,8.511,129978.7,3903438848,0,3528.35,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,3,0,range:uniform:1@8,8,3,2000000,458776,7.000,65537.3,111.616,307.200,1720.320,4666.721,121.971,58.839,7797.2,6487711744,0,14141.35,0.00,109.568,307.200,121.149,nan,0.769,458776,65537.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,disk,3,0,range:uniform:10000@8,8,3,2000000,5803,7.000,829.0,7405.568,30670.848,70254.592,78082.070,9647.710,25.023,231.9,14798229504,0,2550099.86,0.00,348.160,2129.920,416.361,925.02,1.540,57937356,8276543.9,7.000,0.068,7.069,0.008,0,274432,nan,3671461888,833261568,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.log new file mode 100644 index 000000000..76bb0d70d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-03-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.18 ops/s= 10926682 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.72s ops/cpu-s=2761283 rd=188.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=1106307 notfound=0 +== point:uniform@8 T=8 ops=1106307 secs= 7.00 ops/s= 158040 lat us p50=51.71 p99=101.38 p99.9=1130.50 max=2982.7 mean=50.53 + cpu=8.51s ops/cpu-s=129979 rd=3528.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 183758 ops (+18375 ops/s) +== range:uniform:1@8 T=8 ops=458776 secs= 7.00 ops/s= 65537 lat us p50=111.62 p99=307.20 p99.9=1720.32 max=4666.7 mean=121.97 + cpu=58.84s ops/cpu-s=7797 rd=14141.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=109.57 p99=307.20 mean=121.15 per-tuple=nan ns deinit mean=0.77 us tuples/s=65537 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3877 ops (+1844550893660726016 ops/s) +close took 0.068 s +== range:uniform:10000@8 T=8 ops=5803 secs= 7.00 ops/s= 829 lat us p50=7405.57 p99=30670.85 p99.9=70254.59 max=78082.1 mean=9647.71 + cpu=25.02s ops/cpu-s=232 rd=2550099.9 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=348.16 p99=2129.92 mean=416.36 per-tuple=925.0 ns deinit mean=1.54 us tuples/s=8276544 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671461888 db_alloc=833261568 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.csv new file mode 100644 index 000000000..d646656b6 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,0,0,warm,8,0,2000000,2000000,0.172,11659820.2,nan,nan,nan,0.000,nan,0.672,2974411.1,375537664,32768,187.77,0.02,nan,nan,nan,nan,nan,2000000,11659820.2,0.172,0.000,0.172,0.000,0,0,nan,0,0,0.047,0,0,0,0,0 +main,disk,0,0,point:uniform@8,8,0,2000000,956687,7.000,136666.5,64.000,119.808,169.984,4045.255,58.360,6.815,140382.2,3376570368,0,3529.44,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.047,0,0,4,0,0 +main,disk,0,0,range:uniform:1@8,8,0,2000000,394784,7.000,56396.0,128.000,364.544,1556.480,17712.624,141.657,58.613,6735.4,5587775488,0,14154.01,0.00,128.000,364.544,140.899,nan,0.712,394784,56396.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.047,0,0,0,0,0 +main,disk,0,0,range:uniform:10000@8,8,0,2000000,5608,7.000,801.1,8060.928,29097.984,49807.360,63750.167,9983.979,22.510,249.1,14199750656,0,2532052.54,0.00,405.504,1622.016,458.346,954.63,1.205,55984795,7997602.5,7.000,0.071,7.072,0.007,0,274432,nan,3671592960,833474560,0.047,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.log new file mode 100644 index 000000000..51dc3e807 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.log @@ -0,0 +1,22 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-00-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.047 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.17 ops/s= 11659820 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=2974411 rd=187.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=956687 notfound=0 +== point:uniform@8 T=8 ops=956687 secs= 7.00 ops/s= 136666 lat us p50=64.00 p99=119.81 p99.9=169.98 max=4045.3 mean=58.36 + cpu=6.81s ops/cpu-s=140382 rd=3529.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=4 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 160380 ops (+16037 ops/s) +== range:uniform:1@8 T=8 ops=394784 secs= 7.00 ops/s= 56396 lat us p50=128.00 p99=364.54 p99.9=1556.48 max=17712.6 mean=141.66 + cpu=58.61s ops/cpu-s=6735 rd=14154.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=128.00 p99=364.54 mean=140.90 per-tuple=nan ns deinit mean=0.71 us tuples/s=56396 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3830 ops (+1844533303155594496 ops/s) +close took 0.071 s +== range:uniform:10000@8 T=8 ops=5608 secs= 7.00 ops/s= 801 lat us p50=8060.93 p99=29097.98 p99.9=49807.36 max=63750.2 mean=9983.98 + cpu=22.51s ops/cpu-s=249 rd=2532052.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1622.02 mean=458.35 per-tuple=954.6 ns deinit mean=1.20 us tuples/s=7997603 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833474560 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.csv new file mode 100644 index 000000000..ad9fa325e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,1,0,warm,8,1,2000000,2000000,0.177,11292143.0,nan,nan,nan,0.000,nan,0.674,2966795.6,375668736,32768,187.83,0.02,nan,nan,nan,nan,nan,2000000,11292143.0,0.177,0.000,0.177,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +candidate,disk,1,0,point:uniform@8,8,1,2000000,943897,7.000,134838.6,64.000,119.808,169.984,4627.208,59.142,6.560,143882.2,3331739648,0,3529.77,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +candidate,disk,1,0,range:uniform:1@8,8,1,2000000,392378,7.000,56052.0,133.120,364.544,548.864,4175.104,142.494,58.569,6699.4,5548408832,0,14140.47,0.00,130.048,364.544,141.461,nan,0.985,392378,56052.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.048,0,0,0,0,0 +candidate,disk,1,0,range:uniform:10000@8,8,1,2000000,5578,7.000,796.8,8192.000,27525.120,36175.872,41467.383,10034.598,22.607,246.7,14126247936,0,2532493.36,0.00,405.504,1359.872,450.791,960.32,1.587,55689642,7955440.7,7.000,0.090,7.090,0.007,0,274432,nan,3671592960,833515520,0.048,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.log new file mode 100644 index 000000000..4b06c3480 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-01-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.048 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.18 ops/s= 11292143 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.67s ops/cpu-s=2966796 rd=187.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=943897 notfound=0 +== point:uniform@8 T=8 ops=943897 secs= 7.00 ops/s= 134839 lat us p50=64.00 p99=119.81 p99.9=169.98 max=4627.2 mean=59.14 + cpu=6.56s ops/cpu-s=143882 rd=3529.8 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 154952 ops (+15494 ops/s) +== range:uniform:1@8 T=8 ops=392378 secs= 7.00 ops/s= 56052 lat us p50=133.12 p99=364.54 p99.9=548.86 max=4175.1 mean=142.49 + cpu=58.57s ops/cpu-s=6699 rd=14140.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=130.05 p99=364.54 mean=141.46 per-tuple=nan ns deinit mean=0.98 us tuples/s=56052 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3780 ops (+1844556687578682880 ops/s) +close took 0.090 s +== range:uniform:10000@8 T=8 ops=5578 secs= 7.00 ops/s= 797 lat us p50=8192.00 p99=27525.12 p99.9=36175.87 max=41467.4 mean=10034.60 + cpu=22.61s ops/cpu-s=247 rd=2532493.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=405.50 p99=1359.87 mean=450.79 per-tuple=960.3 ns deinit mean=1.59 us tuples/s=7955441 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833515520 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.csv new file mode 100644 index 000000000..bd7cf63c1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,disk,2,0,warm,8,2,2000000,2000000,0.195,10247575.9,nan,nan,nan,0.000,nan,0.732,2730554.4,377102336,32768,188.55,0.02,nan,nan,nan,nan,nan,2000000,10247575.9,0.195,0.000,0.195,0.000,0,0,nan,0,0,0.047,0,0,0,0,0 +candidate,disk,2,0,point:uniform@8,8,2,2000000,935064,7.000,133577.2,64.000,121.856,282.624,3895.246,59.712,6.552,142704.7,3300474880,0,3529.68,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.047,0,0,7,0,0 +candidate,disk,2,0,range:uniform:1@8,8,2,2000000,385593,7.000,55082.8,133.120,372.736,1196.032,3446.774,145.031,58.652,6574.3,5452718080,0,14141.12,0.00,133.120,372.736,143.987,nan,0.995,385593,55082.8,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.047,0,0,0,0,0 +candidate,disk,2,0,range:uniform:10000@8,8,2,2000000,5513,7.000,787.5,8192.000,30146.560,45613.056,58419.732,10161.359,22.298,247.2,13970583552,0,2534116.37,0.00,413.696,1523.712,460.519,972.00,1.660,55039642,7862539.9,7.000,0.105,7.105,0.008,0,274432,nan,3671592960,833515520,0.047,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.log new file mode 100644 index 000000000..32df7c004 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-02-candidate.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.047 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.20 ops/s= 10247576 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.73s ops/cpu-s=2730554 rd=188.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=935064 notfound=0 +== point:uniform@8 T=8 ops=935064 secs= 7.00 ops/s= 133577 lat us p50=64.00 p99=121.86 p99.9=282.62 max=3895.2 mean=59.71 + cpu=6.55s ops/cpu-s=142705 rd=3529.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=7 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 153438 ops (+15343 ops/s) +== range:uniform:1@8 T=8 ops=385593 secs= 7.00 ops/s= 55083 lat us p50=133.12 p99=372.74 p99.9=1196.03 max=3446.8 mean=145.03 + cpu=58.65s ops/cpu-s=6574 rd=14141.1 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=133.12 p99=372.74 mean=143.99 per-tuple=nan ns deinit mean=0.99 us tuples/s=55083 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3731 ops (+1844552345963998208 ops/s) +close took 0.105 s +== range:uniform:10000@8 T=8 ops=5513 secs= 7.00 ops/s= 788 lat us p50=8192.00 p99=30146.56 p99.9=45613.06 max=58419.7 mean=10161.36 + cpu=22.30s ops/cpu-s=247 rd=2534116.4 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=413.70 p99=1523.71 mean=460.52 per-tuple=972.0 ns deinit mean=1.66 us tuples/s=7862540 + insert/run=7.00s drain(close)=0.10s total=7.10s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833515520 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.csv new file mode 100644 index 000000000..cfc3d4775 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,disk,3,0,warm,8,3,2000000,2000000,0.232,8620624.0,nan,nan,nan,0.000,nan,0.826,2421603.6,377384960,32768,188.69,0.02,nan,nan,nan,nan,nan,2000000,8620624.0,0.232,0.000,0.232,0.000,0,0,nan,0,0,0.049,0,0,0,0,0 +main,disk,3,0,point:uniform@8,8,3,2000000,925115,7.000,132155.7,64.000,123.904,958.464,4077.444,60.360,6.486,142630.4,3264372736,0,3528.61,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.049,0,0,1,0,0 +main,disk,3,0,range:uniform:1@8,8,3,2000000,373604,7.000,53370.4,133.120,421.888,1687.552,6784.185,149.674,58.475,6389.1,5291941888,0,14164.58,0.00,133.120,413.696,148.866,nan,0.759,373604,53370.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.049,0,0,6,0,0 +main,disk,3,0,range:uniform:10000@8,8,3,2000000,5521,7.000,788.7,8192.000,30146.560,44564.480,60930.301,10140.698,22.492,245.5,13914914816,0,2520361.31,0.00,397.312,1622.016,458.259,970.22,1.298,55119642,7874002.1,7.000,0.082,7.082,0.008,0,274432,nan,3671592960,833474560,0.049,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.log new file mode 100644 index 000000000..d989ff525 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.log @@ -0,0 +1,22 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-03-main.db mode=open n=2000000 cache_mib=64 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.049 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=2000000 secs= 0.23 ops/s= 8620624 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.83s ops/cpu-s=2421604 rd=188.7 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=925115 notfound=0 +== point:uniform@8 T=8 ops=925115 secs= 7.00 ops/s= 132156 lat us p50=64.00 p99=123.90 p99.9=958.46 max=4077.4 mean=60.36 + cpu=6.49s ops/cpu-s=142630 rd=3528.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 146093 ops (+14608 ops/s) +== range:uniform:1@8 T=8 ops=373604 secs= 7.00 ops/s= 53370 lat us p50=133.12 p99=421.89 p99.9=1687.55 max=6784.2 mean=149.67 + cpu=58.47s ops/cpu-s=6389 rd=14164.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=6 swapout=0 majflt=0 + startup us p50=133.12 p99=413.70 mean=148.87 per-tuple=nan ns deinit mean=0.76 us tuples/s=53370 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 3647 ops (+1844554310837682688 ops/s) +close took 0.082 s +== range:uniform:10000@8 T=8 ops=5521 secs= 7.00 ops/s= 789 lat us p50=8192.00 p99=30146.56 p99.9=44564.48 max=60930.3 mean=10140.70 + cpu=22.49s ops/cpu-s=245 rd=2520361.3 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=397.31 p99=1622.02 mean=458.26 per-tuple=970.2 ns deinit mean=1.30 us tuples/s=7874002 + insert/run=7.00s drain(close)=0.08s total=7.08s drain_cpu=0.01s drain_rd=0 drain_wr=274432 wamp=nan db_apparent=3671592960 db_alloc=833474560 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/manifest.json b/benchmarks/results-20261014/prefix-main-6105c49f/reads/manifest.json new file mode 100644 index 000000000..1df4f55c5 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/manifest.json @@ -0,0 +1,4328 @@ +{ + "mode": "reads", + "started": 1792007320.897416, + "complete": true, + "runner_sha256": "eef41a21f8c4275c300fa24ed69b457b233c8ee0a470926d84c3f5ea755ebd25", + "build_json_sha256": "7bed995652687ea945106e764423ed445b4573d79dc5973b77f05c3cfda0051b", + "builds": { + "main": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main", + "commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "MAKEFLAGS=B -j8 --jobserver-auth=fifo:/tmp/prefix-main-build-6105c49f/GMfifo3 -- GIT_VERSION=6105c49f BUILD_MODE=release\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557" + } + }, + "candidate": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "BUILD_ROOT=build-main-6105c49f\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-xn10vunh/GMfifo3 -- BUILD_MODE=release BUILD_ROOT=build-main-6105c49f\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a" + } + } + }, + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix]", + "database_directory": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases", + "io": "O_DIRECT", + "fixture_copy": "cp --reflink=auto --sparse=always, then fsync", + "cpu_affinity": "0-11", + "platform": "Linux-6.12.107+deb13-amd64-x86_64-with-glibc2.41", + "available_cpu_affinity": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "loadavg_start": [ + 0.38134765625, + 0.8818359375, + 0.8583984375 + ], + "environment": { + "PREFIX_PATTERN": "per case", + "PREFIX_DISABLE": "unset except candidate disabled case", + "KVBENCH_STATS_BEFORE_CLOSE": "1 for fixture creation only" + }, + "coordination": "Caller holds exclusive campaign benchmark and machine locks", + "seconds": 7, + "warmup_seconds": 1, + "seed": 42, + "loading_threads": 1, + "background_workers": 0, + "memtable_mib": 4, + "verification": "Every query verifies key/value or ordered range; overwrite validates up to 4096 measured keys per worker after timing", + "runs": [ + { + "label": "load-main-resident-common-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007320.8993094, + "log": "fixtures/load-main-resident-common-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007321.2648597, + "log_sha256": "18f3ad13ea489bad9da0c0ebfcc18b364a9225be43b0873da927de767debe8a2", + "process_cpu_s": 0.27833499999999994, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-resident-common-wal0.csv" + }, + { + "label": "space-main-resident-common-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007321.2657945, + "log": "fixtures/space-main-resident-common-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007321.380796, + "log_sha256": "5a00eb062d7e6700f3697a3036822c3b3fc58d0c1d7d8d3e4bc0e2f4812b7655", + "process_cpu_s": 0.007987000000000001, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-common-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007321.61044, + "log": "reads/resident-common-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007345.7493966, + "log_sha256": "4483cce20da1d90cd5cfb362528a6198c32ea3a2e2a4192effafe7e08dea1d11", + "process_cpu_s": 192.05891799999998, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-common", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.028341293334960938, + "csv": "reads/resident-common-wal0-00-main.csv", + "csv_sha256": "0f613440cb864b9d1dd4ae227f649d6e0842d5811cd56f0d016fbd1617317071", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-candidate-resident-common-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007345.7537627, + "log": "fixtures/load-candidate-resident-common-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007346.1194715, + "log_sha256": "fad0a52af9174b39e338a46b9764e8ad34ed1b79456bee038a6e0a269339edf0", + "process_cpu_s": 0.27261500000002475, + "process_read_bytes": 0, + "process_write_bytes": 26038272, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-common-wal0.csv" + }, + { + "label": "space-candidate-resident-common-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007346.121212, + "log": "fixtures/space-candidate-resident-common-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007346.236161, + "log_sha256": "f8d316fb316dd1232d01db8fd42d5d243d41b0ddd92bb690ceb8276a7bb34581", + "process_cpu_s": 0.00840100000000052, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 256 + }, + { + "label": "resident-common-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007346.43102, + "log": "reads/resident-common-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007370.523143, + "log_sha256": "29c7c306a92939076027be113bdd9a1920bade59d547b1913c5047fad31091d9", + "process_cpu_s": 192.04360799999998, + "process_read_bytes": 25542656, + "process_write_bytes": 327680, + "case": "resident-common", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.01937580108642578, + "csv": "reads/resident-common-wal0-01-candidate.csv", + "csv_sha256": "9165a462d1bac43a6d4da35c51fa052b75c026b9ab0552b12b7838060d6ed866", + "allocated_bytes": 26005504, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "resident-common-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007370.5424101, + "log": "reads/resident-common-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007394.632168, + "log_sha256": "2f140f48521fd5ba9170bcbcd07c17e225826e570fea11346ddb4aa5cab1c671", + "process_cpu_s": 192.04615500000003, + "process_read_bytes": 25542656, + "process_write_bytes": 335872, + "case": "resident-common", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.01579451560974121, + "csv": "reads/resident-common-wal0-02-candidate.csv", + "csv_sha256": "f88ec6cf056491450410b555abbd666eb8b79c1ca4126a7487bcccb7fcc2e28d", + "allocated_bytes": 26005504, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "resident-common-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007394.6629915, + "log": "reads/resident-common-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007418.7962363, + "log_sha256": "0f7e80ffeb18e4ba2068eb8cdc5572f878f8bf0ffb86154d2bff15959be9f232", + "process_cpu_s": 191.99984299999988, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-common", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.02751469612121582, + "csv": "reads/resident-common-wal0-03-main.csv", + "csv_sha256": "bf6400b52762b75f8606a5f418f24997a18ca955fe0469511836d14bcee6115f", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-main-resident-random-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007418.8008606, + "log": "fixtures/load-main-resident-random-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007419.366725, + "log_sha256": "b10a82fd89d784f75fba697224c2e0900c30582f56e56f5ddf2b4b95f1080195", + "process_cpu_s": 0.41713100000000825, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-resident-random-wal0.csv" + }, + { + "label": "space-main-resident-random-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007419.3751893, + "log": "fixtures/space-main-resident-random-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007419.540748, + "log_sha256": "acdaa32faf88bd61d63a036b854522d23c4c11f1ddef4072323908ec6e940c2d", + "process_cpu_s": 0.05717100000000597, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-random-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792007419.8191059, + "log": "reads/resident-random-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007452.0309148, + "log_sha256": "9f03422ef7352eb0cb00e5b310ef14cb2a71b2843197271aff28dc037883b6d3", + "process_cpu_s": 200.0784959999999, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-random", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-random-wal0", + "fixture_sha256": "61b6513de7a5bc2bee5ea8de5e4f475dfefa9fe9afd5de49b2353066e11a4b1a", + "copy_fsynced": true, + "copy_seconds": 0.029645204544067383, + "csv": "reads/resident-random-wal0-00-main.csv", + "csv_sha256": "21bcabd89dea859a9faf2cd6d0eec2887912f42cb0b474dfa8ad42c7bf5bacfd", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "load-candidate-resident-random-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007452.0422213, + "log": "fixtures/load-candidate-resident-random-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007452.5589545, + "log_sha256": "1a5daef79adeacea4aaf65f13cea8b9773b3ed9884c8628b52219315ca7ba851", + "process_cpu_s": 0.3712489999999927, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-random-wal0.csv" + }, + { + "label": "space-candidate-resident-random-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007452.5674243, + "log": "fixtures/space-candidate-resident-random-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007452.7319896, + "log_sha256": "b1c96815f733bc3815444f4e2d46bddcecf3de02d94943a31804fb46a3e09c77", + "process_cpu_s": 0.05585700000000471, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-random-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792007453.0087829, + "log": "reads/resident-random-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007485.1720135, + "log_sha256": "bd6b95a797eae86a20efd5ba42212e44822e6f3ef8403193e4c9f161f6e39137", + "process_cpu_s": 200.10427100000007, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-random", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-random-wal0", + "fixture_sha256": "fd1e976b91a26f529f5d3f7a2341b16f0dd61f0166973da8ee0424907081ef84", + "copy_fsynced": true, + "copy_seconds": 0.030730247497558594, + "csv": "reads/resident-random-wal0-01-candidate.csv", + "csv_sha256": "374333a2bf1babace068d70dc9b8216bf29dae58d3952a95efcaf4cadad2d1d7", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "resident-random-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792007485.2032523, + "log": "reads/resident-random-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007517.371949, + "log_sha256": "1a52e2cbb98c55d05d90a96091b98e63885cd0a6683020ec1abb6607794ae8f3", + "process_cpu_s": 200.11143199999998, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-random", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-random-wal0", + "fixture_sha256": "fd1e976b91a26f529f5d3f7a2341b16f0dd61f0166973da8ee0424907081ef84", + "copy_fsynced": true, + "copy_seconds": 0.026772260665893555, + "csv": "reads/resident-random-wal0-02-candidate.csv", + "csv_sha256": "d4af4bb252248f300a2ebe838a20599523b69747fa42b3a01cbbdb72d4afd621", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "resident-random-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792007517.4077384, + "log": "reads/resident-random-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007549.530244, + "log_sha256": "233e25ddf874e7823f0fb33e7ab18e72485edb84761bdf19559b86c1b5e6415e", + "process_cpu_s": 200.09610500000002, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-random", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-random-wal0", + "fixture_sha256": "61b6513de7a5bc2bee5ea8de5e4f475dfefa9fe9afd5de49b2353066e11a4b1a", + "copy_fsynced": true, + "copy_seconds": 0.029761791229248047, + "csv": "reads/resident-random-wal0-03-main.csv", + "csv_sha256": "5910f056e16b0f75ed5675afca09a6947a853923a8c4d34a62c56ac1e6639fa2", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "load-main-resident-nonlexical-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-nonlexical-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-nonlexical-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007549.5347984, + "log": "fixtures/load-main-resident-nonlexical-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007549.9507275, + "log_sha256": "fd7ea90a8d8d4b6bd0f3e4840f7d4f9129f3ffaba82a01aa2d3813a0639c85aa", + "process_cpu_s": 0.2815930000001199, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-resident-nonlexical-wal0.csv" + }, + { + "label": "space-main-resident-nonlexical-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-nonlexical-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-nonlexical-wal0.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007549.952769, + "log": "fixtures/space-main-resident-nonlexical-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007550.0675282, + "log_sha256": "2354e63875c291b5462e42b979b9cb808575042e89b623379256ad5f8ddd155c", + "process_cpu_s": 0.009039999999949977, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-nonlexical-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007550.3110907, + "log": "reads/resident-nonlexical-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007574.4546132, + "log_sha256": "78f01ee84cab01a4275df88f6ef85880c8b37fc38b0672fecef61583abe2f12a", + "process_cpu_s": 192.06528799999992, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-nonlexical", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-nonlexical-wal0", + "fixture_sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "copy_fsynced": true, + "copy_seconds": 0.029720544815063477, + "csv": "reads/resident-nonlexical-wal0-00-main.csv", + "csv_sha256": "a3a300f9b0418ab22148ae11aa7001d4dffae8b2aacc58bf1e94781ceb5bf009", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-candidate-resident-nonlexical-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-nonlexical-wal0.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-nonlexical-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007574.459896, + "log": "fixtures/load-candidate-resident-nonlexical-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007574.9261281, + "log_sha256": "caaaece8aeaa43a7c581acc681ef1bd5be09b98514a63d77f24a9820e7648c00", + "process_cpu_s": 0.30024199999982915, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-nonlexical-wal0.csv" + }, + { + "label": "space-candidate-resident-nonlexical-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-nonlexical-wal0.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-nonlexical-wal0.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007574.934755, + "log": "fixtures/space-candidate-resident-nonlexical-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007575.0502958, + "log_sha256": "212fb0ce90510a59cc014c8a44bd724411084131bd720f6c7feb163beccd45cb", + "process_cpu_s": 0.009719999999921347, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-nonlexical-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007575.3199549, + "log": "reads/resident-nonlexical-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007599.456583, + "log_sha256": "e14662c9c949d7a6cc1b3be1a17ef8a41d3e83660a5d5c4b4de5705b7bd6b5d7", + "process_cpu_s": 192.03332600000013, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-nonlexical", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-nonlexical-wal0", + "fixture_sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "copy_fsynced": true, + "copy_seconds": 0.0336003303527832, + "csv": "reads/resident-nonlexical-wal0-01-candidate.csv", + "csv_sha256": "b7e43f5881506bbd1f6ae390da93924cb50e34d3f616ce974c858a1e4e6ce6f1", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "resident-nonlexical-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007599.5003529, + "log": "reads/resident-nonlexical-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007623.6348042, + "log_sha256": "5e038ea7d77646db4310500a5ac8dcc2921f414a61fac2189206c18a3d7d0f07", + "process_cpu_s": 192.05994900000024, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-nonlexical", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-nonlexical-wal0", + "fixture_sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "copy_fsynced": true, + "copy_seconds": 0.03698396682739258, + "csv": "reads/resident-nonlexical-wal0-02-candidate.csv", + "csv_sha256": "d4f76f9f1a903cc461fac2c0775a46197d0ece935d7afc2aa49dbc96c87ab1ff", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "resident-nonlexical-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007623.6662908, + "log": "reads/resident-nonlexical-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007647.8033957, + "log_sha256": "5bb78777b2dc4e365fa4fbea39854a37b385ece8eb769e1ad4f11fe8213b64b9", + "process_cpu_s": 192.04209199999963, + "process_read_bytes": 36823040, + "process_write_bytes": 327680, + "case": "resident-nonlexical", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-nonlexical-wal0", + "fixture_sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "copy_fsynced": true, + "copy_seconds": 0.026031494140625, + "csv": "reads/resident-nonlexical-wal0-03-main.csv", + "csv_sha256": "83e7b38fbbf08c92aab7c64d68fddcb283c37011fc477bb420bceb94e9744033", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-main-disk-common-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-common-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-common-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007647.8090432, + "log": "fixtures/load-main-disk-common-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007652.088279, + "log_sha256": "45edc445076b26576286e5f7c84fd6b089ddc1725580af7bc219b5ebebd58e33", + "process_cpu_s": 3.2633670000003097, + "process_read_bytes": 392429568, + "process_write_bytes": 833572864, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-disk-common-wal0.csv" + }, + { + "label": "space-main-disk-common-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-common-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-common-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007652.09016, + "log": "fixtures/space-main-disk-common-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007652.2056422, + "log_sha256": "0e528d189b6429e41bbbd7727611a57cdea215ddd26378e94915b08660d4d0e5", + "process_cpu_s": 0.0080680000001081, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 3414 + }, + { + "label": "disk-common-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-00-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007656.3348787, + "log": "reads/disk-common-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007680.597687, + "log_sha256": "c1b12d0d4c50ba15421c077cc20656fe60f7b52766b343cd0e0abdad434c9243", + "process_cpu_s": 106.28160399999993, + "process_read_bytes": 32361738240, + "process_write_bytes": 319488, + "case": "disk-common", + "wal": 0, + "index": 0, + "fixture_key": "main-disk-common-wal0", + "fixture_sha256": "dec5f2be82945a2752b28cc27276343ef7fab4af03af36a1c2d56a8cc0152d7a", + "copy_fsynced": true, + "copy_seconds": 0.5679550170898438, + "csv": "reads/disk-common-wal0-00-main.csv", + "csv_sha256": "17a3f00975f76f4d1aebca4b58db2602e0c0cfa289222788d6e81d6564e7aa4e", + "allocated_bytes": 833429504, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-candidate-disk-common-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-common-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-common-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007680.6758451, + "log": "fixtures/load-candidate-disk-common-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007684.801167, + "log_sha256": "d385d761493143bc774e727590e9086357268c0c91e97f39cb44f8d9c49ebe2f", + "process_cpu_s": 3.2873089999999223, + "process_read_bytes": 252567552, + "process_write_bytes": 544026624, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-disk-common-wal0.csv" + }, + { + "label": "space-candidate-disk-common-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-common-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-common-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007684.8034937, + "log": "fixtures/space-candidate-disk-common-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007684.9187396, + "log_sha256": "a720f6b26d8415ea53e9e63a0ba91c49dd90669a235204c9d7235f9ba7948952", + "process_cpu_s": 0.007408999999995558, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 2585 + }, + { + "label": "disk-common-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-01-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007688.381543, + "log": "reads/disk-common-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007712.6504068, + "log_sha256": "f5ce25533b334a493b3f15ecdc36a6d2ede200034a5555f3423b331f52be75d7", + "process_cpu_s": 108.23690300000014, + "process_read_bytes": 28450123776, + "process_write_bytes": 319488, + "case": "disk-common", + "wal": 0, + "index": 1, + "fixture_key": "candidate-disk-common-wal0", + "fixture_sha256": "94cc9c3c0b4ecf1ed96ea3248119b7d092a7c33cf2c5751ecea3aa31c61b1b61", + "copy_fsynced": true, + "copy_seconds": 0.3431582450866699, + "csv": "reads/disk-common-wal0-01-candidate.csv", + "csv_sha256": "a744cab385ad506add6f549a1e26a23e0e5032b2a703824034bb2781cf394007", + "allocated_bytes": 543969280, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-common-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-02-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007713.3367677, + "log": "reads/disk-common-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007737.597948, + "log_sha256": "b5c7f0a0d45d819a9c6c638747dc3f6135709945489ce0cd714a984e2c721d3b", + "process_cpu_s": 107.42225099999979, + "process_read_bytes": 27023200256, + "process_write_bytes": 319488, + "case": "disk-common", + "wal": 0, + "index": 2, + "fixture_key": "candidate-disk-common-wal0", + "fixture_sha256": "94cc9c3c0b4ecf1ed96ea3248119b7d092a7c33cf2c5751ecea3aa31c61b1b61", + "copy_fsynced": true, + "copy_seconds": 0.6288220882415771, + "csv": "reads/disk-common-wal0-02-candidate.csv", + "csv_sha256": "4482cb17d862f723f04205d66168e791dc8bbf8565526aef077fa04f07d602a7", + "allocated_bytes": 543969280, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-common-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-common-wal0-03-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-common-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007738.4140875, + "log": "reads/disk-common-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007762.732269, + "log_sha256": "7588ea5f45c70ede335f1681e1f2657d5d5892cd3174f4c708d41664b070edd3", + "process_cpu_s": 106.22381999999999, + "process_read_bytes": 31051370496, + "process_write_bytes": 319488, + "case": "disk-common", + "wal": 0, + "index": 3, + "fixture_key": "main-disk-common-wal0", + "fixture_sha256": "dec5f2be82945a2752b28cc27276343ef7fab4af03af36a1c2d56a8cc0152d7a", + "copy_fsynced": true, + "copy_seconds": 0.764068603515625, + "csv": "reads/disk-common-wal0-03-main.csv", + "csv_sha256": "5805277a977d10d189387b5a9acaa21c5597611eca22649e1e6ec0123000ea95", + "allocated_bytes": 833429504, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-main-disk-random-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-random-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-random-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007762.809847, + "log": "fixtures/load-main-disk-random-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007768.189341, + "log_sha256": "7680dad51adeed6719d18eac55feb2d6f43036c339f0872e037823058493e4ba", + "process_cpu_s": 4.108841000000325, + "process_read_bytes": 394334208, + "process_write_bytes": 833511424, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-disk-random-wal0.csv" + }, + { + "label": "space-main-disk-random-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-random-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-random-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007768.1915035, + "log": "fixtures/space-main-disk-random-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007768.8584685, + "log_sha256": "9be1f008bacf81ba12f0df9f98e96827810285805d3de698af71d4e28b409776", + "process_cpu_s": 0.5292030000002228, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 3415 + }, + { + "label": "disk-random-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-00-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007773.3770528, + "log": "reads/disk-random-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007798.3469474, + "log_sha256": "3563c04b339fc8970aedf56ec5796377bfaad08c4ad30f6b58e130076e0794d9", + "process_cpu_s": 101.82275599999997, + "process_read_bytes": 26918662144, + "process_write_bytes": 319488, + "case": "disk-random", + "wal": 0, + "index": 0, + "fixture_key": "main-disk-random-wal0", + "fixture_sha256": "0cfdb1bb3524e67d180e901b89b5db112353509ce4a1b18a296db3312c1b9353", + "copy_fsynced": true, + "copy_seconds": 0.8285815715789795, + "csv": "reads/disk-random-wal0-00-main.csv", + "csv_sha256": "fae1dec50849d38af6cdb78498f2c96b4cbddb0f071ec6a492faf6070c7c481c", + "allocated_bytes": 833474560, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-candidate-disk-random-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-random-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-random-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007798.4232552, + "log": "fixtures/load-candidate-disk-random-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007803.9539323, + "log_sha256": "417e14ff55ecc7c88a4438829eba66288bf4252114b925db916eadca06031c89", + "process_cpu_s": 4.24244299999981, + "process_read_bytes": 393678848, + "process_write_bytes": 833597440, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-disk-random-wal0.csv" + }, + { + "label": "space-candidate-disk-random-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-random-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-random-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007803.9557889, + "log": "fixtures/space-candidate-disk-random-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007804.622407, + "log_sha256": "69a4a53652f038cf9d3d1ccd7481299a62cf371b64b1787e2ab2c6b53ae69d8a", + "process_cpu_s": 0.5353760000002126, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 3415 + }, + { + "label": "disk-random-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-01-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007809.0709105, + "log": "reads/disk-random-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007833.9857595, + "log_sha256": "8df230ddd756287031f4a3b5982a65e916c9eddbaaaa26715abddd9d5729fbc1", + "process_cpu_s": 101.45987499999973, + "process_read_bytes": 26666450944, + "process_write_bytes": 319488, + "case": "disk-random", + "wal": 0, + "index": 1, + "fixture_key": "candidate-disk-random-wal0", + "fixture_sha256": "89cfb2d29cfb753c81867285e315cf6fa1ff347bf115264d8a3314c5dbe68fff", + "copy_fsynced": true, + "copy_seconds": 0.7880263328552246, + "csv": "reads/disk-random-wal0-01-candidate.csv", + "csv_sha256": "66aeb7cd450a5e75a1cb70c0d0dd0294d303b8cd8fd0ff9de0d8a122dc457864", + "allocated_bytes": 833515520, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-random-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-02-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007835.107679, + "log": "reads/disk-random-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007860.0804183, + "log_sha256": "38389ee1d34ca638c9c00c165ba0f3e7e7c1869569c6f98157706d8b6a39de2d", + "process_cpu_s": 101.37889699999954, + "process_read_bytes": 26301431808, + "process_write_bytes": 319488, + "case": "disk-random", + "wal": 0, + "index": 2, + "fixture_key": "candidate-disk-random-wal0", + "fixture_sha256": "89cfb2d29cfb753c81867285e315cf6fa1ff347bf115264d8a3314c5dbe68fff", + "copy_fsynced": true, + "copy_seconds": 1.044053554534912, + "csv": "reads/disk-random-wal0-02-candidate.csv", + "csv_sha256": "6ebb822d7c159b599a24244b2fef2fd9561e140e9ab00e16b1a1a52a7b7e5d1f", + "allocated_bytes": 833515520, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-random-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-random-wal0-03-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-random-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007860.970751, + "log": "reads/disk-random-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007885.9424162, + "log_sha256": "43e84814080518023ba4c408995d59a00cb3f1a1b5603f2c977b80050754ccb7", + "process_cpu_s": 101.36222600000053, + "process_read_bytes": 25976754176, + "process_write_bytes": 319488, + "case": "disk-random", + "wal": 0, + "index": 3, + "fixture_key": "main-disk-random-wal0", + "fixture_sha256": "0cfdb1bb3524e67d180e901b89b5db112353509ce4a1b18a296db3312c1b9353", + "copy_fsynced": true, + "copy_seconds": 0.8095407485961914, + "csv": "reads/disk-random-wal0-03-main.csv", + "csv_sha256": "b6d47f74d7ccf21681635f230c0133cd0e825765a1cd09da149821f6564ad58e", + "allocated_bytes": 833474560, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-main-disk-nonlexical-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-nonlexical-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-nonlexical-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007886.0238662, + "log": "fixtures/load-main-disk-nonlexical-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007891.001826, + "log_sha256": "f6e6eba78052b7a7f79786efbae89e4d8a11f7c06992ae8f5bd4a7169736e0aa", + "process_cpu_s": 3.619045999999912, + "process_read_bytes": 394637312, + "process_write_bytes": 833445888, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-disk-nonlexical-wal0.csv" + }, + { + "label": "space-main-disk-nonlexical-wal0", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-disk-nonlexical-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-disk-nonlexical-wal0.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007891.0040016, + "log": "fixtures/space-main-disk-nonlexical-wal0.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007891.1194177, + "log_sha256": "221a20eeb38b98049bdbf4f75052ce6fc1b49eb52df731b8ec9eff5e7b0cc378", + "process_cpu_s": 0.008033000000068569, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 3414 + }, + { + "label": "disk-nonlexical-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-00-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007896.1700928, + "log": "reads/disk-nonlexical-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007920.5380733, + "log_sha256": "553bfec55b20e53a88ff8c86eb20cf80e57154346248bc68108cb790a9dc4e5f", + "process_cpu_s": 101.41864699999951, + "process_read_bytes": 25798180864, + "process_write_bytes": 319488, + "case": "disk-nonlexical", + "wal": 0, + "index": 0, + "fixture_key": "main-disk-nonlexical-wal0", + "fixture_sha256": "24e07320763a98e7d8ef2e2c36272f1a13f309b5a0e0d01eec6dc0a5e7c7b14d", + "copy_fsynced": true, + "copy_seconds": 1.2546803951263428, + "csv": "reads/disk-nonlexical-wal0-00-main.csv", + "csv_sha256": "ab9feb2a4109866d250d134e65ee64a783cd85bf8eb66638b409e3b390b48b62", + "allocated_bytes": 833257472, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "load-candidate-disk-nonlexical-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-nonlexical-wal0.db", + "--create", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-nonlexical-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792007920.613068, + "log": "fixtures/load-candidate-disk-nonlexical-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007925.541582, + "log_sha256": "69dd0483b9beeaa174c80828e2e701b46f7015d3b1a31facd947739c584b0c8d", + "process_cpu_s": 3.6431890000001204, + "process_read_bytes": 392261632, + "process_write_bytes": 834170880, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-disk-nonlexical-wal0.csv" + }, + { + "label": "space-candidate-disk-nonlexical-wal0", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-disk-nonlexical-wal0.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-disk-nonlexical-wal0.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792007925.5434184, + "log": "fixtures/space-candidate-disk-nonlexical-wal0.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007925.70891, + "log_sha256": "2d699969afb74cba2a05b9c57a7b93bee1dab3d7278d8389df20041683d78ecd", + "process_cpu_s": 0.00783200000000761, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 3414 + }, + { + "label": "disk-nonlexical-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-01-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007930.1920724, + "log": "reads/disk-nonlexical-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007954.5606375, + "log_sha256": "8cde9d18aca4df590cad44e8cba37fff1b541e19f703ba68e0acf9e5a4aa1a81", + "process_cpu_s": 103.11980899999992, + "process_read_bytes": 26219646976, + "process_write_bytes": 319488, + "case": "disk-nonlexical", + "wal": 0, + "index": 1, + "fixture_key": "candidate-disk-nonlexical-wal0", + "fixture_sha256": "a20e0ea73c5fd2bcd76bd881d8454ed33499cfeac1f7eb57c6d3a94e3ce44532", + "copy_fsynced": true, + "copy_seconds": 0.7319114208221436, + "csv": "reads/disk-nonlexical-wal0-01-candidate.csv", + "csv_sha256": "00d81b27d38df58fe9a45fa2052bcf7ac1d8644d6f4dabd8d2e82643c019d0b2", + "allocated_bytes": 834019328, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-nonlexical-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-02-candidate.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "disk", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007955.3856497, + "log": "reads/disk-nonlexical-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792007979.706226, + "log_sha256": "e89cf512bd93ce7a6dc3243bca36f7be44b96fc5960ec4a86a6b4873226f3cd1", + "process_cpu_s": 104.20305500000006, + "process_read_bytes": 28000595968, + "process_write_bytes": 319488, + "case": "disk-nonlexical", + "wal": 0, + "index": 2, + "fixture_key": "candidate-disk-nonlexical-wal0", + "fixture_sha256": "a20e0ea73c5fd2bcd76bd881d8454ed33499cfeac1f7eb57c6d3a94e3ce44532", + "copy_fsynced": true, + "copy_seconds": 0.746088981628418, + "csv": "reads/disk-nonlexical-wal0-02-candidate.csv", + "csv_sha256": "134e76299279de845d9eae74d0b53debcd24b306623d883ae527cfe84da59b90", + "allocated_bytes": 834019328, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "disk-nonlexical-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-disk-nonlexical-wal0-03-main.db", + "--open", + "--n", + "2000000", + "--cache-mib", + "64", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/disk-nonlexical-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "disk", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8" + ], + "started": 1792007980.8534684, + "log": "reads/disk-nonlexical-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008005.1776562, + "log_sha256": "0f7795cf5f9a51493ce3f215ebaf6f605e69f107bb67e540ef06d0c1897ce8ce", + "process_cpu_s": 106.50926700000025, + "process_read_bytes": 29251428352, + "process_write_bytes": 319488, + "case": "disk-nonlexical", + "wal": 0, + "index": 3, + "fixture_key": "main-disk-nonlexical-wal0", + "fixture_sha256": "24e07320763a98e7d8ef2e2c36272f1a13f309b5a0e0d01eec6dc0a5e7c7b14d", + "copy_fsynced": true, + "copy_seconds": 1.0639286041259766, + "csv": "reads/disk-nonlexical-wal0-03-main.csv", + "csv_sha256": "7c92e0d1489f470311efc309ebd03999a1b0610d775f535b173971079280af88", + "allocated_bytes": 833261568, + "errors": 0, + "violations": 0, + "phase_count": 4 + }, + { + "label": "resident-common-disabled-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008005.3589466, + "log": "reads/resident-common-disabled-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008037.5754604, + "log_sha256": "851389cf70d682c7a42414a38927683432cd87f011f212a554f7de9d603b915e", + "process_cpu_s": 200.06889300000023, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-common-disabled", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.09630966186523438, + "csv": "reads/resident-common-disabled-wal0-00-main.csv", + "csv_sha256": "dd6f7684418e133deee20de99272d25ab921a5add4e5025d37850523afa4429d", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "load-candidate-resident-common-wal0-disabled", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0-disabled.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0-disabled.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "load:random@1" + ], + "started": 1792008037.587256, + "log": "fixtures/load-candidate-resident-common-wal0-disabled.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008038.0533974, + "log_sha256": "148272476960ffe65d1cadb9b0bb06c091ab01150c5c8747bc2e93c2714361cd", + "process_cpu_s": 0.3065169999997579, + "process_read_bytes": 0, + "process_write_bytes": 37318656, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-common-wal0-disabled.csv" + }, + { + "label": "space-candidate-resident-common-wal0-disabled", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal0-disabled.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal0-disabled.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "space" + ], + "started": 1792008038.0554943, + "log": "fixtures/space-candidate-resident-common-wal0-disabled.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008038.1705449, + "log_sha256": "5fa0d7c08f1cdc2f901bb1466b51c09a5937c0693e13f7b32e57b832e0114578", + "process_cpu_s": 0.00969000000043252, + "process_read_bytes": 282624, + "process_write_bytes": 323584, + "live_extents": 342 + }, + { + "label": "resident-common-disabled-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008038.5539691, + "log": "reads/resident-common-disabled-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008070.7126374, + "log_sha256": "bd92d15ffe743cd30f0d01f8ea7dcfa730eb44a50e08b5bf81b64c37ea2f2999", + "process_cpu_s": 200.08214999999973, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-common-disabled", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-common-wal0-disabled", + "fixture_sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "copy_fsynced": true, + "copy_seconds": 0.0386350154876709, + "csv": "reads/resident-common-disabled-wal0-01-candidate.csv", + "csv_sha256": "d54653b39b16bfa095d636e1c660a948fee37dff12b320a4bd001f5dc80cbd4d", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "resident-common-disabled-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008070.7643044, + "log": "reads/resident-common-disabled-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008102.9248226, + "log_sha256": "61359382525692e7619446c613ea09c9ef96975d38f1f6492c31c5c5d33db54a", + "process_cpu_s": 200.09949500000005, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-common-disabled", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-common-wal0-disabled", + "fixture_sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "copy_fsynced": true, + "copy_seconds": 0.044914960861206055, + "csv": "reads/resident-common-disabled-wal0-02-candidate.csv", + "csv_sha256": "343befd21ff92bfc2fcd10a711168add85deda244b588cb17e0646275b9af3e5", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + }, + { + "label": "resident-common-disabled-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "7", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/reads", + "warm", + "point:uniform@8", + "range:uniform:1@8", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008102.9732108, + "log": "reads/resident-common-disabled-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008135.1315808, + "log_sha256": "6a9e91d2e6fc5f44f2852d18ecc01a3e693f7e2ea052af4d4d8942c77b5ff893", + "process_cpu_s": 200.07155800000032, + "process_read_bytes": 36823040, + "process_write_bytes": 335872, + "case": "resident-common-disabled", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.04263114929199219, + "csv": "reads/resident-common-disabled-wal0-03-main.csv", + "csv_sha256": "d25c48a57605d94dc5a18a50c37ddcbf1af79c8357ca51b83675ad4dfbe05e57", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 5 + } + ], + "finished": 1792008135.1367507, + "loadavg_end": [ + 6.9853515625, + 7.5205078125, + 5.0498046875 + ] +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.csv new file mode 100644 index 000000000..764e29297 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.014,14033008.9,nan,nan,nan,0.000,nan,0.066,3008740.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14033008.9,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,0,0,point:uniform@8,8,0,200000,24814293,7.000,3544771.5,2.144,2.976,10.368,224.336,2.173,55.995,443155.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,3,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,6249778,7.000,892793.3,8.000,12.160,21.760,435.547,8.903,55.993,111617.9,0,0,0.00,0.00,7.488,11.648,8.381,nan,0.470,6249778,892793.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,31031,7.000,4432.8,1490.944,3244.032,3309.568,3508.606,1804.406,55.998,554.1,0,4096,0.00,0.13,9.344,14.976,9.584,184.01,0.657,302539911,43218508.6,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@1,1,0,200000,8741,7.000,1248.7,811.008,860.160,974.848,994.427,800.754,7.000,1248.7,0,4096,0.00,0.47,6.976,8.128,6.962,81.41,0.351,85196913,12170706.7,7.000,0.151,7.151,0.012,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.log new file mode 100644 index 000000000..0a6d0f031 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-00-main.log @@ -0,0 +1,27 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14033009 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3008740 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=24814293 notfound=0 +== point:uniform@8 T=8 ops=24814293 secs= 7.00 ops/s= 3544772 lat us p50=2.14 p99=2.98 p99.9=10.37 max=224.3 mean=2.17 + cpu=55.99s ops/cpu-s=443156 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=3 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 2637073 ops (+263689 ops/s) +== range:uniform:1@8 T=8 ops=6249778 secs= 7.00 ops/s= 892793 lat us p50=8.00 p99=12.16 p99.9=21.76 max=435.5 mean=8.90 + cpu=55.99s ops/cpu-s=111618 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.49 p99=11.65 mean=8.38 per-tuple=nan ns deinit mean=0.47 us tuples/s=892793 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 22220 ops (+1844536965203351552 ops/s) +== range:uniform:10000@8 T=8 ops=31031 secs= 7.00 ops/s= 4433 lat us p50=1490.94 p99=3244.03 p99.9=3309.57 max=3508.6 mean=1804.41 + cpu=56.00s ops/cpu-s=554 rd=0.0 B/op wr=0.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=14.98 mean=9.58 per-tuple=184.0 ns deinit mean=0.66 us tuples/s=43218509 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8641 ops (+1844439955628205568 ops/s) +close took 0.151 s +== range:uniform:10000@1 T=1 ops=8741 secs= 7.00 ops/s= 1249 lat us p50=811.01 p99=860.16 p99.9=974.85 max=994.4 mean=800.75 + cpu=7.00s ops/cpu-s=1249 rd=0.0 B/op wr=0.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.98 p99=8.13 mean=6.96 per-tuple=81.4 ns deinit mean=0.35 us tuples/s=12170707 + insert/run=7.00s drain(close)=0.15s total=7.15s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.csv new file mode 100644 index 000000000..19e9ecc1c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.015,13471723.9,nan,nan,nan,0.000,nan,0.073,2731829.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13471723.9,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,1,200000,26491067,7.000,3784307.2,2.000,2.720,8.128,224.242,2.031,55.996,473088.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,1,0,0 +candidate,resident,1,0,range:uniform:1@8,8,1,200000,6844048,7.000,977689.1,7.232,11.136,20.224,221.366,8.131,55.996,122223.0,0,0,0.00,0.00,6.848,10.368,7.647,nan,0.437,6844048,977689.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,20880,7.000,2982.7,2654.208,4030.464,4161.536,4228.139,2681.545,55.996,372.9,0,4096,0.00,0.20,9.856,14.208,9.970,273.83,0.753,203728741,29103015.1,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,1,200000,8704,7.000,1243.4,827.392,909.312,1327.104,1463.843,804.147,7.000,1243.4,0,4096,0.00,0.47,6.720,9.856,6.811,81.77,0.402,84841867,12119794.3,7.000,0.091,7.092,0.012,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.log new file mode 100644 index 000000000..d63b53cef --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-01-candidate.log @@ -0,0 +1,27 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13471724 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2731830 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=26491067 notfound=0 +== point:uniform@8 T=8 ops=26491067 secs= 7.00 ops/s= 3784307 lat us p50=2.00 p99=2.72 p99.9=8.13 max=224.2 mean=2.03 + cpu=56.00s ops/cpu-s=473089 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 2926441 ops (+292623 ops/s) +== range:uniform:1@8 T=8 ops=6844048 secs= 7.00 ops/s= 977689 lat us p50=7.23 p99=11.14 p99.9=20.22 max=221.4 mean=8.13 + cpu=56.00s ops/cpu-s=122223 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.85 p99=10.37 mean=7.65 per-tuple=nan ns deinit mean=0.44 us tuples/s=977689 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 14893 ops (+1844555143046502144 ops/s) +== range:uniform:10000@8 T=8 ops=20880 secs= 7.00 ops/s= 2983 lat us p50=2654.21 p99=4030.46 p99.9=4161.54 max=4228.1 mean=2681.55 + cpu=56.00s ops/cpu-s=373 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.86 p99=14.21 mean=9.97 per-tuple=273.8 ns deinit mean=0.75 us tuples/s=29103015 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8642 ops (+1844429180551482368 ops/s) +close took 0.091 s +== range:uniform:10000@1 T=1 ops=8704 secs= 7.00 ops/s= 1243 lat us p50=827.39 p99=909.31 p99.9=1327.10 max=1463.8 mean=804.15 + cpu=7.00s ops/cpu-s=1243 rd=0.0 B/op wr=0.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=9.86 mean=6.81 per-tuple=81.8 ns deinit mean=0.40 us tuples/s=12119794 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.csv new file mode 100644 index 000000000..2f61fbf93 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.018,10971755.2,nan,nan,nan,0.000,nan,0.091,2203225.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,10971755.2,0.018,0.000,0.018,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,2,200000,27593518,7.000,3941791.0,1.936,2.528,9.088,238.514,1.947,55.995,492782.6,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,2,200000,6394853,7.000,913518.7,7.744,12.160,21.760,246.060,8.702,55.996,114202.6,0,0,0.00,0.00,7.232,11.392,8.175,nan,0.476,6394853,913518.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,22963,7.000,3280.3,2195.456,5439.488,5570.560,5994.799,2438.062,55.997,410.1,0,4096,0.00,0.18,9.344,15.488,10.034,248.61,0.732,224082060,32010421.8,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,2,200000,9108,7.000,1301.1,778.240,876.544,991.232,1010.451,768.511,7.000,1301.1,0,4096,0.00,0.45,6.720,8.320,6.736,78.12,0.358,88777289,12681989.4,7.000,0.089,7.089,0.012,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.log new file mode 100644 index 000000000..7e1ed95da --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-02-candidate.log @@ -0,0 +1,27 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 10971755 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.09s ops/cpu-s=2203226 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=27593518 notfound=0 +== point:uniform@8 T=8 ops=27593518 secs= 7.00 ops/s= 3941791 lat us p50=1.94 p99=2.53 p99.9=9.09 max=238.5 mean=1.95 + cpu=56.00s ops/cpu-s=492783 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 2709053 ops (+270886 ops/s) +== range:uniform:1@8 T=8 ops=6394853 secs= 7.00 ops/s= 913519 lat us p50=7.74 p99=12.16 p99.9=21.76 max=246.1 mean=8.70 + cpu=56.00s ops/cpu-s=114203 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.23 p99=11.39 mean=8.18 per-tuple=nan ns deinit mean=0.48 us tuples/s=913519 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 16380 ops (+1844545775757558272 ops/s) +== range:uniform:10000@8 T=8 ops=22963 secs= 7.00 ops/s= 3280 lat us p50=2195.46 p99=5439.49 p99.9=5570.56 max=5994.8 mean=2438.06 + cpu=56.00s ops/cpu-s=410 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=15.49 mean=10.03 per-tuple=248.6 ns deinit mean=0.73 us tuples/s=32010422 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8994 ops (+1844434611873733888 ops/s) +close took 0.089 s +== range:uniform:10000@1 T=1 ops=9108 secs= 7.00 ops/s= 1301 lat us p50=778.24 p99=876.54 p99.9=991.23 max=1010.5 mean=768.51 + cpu=7.00s ops/cpu-s=1301 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=8.32 mean=6.74 per-tuple=78.1 ns deinit mean=0.36 us tuples/s=12681989 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.csv new file mode 100644 index 000000000..5786436a1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.014,13850857.7,nan,nan,nan,0.000,nan,0.066,3049245.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13850857.7,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,point:uniform@8,8,3,200000,26668076,7.000,3809599.8,1.968,2.784,9.600,227.078,2.020,55.995,476255.9,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,7030631,7.000,1004344.2,7.104,11.136,19.712,95.273,7.914,55.996,125556.1,0,0,0.00,0.00,6.592,10.624,7.457,nan,0.410,7030631,1004344.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,23838,7.000,3405.3,2260.992,5963.776,6094.848,6239.576,2349.013,55.996,425.7,0,4096,0.00,0.17,9.344,16.640,10.221,239.54,0.756,232636016,33232435.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@1,1,3,200000,9307,7.000,1329.5,761.856,925.696,1097.728,1245.701,752.065,7.000,1329.6,0,4096,0.00,0.44,6.592,10.112,6.666,76.40,0.320,90763461,12965691.9,7.000,0.114,7.114,0.012,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.log new file mode 100644 index 000000000..4fd683694 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-disabled-wal0-03-main.log @@ -0,0 +1,27 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-disabled-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13850858 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3049245 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=26668076 notfound=0 +== point:uniform@8 T=8 ops=26668076 secs= 7.00 ops/s= 3809600 lat us p50=1.97 p99=2.78 p99.9=9.60 max=227.1 mean=2.02 + cpu=56.00s ops/cpu-s=476256 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3015172 ops (+301496 ops/s) +== range:uniform:1@8 T=8 ops=7030631 secs= 7.00 ops/s= 1004344 lat us p50=7.10 p99=11.14 p99.9=19.71 max=95.3 mean=7.91 + cpu=56.00s ops/cpu-s=125556 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.59 p99=10.62 mean=7.46 per-tuple=nan ns deinit mean=0.41 us tuples/s=1004344 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 16992 ops (+1844543618160865792 ops/s) +== range:uniform:10000@8 T=8 ops=23838 secs= 7.00 ops/s= 3405 lat us p50=2260.99 p99=5963.78 p99.9=6094.85 max=6239.6 mean=2349.01 + cpu=56.00s ops/cpu-s=426 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=16.64 mean=10.22 per-tuple=239.5 ns deinit mean=0.76 us tuples/s=33232435 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 9241 ops (+1844417557655151872 ops/s) +close took 0.114 s +== range:uniform:10000@1 T=1 ops=9307 secs= 7.00 ops/s= 1330 lat us p50=761.86 p99=925.70 p99.9=1097.73 max=1245.7 mean=752.07 + cpu=7.00s ops/cpu-s=1330 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.59 p99=10.11 mean=6.67 per-tuple=76.4 ns deinit mean=0.32 us tuples/s=12965692 + insert/run=7.00s drain(close)=0.11s total=7.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.csv new file mode 100644 index 000000000..cde50b599 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.013,15289497.1,nan,nan,nan,0.000,nan,0.062,3235984.1,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15289497.1,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,point:uniform@8,8,0,200000,34486326,7.000,4926481.6,1.520,2.592,6.720,215.468,1.566,55.989,615952.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,8795830,7.000,1256510.3,5.696,8.832,14.720,205.493,6.326,55.997,157077.4,0,0,0.00,0.00,5.312,8.320,5.965,nan,0.323,8795830,1256510.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,38317,7.000,5473.7,1228.800,4161.536,4259.840,4332.152,1461.392,55.996,684.3,0,4096,0.00,0.11,7.232,11.648,7.761,148.92,0.525,373891964,53411363.6,7.000,0.072,7.073,0.012,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.log new file mode 100644 index 000000000..46585a528 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-00-main.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15289497 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3235984 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=34486326 notfound=0 +== point:uniform@8 T=8 ops=34486326 secs= 7.00 ops/s= 4926482 lat us p50=1.52 p99=2.59 p99.9=6.72 max=215.5 mean=1.57 + cpu=55.99s ops/cpu-s=615952 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3799624 ops (+379936 ops/s) +== range:uniform:1@8 T=8 ops=8795830 secs= 7.00 ops/s= 1256510 lat us p50=5.70 p99=8.83 p99.9=14.72 max=205.5 mean=6.33 + cpu=56.00s ops/cpu-s=157077 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.31 p99=8.32 mean=5.97 per-tuple=nan ns deinit mean=0.32 us tuples/s=1256510 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 27463 ops (+1844543462307916800 ops/s) +close took 0.072 s +== range:uniform:10000@8 T=8 ops=38317 secs= 7.00 ops/s= 5474 lat us p50=1228.80 p99=4161.54 p99.9=4259.84 max=4332.2 mean=1461.39 + cpu=56.00s ops/cpu-s=684 rd=0.0 B/op wr=0.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.23 p99=11.65 mean=7.76 per-tuple=148.9 ns deinit mean=0.53 us tuples/s=53411364 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.csv new file mode 100644 index 000000000..e1c001005 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.011,18733148.4,nan,nan,nan,0.000,nan,0.050,4035512.5,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,18733148.4,0.011,0.000,0.011,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,1,0,point:uniform@8,8,1,200000,34928175,7.000,4989583.4,1.520,2.144,5.184,210.645,1.539,55.987,623864.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,1,200000,8301591,7.000,1185895.4,5.824,9.344,15.488,4015.710,6.699,55.986,148278.8,0,0,0.00,0.00,5.440,8.576,6.224,nan,0.431,8301591,1185895.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,31287,7.000,4469.4,892.928,4521.984,4653.056,4923.024,1789.791,55.998,558.7,0,0,0.00,0.00,5.824,10.624,6.345,182.91,0.535,305045642,43576512.9,7.000,0.065,7.066,0.011,0,311296,nan,207360000,26005504,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.log new file mode 100644 index 000000000..7b46485b4 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-01-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 18733148 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=4035513 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=34928175 notfound=0 +== point:uniform@8 T=8 ops=34928175 secs= 7.00 ops/s= 4989583 lat us p50=1.52 p99=2.14 p99.9=5.18 max=210.6 mean=1.54 + cpu=55.99s ops/cpu-s=623864 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3521113 ops (+352087 ops/s) +== range:uniform:1@8 T=8 ops=8301591 secs= 7.00 ops/s= 1185895 lat us p50=5.82 p99=9.34 p99.9=15.49 max=4015.7 mean=6.70 + cpu=55.99s ops/cpu-s=148279 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.44 p99=8.58 mean=6.22 per-tuple=nan ns deinit mean=0.43 us tuples/s=1185895 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 22415 ops (+1844556037967169792 ops/s) +close took 0.065 s +== range:uniform:10000@8 T=8 ops=31287 secs= 7.00 ops/s= 4469 lat us p50=892.93 p99=4521.98 p99.9=4653.06 max=4923.0 mean=1789.79 + cpu=56.00s ops/cpu-s=559 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.82 p99=10.62 mean=6.35 per-tuple=182.9 ns deinit mean=0.53 us tuples/s=43576513 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=311296 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.csv new file mode 100644 index 000000000..409b31408 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.010,19482410.8,nan,nan,nan,0.000,nan,0.044,4512228.1,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,19482410.8,0.010,0.000,0.010,0.000,0,0,nan,0,0,0.005,0,0,0,0,1 +candidate,resident,2,0,point:uniform@8,8,2,200000,31447243,7.000,4492319.2,1.680,2.336,6.848,217.912,1.709,55.993,561629.2,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,2,200000,8161166,7.000,1165847.2,5.824,9.856,19.200,213.200,6.815,55.994,145750.5,0,0,0.00,0.00,5.440,9.344,6.341,nan,0.431,8161166,1165847.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,24372,7.000,3481.6,2195.456,3178.496,3375.104,3703.297,2297.487,55.995,435.3,0,0,0.00,0.00,7.360,12.416,7.525,234.65,0.651,237793967,33969267.1,7.000,0.063,7.063,0.012,0,311296,nan,207360000,26005504,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.log new file mode 100644 index 000000000..24ea64c22 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-02-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 19482411 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.04s ops/cpu-s=4512228 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=31447243 notfound=0 +== point:uniform@8 T=8 ops=31447243 secs= 7.00 ops/s= 4492319 lat us p50=1.68 p99=2.34 p99.9=6.85 max=217.9 mean=1.71 + cpu=55.99s ops/cpu-s=561629 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3520318 ops (+352008 ops/s) +== range:uniform:1@8 T=8 ops=8161166 secs= 7.00 ops/s= 1165847 lat us p50=5.82 p99=9.86 p99.9=19.20 max=213.2 mean=6.82 + cpu=55.99s ops/cpu-s=145750 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.44 p99=9.34 mean=6.34 per-tuple=nan ns deinit mean=0.43 us tuples/s=1165847 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 17303 ops (+1844543929128872192 ops/s) +close took 0.063 s +== range:uniform:10000@8 T=8 ops=24372 secs= 7.00 ops/s= 3482 lat us p50=2195.46 p99=3178.50 p99.9=3375.10 max=3703.3 mean=2297.49 + cpu=56.00s ops/cpu-s=435 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.36 p99=12.42 mean=7.52 per-tuple=234.6 ns deinit mean=0.65 us tuples/s=33969267 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=311296 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.csv new file mode 100644 index 000000000..04a10d73d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.013,15529260.9,nan,nan,nan,0.000,nan,0.058,3448513.7,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15529260.9,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,point:uniform@8,8,3,200000,28523155,7.000,4074604.5,1.808,2.592,15.232,1058.691,1.889,55.968,509634.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,7507099,7.000,1072409.9,6.336,10.624,40.448,1056.212,7.405,55.974,134116.5,0,0,0.00,0.00,6.080,9.856,6.979,nan,0.383,7507099,1072409.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,27142,7.000,3877.3,2015.232,4521.984,4784.128,5422.148,2063.125,55.978,484.9,0,4096,0.00,0.15,8.320,16.256,8.928,210.67,0.638,264716007,37815225.2,7.000,0.071,7.071,0.014,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.log new file mode 100644 index 000000000..8e869259b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-common-wal0-03-main.log @@ -0,0 +1,22 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-common-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15529261 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3448514 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=28523155 notfound=0 +== point:uniform@8 T=8 ops=28523155 secs= 7.00 ops/s= 4074604 lat us p50=1.81 p99=2.59 p99.9=15.23 max=1058.7 mean=1.89 + cpu=55.97s ops/cpu-s=509634 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3207919 ops (+320770 ops/s) +== range:uniform:1@8 T=8 ops=7507099 secs= 7.00 ops/s= 1072410 lat us p50=6.34 p99=10.62 p99.9=40.45 max=1056.2 mean=7.40 + cpu=55.97s ops/cpu-s=134116 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.08 p99=9.86 mean=6.98 per-tuple=nan ns deinit mean=0.38 us tuples/s=1072410 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 19477 ops (+1844545856911867136 ops/s) +close took 0.071 s +== range:uniform:10000@8 T=8 ops=27142 secs= 7.00 ops/s= 3877 lat us p50=2015.23 p99=4521.98 p99.9=4784.13 max=5422.1 mean=2063.12 + cpu=55.98s ops/cpu-s=485 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=16.26 mean=8.93 per-tuple=210.7 ns deinit mean=0.64 us tuples/s=37815225 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.csv new file mode 100644 index 000000000..6e4b5b0b3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.013,15180385.5,nan,nan,nan,0.000,nan,0.064,3131458.6,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15180385.5,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,point:uniform@8,8,0,200000,30550350,7.000,4364191.6,1.712,2.400,5.952,216.281,1.744,55.988,545662.8,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,7410428,7.000,1058596.2,6.592,10.368,19.200,333.864,7.486,55.994,132342.8,0,0,0.00,0.00,6.208,9.856,7.048,nan,0.393,7410428,1058596.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,24647,7.000,3520.9,2523.136,5439.488,5570.560,5749.182,2271.885,56.029,439.9,0,4096,0.00,0.17,7.872,11.904,8.322,231.92,0.582,240395708,34340894.3,7.000,0.066,7.066,0.013,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.log new file mode 100644 index 000000000..95d61e475 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-00-main.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15180385 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3131459 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=30550350 notfound=0 +== point:uniform@8 T=8 ops=30550350 secs= 7.00 ops/s= 4364192 lat us p50=1.71 p99=2.40 p99.9=5.95 max=216.3 mean=1.74 + cpu=55.99s ops/cpu-s=545663 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3131485 ops (+313127 ops/s) +== range:uniform:1@8 T=8 ops=7410428 secs= 7.00 ops/s= 1058596 lat us p50=6.59 p99=10.37 p99.9=19.20 max=333.9 mean=7.49 + cpu=55.99s ops/cpu-s=132343 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=9.86 mean=7.05 per-tuple=nan ns deinit mean=0.39 us tuples/s=1058596 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 17568 ops (+1844548961993651968 ops/s) +close took 0.066 s +== range:uniform:10000@8 T=8 ops=24647 secs= 7.00 ops/s= 3521 lat us p50=2523.14 p99=5439.49 p99.9=5570.56 max=5749.2 mean=2271.88 + cpu=56.03s ops/cpu-s=440 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.87 p99=11.90 mean=8.32 per-tuple=231.9 ns deinit mean=0.58 us tuples/s=34340894 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.csv new file mode 100644 index 000000000..e1daa89ac --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.013,15033180.1,nan,nan,nan,0.000,nan,0.071,2813414.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,15033180.1,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,resident,1,0,point:uniform@8,8,1,200000,29780424,7.000,4254213.6,1.744,2.464,6.848,221.558,1.794,55.991,531876.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,1,200000,6898659,7.000,985488.4,7.232,11.136,21.760,1252.948,8.046,55.977,123240.7,0,0,0.00,0.00,6.848,10.368,7.565,nan,0.433,6898659,985488.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,20081,7.000,2868.6,2523.136,5832.704,6094.848,6144.837,2788.353,55.973,358.8,0,4096,0.00,0.20,11.136,20.224,11.590,284.67,0.840,195973719,27995192.2,7.000,0.092,7.092,0.013,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.log new file mode 100644 index 000000000..a7184cc37 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-01-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15033180 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2813414 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=29780424 notfound=0 +== point:uniform@8 T=8 ops=29780424 secs= 7.00 ops/s= 4254214 lat us p50=1.74 p99=2.46 p99.9=6.85 max=221.6 mean=1.79 + cpu=55.99s ops/cpu-s=531877 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 2936734 ops (+293654 ops/s) +== range:uniform:1@8 T=8 ops=6898659 secs= 7.00 ops/s= 985488 lat us p50=7.23 p99=11.14 p99.9=21.76 max=1252.9 mean=8.05 + cpu=55.98s ops/cpu-s=123241 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.85 p99=10.37 mean=7.57 per-tuple=nan ns deinit mean=0.43 us tuples/s=985488 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 14186 ops (+1844539585176579328 ops/s) +close took 0.092 s +== range:uniform:10000@8 T=8 ops=20081 secs= 7.00 ops/s= 2869 lat us p50=2523.14 p99=5832.70 p99.9=6094.85 max=6144.8 mean=2788.35 + cpu=55.97s ops/cpu-s=359 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=11.14 p99=20.22 mean=11.59 per-tuple=284.7 ns deinit mean=0.84 us tuples/s=27995192 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.csv new file mode 100644 index 000000000..419db0ff4 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.016,12397170.9,nan,nan,nan,0.000,nan,0.085,2344528.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12397170.9,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,resident,2,0,point:uniform@8,8,2,200000,27601969,7.000,3943007.4,1.904,2.592,9.344,387.299,1.932,55.986,493016.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,2,200000,6903681,7.000,986207.5,7.104,11.136,20.736,410.237,8.040,55.991,123300.1,0,0,0.00,0.00,6.720,10.368,7.564,nan,0.428,6903681,986207.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,24690,7.000,3527.0,1425.408,5177.344,5308.416,5581.226,2267.755,55.983,441.0,0,4096,0.00,0.17,8.576,14.720,9.184,231.38,0.678,240862887,34407714.6,7.000,0.087,7.087,0.012,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.log new file mode 100644 index 000000000..1c0def622 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-02-candidate.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12397171 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.09s ops/cpu-s=2344528 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=27601969 notfound=0 +== point:uniform@8 T=8 ops=27601969 secs= 7.00 ops/s= 3943007 lat us p50=1.90 p99=2.59 p99.9=9.34 max=387.3 mean=1.93 + cpu=55.99s ops/cpu-s=493016 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 2954997 ops (+295479 ops/s) +== range:uniform:1@8 T=8 ops=6903681 secs= 7.00 ops/s= 986207 lat us p50=7.10 p99=11.14 p99.9=20.74 max=410.2 mean=8.04 + cpu=55.99s ops/cpu-s=123300 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=10.37 mean=7.56 per-tuple=nan ns deinit mean=0.43 us tuples/s=986207 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 17536 ops (+1844541729299618560 ops/s) +close took 0.087 s +== range:uniform:10000@8 T=8 ops=24690 secs= 7.00 ops/s= 3527 lat us p50=1425.41 p99=5177.34 p99.9=5308.42 max=5581.2 mean=2267.75 + cpu=55.98s ops/cpu-s=441 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.58 p99=14.72 mean=9.18 per-tuple=231.4 ns deinit mean=0.68 us tuples/s=34407715 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.csv new file mode 100644 index 000000000..e54d5b34f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.csv @@ -0,0 +1,5 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.014,13982078.5,nan,nan,nan,0.000,nan,0.066,3050501.0,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13982078.5,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,point:uniform@8,8,3,200000,28203563,7.000,4028951.9,1.840,2.592,8.576,958.781,1.889,55.980,503819.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,7173633,7.000,1024771.4,6.848,10.880,20.224,964.130,7.733,55.991,128121.0,0,0,0.00,0.00,6.336,10.368,7.283,nan,0.406,7173633,1024771.4,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,22408,7.000,3201.0,2195.456,5046.272,5177.344,5376.230,2498.895,55.996,400.2,0,4096,0.00,0.18,8.576,14.464,9.248,255.21,0.693,218558625,31221381.6,7.000,0.066,7.066,0.013,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.log new file mode 100644 index 000000000..fcd956af8 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-nonlexical-wal0-03-main.log @@ -0,0 +1,22 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-nonlexical-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13982078 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3050501 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=28203563 notfound=0 +== point:uniform@8 T=8 ops=28203563 secs= 7.00 ops/s= 4028952 lat us p50=1.84 p99=2.59 p99.9=8.58 max=958.8 mean=1.89 + cpu=55.98s ops/cpu-s=503819 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3049382 ops (+304917 ops/s) +== range:uniform:1@8 T=8 ops=7173633 secs= 7.00 ops/s= 1024771 lat us p50=6.85 p99=10.88 p99.9=20.22 max=964.1 mean=7.73 + cpu=55.99s ops/cpu-s=128121 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.34 p99=10.37 mean=7.28 per-tuple=nan ns deinit mean=0.41 us tuples/s=1024771 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 15951 ops (+1844546282419055360 ops/s) +close took 0.066 s +== range:uniform:10000@8 T=8 ops=22408 secs= 7.00 ops/s= 3201 lat us p50=2195.46 p99=5046.27 p99.9=5177.34 max=5376.2 mean=2498.90 + cpu=56.00s ops/cpu-s=400 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.58 p99=14.46 mean=9.25 per-tuple=255.2 ns deinit mean=0.69 us tuples/s=31221382 + insert/run=7.00s drain(close)=0.07s total=7.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.csv new file mode 100644 index 000000000..6dc017851 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.013,14860743.3,nan,nan,nan,0.000,nan,0.071,2807096.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14860743.3,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,2 +main,resident,0,0,point:uniform@8,8,0,200000,26982490,7.000,3854472.2,1.840,2.848,10.368,1551.254,1.916,55.986,481951.4,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:1@8,8,0,200000,7443526,7.000,1063328.2,6.464,10.624,19.200,220.797,7.384,55.993,132937.9,0,0,0.00,0.00,6.080,9.856,6.958,nan,0.383,7443526,1063328.2,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@8,8,0,200000,21743,7.000,3106.0,2260.992,4096.000,4390.912,4618.460,2574.861,55.995,388.3,0,4096,0.00,0.19,9.856,21.248,10.709,262.91,0.746,212077576,30295658.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@1,1,0,200000,8114,7.000,1159.1,860.160,1228.800,1490.944,1873.758,862.545,7.000,1159.1,0,4096,0.00,0.50,7.360,14.976,7.786,87.70,0.399,79069477,11295212.5,7.000,0.087,7.088,0.012,0,307200,nan,237375488,37285888,0.005,0,0,13,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.log new file mode 100644 index 000000000..8d6c62a65 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-00-main.log @@ -0,0 +1,27 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14860743 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2807096 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=26982490 notfound=0 +== point:uniform@8 T=8 ops=26982490 secs= 7.00 ops/s= 3854472 lat us p50=1.84 p99=2.85 p99.9=10.37 max=1551.3 mean=1.92 + cpu=55.99s ops/cpu-s=481951 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3076381 ops (+307616 ops/s) +== range:uniform:1@8 T=8 ops=7443526 secs= 7.00 ops/s= 1063328 lat us p50=6.46 p99=10.62 p99.9=19.20 max=220.8 mean=7.38 + cpu=55.99s ops/cpu-s=132938 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.08 p99=9.86 mean=6.96 per-tuple=nan ns deinit mean=0.38 us tuples/s=1063328 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 15831 ops (+1844544483744210944 ops/s) +== range:uniform:10000@8 T=8 ops=21743 secs= 7.00 ops/s= 3106 lat us p50=2260.99 p99=4096.00 p99.9=4390.91 max=4618.5 mean=2574.86 + cpu=55.99s ops/cpu-s=388 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.86 p99=21.25 mean=10.71 per-tuple=262.9 ns deinit mean=0.75 us tuples/s=30295658 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8072 ops (+1844548101755231488 ops/s) +close took 0.087 s +== range:uniform:10000@1 T=1 ops=8114 secs= 7.00 ops/s= 1159 lat us p50=860.16 p99=1228.80 p99.9=1490.94 max=1873.8 mean=862.54 + cpu=7.00s ops/cpu-s=1159 rd=0.0 B/op wr=0.5 B/op violations=0 errors=0 swapin=13 swapout=0 majflt=0 + startup us p50=7.36 p99=14.98 mean=7.79 per-tuple=87.7 ns deinit mean=0.40 us tuples/s=11295213 + insert/run=7.00s drain(close)=0.09s total=7.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.csv new file mode 100644 index 000000000..a0755de8e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.015,13412061.2,nan,nan,nan,0.000,nan,0.067,2992802.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13412061.2,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,resident,1,0,point:uniform@8,8,1,200000,28806195,7.000,4115031.1,1.744,2.464,8.576,356.632,1.794,55.987,514519.3,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,1,200000,7638741,7.000,1091214.3,6.336,10.112,18.176,369.979,7.199,55.995,136418.2,0,0,0.00,0.00,5.824,9.344,6.712,nan,0.443,7638741,1091214.3,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,23058,7.000,3293.9,2392.064,4096.000,4259.840,4388.360,2428.203,55.995,411.8,0,4096,0.00,0.18,8.320,12.672,8.451,248.05,0.681,225010408,32143094.7,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,1,200000,8526,7.000,1218.0,843.776,1007.616,1130.496,1309.555,820.923,7.000,1218.0,0,4096,0.00,0.48,6.080,9.088,6.215,83.54,0.400,83105218,11871711.4,7.000,0.077,7.077,0.012,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.log new file mode 100644 index 000000000..2c327585e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-01-candidate.log @@ -0,0 +1,27 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13412061 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2992802 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=28806195 notfound=0 +== point:uniform@8 T=8 ops=28806195 secs= 7.00 ops/s= 4115031 lat us p50=1.74 p99=2.46 p99.9=8.58 max=356.6 mean=1.79 + cpu=55.99s ops/cpu-s=514519 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3230684 ops (+323046 ops/s) +== range:uniform:1@8 T=8 ops=7638741 secs= 7.00 ops/s= 1091214 lat us p50=6.34 p99=10.11 p99.9=18.18 max=370.0 mean=7.20 + cpu=56.00s ops/cpu-s=136418 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.82 p99=9.34 mean=6.71 per-tuple=nan ns deinit mean=0.44 us tuples/s=1091214 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 16412 ops (+1844542870251741696 ops/s) +== range:uniform:10000@8 T=8 ops=23058 secs= 7.00 ops/s= 3294 lat us p50=2392.06 p99=4096.00 p99.9=4259.84 max=4388.4 mean=2428.20 + cpu=55.99s ops/cpu-s=412 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=12.67 mean=8.45 per-tuple=248.0 ns deinit mean=0.68 us tuples/s=32143095 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8437 ops (+1844555909225777920 ops/s) +close took 0.077 s +== range:uniform:10000@1 T=1 ops=8526 secs= 7.00 ops/s= 1218 lat us p50=843.78 p99=1007.62 p99.9=1130.50 max=1309.6 mean=820.92 + cpu=7.00s ops/cpu-s=1218 rd=0.0 B/op wr=0.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.08 p99=9.09 mean=6.22 per-tuple=83.5 ns deinit mean=0.40 us tuples/s=11871711 + insert/run=7.00s drain(close)=0.08s total=7.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.csv new file mode 100644 index 000000000..569a2877a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.013,14862076.2,nan,nan,nan,0.000,nan,0.060,3344705.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14862076.2,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,point:uniform@8,8,2,200000,28479639,7.000,4068384.3,1.776,2.528,5.312,81.549,1.816,55.995,508614.7,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,2,200000,7402119,7.000,1057405.9,6.464,10.368,18.176,93.443,7.434,55.997,132187.7,0,0,0.00,0.00,5.952,9.856,6.937,nan,0.453,7402119,1057405.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,26270,7.000,3752.7,1785.856,4390.912,4521.984,5929.434,2131.343,55.995,469.1,0,4096,0.00,0.16,9.344,14.976,9.543,217.38,0.738,256279502,36610039.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,2,200000,9002,7.000,1286.0,794.624,843.776,892.928,1170.252,777.536,6.999,1286.1,0,4096,0.00,0.46,5.696,7.616,5.809,79.15,0.364,87741573,12534026.5,7.000,0.060,7.060,0.011,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.log new file mode 100644 index 000000000..dde7cfa7e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-02-candidate.log @@ -0,0 +1,27 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=2 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14862076 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3344705 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=28479639 notfound=0 +== point:uniform@8 T=8 ops=28479639 secs= 7.00 ops/s= 4068384 lat us p50=1.78 p99=2.53 p99.9=5.31 max=81.5 mean=1.82 + cpu=55.99s ops/cpu-s=508615 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3143215 ops (+314301 ops/s) +== range:uniform:1@8 T=8 ops=7402119 secs= 7.00 ops/s= 1057406 lat us p50=6.46 p99=10.37 p99.9=18.18 max=93.4 mean=7.43 + cpu=56.00s ops/cpu-s=132188 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=9.86 mean=6.94 per-tuple=nan ns deinit mean=0.45 us tuples/s=1057406 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 18687 ops (+1844547853311336448 ops/s) +== range:uniform:10000@8 T=8 ops=26270 secs= 7.00 ops/s= 3753 lat us p50=1785.86 p99=4390.91 p99.9=4521.98 max=5929.4 mean=2131.34 + cpu=56.00s ops/cpu-s=469 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=14.98 mean=9.54 per-tuple=217.4 ns deinit mean=0.74 us tuples/s=36610039 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 8939 ops (+1844549111761164800 ops/s) +close took 0.060 s +== range:uniform:10000@1 T=1 ops=9002 secs= 7.00 ops/s= 1286 lat us p50=794.62 p99=843.78 p99.9=892.93 max=1170.3 mean=777.54 + cpu=7.00s ops/cpu-s=1286 rd=0.0 B/op wr=0.5 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.70 p99=7.62 mean=5.81 per-tuple=79.1 ns deinit mean=0.36 us tuples/s=12534027 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.csv new file mode 100644 index 000000000..dddad215d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.csv @@ -0,0 +1,6 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.012,16044167.7,nan,nan,nan,0.000,nan,0.059,3382492.2,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,16044167.7,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.005,0,0,0,0,2 +main,resident,3,0,point:uniform@8,8,3,200000,29159424,7.000,4165500.4,1.744,2.400,5.184,95.040,1.781,55.996,520741.1,0,0,0.00,0.00,nan,nan,nan,nan,nan,0,0.0,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:1@8,8,3,200000,7648380,7.000,1092590.9,6.336,10.112,18.176,223.730,7.197,55.995,136591.3,0,0,0.00,0.00,5.952,9.600,6.779,nan,0.375,7648380,1092590.9,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,24394,7.000,3484.7,2129.920,5439.488,5701.632,5893.065,2295.374,55.994,435.7,0,4096,0.00,0.17,8.320,14.720,8.916,234.44,0.618,237955654,33992453.5,7.000,0.000,7.000,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@1,1,3,200000,9296,7.000,1328.0,761.856,811.008,827.392,846.292,752.921,7.000,1328.0,0,4096,0.00,0.44,5.696,7.232,5.777,76.59,0.314,90659099,12950992.4,7.000,0.055,7.055,0.007,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.log new file mode 100644 index 000000000..e21ad9830 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/reads/resident-random-wal0-03-main.log @@ -0,0 +1,27 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/reads-resident-random-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=7.0 warmup=1.0 rep=3 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 16044168 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3382492 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase point:uniform@8: T=8 dist=uniform (fixed duration) + found=29159424 notfound=0 +== point:uniform@8 T=8 ops=29159424 secs= 7.00 ops/s= 4165500 lat us p50=1.74 p99=2.40 p99.9=5.18 max=95.0 mean=1.78 + cpu=56.00s ops/cpu-s=520741 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 3290220 ops (+328999 ops/s) +== range:uniform:1@8 T=8 ops=7648380 secs= 7.00 ops/s= 1092591 lat us p50=6.34 p99=10.11 p99.9=18.18 max=223.7 mean=7.20 + cpu=55.99s ops/cpu-s=136591 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=9.60 mean=6.78 per-tuple=nan ns deinit mean=0.38 us tuples/s=1092591 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 17416 ops (+1844541273177337088 ops/s) +== range:uniform:10000@8 T=8 ops=24394 secs= 7.00 ops/s= 3485 lat us p50=2129.92 p99=5439.49 p99.9=5701.63 max=5893.1 mean=2295.37 + cpu=55.99s ops/cpu-s=436 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=14.72 mean=8.92 per-tuple=234.4 ns deinit mean=0.62 us tuples/s=33992453 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 9237 ops (+1844493111958530304 ops/s) +close took 0.055 s +== range:uniform:10000@1 T=1 ops=9296 secs= 7.00 ops/s= 1328 lat us p50=761.86 p99=811.01 p99.9=827.39 max=846.3 mean=752.92 + cpu=7.00s ops/cpu-s=1328 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.70 p99=7.23 mean=5.78 per-tuple=76.6 ns deinit mean=0.31 us tuples/s=12950992 + insert/run=7.00s drain(close)=0.06s total=7.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat-progress.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat-progress.log new file mode 100644 index 000000000..9d12c8da0 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat-progress.log @@ -0,0 +1,24 @@ +resident-common-wal0-00-main +resident-common-wal0-01-candidate +resident-common-wal0-02-candidate +resident-common-wal0-03-main +resident-common-wal0-04-main +resident-common-wal0-05-candidate +resident-common-disabled-wal0-00-main +resident-common-disabled-wal0-01-candidate +resident-common-disabled-wal0-02-candidate +resident-common-disabled-wal0-03-main +resident-common-disabled-wal0-04-main +resident-common-disabled-wal0-05-candidate +resident-nonlexical-wal0-00-main +resident-nonlexical-wal0-01-candidate +resident-nonlexical-wal0-02-candidate +resident-nonlexical-wal0-03-main +resident-nonlexical-wal0-04-main +resident-nonlexical-wal0-05-candidate +resident-random-wal1-00-main +resident-random-wal1-01-candidate +resident-random-wal1-02-candidate +resident-random-wal1-03-main +resident-random-wal1-04-main +resident-random-wal1-05-candidate diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/manifest.json b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/manifest.json new file mode 100644 index 000000000..f92042003 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/manifest.json @@ -0,0 +1,2282 @@ +{ + "mode": "repeat", + "started": 1792008536.1936128, + "complete": true, + "runner_sha256": "eef41a21f8c4275c300fa24ed69b457b233c8ee0a470926d84c3f5ea755ebd25", + "build_json_sha256": "7bed995652687ea945106e764423ed445b4573d79dc5973b77f05c3cfda0051b", + "builds": { + "main": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main", + "commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "MAKEFLAGS=B -j8 --jobserver-auth=fifo:/tmp/prefix-main-build-6105c49f/GMfifo3 -- GIT_VERSION=6105c49f BUILD_MODE=release\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557" + } + }, + "candidate": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "BUILD_ROOT=build-main-6105c49f\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-xn10vunh/GMfifo3 -- BUILD_MODE=release BUILD_ROOT=build-main-6105c49f\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a" + } + } + }, + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix]", + "database_directory": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases", + "io": "O_DIRECT", + "fixture_copy": "cp --reflink=auto --sparse=always, then fsync", + "cpu_affinity": "0-11", + "platform": "Linux-6.12.107+deb13-amd64-x86_64-with-glibc2.41", + "available_cpu_affinity": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "loadavg_start": [ + 0.64990234375, + 4.107421875, + 4.6240234375 + ], + "environment": { + "PREFIX_PATTERN": "per case", + "PREFIX_DISABLE": "unset except candidate disabled case", + "KVBENCH_STATS_BEFORE_CLOSE": "1 for fixture creation only" + }, + "coordination": "Caller holds exclusive campaign benchmark and machine locks", + "seconds": 15, + "warmup_seconds": 1, + "seed": 42, + "loading_threads": 1, + "background_workers": 0, + "memtable_mib": 4, + "verification": "Every query verifies key/value or ordered range; overwrite validates up to 4096 measured keys per worker after timing", + "runs": [ + { + "label": "resident-common-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008536.230394, + "log": "repeat/resident-common-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008552.3397408, + "log_sha256": "9d74b741e4d3d5940f44b653368abd6d6dd1184efa9eb244510219b225cee89e", + "process_cpu_s": 128.0728, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-common", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.03479290008544922, + "csv": "repeat/resident-common-wal0-00-main.csv", + "csv_sha256": "a323a479c67e4b37c49c529f69f84b1c225ad647f75cf2e2cd02c86bd6f09c7b", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008552.386048, + "log": "repeat/resident-common-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008568.5520551, + "log_sha256": "74c720df6a01c75d822581d83e642a56d379a842fa2b31ed521e3c6c0a6ee639", + "process_cpu_s": 128.05081199999998, + "process_read_bytes": 25186304, + "process_write_bytes": 319488, + "case": "resident-common", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.041246652603149414, + "csv": "repeat/resident-common-wal0-01-candidate.csv", + "csv_sha256": "cf8483e031da6019e49cdc7d602bc4b1798325c61dd8b75fbb8009cd9cf109dd", + "allocated_bytes": 26005504, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008568.6021614, + "log": "repeat/resident-common-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008584.7648644, + "log_sha256": "812ad5cccd0d1d48ee63f5e0086ea7a704c7cde4696347ee466853db52307260", + "process_cpu_s": 128.129237, + "process_read_bytes": 25186304, + "process_write_bytes": 319488, + "case": "resident-common", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.04519963264465332, + "csv": "repeat/resident-common-wal0-02-candidate.csv", + "csv_sha256": "af9695604a897972617619a8ee44a2f44fb2f6fe670fd8bd55cc647e8e2ab39a", + "allocated_bytes": 26005504, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008584.8261185, + "log": "repeat/resident-common-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008600.9893806, + "log_sha256": "27d7f026975bcfb13b1a50eeea44368690a3ed2d852ff7acb3662cd6913c8b2c", + "process_cpu_s": 128.06322000000006, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-common", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.0565950870513916, + "csv": "repeat/resident-common-wal0-03-main.csv", + "csv_sha256": "2526a3ecc08aa410ca42eac5e6b39eaae5cbd4679ea13e882fac1159d2ca64c7", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-04-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-04-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "4", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008601.0523083, + "log": "repeat/resident-common-wal0-04-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008617.2169607, + "log_sha256": "5315dce232e14a786f7f77ba29c5fdffb58b8cf12c8273d7755657db9b42bca0", + "process_cpu_s": 128.07915600000004, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-common", + "wal": 0, + "index": 4, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.05785250663757324, + "csv": "repeat/resident-common-wal0-04-main.csv", + "csv_sha256": "8bafb4930714708a243a3809ca309bd28a500714c68d6227ac03380d3abe162e", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-05-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-05-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "5", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8" + ], + "started": 1792008617.2621, + "log": "repeat/resident-common-wal0-05-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008633.4282928, + "log_sha256": "721765ff935fff4d2d709d033e08b97ea9fcd49aea238dfab96d291603378454", + "process_cpu_s": 128.07077999999998, + "process_read_bytes": 25186304, + "process_write_bytes": 327680, + "case": "resident-common", + "wal": 0, + "index": 5, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.039354562759399414, + "csv": "repeat/resident-common-wal0-05-candidate.csv", + "csv_sha256": "001c62c8a025301cf1019d33b3a27d29d1bd5333ca20f86a646e25d69ca3dd8e", + "allocated_bytes": 26005504, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-disabled-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008633.4710393, + "log": "repeat/resident-common-disabled-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008665.641664, + "log_sha256": "002520c83d570ce327d30066a88c62f665c051ee3c97954f8cf48253fcfa6eea", + "process_cpu_s": 144.07882900000013, + "process_read_bytes": 36466688, + "process_write_bytes": 327680, + "case": "resident-common-disabled", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.038526296615600586, + "csv": "repeat/resident-common-disabled-wal0-00-main.csv", + "csv_sha256": "9fe54f133e773c9f9301e9646d4a5707690b3f9ebbdad03601ce75073347cb8d", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-common-disabled-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008665.680968, + "log": "repeat/resident-common-disabled-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008697.8540845, + "log_sha256": "c0385c0e382d4e2a877dc4dc6173be1a026b2272596fdbc902d87cd15daa9c1d", + "process_cpu_s": 144.07393200000007, + "process_read_bytes": 36466688, + "process_write_bytes": 331776, + "case": "resident-common-disabled", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-common-wal0-disabled", + "fixture_sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "copy_fsynced": true, + "copy_seconds": 0.03453993797302246, + "csv": "repeat/resident-common-disabled-wal0-01-candidate.csv", + "csv_sha256": "3fdfb925c730123a027ca7ed7d8a9c9e28bfc5119b51ae3b5d3efa69b1e2e176", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-common-disabled-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008697.911381, + "log": "repeat/resident-common-disabled-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008730.07609, + "log_sha256": "ebe74feaf307f9f375c86c85fe3213e8ee447d55439152e7af0e838f6409547e", + "process_cpu_s": 144.081577, + "process_read_bytes": 36466688, + "process_write_bytes": 331776, + "case": "resident-common-disabled", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-common-wal0-disabled", + "fixture_sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "copy_fsynced": true, + "copy_seconds": 0.05236697196960449, + "csv": "repeat/resident-common-disabled-wal0-02-candidate.csv", + "csv_sha256": "cee0086f84e23c1a2158e7dff736792be3cce6870706433bd9a6ae6830ad66ff", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-common-disabled-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008730.132384, + "log": "repeat/resident-common-disabled-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008762.3020496, + "log_sha256": "67ee844e56716da0f3d3000edc0092023ae1e2941b47c7ea032fbb078ef9d3e6", + "process_cpu_s": 144.0842169999999, + "process_read_bytes": 36466688, + "process_write_bytes": 331776, + "case": "resident-common-disabled", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.051222801208496094, + "csv": "repeat/resident-common-disabled-wal0-03-main.csv", + "csv_sha256": "0162193328ccea413381a7e0c1f6621a7753e679cb9e4171600a8b736961c623", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-common-disabled-wal0-04-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-04-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "4", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008762.3447998, + "log": "repeat/resident-common-disabled-wal0-04-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008794.45783, + "log_sha256": "8dc96d326e54f7882cbb11b3fd9947e76ea38a009d0ab76360d62df6a7511e2c", + "process_cpu_s": 144.0725669999999, + "process_read_bytes": 36466688, + "process_write_bytes": 331776, + "case": "resident-common-disabled", + "wal": 0, + "index": 4, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.03707075119018555, + "csv": "repeat/resident-common-disabled-wal0-04-main.csv", + "csv_sha256": "9b30bbe912a7b68b8e8cbc25a3cbaeec6f00fdccba19043ea6c150db677363f6", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-common-disabled-wal0-05-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-05-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "5", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ], + "started": 1792008794.4947383, + "log": "repeat/resident-common-disabled-wal0-05-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": true, + "verified": true, + "returncode": 0, + "finished": 1792008826.6097443, + "log_sha256": "94fcf2ee4788c60a0c3f6b43a3dc54a8a94e2aaea070c4226cc8da9f9e3e8fa6", + "process_cpu_s": 144.08061300000023, + "process_read_bytes": 36466688, + "process_write_bytes": 331776, + "case": "resident-common-disabled", + "wal": 0, + "index": 5, + "fixture_key": "candidate-resident-common-wal0-disabled", + "fixture_sha256": "4548a1692b739e986afcc4af4a4824db55c941c2fea98ed5edb8389fcc33d60f", + "copy_fsynced": true, + "copy_seconds": 0.03179478645324707, + "csv": "repeat/resident-common-disabled-wal0-05-candidate.csv", + "csv_sha256": "5ad76bdf608baabea95ff81d4cb96ff67a4d748e8866b6f1b3bb3e2b6ec39db1", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 3 + }, + { + "label": "resident-nonlexical-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008826.671003, + "log": "repeat/resident-nonlexical-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008842.7852273, + "log_sha256": "005f144b9cf2f543a9813058e83cb62d01c4c115572e98b150dcf1a6606009e7", + "process_cpu_s": 128.0575809999998, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-nonlexical-wal0", + "fixture_sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "copy_fsynced": true, + "copy_seconds": 0.05597829818725586, + "csv": "repeat/resident-nonlexical-wal0-00-main.csv", + "csv_sha256": "db116e20d99bdd1f4b81828827e92f57c6fb870b8fdda2299565d7d9dbcdd892", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-nonlexical-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008842.8527777, + "log": "repeat/resident-nonlexical-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008859.0163403, + "log_sha256": "01c5a8a499abec0ae0653287ef35b0dc9d8c91fd0ab9356eb19e91149ca2952b", + "process_cpu_s": 128.09087599999995, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-nonlexical-wal0", + "fixture_sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "copy_fsynced": true, + "copy_seconds": 0.06180691719055176, + "csv": "repeat/resident-nonlexical-wal0-01-candidate.csv", + "csv_sha256": "7cb8ecb9dd462b9ced6887126f8c1e37bfddc9101c425e182f4aacc123fe49d7", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-nonlexical-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008859.0676532, + "log": "repeat/resident-nonlexical-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008875.185679, + "log_sha256": "c17afae1883991a075247ee5b8e67b1c5c4f4372a6faee968850ae59b7050e0d", + "process_cpu_s": 128.0722819999999, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-nonlexical-wal0", + "fixture_sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "copy_fsynced": true, + "copy_seconds": 0.037954092025756836, + "csv": "repeat/resident-nonlexical-wal0-02-candidate.csv", + "csv_sha256": "5ba11ef2ae3185736bfaefec9592fef78f886078aee4d3bfffeafd4c695d4379", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-nonlexical-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008875.2274456, + "log": "repeat/resident-nonlexical-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008891.3422315, + "log_sha256": "e64af14daa924295b8fbecdf4907984a0962c743183054e11434ee10a15104b2", + "process_cpu_s": 128.08311400000014, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-nonlexical-wal0", + "fixture_sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "copy_fsynced": true, + "copy_seconds": 0.03649258613586426, + "csv": "repeat/resident-nonlexical-wal0-03-main.csv", + "csv_sha256": "227b6564a581db01be822c9b80198b203affcada4b8e7396b638891cd89bc3a6", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-nonlexical-wal0-04-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-04-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "4", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008891.3836527, + "log": "repeat/resident-nonlexical-wal0-04-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008907.482307, + "log_sha256": "60392997587535e056a61800fe9acbc575802c5a1d6fa839300b3463c1aea704", + "process_cpu_s": 128.05579900000018, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 4, + "fixture_key": "main-resident-nonlexical-wal0", + "fixture_sha256": "4ef44377d809c43746059d57e04cc593f0d2dc083e3e853f8422244d24fee6f3", + "copy_fsynced": true, + "copy_seconds": 0.036432743072509766, + "csv": "repeat/resident-nonlexical-wal0-04-main.csv", + "csv_sha256": "ba919ea95ac9a2c668a925c4cf4a055085eee2b2c45f80008523448bf248a116", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-nonlexical-wal0-05-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-05-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "5", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "range:uniform:1@8" + ], + "started": 1792008907.5250237, + "log": "repeat/resident-nonlexical-wal0-05-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "nonlexical", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008923.6404123, + "log_sha256": "f415a8ec1c9ee38a69caf48c5bb69666839a81d6221c2d39a150de6fdfa9f588", + "process_cpu_s": 128.07235300000002, + "process_read_bytes": 36466688, + "process_write_bytes": 319488, + "case": "resident-nonlexical", + "wal": 0, + "index": 5, + "fixture_key": "candidate-resident-nonlexical-wal0", + "fixture_sha256": "7d5571d7c9b6c34ce64fb3f264e3e8a775eddacafceac2b253076f7257635b05", + "copy_fsynced": true, + "copy_seconds": 0.03870701789855957, + "csv": "repeat/resident-nonlexical-wal0-05-candidate.csv", + "csv_sha256": "dfb51a9bebd037afe9e57b60fecca4e3ac21b33c8a81f3c8d4e37fcee7c7187a", + "allocated_bytes": 37285888, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792008923.7137616, + "log": "repeat/resident-random-wal1-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008940.3105943, + "log_sha256": "30178660f06c3073c97a08ad06aa25e34c8efb6bf29f52d51de46bb6182b2aaa", + "process_cpu_s": 66.88682399999993, + "process_read_bytes": 2701103104, + "process_write_bytes": 7211802624, + "case": "resident-random", + "wal": 1, + "index": 0, + "fixture_key": "main-resident-random-wal1", + "fixture_sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "copy_fsynced": true, + "copy_seconds": 0.06750607490539551, + "csv": "repeat/resident-random-wal1-00-main.csv", + "csv_sha256": "7f5767c3438605e808598c64e6d807b3706faff207b433be4a3b00305919f27b", + "allocated_bytes": 5274365952, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792008940.4788888, + "log": "repeat/resident-random-wal1-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008957.127607, + "log_sha256": "964441dc228b89dc2fbd9e6adb8b797b4b9fcdd4cf899b6cebbb04f983822be9", + "process_cpu_s": 58.41632000000004, + "process_read_bytes": 2246316032, + "process_write_bytes": 6091640832, + "case": "resident-random", + "wal": 1, + "index": 1, + "fixture_key": "candidate-resident-random-wal1", + "fixture_sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "copy_fsynced": true, + "copy_seconds": 0.12560391426086426, + "csv": "repeat/resident-random-wal1-01-candidate.csv", + "csv_sha256": "7a28f13ef145ce27905a56b79b7425349b730ab022ac15fe10313e7b0907ac75", + "allocated_bytes": 4774494208, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792008957.3144195, + "log": "repeat/resident-random-wal1-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008974.2642555, + "log_sha256": "d36bebbbe057870c8693490ca21b9a28db6f0d53a26fcf68947a100ef927beb7", + "process_cpu_s": 53.92103999999958, + "process_read_bytes": 2196725760, + "process_write_bytes": 5686362112, + "case": "resident-random", + "wal": 1, + "index": 2, + "fixture_key": "candidate-resident-random-wal1", + "fixture_sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "copy_fsynced": true, + "copy_seconds": 0.13734865188598633, + "csv": "repeat/resident-random-wal1-02-candidate.csv", + "csv_sha256": "e5342aaac8d4c6e0286d63d3c5bf9e87cc96adf83bb06a9e480ad81ab3854bca", + "allocated_bytes": 4548698112, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792008974.3924441, + "log": "repeat/resident-random-wal1-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008991.090764, + "log_sha256": "d52af34d3ad1f6deeccca8bbbb06b29436b1a57bbb052bb46d7079b07f71bf70", + "process_cpu_s": 55.18639999999992, + "process_read_bytes": 2213904384, + "process_write_bytes": 5866754048, + "case": "resident-random", + "wal": 1, + "index": 3, + "fixture_key": "main-resident-random-wal1", + "fixture_sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "copy_fsynced": true, + "copy_seconds": 0.08330559730529785, + "csv": "repeat/resident-random-wal1-03-main.csv", + "csv_sha256": "176fa7dfc1b46711c184f3176e0abfc6383f5fecb5aaea1c6233e9dae2af78f8", + "allocated_bytes": 4623142912, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-04-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-04-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "4", + "--rep", + "4", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792008991.2883081, + "log": "repeat/resident-random-wal1-04-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792009007.990247, + "log_sha256": "0ce1b25f46107ef015890b7aca921feff987151243a9d13e795a93679a63e25c", + "process_cpu_s": 51.18367599999975, + "process_read_bytes": 1871532032, + "process_write_bytes": 5303672832, + "case": "resident-random", + "wal": 1, + "index": 4, + "fixture_key": "main-resident-random-wal1", + "fixture_sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "copy_fsynced": true, + "copy_seconds": 0.11603474617004395, + "csv": "repeat/resident-random-wal1-04-main.csv", + "csv_sha256": "e759bd33d02cde7db44e8144e4e117a45901fb4248e29a09cfaa9e5fcda89975", + "allocated_bytes": 4363235328, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-05-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-05-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "15", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "5", + "--rep", + "5", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/repeat", + "warm", + "ow:uniform@8" + ], + "started": 1792009008.1666212, + "log": "repeat/resident-random-wal1-05-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792009025.1668036, + "log_sha256": "984e84da6d034fbb14c95c5b8b16489aeb768c2de08475af8bacc84c55d75d9e", + "process_cpu_s": 53.309396999999876, + "process_read_bytes": 2053611520, + "process_write_bytes": 5625188352, + "case": "resident-random", + "wal": 1, + "index": 5, + "fixture_key": "candidate-resident-random-wal1", + "fixture_sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "copy_fsynced": true, + "copy_seconds": 0.13552331924438477, + "csv": "repeat/resident-random-wal1-05-candidate.csv", + "csv_sha256": "33f603888a3ec5159946905d57f2d88a021929d84ef93d73f0759f61ef091055", + "allocated_bytes": 4508598272, + "errors": 0, + "violations": 0, + "phase_count": 2 + } + ], + "followup_sha256": "d7729a74af101dc8ce0c4d1f5c301c9326094568c7f12ab9cfaa21e617c292bc", + "selection": "Adverse initial results: common long scans, disabled long scans, nonlexical short scans, logged random overwrites", + "order": [ + "main", + "candidate", + "candidate", + "main", + "main", + "candidate" + ], + "cases": [ + [ + "resident-common", + 0, + [ + "warm", + "range:uniform:10000@8" + ] + ], + [ + "resident-common-disabled", + 0, + [ + "warm", + "range:uniform:10000@8", + "range:uniform:10000@1" + ] + ], + [ + "resident-nonlexical", + 0, + [ + "warm", + "range:uniform:1@8" + ] + ], + [ + "resident-random", + 1, + [ + "warm", + "ow:uniform@8" + ] + ] + ], + "finished": 1792009025.2189007 +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.csv new file mode 100644 index 000000000..ceb77cb8a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.015,13493847.1,nan,nan,nan,0.000,nan,0.070,2859430.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13493847.1,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,2 +main,resident,0,0,range:uniform:10000@8,8,0,200000,50483,15.000,3365.5,2326.528,3440.640,3768.320,4456.112,2376.945,119.976,420.8,0,0,0.00,0.00,8.832,15.232,9.074,242.65,0.670,492447776,32829345.7,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,range:uniform:10000@1,1,0,200000,20020,15.000,1334.6,761.856,843.776,1007.616,1182.304,749.186,14.998,1334.9,0,4096,0.00,0.20,6.336,8.320,6.381,76.11,0.329,195333995,13022041.9,15.000,0.136,15.136,0.012,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.log new file mode 100644 index 000000000..b9094316c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-00-main.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=0 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13493847 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2859430 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 37070 ops (+3707 ops/s) +== range:uniform:10000@8 T=8 ops=50483 secs= 15.00 ops/s= 3365 lat us p50=2326.53 p99=3440.64 p99.9=3768.32 max=4456.1 mean=2376.95 + cpu=119.98s ops/cpu-s=421 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.83 p99=15.23 mean=9.07 per-tuple=242.6 ns deinit mean=0.67 us tuples/s=32829346 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6471 ops (+1844491205495355392 ops/s) + [range:uniform:10000@1] progress 19902 ops (+1343 ops/s) +close took 0.136 s +== range:uniform:10000@1 T=1 ops=20020 secs= 15.00 ops/s= 1335 lat us p50=761.86 p99=843.78 p99.9=1007.62 max=1182.3 mean=749.19 + cpu=15.00s ops/cpu-s=1335 rd=0.0 B/op wr=0.2 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.34 p99=8.32 mean=6.38 per-tuple=76.1 ns deinit mean=0.33 us tuples/s=13022042 + insert/run=15.00s drain(close)=0.14s total=15.14s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.csv new file mode 100644 index 000000000..1c506c9cf --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.014,13885125.4,nan,nan,nan,0.000,nan,0.067,2964719.8,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13885125.4,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,57328,15.000,3821.8,2048.000,4161.536,4390.912,4722.230,2093.010,119.980,477.8,0,0,0.00,0.00,8.576,14.464,8.824,213.54,0.623,559279346,37284603.0,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@1,1,1,200000,20597,15.000,1373.1,745.472,827.392,974.848,1317.012,728.204,15.000,1373.2,0,8192,0.00,0.40,6.080,8.128,6.137,73.97,0.338,200968062,13397625.6,15.000,0.114,15.115,0.012,0,307200,nan,237375488,37285888,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.log new file mode 100644 index 000000000..2d28a4811 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-01-candidate.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=1 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13885125 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2964720 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 42213 ops (+4221 ops/s) +== range:uniform:10000@8 T=8 ops=57328 secs= 15.00 ops/s= 3822 lat us p50=2048.00 p99=4161.54 p99.9=4390.91 max=4722.2 mean=2093.01 + cpu=119.98s ops/cpu-s=478 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.58 p99=14.46 mean=8.82 per-tuple=213.5 ns deinit mean=0.62 us tuples/s=37284603 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6661 ops (+1844451495816534272 ops/s) + [range:uniform:10000@1] progress 20482 ops (+1382 ops/s) +close took 0.114 s +== range:uniform:10000@1 T=1 ops=20597 secs= 15.00 ops/s= 1373 lat us p50=745.47 p99=827.39 p99.9=974.85 max=1317.0 mean=728.20 + cpu=15.00s ops/cpu-s=1373 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.08 p99=8.13 mean=6.14 per-tuple=74.0 ns deinit mean=0.34 us tuples/s=13397626 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.csv new file mode 100644 index 000000000..ee3852060 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.015,13466847.2,nan,nan,nan,0.000,nan,0.063,3156117.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13466847.2,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,57800,15.000,3853.3,2129.920,5177.344,5177.344,5722.765,2075.956,119.988,481.7,0,0,0.00,0.00,7.872,14.720,8.684,211.89,0.655,563824699,37587699.6,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:10000@1,1,2,200000,20718,15.000,1381.2,745.472,811.008,860.160,889.337,723.966,15.000,1381.2,0,8192,0.00,0.40,5.952,7.616,6.048,73.55,0.345,202150554,13476467.8,15.000,0.113,15.113,0.013,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.log new file mode 100644 index 000000000..af867700f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-02-candidate.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13466847 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3156117 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 42562 ops (+4256 ops/s) +== range:uniform:10000@8 T=8 ops=57800 secs= 15.00 ops/s= 3853 lat us p50=2129.92 p99=5177.34 p99.9=5177.34 max=5722.8 mean=2075.96 + cpu=119.99s ops/cpu-s=482 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.87 p99=14.72 mean=8.68 per-tuple=211.9 ns deinit mean=0.65 us tuples/s=37587700 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6729 ops (+1844551003588619520 ops/s) + [range:uniform:10000@1] progress 20625 ops (+1390 ops/s) +close took 0.113 s +== range:uniform:10000@1 T=1 ops=20718 secs= 15.00 ops/s= 1381 lat us p50=745.47 p99=811.01 p99.9=860.16 max=889.3 mean=723.97 + cpu=15.00s ops/cpu-s=1381 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.95 p99=7.62 mean=6.05 per-tuple=73.6 ns deinit mean=0.35 us tuples/s=13476468 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.csv new file mode 100644 index 000000000..7251bba40 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.015,13696165.8,nan,nan,nan,0.000,nan,0.065,3070734.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13696165.8,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,57619,15.000,3841.2,2129.920,5046.272,5308.416,5393.067,2082.572,119.986,480.2,0,0,0.00,0.00,8.128,14.720,8.823,212.52,0.643,561947415,37462479.3,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.007,0,0,7,0,0 +main,resident,3,0,range:uniform:10000@1,1,3,200000,20108,15.000,1340.5,761.856,925.696,1359.872,1573.980,745.936,14.999,1340.6,0,8192,0.00,0.41,6.208,10.880,6.390,75.77,0.335,196192286,13079257.1,15.000,0.107,15.107,0.012,0,307200,nan,237375488,37285888,0.007,0,0,2,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.log new file mode 100644 index 000000000..77ccf4cce --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-03-main.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13696166 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3070734 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 42391 ops (+4239 ops/s) +== range:uniform:10000@8 T=8 ops=57619 secs= 15.00 ops/s= 3841 lat us p50=2129.92 p99=5046.27 p99.9=5308.42 max=5393.1 mean=2082.57 + cpu=119.99s ops/cpu-s=480 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=7 swapout=0 majflt=0 + startup us p50=8.13 p99=14.72 mean=8.82 per-tuple=212.5 ns deinit mean=0.64 us tuples/s=37462479 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6598 ops (+1844469910807493120 ops/s) + [range:uniform:10000@1] progress 20035 ops (+1343 ops/s) +close took 0.107 s +== range:uniform:10000@1 T=1 ops=20108 secs= 15.00 ops/s= 1341 lat us p50=761.86 p99=925.70 p99.9=1359.87 max=1574.0 mean=745.94 + cpu=15.00s ops/cpu-s=1341 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + startup us p50=6.21 p99=10.88 mean=6.39 per-tuple=75.8 ns deinit mean=0.34 us tuples/s=13079257 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.csv new file mode 100644 index 000000000..14a44339d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,4,0,warm,8,4,200000,200000,0.015,13440269.5,nan,nan,nan,0.000,nan,0.064,3101977.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13440269.5,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,4,0,range:uniform:10000@8,8,4,200000,65367,15.000,4357.7,1458.176,3440.640,3637.248,3900.789,1835.610,119.980,544.8,0,0,0.00,0.00,9.344,14.464,9.539,187.25,0.658,637284853,42484835.2,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +main,resident,4,0,range:uniform:10000@1,1,4,200000,20661,15.000,1377.4,745.472,860.160,1294.336,1375.812,725.968,15.002,1377.2,0,8192,0.00,0.40,6.080,9.088,6.140,73.75,0.322,201614288,13440689.8,15.000,0.063,15.064,0.013,0,307200,nan,237375488,37285888,0.006,0,0,11,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.log new file mode 100644 index 000000000..b68f572ec --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-04-main.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-04-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=4 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13440269 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3101978 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 47941 ops (+4794 ops/s) +== range:uniform:10000@8 T=8 ops=65367 secs= 15.00 ops/s= 4358 lat us p50=1458.18 p99=3440.64 p99.9=3637.25 max=3900.8 mean=1835.61 + cpu=119.98s ops/cpu-s=545 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=9.34 p99=14.46 mean=9.54 per-tuple=187.2 ns deinit mean=0.66 us tuples/s=42484835 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6817 ops (+1844459563798729728 ops/s) + [range:uniform:10000@1] progress 20581 ops (+1376 ops/s) +close took 0.063 s +== range:uniform:10000@1 T=1 ops=20661 secs= 15.00 ops/s= 1377 lat us p50=745.47 p99=860.16 p99.9=1294.34 max=1375.8 mean=725.97 + cpu=15.00s ops/cpu-s=1377 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=11 swapout=0 majflt=0 + startup us p50=6.08 p99=9.09 mean=6.14 per-tuple=73.7 ns deinit mean=0.32 us tuples/s=13440690 + insert/run=15.00s drain(close)=0.06s total=15.06s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.csv new file mode 100644 index 000000000..367bf9e9e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.csv @@ -0,0 +1,4 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,5,0,warm,8,5,200000,200000,0.015,13169287.0,nan,nan,nan,0.000,nan,0.070,2837765.0,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13169287.0,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +candidate,resident,5,0,range:uniform:10000@8,8,5,200000,54208,15.000,3613.8,2129.920,4390.912,4653.056,7929.929,2213.640,119.976,451.8,0,0,0.00,0.00,8.320,13.952,8.852,226.07,0.663,528564892,35236974.5,15.000,0.000,15.000,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,5,0,range:uniform:10000@1,1,5,200000,20619,15.000,1374.6,745.472,794.624,974.848,1475.844,727.392,15.004,1374.3,0,8192,0.00,0.40,5.824,7.744,5.902,73.91,0.356,201214674,13414166.4,15.000,0.076,15.076,0.012,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.log new file mode 100644 index 000000000..cad00ea1a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-disabled-wal0-05-candidate.log @@ -0,0 +1,19 @@ +prefix-pattern=common key_bytes=64 compression_disabled=true +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-disabled-wal0-05-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=5 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 13169287 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2837765 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 39751 ops (+3975 ops/s) +== range:uniform:10000@8 T=8 ops=54208 secs= 15.00 ops/s= 3614 lat us p50=2129.92 p99=4390.91 p99.9=4653.06 max=7929.9 mean=2213.64 + cpu=119.98s ops/cpu-s=452 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=13.95 mean=8.85 per-tuple=226.1 ns deinit mean=0.66 us tuples/s=35236975 +phase range:uniform:10000@1: T=1 dist=uniform (fixed duration) + [range:uniform:10000@1] progress 6789 ops (+1844500512105021440 ops/s) + [range:uniform:10000@1] progress 20579 ops (+1379 ops/s) +close took 0.076 s +== range:uniform:10000@1 T=1 ops=20619 secs= 15.00 ops/s= 1375 lat us p50=745.47 p99=794.62 p99.9=974.85 max=1475.8 mean=727.39 + cpu=15.00s ops/cpu-s=1374 rd=0.0 B/op wr=0.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=5.82 p99=7.74 mean=5.90 per-tuple=73.9 ns deinit mean=0.36 us tuples/s=13414166 + insert/run=15.00s drain(close)=0.08s total=15.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.csv new file mode 100644 index 000000000..e50af234a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.014,14246985.9,nan,nan,nan,0.000,nan,0.070,2869605.1,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14246985.9,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,0,0,range:uniform:10000@8,8,0,200000,63528,15.000,4235.1,1818.624,4521.984,4653.056,4847.661,1888.733,119.983,529.5,0,0,0.00,0.00,7.616,17.664,8.601,192.70,0.597,619693995,41312221.4,15.000,0.067,15.068,0.005,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.log new file mode 100644 index 000000000..b4096e427 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-00-main.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=0 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14246986 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2869605 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 47229 ops (+4723 ops/s) +close took 0.067 s +== range:uniform:10000@8 T=8 ops=63528 secs= 15.00 ops/s= 4235 lat us p50=1818.62 p99=4521.98 p99.9=4653.06 max=4847.7 mean=1888.73 + cpu=119.98s ops/cpu-s=529 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.62 p99=17.66 mean=8.60 per-tuple=192.7 ns deinit mean=0.60 us tuples/s=41312221 + insert/run=15.00s drain(close)=0.07s total=15.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.csv new file mode 100644 index 000000000..c37c9e71b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.013,15376561.6,nan,nan,nan,0.000,nan,0.046,4326101.5,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,15376561.6,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +candidate,resident,1,0,range:uniform:10000@8,8,1,200000,60184,15.000,4012.2,2195.456,4521.984,5046.272,5539.713,1993.773,119.975,501.6,0,0,0.00,0.00,6.720,12.160,7.289,203.56,0.607,587037361,39135152.0,15.000,0.114,15.114,0.011,0,307200,nan,207360000,26005504,0.009,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.log new file mode 100644 index 000000000..9a77ee931 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-01-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=1 sabotage=0 +open took 0.009 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15376562 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=4326102 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 44130 ops (+4413 ops/s) +close took 0.114 s +== range:uniform:10000@8 T=8 ops=60184 secs= 15.00 ops/s= 4012 lat us p50=2195.46 p99=4521.98 p99.9=5046.27 max=5539.7 mean=1993.77 + cpu=119.98s ops/cpu-s=502 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=12.16 mean=7.29 per-tuple=203.6 ns deinit mean=0.61 us tuples/s=39135152 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.csv new file mode 100644 index 000000000..fcdc7c066 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.026,7690891.7,nan,nan,nan,0.000,nan,0.114,1760842.4,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,7690891.7,0.026,0.000,0.026,0.000,0,0,nan,0,0,0.008,0,0,0,0,2 +candidate,resident,2,0,range:uniform:10000@8,8,2,200000,51996,15.000,3466.3,2260.992,5177.344,5308.416,5877.597,2307.733,119.985,433.4,0,0,0.00,0.00,7.616,13.952,8.254,235.74,0.687,507070669,33804083.7,15.000,0.105,15.105,0.011,0,307200,nan,207360000,26005504,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.log new file mode 100644 index 000000000..826c2cac3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-02-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=2 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.03 ops/s= 7690892 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.11s ops/cpu-s=1760842 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 37925 ops (+3792 ops/s) +close took 0.105 s +== range:uniform:10000@8 T=8 ops=51996 secs= 15.00 ops/s= 3466 lat us p50=2260.99 p99=5177.34 p99.9=5308.42 max=5877.6 mean=2307.73 + cpu=119.99s ops/cpu-s=433 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.62 p99=13.95 mean=8.25 per-tuple=235.7 ns deinit mean=0.69 us tuples/s=33804084 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.csv new file mode 100644 index 000000000..7a4fb8b13 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.014,14235404.3,nan,nan,nan,0.000,nan,0.068,2927314.8,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14235404.3,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.009,0,0,0,0,0 +main,resident,3,0,range:uniform:10000@8,8,3,200000,58973,15.000,3931.5,1949.696,5046.272,5177.344,7664.836,2034.628,119.967,491.6,0,0,0.00,0.00,7.744,14.464,8.430,207.72,0.601,575259197,38350058.9,15.000,0.106,15.106,0.013,0,307200,nan,237375488,37285888,0.009,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.log new file mode 100644 index 000000000..c792be9ed --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-03-main.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=3 sabotage=0 +open took 0.009 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14235404 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2927315 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 43319 ops (+4332 ops/s) +close took 0.106 s +== range:uniform:10000@8 T=8 ops=58973 secs= 15.00 ops/s= 3931 lat us p50=1949.70 p99=5046.27 p99.9=5177.34 max=7664.8 mean=2034.63 + cpu=119.97s ops/cpu-s=492 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.74 p99=14.46 mean=8.43 per-tuple=207.7 ns deinit mean=0.60 us tuples/s=38350059 + insert/run=15.00s drain(close)=0.11s total=15.11s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.csv new file mode 100644 index 000000000..1f57a3c9c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,4,0,warm,8,4,200000,200000,0.014,14457899.6,nan,nan,nan,0.000,nan,0.065,3068708.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14457899.6,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,4,0,range:uniform:10000@8,8,4,200000,58641,15.000,3909.3,1064.960,4259.840,4784.128,5276.639,2046.295,119.984,488.7,0,0,0.00,0.00,7.872,15.744,8.776,208.92,0.635,571945183,38129006.6,15.000,0.103,15.103,0.011,0,307200,nan,237375488,37285888,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.log new file mode 100644 index 000000000..16eed3e20 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-04-main.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-04-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=4 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14457900 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3068708 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 42898 ops (+4290 ops/s) +close took 0.103 s +== range:uniform:10000@8 T=8 ops=58641 secs= 15.00 ops/s= 3909 lat us p50=1064.96 p99=4259.84 p99.9=4784.13 max=5276.6 mean=2046.30 + cpu=119.98s ops/cpu-s=489 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=7.87 p99=15.74 mean=8.78 per-tuple=208.9 ns deinit mean=0.63 us tuples/s=38129007 + insert/run=15.00s drain(close)=0.10s total=15.10s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.csv new file mode 100644 index 000000000..8b6ec7015 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,5,0,warm,8,5,200000,200000,0.013,15641794.2,nan,nan,nan,0.000,nan,0.051,3949603.1,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,15641794.2,0.013,0.000,0.013,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,5,0,range:uniform:10000@8,8,5,200000,47050,15.000,3136.6,2588.672,3571.712,3768.320,4149.188,2550.422,119.991,392.1,0,0,0.00,0.00,8.320,12.160,8.233,260.45,0.698,459058129,30603298.0,15.000,0.119,15.119,0.011,0,311296,nan,207360000,26005504,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.log new file mode 100644 index 000000000..d99727c95 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-common-wal0-05-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-common-wal0-05-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=5 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 15641794 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=3949603 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:10000@8: T=8 dist=uniform (fixed duration) + [range:uniform:10000@8] progress 34394 ops (+3439 ops/s) +close took 0.119 s +== range:uniform:10000@8 T=8 ops=47050 secs= 15.00 ops/s= 3137 lat us p50=2588.67 p99=3571.71 p99.9=3768.32 max=4149.2 mean=2550.42 + cpu=119.99s ops/cpu-s=392 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=8.32 p99=12.16 mean=8.23 per-tuple=260.5 ns deinit mean=0.70 us tuples/s=30603298 + insert/run=15.00s drain(close)=0.12s total=15.12s drain_cpu=0.01s drain_rd=0 drain_wr=311296 wamp=nan db_apparent=207360000 db_alloc=26005504 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.csv new file mode 100644 index 000000000..6f4729cb2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.014,14279228.5,nan,nan,nan,0.000,nan,0.061,3282778.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14279228.5,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,0,0,range:uniform:1@8,8,0,200000,16220943,15.000,1081379.8,6.464,10.112,18.688,1592.644,7.330,119.979,135198.3,0,0,0.00,0.00,6.208,9.600,6.912,nan,0.375,16220943,1081379.8,15.000,0.084,15.084,0.013,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.log new file mode 100644 index 000000000..c1825fc74 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-00-main.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=0 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14279228 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3282779 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 12013974 ops (+1201319 ops/s) +close took 0.084 s +== range:uniform:1@8 T=8 ops=16220943 secs= 15.00 ops/s= 1081380 lat us p50=6.46 p99=10.11 p99.9=18.69 max=1592.6 mean=7.33 + cpu=119.98s ops/cpu-s=135198 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.21 p99=9.60 mean=6.91 per-tuple=nan ns deinit mean=0.37 us tuples/s=1081380 + insert/run=15.00s drain(close)=0.08s total=15.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.csv new file mode 100644 index 000000000..abe80d9f6 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.016,12680457.2,nan,nan,nan,0.000,nan,0.077,2586151.2,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12680457.2,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,range:uniform:1@8,8,1,200000,14170919,15.000,944712.2,7.360,11.648,21.760,3177.290,8.394,119.988,118102.7,0,0,0.00,0.00,6.976,11.136,7.890,nan,0.455,14170919,944712.2,15.000,0.093,15.093,0.014,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.log new file mode 100644 index 000000000..d72503300 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-01-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12680457 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2586151 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 10338211 ops (+1033750 ops/s) +close took 0.093 s +== range:uniform:1@8 T=8 ops=14170919 secs= 15.00 ops/s= 944712 lat us p50=7.36 p99=11.65 p99.9=21.76 max=3177.3 mean=8.39 + cpu=119.99s ops/cpu-s=118103 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.98 p99=11.14 mean=7.89 per-tuple=nan ns deinit mean=0.46 us tuples/s=944712 + insert/run=15.00s drain(close)=0.09s total=15.09s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.csv new file mode 100644 index 000000000..8323255e9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.015,13285937.1,nan,nan,nan,0.000,nan,0.071,2815632.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13285937.1,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +candidate,resident,2,0,range:uniform:1@8,8,2,200000,14593857,15.000,972907.3,7.232,11.392,19.712,237.890,8.150,119.982,121633.3,0,0,0.00,0.00,6.720,10.624,7.664,nan,0.439,14593857,972907.3,15.000,0.078,15.078,0.007,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.log new file mode 100644 index 000000000..32fa25a4b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-02-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 13285937 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2815632 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 10671137 ops (+1067040 ops/s) +close took 0.078 s +== range:uniform:1@8 T=8 ops=14593857 secs= 15.00 ops/s= 972907 lat us p50=7.23 p99=11.39 p99.9=19.71 max=237.9 mean=8.15 + cpu=119.98s ops/cpu-s=121633 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=10.62 mean=7.66 per-tuple=nan ns deinit mean=0.44 us tuples/s=972907 + insert/run=15.00s drain(close)=0.08s total=15.08s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.csv new file mode 100644 index 000000000..1bdf56ea4 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.015,13354297.8,nan,nan,nan,0.000,nan,0.074,2702264.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13354297.8,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +main,resident,3,0,range:uniform:1@8,8,3,200000,14933633,15.000,995559.2,7.104,10.880,20.736,223.751,7.961,119.984,124463.5,0,0,0.00,0.00,6.720,10.368,7.493,nan,0.420,14933633,995559.2,15.000,0.066,15.066,0.014,0,307200,nan,237375488,37285888,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.log new file mode 100644 index 000000000..4360bdab7 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-03-main.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13354298 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2702264 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 10907700 ops (+1090693 ops/s) +close took 0.066 s +== range:uniform:1@8 T=8 ops=14933633 secs= 15.00 ops/s= 995559 lat us p50=7.10 p99=10.88 p99.9=20.74 max=223.8 mean=7.96 + cpu=119.98s ops/cpu-s=124463 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.72 p99=10.37 mean=7.49 per-tuple=nan ns deinit mean=0.42 us tuples/s=995559 + insert/run=15.00s drain(close)=0.07s total=15.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.csv new file mode 100644 index 000000000..d7ed11141 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,4,0,warm,8,4,200000,200000,0.016,12605094.2,nan,nan,nan,0.000,nan,0.069,2906131.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12605094.2,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +main,resident,4,0,range:uniform:1@8,8,4,200000,15121727,15.000,1008099.6,6.976,10.880,20.224,754.280,7.863,119.963,126053.3,0,0,0.00,0.00,6.592,10.368,7.404,nan,0.412,15121727,1008099.6,15.000,0.069,15.070,0.013,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.log new file mode 100644 index 000000000..b8a511f8b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-04-main.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-04-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=4 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12605094 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2906132 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 11026604 ops (+1102592 ops/s) +close took 0.069 s +== range:uniform:1@8 T=8 ops=15121727 secs= 15.00 ops/s= 1008100 lat us p50=6.98 p99=10.88 p99.9=20.22 max=754.3 mean=7.86 + cpu=119.96s ops/cpu-s=126053 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.59 p99=10.37 mean=7.40 per-tuple=nan ns deinit mean=0.41 us tuples/s=1008100 + insert/run=15.00s drain(close)=0.07s total=15.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.csv new file mode 100644 index 000000000..8e3c35b7b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,5,0,warm,8,5,200000,200000,0.015,13294020.3,nan,nan,nan,0.000,nan,0.065,3072291.0,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13294020.3,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.006,0,0,0,0,1 +candidate,resident,5,0,range:uniform:1@8,8,5,200000,14858986,15.000,990583.5,6.976,11.136,20.224,232.912,8.005,119.984,123841.1,0,0,0.00,0.00,6.592,10.624,7.520,nan,0.437,14858986,990583.5,15.000,0.073,15.073,0.013,0,307200,nan,237375488,37285888,0.006,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.log new file mode 100644 index 000000000..f4563b2a7 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-nonlexical-wal0-05-candidate.log @@ -0,0 +1,13 @@ +prefix-pattern=nonlexical key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-nonlexical-wal0-05-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=5 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 13294020 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3072291 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase range:uniform:1@8: T=8 dist=uniform (fixed duration) + [range:uniform:1@8] progress 10863845 ops (+1086317 ops/s) +close took 0.073 s +== range:uniform:1@8 T=8 ops=14858986 secs= 15.00 ops/s= 990583 lat us p50=6.98 p99=11.14 p99.9=20.22 max=232.9 mean=8.01 + cpu=119.98s ops/cpu-s=123841 rd=0.0 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + startup us p50=6.59 p99=10.62 mean=7.52 per-tuple=nan ns deinit mean=0.44 us tuples/s=990583 + insert/run=15.00s drain(close)=0.07s total=15.07s drain_cpu=0.01s drain_rd=0 drain_wr=307200 wamp=nan db_apparent=237375488 db_alloc=37285888 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.csv new file mode 100644 index 000000000..bde87f923 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,1,warm,8,0,200000,200000,0.016,12852271.1,nan,nan,nan,0.000,nan,0.068,2927743.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12852271.1,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +main,resident,0,1,ow:uniform@8,8,0,200000,15751404,15.000,1050078.9,1.520,130.048,479.232,221195.577,7.462,63.459,248213.5,2599501824,6789079040,165.03,431.01,nan,nan,nan,nan,nan,0,0.0,15.000,0.119,15.119,0.044,516096,39399424,2.6434,8589934592,5274365952,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.log new file mode 100644 index 000000000..27db5436e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-00-main.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=0 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12852271 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2927743 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 10941135 ops (+1094042 ops/s) +close took 0.119 s +== ow:uniform@8 T=8 ops=15751404 secs= 15.00 ops/s= 1050079 lat us p50=1.52 p99=130.05 p99.9=479.23 max=221195.6 mean=7.46 + cpu=63.46s ops/cpu-s=248213 rd=165.0 B/op wr=431.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.12s total=15.12s drain_cpu=0.04s drain_rd=516096 drain_wr=39399424 wamp=2.643 db_apparent=8589934592 db_alloc=5274365952 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.csv new file mode 100644 index 000000000..47210041b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,1,warm,8,1,200000,200000,0.015,13644661.8,nan,nan,nan,0.000,nan,0.064,3110806.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13644661.8,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,1,ow:uniform@8,8,1,200000,13206831,15.000,880444.9,1.456,149.504,1196.032,265797.951,8.930,55.017,240051.1,2147401728,5672136704,162.60,429.49,nan,nan,nan,nan,nan,0,0.0,15.000,0.161,15.161,0.049,274432,39948288,2.6373,8589934592,4774494208,0.008,0,0,69,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.log new file mode 100644 index 000000000..32bbf9b24 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-01-candidate.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=1 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13644662 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3110807 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 9159844 ops (+915932 ops/s) +close took 0.161 s +== ow:uniform@8 T=8 ops=13206831 secs= 15.00 ops/s= 880445 lat us p50=1.46 p99=149.50 p99.9=1196.03 max=265798.0 mean=8.93 + cpu=55.02s ops/cpu-s=240051 rd=162.6 B/op wr=429.5 B/op violations=0 errors=0 swapin=69 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.16s total=15.16s drain_cpu=0.05s drain_rd=274432 drain_wr=39948288 wamp=2.637 db_apparent=8589934592 db_alloc=4774494208 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.csv new file mode 100644 index 000000000..b16c1838b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,1,warm,8,2,200000,200000,0.016,12713872.0,nan,nan,nan,0.000,nan,0.071,2832780.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12713872.0,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,2,1,ow:uniform@8,8,2,200000,12345298,15.000,823007.7,1.424,153.600,1359.872,295820.563,9.568,50.542,244257.4,2047361024,5333245952,165.84,432.01,nan,nan,nan,nan,nan,0,0.0,15.000,0.228,15.228,0.109,26345472,29122560,2.6486,8589934592,4548698112,0.008,0,0,120,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.log new file mode 100644 index 000000000..1ec4f89ff --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-02-candidate.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=2 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12713872 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2832781 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 8349654 ops (+834913 ops/s) +close took 0.228 s +== ow:uniform@8 T=8 ops=12345298 secs= 15.00 ops/s= 823008 lat us p50=1.42 p99=153.60 p99.9=1359.87 max=295820.6 mean=9.57 + cpu=50.54s ops/cpu-s=244257 rd=165.8 B/op wr=432.0 B/op violations=0 errors=0 swapin=120 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.23s total=15.23s drain_cpu=0.11s drain_rd=26345472 drain_wr=29122560 wamp=2.649 db_apparent=8589934592 db_alloc=4548698112 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.csv new file mode 100644 index 000000000..29efe4fd3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,1,warm,8,3,200000,200000,0.016,12884035.2,nan,nan,nan,0.000,nan,0.073,2745517.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12884035.2,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,3,1,ow:uniform@8,8,3,200000,12723628,15.000,848229.7,1.456,157.696,1261.568,270371.860,9.270,51.923,245046.6,2108645376,5499584512,165.73,432.23,nan,nan,nan,nan,nan,0,0.0,15.000,0.135,15.135,0.041,217088,24772608,2.6474,8589934592,4623142912,0.007,0,0,2,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.log new file mode 100644 index 000000000..7b5ce4f0c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-03-main.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12884035 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2745518 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 8685951 ops (+868544 ops/s) +close took 0.135 s +== ow:uniform@8 T=8 ops=12723628 secs= 15.00 ops/s= 848230 lat us p50=1.46 p99=157.70 p99.9=1261.57 max=270371.9 mean=9.27 + cpu=51.92s ops/cpu-s=245047 rd=165.7 B/op wr=432.2 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.14s total=15.14s drain_cpu=0.04s drain_rd=217088 drain_wr=24772608 wamp=2.647 db_apparent=8589934592 db_alloc=4623142912 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.csv new file mode 100644 index 000000000..f42e905c3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,4,1,warm,8,4,200000,200000,0.017,11518772.0,nan,nan,nan,0.000,nan,0.081,2462902.5,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,11518772.0,0.017,0.000,0.017,0.000,0,0,nan,0,0,0.008,0,0,0,0,2 +main,resident,4,1,ow:uniform@8,8,4,200000,11578720,15.000,771902.2,1.424,161.792,1392.640,282835.814,10.205,48.011,241168.8,1773715456,4962910208,153.19,428.62,nan,nan,nan,nan,nan,0,0.0,15.000,0.165,15.165,0.064,1142784,39501824,2.6344,8589934592,4363235328,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.log new file mode 100644 index 000000000..cbe67deac --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-04-main.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-04-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=4 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 11518772 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2462903 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 7833723 ops (+783317 ops/s) +close took 0.165 s +== ow:uniform@8 T=8 ops=11578720 secs= 15.00 ops/s= 771902 lat us p50=1.42 p99=161.79 p99.9=1392.64 max=282835.8 mean=10.21 + cpu=48.01s ops/cpu-s=241169 rd=153.2 B/op wr=428.6 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.16s total=15.17s drain_cpu=0.06s drain_rd=1142784 drain_wr=39501824 wamp=2.634 db_apparent=8589934592 db_alloc=4363235328 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.csv new file mode 100644 index 000000000..af9d1696f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,5,1,warm,8,5,200000,200000,0.016,12248375.5,nan,nan,nan,0.000,nan,0.074,2714993.6,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12248375.5,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,5,1,ow:uniform@8,8,5,200000,12140167,15.000,809333.6,1.392,153.600,1327.104,331558.542,9.738,49.999,242808.0,1891778560,5237198848,155.83,431.39,nan,nan,nan,nan,nan,0,0.0,15.000,0.116,15.116,0.035,270336,18898944,2.6399,8589934592,4508598272,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.log new file mode 100644 index 000000000..e28bc5d0d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/repeat/resident-random-wal1-05-candidate.log @@ -0,0 +1,12 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/repeat-resident-random-wal1-05-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=15.0 warmup=1.0 rep=5 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12248375 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2714994 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) + [ow:uniform@8] progress 8224016 ops (+822348 ops/s) +close took 0.116 s +== ow:uniform@8 T=8 ops=12140167 secs= 15.00 ops/s= 809334 lat us p50=1.39 p99=153.60 p99.9=1327.10 max=331558.5 mean=9.74 + cpu=50.00s ops/cpu-s=242808 rd=155.8 B/op wr=431.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=15.00s drain(close)=0.12s total=15.12s drain_cpu=0.03s drain_rd=270336 drain_wr=18898944 wamp=2.640 db_apparent=8589934592 db_alloc=4508598272 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/report.md b/benchmarks/results-20261014/prefix-main-6105c49f/report.md new file mode 100644 index 000000000..b55ea6985 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/report.md @@ -0,0 +1,107 @@ +# Prefix benchmark comparison against main 6105c49f + +Main source: `6105c49f66a24d3006ba0464d9558b52e692e27c`. Candidate source: `97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789`. + +This compares the integrated prefix feature with current main; it does not isolate the cost of merging main. + +CPU affinity 0–11, real disk with O_DIRECT, 64-byte keys, 100-byte values, fixed per-format images, fsynced copies, seed 42, one load thread, no background workers, and a 4 MiB memtable. Resident uses 200,000 keys and 128 MiB cache; disk uses 2 million keys and 64 MiB cache. Read phases have one second of warmup each. Query checks validate values and ordered ranges; overwrite checks up to 4,096 measured keys per worker after timing. + +ABBA provides two samples per version in the main matrix. Repeats are shown separately. Means and sample ranges are descriptive; overlapping ranges are not confidence intervals. Small differences and tail estimates need cautious interpretation. + +## Reads + +Status: complete. 28 verified query invocations; measured phases 7 seconds. All included rows have zero API errors and correctness violations. + +| Case / WAL | Phase | Main ops/s range | Candidate ops/s range | Mean throughput | CPU efficiency | Read B/op | Mean p99 | Ranges overlap | +| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | :---: | +| resident-common / 0 | point:uniform@8 | 4,074,604.5–4,926,481.6 | 4,492,319.2–4,989,583.4 | +5.34% | +5.32% | n/a | -13.58% | yes | +| resident-common / 0 | range:uniform:1@8 | 1,072,409.9–1,256,510.3 | 1,165,847.2–1,185,895.4 | +0.98% | +0.97% | n/a | -1.32% | yes | +| resident-common / 0 | range:uniform:10000@8 | 3,877.3–5,473.7 | 3,481.6–4,469.4 | -14.97% | -14.98% | n/a | -11.32% | yes | +| resident-random / 0 | point:uniform@8 | 3,854,472.2–4,165,500.4 | 4,068,384.3–4,115,031.1 | +2.04% | +2.04% | n/a | -4.88% | yes | +| resident-random / 0 | range:uniform:1@8 | 1,063,328.2–1,092,590.9 | 1,057,405.9–1,091,214.3 | -0.34% | -0.34% | n/a | -1.23% | yes | +| resident-random / 0 | range:uniform:10000@8 | 3,106.0–3,484.7 | 3,293.9–3,752.7 | +6.92% | +6.91% | n/a | -11.00% | yes | +| resident-random / 0 | range:uniform:10000@1 | 1,159.1–1,328.0 | 1,218.0–1,286.0 | +0.68% | +0.68% | n/a | -9.24% | yes | +| resident-nonlexical / 0 | point:uniform@8 | 4,028,951.9–4,364,191.6 | 3,943,007.4–4,254,213.6 | -2.33% | -2.34% | n/a | +1.28% | yes | +| resident-nonlexical / 0 | range:uniform:1@8 | 1,024,771.4–1,058,596.2 | 985,488.4–986,207.5 | -5.36% | -5.35% | n/a | +4.82% | no | +| resident-nonlexical / 0 | range:uniform:10000@8 | 3,201.0–3,520.9 | 2,868.6–3,527.0 | -4.85% | -4.80% | n/a | +5.00% | yes | +| disk-common / 0 | point:uniform@8 | 163,698.1–176,798.2 | 181,356.1–194,725.4 | +10.45% | +10.96% | -9.06% | -16.48% | no | +| disk-common / 0 | range:uniform:1@8 | 68,021.3–73,146.7 | 76,025.5–80,473.3 | +10.86% | +11.42% | -22.75% | -2.50% | no | +| disk-common / 0 | range:uniform:10000@8 | 900.0–918.3 | 1,061.8–1,125.4 | +20.29% | +12.02% | -29.09% | -13.68% | no | +| disk-random / 0 | point:uniform@8 | 132,155.7–136,666.5 | 133,577.2–134,838.6 | -0.15% | +1.26% | +0.02% | -0.84% | yes | +| disk-random / 0 | range:uniform:1@8 | 53,370.4–56,396.0 | 55,082.8–56,052.0 | +1.25% | +1.14% | -0.13% | -6.25% | yes | +| disk-random / 0 | range:uniform:10000@8 | 788.7–801.1 | 787.5–796.8 | -0.35% | -0.14% | +0.28% | -2.65% | yes | +| disk-nonlexical / 0 | point:uniform@8 | 133,323.3–158,039.7 | 130,352.7–143,969.4 | -5.85% | -7.69% | +0.00% | +5.50% | yes | +| disk-nonlexical / 0 | range:uniform:1@8 | 54,996.1–65,537.3 | 55,657.5–60,041.5 | -4.01% | -3.95% | -0.05% | +0.00% | yes | +| disk-nonlexical / 0 | range:uniform:10000@8 | 766.3–829.0 | 780.0–820.7 | +0.34% | +1.50% | +0.19% | -15.57% | yes | +| resident-common-disabled / 0 | point:uniform@8 | 3,544,771.5–3,809,599.8 | 3,784,307.2–3,941,791.0 | +5.05% | +5.05% | n/a | -8.89% | yes | +| resident-common-disabled / 0 | range:uniform:1@8 | 892,793.3–1,004,344.2 | 913,518.7–977,689.1 | -0.31% | -0.32% | n/a | +0.00% | yes | +| resident-common-disabled / 0 | range:uniform:10000@8 | 3,405.3–4,432.8 | 2,982.7–3,280.3 | -20.10% | -20.09% | n/a | +2.85% | no | +| resident-common-disabled / 0 | range:uniform:10000@1 | 1,248.7–1,329.5 | 1,243.4–1,301.1 | -1.31% | -1.31% | n/a | +0.00% | yes | + +## Writes + +Status: complete. 16 verified query invocations; measured phases 8 seconds. All included rows have zero API errors and correctness violations. + +| Case / WAL | Phase | Main ops/s range | Candidate ops/s range | Mean throughput | CPU efficiency | Read B/op | Mean p99 | Ranges overlap | +| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | :---: | +| resident-common / 0 | ow:uniform@8 | 1,651,774.3–2,281,818.6 | 1,951,505.2–2,078,472.6 | +2.45% | +3.82% | -40.13% | +1.02% | yes | +| resident-random / 0 | ow:uniform@8 | 1,417,795.4–1,646,774.8 | 1,583,743.5–1,645,339.0 | +5.37% | -0.54% | -8.30% | +1.06% | yes | +| resident-common / 1 | ow:uniform@8 | 578,949.9–680,238.2 | 691,557.9–806,782.3 | +18.99% | -0.83% | -40.55% | -5.66% | no | +| resident-random / 1 | ow:uniform@8 | 570,998.2–581,315.3 | 484,679.1–565,478.7 | -8.87% | -19.90% | -14.58% | +10.00% | no | + +Overwrite rates including close/drain: + +| Case / WAL | Main ops/s | Candidate ops/s | Change | +| --- | ---: | ---: | ---: | +| resident-common / 0 | 1,932,737.1 | 1,975,842.9 | +2.23% | +| resident-random / 0 | 1,498,383.2 | 1,588,280.8 | +6.00% | +| resident-common / 1 | 620,393.3 | 735,223.1 | +18.51% | +| resident-random / 1 | 566,929.2 | 510,361.0 | -9.98% | + +These bounded overwrites include one second of unmeasured warmup and post-measurement verification before close. The close-inclusive denominator adds measured time and close/drain time; it excludes warmup and verifier time. It is not a sustained-ingest or steady-state write-throughput measurement. WAL=1 exercises current main's automatic durable barriers; this harness does not measure recovery or count barriers. + +## Repeat + +Status: complete. 24 verified query invocations; measured phases 15 seconds. All included rows have zero API errors and correctness violations. + +| Case / WAL | Phase | Main ops/s range | Candidate ops/s range | Mean throughput | CPU efficiency | Read B/op | Mean p99 | Ranges overlap | +| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | :---: | +| resident-common / 0 | range:uniform:10000@8 | 3,909.3–4,235.1 | 3,136.6–4,012.2 | -12.10% | -12.10% | n/a | -4.03% | yes | +| resident-common-disabled / 0 | range:uniform:10000@8 | 3,365.5–4,357.7 | 3,613.8–3,853.3 | -2.38% | -2.39% | n/a | +15.11% | yes | +| resident-common-disabled / 0 | range:uniform:10000@1 | 1,334.6–1,377.4 | 1,373.1–1,381.2 | +1.89% | +1.88% | n/a | -7.48% | yes | +| resident-nonlexical / 0 | range:uniform:1@8 | 995,559.2–1,081,379.8 | 944,712.2–990,583.5 | -5.73% | -5.74% | n/a | +7.23% | no | +| resident-random / 1 | ow:uniform@8 | 771,902.2–1,050,078.9 | 809,333.6–880,444.9 | -5.90% | -1.00% | +0.07% | +1.59% | yes | + +Overwrite rates including close/drain: + +| Case / WAL | Main ops/s | Candidate ops/s | Change | +| --- | ---: | ---: | ---: | +| resident-random / 1 | 882,006.7 | 828,312.1 | -6.09% | + +These bounded overwrites include one second of unmeasured warmup and post-measurement verification before close. The close-inclusive denominator adds measured time and close/drain time; it excludes warmup and verifier time. It is not a sustained-ingest or steady-state write-throughput measurement. WAL=1 exercises current main's automatic durable barriers; this harness does not measure recovery or count barriers. + +## Fixture construction and space + +Each fixture is constructed once. Load/drain numbers are setup observations, not repeated write benchmarks. Allocated file bytes include historical written pages; mounted live extents show allocator ownership. Per-page-type counters are not durable and are not used here. + +| Fixture | Load + drain seconds | File allocation bytes | Live extents | +| --- | ---: | ---: | ---: | +| main-resident-common-wal0 | 0.352 | 37,408,768 | 342 | +| candidate-resident-common-wal0 | 0.346 | 26,128,384 | 256 | +| main-resident-random-wal0 | 0.443 | 37,408,768 | 342 | +| candidate-resident-random-wal0 | 0.422 | 37,408,768 | 342 | +| main-resident-nonlexical-wal0 | 0.379 | 37,408,768 | 342 | +| candidate-resident-nonlexical-wal0 | 0.409 | 37,408,768 | 342 | +| main-disk-common-wal0 | 4.245 | 833,761,280 | 3,414 | +| candidate-disk-common-wal0 | 4.071 | 544,198,656 | 2,585 | +| main-disk-random-wal0 | 4.740 | 833,708,032 | 3,415 | +| candidate-disk-random-wal0 | 4.872 | 833,789,952 | 3,415 | +| main-disk-nonlexical-wal0 | 4.913 | 833,634,304 | 3,414 | +| candidate-disk-nonlexical-wal0 | 4.847 | 834,351,104 | 3,414 | +| candidate-resident-common-wal0-disabled | 0.425 | 37,408,768 | 342 | +| main-resident-common-wal1 | 0.706 | 76,468,224 | 347 | +| candidate-resident-common-wal1 | 0.657 | 65,187,840 | 261 | +| main-resident-random-wal1 | 0.856 | 76,468,224 | 347 | +| candidate-resident-random-wal1 | 0.695 | 76,468,224 | 347 | + +Raw per-phase samples and latency percentiles are in the mode CSV files. `summary.csv` retains mean and min/max throughput, CPU efficiency, read/write bytes per operation and p99/p99.9. Manifests retain commands, environment controls, timings, source and binary hashes, fixture hashes, and verification outcomes. Database images and binaries are excluded from the evidence archive. diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/report.py b/benchmarks/results-20261014/prefix-main-6105c49f/report.py new file mode 100644 index 000000000..121fdbc09 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/report.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +"""Summarize verified prefix benchmark records; never combine different modes.""" + +import csv +import json +from pathlib import Path +import statistics + + +HERE = Path(__file__).resolve().parent + + +def average(rows, key): + return statistics.mean(float(row[key]) for row in rows) + + +def change(before, after): + return 100 * (after / before - 1) if before else None + + +def percentage(value): + return "n/a" if value is None else f"{value:+.2f}%" + + +def interval(values): + return f"{min(values):,.1f}–{max(values):,.1f}" + + +def main(): + summaries = [] + manifests = {} + for mode in ("reads", "writes", "repeat"): + manifest_path = HERE / mode / "manifest.json" + if not manifest_path.exists(): + continue + manifest = json.loads(manifest_path.read_text()) + manifests[mode] = manifest + groups = {} + for record in manifest["runs"]: + if "case" not in record or not record.get("verified"): + continue + with (HERE / record["csv"]).open() as stream: + for row in csv.DictReader(stream): + if row["phase"] == "warm": + continue + assert int(row["errors"]) == 0 and int(row["violations"]) == 0 + row["ops_with_drain_s"] = float(row["ops"]) / (float(row["secs"]) + float(row["drain_s"])) + key = (record["case"], record["wal"], row["phase"]) + groups.setdefault(key, {}).setdefault(record["profile"], []).append(row) + for (case, wal, phase), versions in groups.items(): + if set(versions) != {"main", "candidate"}: + continue + baseline, candidate = versions["main"], versions["candidate"] + summary = {"mode": mode, "case": case, "wal": wal, "phase": phase, + "main_samples": len(baseline), "candidate_samples": len(candidate)} + for metric in ("ops_s", "p99_us", "p999_us", "ops_per_cpu_s", "rd_B_op", "wr_B_op", "ops_with_drain_s"): + a, b = average(baseline, metric), average(candidate, metric) + summary.update({f"main_{metric}": a, f"candidate_{metric}": b, + f"change_{metric}_pct": change(a, b), + f"main_{metric}_min": min(float(row[metric]) for row in baseline), + f"main_{metric}_max": max(float(row[metric]) for row in baseline), + f"candidate_{metric}_min": min(float(row[metric]) for row in candidate), + f"candidate_{metric}_max": max(float(row[metric]) for row in candidate)}) + summary["throughput_ranges_overlap"] = max(summary["main_ops_s_min"], summary["candidate_ops_s_min"]) <= min(summary["main_ops_s_max"], summary["candidate_ops_s_max"]) + summaries.append(summary) + if not manifests: + raise SystemExit("No benchmark manifests found") + (HERE / "summary.json").write_text(json.dumps(summaries, indent=2) + "\n") + if summaries: + with (HERE / "summary.csv").open("w") as stream: + writer = csv.DictWriter(stream, fieldnames=list(summaries[0]), lineterminator="\n") + writer.writeheader() + writer.writerows(summaries) + build = json.loads((HERE / "build.json").read_text()) + lines = ["# Prefix benchmark comparison against main 6105c49f", "", + f"Main source: `{build['main']['commit']}`. Candidate source: `{build['candidate']['commit']}`.", "", + "This compares the integrated prefix feature with current main; it does not isolate the cost of merging main.", "", + "CPU affinity 0–11, real disk with O_DIRECT, 64-byte keys, 100-byte values, fixed per-format images, fsynced copies, seed 42, one load thread, no background workers, and a 4 MiB memtable. Resident uses 200,000 keys and 128 MiB cache; disk uses 2 million keys and 64 MiB cache. Read phases have one second of warmup each. Query checks validate values and ordered ranges; overwrite checks up to 4,096 measured keys per worker after timing.", "", + "ABBA provides two samples per version in the main matrix. Repeats are shown separately. Means and sample ranges are descriptive; overlapping ranges are not confidence intervals. Small differences and tail estimates need cautious interpretation.", ""] + for mode, manifest in manifests.items(): + verified = [record for record in manifest["runs"] if "case" in record and record.get("verified")] + lines += [f"## {mode.capitalize()}", "", + f"Status: {'complete' if manifest['complete'] else 'INCOMPLETE'}. {len(verified)} verified query invocations; measured phases {manifest['seconds']:g} seconds. All included rows have zero API errors and correctness violations.", ""] + lines += ["| Case / WAL | Phase | Main ops/s range | Candidate ops/s range | Mean throughput | CPU efficiency | Read B/op | Mean p99 | Ranges overlap |", + "| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | :---: |"] + for item in summaries: + if item["mode"] != mode: + continue + a = [item["main_ops_s_min"], item["main_ops_s_max"]] + b = [item["candidate_ops_s_min"], item["candidate_ops_s_max"]] + lines.append(f"| {item['case']} / {item['wal']} | {item['phase']} | {interval(a)} | {interval(b)} | {percentage(item['change_ops_s_pct'])} | {percentage(item['change_ops_per_cpu_s_pct'])} | {percentage(item['change_rd_B_op_pct'])} | {percentage(item['change_p99_us_pct'])} | {'yes' if item['throughput_ranges_overlap'] else 'no'} |") + lines.append("") + if any(item["mode"] == mode and item["phase"].startswith("ow:") for item in summaries): + lines += ["Overwrite rates including close/drain:", "", + "| Case / WAL | Main ops/s | Candidate ops/s | Change |", + "| --- | ---: | ---: | ---: |"] + for item in summaries: + if item["mode"] == mode and item["phase"].startswith("ow:"): + lines.append(f"| {item['case']} / {item['wal']} | {item['main_ops_with_drain_s']:,.1f} | {item['candidate_ops_with_drain_s']:,.1f} | {percentage(item['change_ops_with_drain_s_pct'])} |") + lines += ["", "These bounded overwrites include one second of unmeasured warmup and post-measurement verification before close. The close-inclusive denominator adds measured time and close/drain time; it excludes warmup and verifier time. It is not a sustained-ingest or steady-state write-throughput measurement. WAL=1 exercises current main's automatic durable barriers; this harness does not measure recovery or count barriers.", ""] + fixture_path = HERE / "fixtures.json" + if fixture_path.exists(): + fixtures = json.loads(fixture_path.read_text()) + lines += ["## Fixture construction and space", "", + "Each fixture is constructed once. Load/drain numbers are setup observations, not repeated write benchmarks. Allocated file bytes include historical written pages; mounted live extents show allocator ownership. Per-page-type counters are not durable and are not used here.", "", + "| Fixture | Load + drain seconds | File allocation bytes | Live extents |", + "| --- | ---: | ---: | ---: |"] + for key, fixture in fixtures.items(): + lines.append(f"| {key} | {float(fixture['load']['total_s']):.3f} | {fixture['identity']['allocated_bytes']:,} | {fixture['live_extents']:,} |") + lines.append("") + lines += ["Raw per-phase samples and latency percentiles are in the mode CSV files. `summary.csv` retains mean and min/max throughput, CPU efficiency, read/write bytes per operation and p99/p99.9. Manifests retain commands, environment controls, timings, source and binary hashes, fixture hashes, and verification outcomes. Database images and binaries are excluded from the evidence archive.", ""] + (HERE / "report.md").write_text("\n".join(lines)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/run_benchmarks.py b/benchmarks/results-20261014/prefix-main-6105c49f/run_benchmarks.py new file mode 100644 index 000000000..ed12377d3 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/run_benchmarks.py @@ -0,0 +1,289 @@ +#!/usr/bin/env python3 +"""Prefix A/B measurements. The caller must hold the campaign machine lock. + +build.json maps main/candidate to tree, commit, library, library_sha256, +binary, binary_sha256 and source_sha256. Paths may be absolute or relative to +the repository root. Databases are deliberately kept out of the archive. +""" + +import argparse +import csv +import hashlib +import json +import os +from pathlib import Path +import platform +import re +import resource +import signal +import subprocess +import time + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +DATABASES = ROOT / ".cache/prefix-main-6105c49f/databases" +CASES = [f"{regime}-{pattern}" for regime in ("resident", "disk") + for pattern in ("common", "random", "nonlexical")] +CASES.append("resident-common-disabled") + + +def sha(path): + result = hashlib.sha256() + with Path(path).open("rb") as stream: + for block in iter(lambda: stream.read(1024 * 1024), b""): + result.update(block) + return result.hexdigest() + + +def save(path, value): + temporary = path.with_suffix(path.suffix + ".tmp") + temporary.write_text(json.dumps(value, indent=2) + "\n") + temporary.replace(path) + + +def read_rows(path): + with path.open() as stream: + return list(csv.DictReader(stream)) + + +def sync(path): + with path.open("rb") as stream: + os.fsync(stream.fileno()) + + +def file_identity(path): + stat = path.stat() + return {"size": stat.st_size, "mtime_ns": stat.st_mtime_ns, + "inode": stat.st_ino, "allocated_bytes": stat.st_blocks * 512} + + +def verify_rows(path, phases, n): + rows = read_rows(path) + assert [row["phase"] for row in rows] == phases, (path, rows, phases) + assert all(int(row["ops"]) > 0 and int(row["errors"]) == 0 + and int(row["violations"]) == 0 for row in rows), path + assert all(int(row["ops"]) == n for row in rows + if row["phase"] == "warm" or row["phase"].startswith("load:")), path + return rows + + +class Campaign: + def __init__(self, args): + self.args = args + self.builds = json.loads((HERE / "build.json").read_text()) + for profile in ("main", "candidate"): + build = self.builds[profile] + for kind in ("binary", "library"): + path = Path(build[kind]) + if not path.is_absolute(): + path = ROOT / path + assert sha(path) == build[kind + "_sha256"], (profile, kind) + build[kind] = str(path) + DATABASES.mkdir(parents=True, exist_ok=True) + filesystem = subprocess.check_output( + ["findmnt", "-n", "-o", "FSTYPE,SOURCE", "-T", str(DATABASES)], + text=True).strip() + assert filesystem.split()[0] not in ("tmpfs", "ramfs"), filesystem + assert filesystem.split()[1].startswith("/dev/"), filesystem + self.folder = HERE / args.mode + self.folder.mkdir(exist_ok=False) + self.fixture_folder = HERE / "fixtures" + self.fixture_folder.mkdir(exist_ok=True) + fixtures_path = HERE / "fixtures.json" + self.fixtures = json.loads(fixtures_path.read_text()) if fixtures_path.exists() else {} + self.manifest = { + "mode": args.mode, "started": time.time(), "complete": False, + "runner_sha256": sha(__file__), "build_json_sha256": sha(HERE / "build.json"), + "builds": self.builds, "storage": filesystem, + "database_directory": str(DATABASES), "io": "O_DIRECT", + "fixture_copy": "cp --reflink=auto --sparse=always, then fsync", + "cpu_affinity": args.cpus, "platform": platform.platform(), + "available_cpu_affinity": sorted(os.sched_getaffinity(0)), + "loadavg_start": os.getloadavg(), "environment": { + "PREFIX_PATTERN": "per case", "PREFIX_DISABLE": "unset except candidate disabled case", + "KVBENCH_STATS_BEFORE_CLOSE": "1 for fixture creation only"}, + "coordination": "Caller holds exclusive campaign benchmark and machine locks", + "seconds": args.seconds, "warmup_seconds": 1, "seed": 42, + "loading_threads": 1, "background_workers": 0, "memtable_mib": 4, + "verification": "Every query verifies key/value or ordered range; overwrite validates up to 4096 measured keys per worker after timing", + "runs": [], + } + self.save() + + def save(self): + save(self.folder / "manifest.json", self.manifest) + + def invoke(self, folder, label, profile, argv, pattern, disabled=False, + fixture=False, timeout=600): + build = self.builds[profile] + command = ["taskset", "-c", self.args.cpus, build["binary"], *map(str, argv)] + environment = dict(os.environ) + environment.pop("PREFIX_DISABLE", None) + environment.pop("KVBENCH_STATS_BEFORE_CLOSE", None) + environment["PREFIX_PATTERN"] = pattern + if disabled: + environment["PREFIX_DISABLE"] = "1" + if fixture: + environment["KVBENCH_STATS_BEFORE_CLOSE"] = "1" + log = folder / (label + ".log") + assert not log.exists(), log + record = {"label": label, "profile": profile, "command": command, + "started": time.time(), "log": str(log.relative_to(HERE)), + "binary_sha256": build["binary_sha256"], + "library_sha256": build["library_sha256"], + "source_commit": build["commit"], "pattern": pattern, + "compression_disabled": disabled, "verified": False} + self.manifest["runs"].append(record) + self.save() + print(label, flush=True) + before = resource.getrusage(resource.RUSAGE_CHILDREN) + try: + with log.open("w") as output: + process = subprocess.Popen(command, cwd=ROOT, env=environment, + stdout=output, stderr=subprocess.STDOUT, + start_new_session=True) + try: + process.wait(timeout=timeout) + except BaseException: + os.killpg(process.pid, signal.SIGKILL) + process.wait() + raise + after = resource.getrusage(resource.RUSAGE_CHILDREN) + record.update(returncode=process.returncode, finished=time.time(), + log_sha256=sha(log), + process_cpu_s=after.ru_utime + after.ru_stime - before.ru_utime - before.ru_stime, + process_read_bytes=512 * (after.ru_inblock - before.ru_inblock), + process_write_bytes=512 * (after.ru_oublock - before.ru_oublock)) + assert process.returncode == 0, record + content = log.read_text() + assert "FINDING: splinterdb_close" not in content, log + assert "FATAL:" not in content and "VIOLATION:" not in content, log + expected = f"prefix-pattern={pattern} key_bytes=64 compression_disabled={'true' if disabled else 'false'}" + assert expected in content, (log, expected) + return record + except BaseException as error: + record.update(exception=repr(error), finished=time.time()) + raise + finally: + self.save() + + def kvargs(self, db, csvpath, profile, regime, wal, index, create=False, + seconds=None): + return ["--db", db, "--create" if create else "--open", + "--n", 200000 if regime == "resident" else 2000000, + "--cache-mib", 128 if regime == "resident" else 64, + "--disk-gib", 8, "--log", wal, "--threads", 1 if create else 8, + "--mt-bg", 0, "--normal-bg", 0, "--memtable-mib", 4, + "--secs", self.args.seconds if seconds is None else seconds, + "--warmup", 1, "--csv", csvpath, "--vtag", profile, + "--stag", regime, "--otag", index, "--rep", index, + "--seed", 42, "--hang-secs", 60, "--hang-dir", self.folder] + + def fixture(self, profile, regime, pattern, wal, disabled=False): + key = f"{profile}-{regime}-{pattern}-wal{wal}" + ("-disabled" if disabled else "") + db = DATABASES / ("fixture-" + key + ".db") + if key in self.fixtures: + result = self.fixtures[key] + assert file_identity(db) == result["identity"], key + assert result["binary_sha256"] == self.builds[profile]["binary_sha256"], key + return result + assert not db.exists(), db + csvpath = self.fixture_folder / (key + ".csv") + argv = self.kvargs(db, csvpath, profile, regime, wal, 0, create=True, seconds=1) + record = self.invoke(self.fixture_folder, "load-" + key, profile, + argv + ["load:random@1"], pattern, disabled, fixture=True) + rows = verify_rows(csvpath, ["load:random@1"], 200000 if regime == "resident" else 2000000) + record.update(verified=True, errors=0, violations=0, csv=str(csvpath.relative_to(HERE))) + self.save() + # Reopened allocator ownership is authoritative; per-page-type counters + # are not persisted and must not be interpreted after reopening. + space = self.invoke(self.fixture_folder, "space-" + key, profile, + self.kvargs(db, csvpath, profile, regime, wal, 0) + ["space"], + pattern, disabled) + matches = re.findall(r"Currently Allocated:\s+(\d+) extents", + (HERE / space["log"]).read_text()) + assert matches, space + space.update(verified=True, live_extents=int(matches[-1])) + sync(db) + result = {"key": key, "profile": profile, "regime": regime, + "pattern": pattern, "wal": wal, "disabled": disabled, + "path": str(db), "identity": file_identity(db), "sha256": sha(db), + "live_extents": int(matches[-1]), "load": rows[0], + "binary_sha256": self.builds[profile]["binary_sha256"], + "load_log": record["log"], "space_log": space["log"]} + self.fixtures[key] = result + save(HERE / "fixtures.json", self.fixtures) + self.save() + return result + + def query(self, case, profile, index, phases, wal=0): + regime, pattern, *tail = case.split("-") + disabled = bool(tail) and profile == "candidate" + fixture = self.fixture(profile, regime, pattern, wal, disabled) + source = Path(fixture["path"]) + before = file_identity(source) + label = f"{case}-wal{wal}-{index:02d}-{profile}" + db = DATABASES / (f"{self.args.mode}-{label}.db") + assert not db.exists(), db + copy_start = time.time() + subprocess.run(["cp", "--reflink=auto", "--sparse=always", str(source), str(db)], check=True) + sync(db) + copy_seconds = time.time() - copy_start + csvpath = self.folder / (label + ".csv") + argv = self.kvargs(db, csvpath, profile, regime, wal, index) + phases + record = self.invoke(self.folder, label, profile, argv, pattern, disabled) + rows = verify_rows(csvpath, phases, 200000 if regime == "resident" else 2000000) + assert file_identity(source) == before, source + record.update(case=case, wal=wal, index=index, fixture_key=fixture["key"], + fixture_sha256=fixture["sha256"], copy_fsynced=True, + copy_seconds=copy_seconds, csv=str(csvpath.relative_to(HERE)), + csv_sha256=sha(csvpath), allocated_bytes=db.stat().st_blocks * 512, + errors=0, violations=0, verified=True, + phase_count=len(rows)) + self.save() + db.unlink() # Only this verified run's disposable copy is removed. + + def run(self): + if self.args.mode == "writes": + cases = ["resident-common", "resident-random"] + for wal in (0, 1): + for case in cases: + for index, profile in enumerate(("main", "candidate", "candidate", "main")): + self.query(case, profile, index, ["warm", "ow:uniform@8"], wal) + else: + cases = self.args.case or (CASES if self.args.mode == "reads" else + ["resident-common", "resident-random", "resident-common-disabled"]) + order = ["main", "candidate", "candidate", "main"] + if self.args.mode == "repeat": + order = [profile for pair in range(self.args.pairs) + for profile in (("main", "candidate") if pair % 2 == 0 else ("candidate", "main"))] + for case in cases: + phases = ["warm", "point:uniform@8", "range:uniform:1@8", "range:uniform:10000@8"] + if self.args.mode == "repeat": + phases = ["warm", "range:uniform:10000@8", "range:uniform:10000@1"] + elif case in ("resident-random", "resident-common-disabled"): + phases.append("range:uniform:10000@1") + for index, profile in enumerate(order): + self.query(case, profile, index, phases) + self.manifest.update(complete=True, finished=time.time(), loadavg_end=os.getloadavg()) + self.save() + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--mode", choices=("reads", "writes", "repeat"), required=True) + parser.add_argument("--case", action="append", choices=CASES, + help="Restrict read/repeat cases; default reads cover the full matrix") + parser.add_argument("--seconds", type=float) + parser.add_argument("--pairs", type=int, default=3, help="Paired repeats per selected case") + parser.add_argument("--cpus", default="0-11") + args = parser.parse_args() + if args.seconds is None: + args.seconds = {"reads": 7, "writes": 8, "repeat": 20}[args.mode] + assert args.seconds > 0 and args.pairs > 0 + Campaign(args).run() + + +if __name__ == "__main__": + main() diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/sha256.json b/benchmarks/results-20261014/prefix-main-6105c49f/sha256.json new file mode 100644 index 000000000..fedd15ee8 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/sha256.json @@ -0,0 +1,237 @@ +{ + ".gitattributes": "59adc7ceefcd4a76b6455550e9529c05fd89f388e35e201fff983dba3c777bea", + ".gitignore": "32dae3052f331ee34d628ef535709b301259a45df7c7522c4d35dcf49873f00b", + "README.md": "6ae8715ced92972969f2c247529f987682272df87518453cbc032f1cfe46ed72", + "audit.json": "16c7a8561597e692405bab762a4dc12fb6622330d1ad7c30219b01c31d6d4e0f", + "audit.py": "999cb08eb224445dc166414212169773c20000cc6a5171e6688eecdb4dfafe03", + "build.json": "7bed995652687ea945106e764423ed445b4573d79dc5973b77f05c3cfda0051b", + "candidate-harness-build.log": "a7662dedaa76c0cca33f544b95ac15145336ad0b163ac4f35ddc46d76e6efc57", + "fixtures/candidate-disk-common-wal0.csv": "42d3457fcc0bc39364d257a12460ba0f9dd6c595af968fb77d74e614ddf3b191", + "fixtures/candidate-disk-nonlexical-wal0.csv": "c137fa9269747d3ac63955fe813255417e42902a05caf500d6a79dacf47d7b45", + "fixtures/candidate-disk-random-wal0.csv": "ea1b6933636fa2b75be9badf1945e19ae1729a3e482b9aeae05888cf574c1f30", + "fixtures/candidate-resident-common-wal0-disabled.csv": "e463b777473e081b5dffbe3d8a1f8c4e29f2ca74371c912aac2c142869ec7751", + "fixtures/candidate-resident-common-wal0.csv": "ef88440fde9a04e2335fd0ce2d8aef1bc6027c5cf4946e8e1736be134574b79d", + "fixtures/candidate-resident-common-wal1.csv": "bdcd05e82284046373476992d42c79974ee233d3becc8a8a10d7a1b895abaa37", + "fixtures/candidate-resident-nonlexical-wal0.csv": "bea48c12209fd4fffe0b15d79c29029a7bf89a1ffcd3c5bab79a1159c6e16573", + "fixtures/candidate-resident-random-wal0.csv": "b470ca4907ed6b9b35b1d1708b30992896da98e04099ec6319d90659c252c821", + "fixtures/candidate-resident-random-wal1.csv": "e5c9f55b93c11976812e5c6843916f3c862d3c501499d92428faff5e2f1231c1", + "fixtures/load-candidate-disk-common-wal0.log": "d385d761493143bc774e727590e9086357268c0c91e97f39cb44f8d9c49ebe2f", + "fixtures/load-candidate-disk-nonlexical-wal0.log": "69dd0483b9beeaa174c80828e2e701b46f7015d3b1a31facd947739c584b0c8d", + "fixtures/load-candidate-disk-random-wal0.log": "417e14ff55ecc7c88a4438829eba66288bf4252114b925db916eadca06031c89", + "fixtures/load-candidate-resident-common-wal0-disabled.log": "148272476960ffe65d1cadb9b0bb06c091ab01150c5c8747bc2e93c2714361cd", + "fixtures/load-candidate-resident-common-wal0.log": "fad0a52af9174b39e338a46b9764e8ad34ed1b79456bee038a6e0a269339edf0", + "fixtures/load-candidate-resident-common-wal1.log": "c5eaf969791b324c3a0f707c8a990a7116c7d35e3b47c3c865741d20e6b722b4", + "fixtures/load-candidate-resident-nonlexical-wal0.log": "caaaece8aeaa43a7c581acc681ef1bd5be09b98514a63d77f24a9820e7648c00", + "fixtures/load-candidate-resident-random-wal0.log": "1a5daef79adeacea4aaf65f13cea8b9773b3ed9884c8628b52219315ca7ba851", + "fixtures/load-candidate-resident-random-wal1.log": "c8918b811c9c8f4ce273a2633dc6e1a4a27117db59da0764624c002d681bab1f", + "fixtures/load-main-disk-common-wal0.log": "45edc445076b26576286e5f7c84fd6b089ddc1725580af7bc219b5ebebd58e33", + "fixtures/load-main-disk-nonlexical-wal0.log": "f6e6eba78052b7a7f79786efbae89e4d8a11f7c06992ae8f5bd4a7169736e0aa", + "fixtures/load-main-disk-random-wal0.log": "7680dad51adeed6719d18eac55feb2d6f43036c339f0872e037823058493e4ba", + "fixtures/load-main-resident-common-wal0.log": "18f3ad13ea489bad9da0c0ebfcc18b364a9225be43b0873da927de767debe8a2", + "fixtures/load-main-resident-common-wal1.log": "0048bd392310c3ede7f901b36d6e846884a51a9cbcaeb16313c9147852264257", + "fixtures/load-main-resident-nonlexical-wal0.log": "fd7ea90a8d8d4b6bd0f3e4840f7d4f9129f3ffaba82a01aa2d3813a0639c85aa", + "fixtures/load-main-resident-random-wal0.log": "b10a82fd89d784f75fba697224c2e0900c30582f56e56f5ddf2b4b95f1080195", + "fixtures/load-main-resident-random-wal1.log": "5388431799ac6253569c93c08505e2c6080e1b9a401f12a4677cc20b59f49869", + "fixtures/main-disk-common-wal0.csv": "3b7a9cc97282d4022bfd44a2a5f37f4660b390c3dcb53d0c1d83eb17d8cf3c26", + "fixtures/main-disk-nonlexical-wal0.csv": "88d7963cbaa422b60b2c91a696a9558938c2136ebbc3488c7760303bd8af00ff", + "fixtures/main-disk-random-wal0.csv": "6a3d454745af7506a292f6f33f7194b0e9bb15d43c44eb1a9b498d124b5b3512", + "fixtures/main-resident-common-wal0.csv": "b4a4bb29fd4b455b39da41626a7f1b0a3a08a2bd27f28c207e5d46f2250a3f39", + "fixtures/main-resident-common-wal1.csv": "280b293ced88f8063da3ed10a2c1b9fa6157e798e10b63f7fd7ec43167d4a343", + "fixtures/main-resident-nonlexical-wal0.csv": "bc84587e45b7f0ba9f2a71d8fddb3ada62b43e65305ab96b12641996f3b61d60", + "fixtures/main-resident-random-wal0.csv": "a1dfd1dcbd8603208137f58cb741c6d357d409d3e1d18b16a4fa8ffdff50265d", + "fixtures/main-resident-random-wal1.csv": "bc774e34d7465ab3edb359a032c58c455a9ce9b19fe894850583b27fe486e82c", + "fixtures/space-candidate-disk-common-wal0.log": "a720f6b26d8415ea53e9e63a0ba91c49dd90669a235204c9d7235f9ba7948952", + "fixtures/space-candidate-disk-nonlexical-wal0.log": "2d699969afb74cba2a05b9c57a7b93bee1dab3d7278d8389df20041683d78ecd", + "fixtures/space-candidate-disk-random-wal0.log": "69a4a53652f038cf9d3d1ccd7481299a62cf371b64b1787e2ab2c6b53ae69d8a", + "fixtures/space-candidate-resident-common-wal0-disabled.log": "5fa0d7c08f1cdc2f901bb1466b51c09a5937c0693e13f7b32e57b832e0114578", + "fixtures/space-candidate-resident-common-wal0.log": "f8d316fb316dd1232d01db8fd42d5d243d41b0ddd92bb690ceb8276a7bb34581", + "fixtures/space-candidate-resident-common-wal1.log": "396cc5934ab676fe64361c1b17a4c80ba086f37f9b6a7561d628062b0cac9ea8", + "fixtures/space-candidate-resident-nonlexical-wal0.log": "212fb0ce90510a59cc014c8a44bd724411084131bd720f6c7feb163beccd45cb", + "fixtures/space-candidate-resident-random-wal0.log": "b1c96815f733bc3815444f4e2d46bddcecf3de02d94943a31804fb46a3e09c77", + "fixtures/space-candidate-resident-random-wal1.log": "01f39efed5e205fa7a3fee92f8656a5a92e76414c49a21c4be63675231b17407", + "fixtures/space-main-disk-common-wal0.log": "0e528d189b6429e41bbbd7727611a57cdea215ddd26378e94915b08660d4d0e5", + "fixtures/space-main-disk-nonlexical-wal0.log": "221a20eeb38b98049bdbf4f75052ce6fc1b49eb52df731b8ec9eff5e7b0cc378", + "fixtures/space-main-disk-random-wal0.log": "9be1f008bacf81ba12f0df9f98e96827810285805d3de698af71d4e28b409776", + "fixtures/space-main-resident-common-wal0.log": "5a00eb062d7e6700f3697a3036822c3b3fc58d0c1d7d8d3e4bc0e2f4812b7655", + "fixtures/space-main-resident-common-wal1.log": "05e7995a1cf7767804894edd7ced6c6126e5294d2531ac88f99cbf1e7c78313e", + "fixtures/space-main-resident-nonlexical-wal0.log": "2354e63875c291b5462e42b979b9cb808575042e89b623379256ad5f8ddd155c", + "fixtures/space-main-resident-random-wal0.log": "acdaa32faf88bd61d63a036b854522d23c4c11f1ddef4072323908ec6e940c2d", + "fixtures/space-main-resident-random-wal1.log": "5483c4eff622bffe1d0de5e3a355aff34e42c853f91d3e1d4a0fbe93de0343fa", + "fixtures.json": "baa2d5c6fd149777ca2e94abdd1b49fb72ea635163f879d52b562fc18f87f527", + "followup.py": "d7729a74af101dc8ce0c4d1f5c301c9326094568c7f12ab9cfaa21e617c292bc", + "jobs.json": "e0878b086f08583ba25eb2eebad557dfc26fa5a88c4a170353021d3e4ec0b57e", + "main-build.log": "7e431b7de2d5354359b49836de5393bddc140f2df5b063e7eb56753c5b6352de", + "main-harness-build.log": "65398f59cb2389b0de1eae311671b087fdc688400ad09c6f82bced966250a7aa", + "reads/disk-common-wal0-00-main.csv": "17a3f00975f76f4d1aebca4b58db2602e0c0cfa289222788d6e81d6564e7aa4e", + "reads/disk-common-wal0-00-main.log": "c1b12d0d4c50ba15421c077cc20656fe60f7b52766b343cd0e0abdad434c9243", + "reads/disk-common-wal0-01-candidate.csv": "a744cab385ad506add6f549a1e26a23e0e5032b2a703824034bb2781cf394007", + "reads/disk-common-wal0-01-candidate.log": "f5ce25533b334a493b3f15ecdc36a6d2ede200034a5555f3423b331f52be75d7", + "reads/disk-common-wal0-02-candidate.csv": "4482cb17d862f723f04205d66168e791dc8bbf8565526aef077fa04f07d602a7", + "reads/disk-common-wal0-02-candidate.log": "b5c7f0a0d45d819a9c6c638747dc3f6135709945489ce0cd714a984e2c721d3b", + "reads/disk-common-wal0-03-main.csv": "5805277a977d10d189387b5a9acaa21c5597611eca22649e1e6ec0123000ea95", + "reads/disk-common-wal0-03-main.log": "7588ea5f45c70ede335f1681e1f2657d5d5892cd3174f4c708d41664b070edd3", + "reads/disk-nonlexical-wal0-00-main.csv": "ab9feb2a4109866d250d134e65ee64a783cd85bf8eb66638b409e3b390b48b62", + "reads/disk-nonlexical-wal0-00-main.log": "553bfec55b20e53a88ff8c86eb20cf80e57154346248bc68108cb790a9dc4e5f", + "reads/disk-nonlexical-wal0-01-candidate.csv": "00d81b27d38df58fe9a45fa2052bcf7ac1d8644d6f4dabd8d2e82643c019d0b2", + "reads/disk-nonlexical-wal0-01-candidate.log": "8cde9d18aca4df590cad44e8cba37fff1b541e19f703ba68e0acf9e5a4aa1a81", + "reads/disk-nonlexical-wal0-02-candidate.csv": "134e76299279de845d9eae74d0b53debcd24b306623d883ae527cfe84da59b90", + "reads/disk-nonlexical-wal0-02-candidate.log": "e89cf512bd93ce7a6dc3243bca36f7be44b96fc5960ec4a86a6b4873226f3cd1", + "reads/disk-nonlexical-wal0-03-main.csv": "7c92e0d1489f470311efc309ebd03999a1b0610d775f535b173971079280af88", + "reads/disk-nonlexical-wal0-03-main.log": "0f7795cf5f9a51493ce3f215ebaf6f605e69f107bb67e540ef06d0c1897ce8ce", + "reads/disk-random-wal0-00-main.csv": "fae1dec50849d38af6cdb78498f2c96b4cbddb0f071ec6a492faf6070c7c481c", + "reads/disk-random-wal0-00-main.log": "3563c04b339fc8970aedf56ec5796377bfaad08c4ad30f6b58e130076e0794d9", + "reads/disk-random-wal0-01-candidate.csv": "66aeb7cd450a5e75a1cb70c0d0dd0294d303b8cd8fd0ff9de0d8a122dc457864", + "reads/disk-random-wal0-01-candidate.log": "8df230ddd756287031f4a3b5982a65e916c9eddbaaaa26715abddd9d5729fbc1", + "reads/disk-random-wal0-02-candidate.csv": "6ebb822d7c159b599a24244b2fef2fd9561e140e9ab00e16b1a1a52a7b7e5d1f", + "reads/disk-random-wal0-02-candidate.log": "38389ee1d34ca638c9c00c165ba0f3e7e7c1869569c6f98157706d8b6a39de2d", + "reads/disk-random-wal0-03-main.csv": "b6d47f74d7ccf21681635f230c0133cd0e825765a1cd09da149821f6564ad58e", + "reads/disk-random-wal0-03-main.log": "43e84814080518023ba4c408995d59a00cb3f1a1b5603f2c977b80050754ccb7", + "reads/manifest.json": "accd7172d3263c651c6bcc3ea2c6575337b113dd42d5ac1b94415b952f45b128", + "reads/resident-common-disabled-wal0-00-main.csv": "dd6f7684418e133deee20de99272d25ab921a5add4e5025d37850523afa4429d", + "reads/resident-common-disabled-wal0-00-main.log": "851389cf70d682c7a42414a38927683432cd87f011f212a554f7de9d603b915e", + "reads/resident-common-disabled-wal0-01-candidate.csv": "d54653b39b16bfa095d636e1c660a948fee37dff12b320a4bd001f5dc80cbd4d", + "reads/resident-common-disabled-wal0-01-candidate.log": "bd92d15ffe743cd30f0d01f8ea7dcfa730eb44a50e08b5bf81b64c37ea2f2999", + "reads/resident-common-disabled-wal0-02-candidate.csv": "343befd21ff92bfc2fcd10a711168add85deda244b588cb17e0646275b9af3e5", + "reads/resident-common-disabled-wal0-02-candidate.log": "61359382525692e7619446c613ea09c9ef96975d38f1f6492c31c5c5d33db54a", + "reads/resident-common-disabled-wal0-03-main.csv": "d25c48a57605d94dc5a18a50c37ddcbf1af79c8357ca51b83675ad4dfbe05e57", + "reads/resident-common-disabled-wal0-03-main.log": "6a9e91d2e6fc5f44f2852d18ecc01a3e693f7e2ea052af4d4d8942c77b5ff893", + "reads/resident-common-wal0-00-main.csv": "0f613440cb864b9d1dd4ae227f649d6e0842d5811cd56f0d016fbd1617317071", + "reads/resident-common-wal0-00-main.log": "4483cce20da1d90cd5cfb362528a6198c32ea3a2e2a4192effafe7e08dea1d11", + "reads/resident-common-wal0-01-candidate.csv": "9165a462d1bac43a6d4da35c51fa052b75c026b9ab0552b12b7838060d6ed866", + "reads/resident-common-wal0-01-candidate.log": "29c7c306a92939076027be113bdd9a1920bade59d547b1913c5047fad31091d9", + "reads/resident-common-wal0-02-candidate.csv": "f88ec6cf056491450410b555abbd666eb8b79c1ca4126a7487bcccb7fcc2e28d", + "reads/resident-common-wal0-02-candidate.log": "2f140f48521fd5ba9170bcbcd07c17e225826e570fea11346ddb4aa5cab1c671", + "reads/resident-common-wal0-03-main.csv": "bf6400b52762b75f8606a5f418f24997a18ca955fe0469511836d14bcee6115f", + "reads/resident-common-wal0-03-main.log": "0f7e80ffeb18e4ba2068eb8cdc5572f878f8bf0ffb86154d2bff15959be9f232", + "reads/resident-nonlexical-wal0-00-main.csv": "a3a300f9b0418ab22148ae11aa7001d4dffae8b2aacc58bf1e94781ceb5bf009", + "reads/resident-nonlexical-wal0-00-main.log": "78f01ee84cab01a4275df88f6ef85880c8b37fc38b0672fecef61583abe2f12a", + "reads/resident-nonlexical-wal0-01-candidate.csv": "b7e43f5881506bbd1f6ae390da93924cb50e34d3f616ce974c858a1e4e6ce6f1", + "reads/resident-nonlexical-wal0-01-candidate.log": "e14662c9c949d7a6cc1b3be1a17ef8a41d3e83660a5d5c4b4de5705b7bd6b5d7", + "reads/resident-nonlexical-wal0-02-candidate.csv": "d4f76f9f1a903cc461fac2c0775a46197d0ece935d7afc2aa49dbc96c87ab1ff", + "reads/resident-nonlexical-wal0-02-candidate.log": "5e038ea7d77646db4310500a5ac8dcc2921f414a61fac2189206c18a3d7d0f07", + "reads/resident-nonlexical-wal0-03-main.csv": "83e7b38fbbf08c92aab7c64d68fddcb283c37011fc477bb420bceb94e9744033", + "reads/resident-nonlexical-wal0-03-main.log": "5bb78777b2dc4e365fa4fbea39854a37b385ece8eb769e1ad4f11fe8213b64b9", + "reads/resident-random-wal0-00-main.csv": "21bcabd89dea859a9faf2cd6d0eec2887912f42cb0b474dfa8ad42c7bf5bacfd", + "reads/resident-random-wal0-00-main.log": "9f03422ef7352eb0cb00e5b310ef14cb2a71b2843197271aff28dc037883b6d3", + "reads/resident-random-wal0-01-candidate.csv": "374333a2bf1babace068d70dc9b8216bf29dae58d3952a95efcaf4cadad2d1d7", + "reads/resident-random-wal0-01-candidate.log": "bd6b95a797eae86a20efd5ba42212e44822e6f3ef8403193e4c9f161f6e39137", + "reads/resident-random-wal0-02-candidate.csv": "d4af4bb252248f300a2ebe838a20599523b69747fa42b3a01cbbdb72d4afd621", + "reads/resident-random-wal0-02-candidate.log": "1a52e2cbb98c55d05d90a96091b98e63885cd0a6683020ec1abb6607794ae8f3", + "reads/resident-random-wal0-03-main.csv": "5910f056e16b0f75ed5675afca09a6947a853923a8c4d34a62c56ac1e6639fa2", + "reads/resident-random-wal0-03-main.log": "233e25ddf874e7823f0fb33e7ab18e72485edb84761bdf19559b86c1b5e6415e", + "reads-progress.log": "e03cf164a16951b0284cc135ed6b3eb06544c9c7a013f2e6bffe7941be9ffac3", + "repeat/manifest.json": "3037184c44bb226ea649f6c96e0bb744b64d7b98832931b0f782462d19e5ca62", + "repeat/resident-common-disabled-wal0-00-main.csv": "9fe54f133e773c9f9301e9646d4a5707690b3f9ebbdad03601ce75073347cb8d", + "repeat/resident-common-disabled-wal0-00-main.log": "002520c83d570ce327d30066a88c62f665c051ee3c97954f8cf48253fcfa6eea", + "repeat/resident-common-disabled-wal0-01-candidate.csv": "3fdfb925c730123a027ca7ed7d8a9c9e28bfc5119b51ae3b5d3efa69b1e2e176", + "repeat/resident-common-disabled-wal0-01-candidate.log": "c0385c0e382d4e2a877dc4dc6173be1a026b2272596fdbc902d87cd15daa9c1d", + "repeat/resident-common-disabled-wal0-02-candidate.csv": "cee0086f84e23c1a2158e7dff736792be3cce6870706433bd9a6ae6830ad66ff", + "repeat/resident-common-disabled-wal0-02-candidate.log": "ebe74feaf307f9f375c86c85fe3213e8ee447d55439152e7af0e838f6409547e", + "repeat/resident-common-disabled-wal0-03-main.csv": "0162193328ccea413381a7e0c1f6621a7753e679cb9e4171600a8b736961c623", + "repeat/resident-common-disabled-wal0-03-main.log": "67ee844e56716da0f3d3000edc0092023ae1e2941b47c7ea032fbb078ef9d3e6", + "repeat/resident-common-disabled-wal0-04-main.csv": "9b30bbe912a7b68b8e8cbc25a3cbaeec6f00fdccba19043ea6c150db677363f6", + "repeat/resident-common-disabled-wal0-04-main.log": "8dc96d326e54f7882cbb11b3fd9947e76ea38a009d0ab76360d62df6a7511e2c", + "repeat/resident-common-disabled-wal0-05-candidate.csv": "5ad76bdf608baabea95ff81d4cb96ff67a4d748e8866b6f1b3bb3e2b6ec39db1", + "repeat/resident-common-disabled-wal0-05-candidate.log": "94fcf2ee4788c60a0c3f6b43a3dc54a8a94e2aaea070c4226cc8da9f9e3e8fa6", + "repeat/resident-common-wal0-00-main.csv": "a323a479c67e4b37c49c529f69f84b1c225ad647f75cf2e2cd02c86bd6f09c7b", + "repeat/resident-common-wal0-00-main.log": "9d74b741e4d3d5940f44b653368abd6d6dd1184efa9eb244510219b225cee89e", + "repeat/resident-common-wal0-01-candidate.csv": "cf8483e031da6019e49cdc7d602bc4b1798325c61dd8b75fbb8009cd9cf109dd", + "repeat/resident-common-wal0-01-candidate.log": "74c720df6a01c75d822581d83e642a56d379a842fa2b31ed521e3c6c0a6ee639", + "repeat/resident-common-wal0-02-candidate.csv": "af9695604a897972617619a8ee44a2f44fb2f6fe670fd8bd55cc647e8e2ab39a", + "repeat/resident-common-wal0-02-candidate.log": "812ad5cccd0d1d48ee63f5e0086ea7a704c7cde4696347ee466853db52307260", + "repeat/resident-common-wal0-03-main.csv": "2526a3ecc08aa410ca42eac5e6b39eaae5cbd4679ea13e882fac1159d2ca64c7", + "repeat/resident-common-wal0-03-main.log": "27d7f026975bcfb13b1a50eeea44368690a3ed2d852ff7acb3662cd6913c8b2c", + "repeat/resident-common-wal0-04-main.csv": "8bafb4930714708a243a3809ca309bd28a500714c68d6227ac03380d3abe162e", + "repeat/resident-common-wal0-04-main.log": "5315dce232e14a786f7f77ba29c5fdffb58b8cf12c8273d7755657db9b42bca0", + "repeat/resident-common-wal0-05-candidate.csv": "001c62c8a025301cf1019d33b3a27d29d1bd5333ca20f86a646e25d69ca3dd8e", + "repeat/resident-common-wal0-05-candidate.log": "721765ff935fff4d2d709d033e08b97ea9fcd49aea238dfab96d291603378454", + "repeat/resident-nonlexical-wal0-00-main.csv": "db116e20d99bdd1f4b81828827e92f57c6fb870b8fdda2299565d7d9dbcdd892", + "repeat/resident-nonlexical-wal0-00-main.log": "005f144b9cf2f543a9813058e83cb62d01c4c115572e98b150dcf1a6606009e7", + "repeat/resident-nonlexical-wal0-01-candidate.csv": "7cb8ecb9dd462b9ced6887126f8c1e37bfddc9101c425e182f4aacc123fe49d7", + "repeat/resident-nonlexical-wal0-01-candidate.log": "01c5a8a499abec0ae0653287ef35b0dc9d8c91fd0ab9356eb19e91149ca2952b", + "repeat/resident-nonlexical-wal0-02-candidate.csv": "5ba11ef2ae3185736bfaefec9592fef78f886078aee4d3bfffeafd4c695d4379", + "repeat/resident-nonlexical-wal0-02-candidate.log": "c17afae1883991a075247ee5b8e67b1c5c4f4372a6faee968850ae59b7050e0d", + "repeat/resident-nonlexical-wal0-03-main.csv": "227b6564a581db01be822c9b80198b203affcada4b8e7396b638891cd89bc3a6", + "repeat/resident-nonlexical-wal0-03-main.log": "e64af14daa924295b8fbecdf4907984a0962c743183054e11434ee10a15104b2", + "repeat/resident-nonlexical-wal0-04-main.csv": "ba919ea95ac9a2c668a925c4cf4a055085eee2b2c45f80008523448bf248a116", + "repeat/resident-nonlexical-wal0-04-main.log": "60392997587535e056a61800fe9acbc575802c5a1d6fa839300b3463c1aea704", + "repeat/resident-nonlexical-wal0-05-candidate.csv": "dfb51a9bebd037afe9e57b60fecca4e3ac21b33c8a81f3c8d4e37fcee7c7187a", + "repeat/resident-nonlexical-wal0-05-candidate.log": "f415a8ec1c9ee38a69caf48c5bb69666839a81d6221c2d39a150de6fdfa9f588", + "repeat/resident-random-wal1-00-main.csv": "7f5767c3438605e808598c64e6d807b3706faff207b433be4a3b00305919f27b", + "repeat/resident-random-wal1-00-main.log": "30178660f06c3073c97a08ad06aa25e34c8efb6bf29f52d51de46bb6182b2aaa", + "repeat/resident-random-wal1-01-candidate.csv": "7a28f13ef145ce27905a56b79b7425349b730ab022ac15fe10313e7b0907ac75", + "repeat/resident-random-wal1-01-candidate.log": "964441dc228b89dc2fbd9e6adb8b797b4b9fcdd4cf899b6cebbb04f983822be9", + "repeat/resident-random-wal1-02-candidate.csv": "e5342aaac8d4c6e0286d63d3c5bf9e87cc96adf83bb06a9e480ad81ab3854bca", + "repeat/resident-random-wal1-02-candidate.log": "d36bebbbe057870c8693490ca21b9a28db6f0d53a26fcf68947a100ef927beb7", + "repeat/resident-random-wal1-03-main.csv": "176fa7dfc1b46711c184f3176e0abfc6383f5fecb5aaea1c6233e9dae2af78f8", + "repeat/resident-random-wal1-03-main.log": "d52af34d3ad1f6deeccca8bbbb06b29436b1a57bbb052bb46d7079b07f71bf70", + "repeat/resident-random-wal1-04-main.csv": "e759bd33d02cde7db44e8144e4e117a45901fb4248e29a09cfaa9e5fcda89975", + "repeat/resident-random-wal1-04-main.log": "0ce1b25f46107ef015890b7aca921feff987151243a9d13e795a93679a63e25c", + "repeat/resident-random-wal1-05-candidate.csv": "33f603888a3ec5159946905d57f2d88a021929d84ef93d73f0759f61ef091055", + "repeat/resident-random-wal1-05-candidate.log": "984e84da6d034fbb14c95c5b8b16489aeb768c2de08475af8bacc84c55d75d9e", + "repeat-progress.log": "9991a04d5490aa4aa6b74e41727f921ead595b7d5f551a755fdfedab7bea38be", + "report.md": "32cdce534759aece1086816c3085d43b30b840c76b3196c486ac7b519508b9b3", + "report.py": "39b1f7f0f2b9054cb9537c6c393fa54adc9a9a3ff24609f3f109d894d5b896ff", + "run_benchmarks.py": "eef41a21f8c4275c300fa24ed69b457b233c8ee0a470926d84c3f5ea755ebd25", + "summary.csv": "3d8a8a8a7851e196930fa7b86e5a092e03d95e74569bff385ac5413e8355a4e6", + "summary.json": "b1f561e5993635a9ddc927456eb0ff934cb4c53cf988979a6f31a94602677f98", + "tests/debug-automatic-log-recovery.log": "8dc9ad999563816f8e216bc466f0e27af5f128d687db59d144b9ccc6fd3887f1", + "tests/debug-btree.log": "8d6f3caf1bd818039731202863e513bfa32dffa0b668513bf8fc5b17721b9a9b", + "tests/debug-build.json": "7e5f3b9408277c819ed3e97c25e71d2a42b8984047623931bea12e63070bde8d", + "tests/debug-build.log": "ec851d07175da201343734413275610d482f4a8df028a2dd6973c0366772800a", + "tests/debug-functional-log.log": "eedf17c606920f787b8601ebc222198fe2eaa797d80870fd672096fa65c81222", + "tests/debug-merge.log": "90bda4d9f7155fdb6f9a2e394aa3acc5746f0d71217805fcf2210fa3d4f27a3b", + "tests/debug-results.json": "83de47b57000cee880355c2e1bd093cccbab888380d32c4b14200796dcce2e1d", + "tests/debug-source-check.json": "1ae748d5796cc995906ddf0fba5e5626f9c1c6ac79cec8fb465106e92254a77b", + "tests/debug-source-manifest.json": "ed29861d7925ae46d41dba199c9e41b9fd3adb97fafe99ddbbec5156936e1b9b", + "tests/debug-splinter.log": "4fb0254a17a2aa94f48c0a0a74fff31af30102d1db784cf5fc968d274bcd1731", + "tests/debug-splinterdb_quick.log": "f0f92daa0cb7550e9767a81139bd5abfc4428225588502b5245fae1af36de79b", + "tests/debug-superblock.log": "e2c7a8d4c83a3efbcdba82d51287d69fbb76a04a828b3d2b4d23fb08c2b8f6c7", + "tests/release-automatic-log-recovery.log": "4e1a3eea4cc3abba55ea549d48473a0815980bce645ad80d50e2adf7087ef83b", + "tests/release-btree.log": "1159d05f22b0856c2e5eb66afcb51bf70db527e8597e2f4aef0d4dce5894cead", + "tests/release-build.json": "451cb42faa7defc32d2e5093712ddccbf06d5bbaf2ffeda4d001b39d7e0ef24d", + "tests/release-build.log": "5905efb5904de017adee723fba2e69132469012570fe056af37573bc6b935562", + "tests/release-functional-log.log": "0a43cfe8076562afbe26fbe237e9e601d63b638bde798ba9abfced51d505cee1", + "tests/release-merge.log": "8321f9bc1d800a010cbe8c77234da380a5a6f3cfa6a499dfc557b29632a3cbe2", + "tests/release-results.json": "2bc9b64f0c7b3eaf1ba2d09c5b1aec75b1f369f937704de68066ab62849ef82c", + "tests/release-source-check.json": "1ae748d5796cc995906ddf0fba5e5626f9c1c6ac79cec8fb465106e92254a77b", + "tests/release-source-manifest.json": "ed29861d7925ae46d41dba199c9e41b9fd3adb97fafe99ddbbec5156936e1b9b", + "tests/release-splinter.log": "70df441665ddd1975c20649be48edba0bdd058ba0e2aa644d782cbfbda67ef99", + "tests/release-splinterdb_quick.log": "a334eaa7cf546f086b7796751627d2381d14a3824bf69ac5f903d5b7813a5b20", + "tests/release-superblock.log": "335762194e6cc9560c21f1feb24f5694bcc88031bcc1c072dca9413d08b68753", + "tests/validate.py": "22ccf4a9912852183d3a0d76ae883e1755ce4549057ec9dcb0944934a67c1ac6", + "writes/manifest.json": "83f6cb3fadc58f07f8fff0b5d6a93d195868ce6e24ed5b4cd37300b502a07f5e", + "writes/resident-common-wal0-00-main.csv": "8882b022747dca641e7228f74ca2e817654cb2980e6c113ade723576d51c2d70", + "writes/resident-common-wal0-00-main.log": "f09b3e1e9d2d6554edfb349576937113473fcb256f7692d2cd562c4bfb8d9245", + "writes/resident-common-wal0-01-candidate.csv": "dd3fe9c1d144a7da55c5b8ad074b96ed0fe3325c8064c5bce633f643a34387c5", + "writes/resident-common-wal0-01-candidate.log": "f0931c63cf82b382ed5227493a90fdf5746bc7de9f5d65806f3313197518a4b4", + "writes/resident-common-wal0-02-candidate.csv": "988dc3c82721c0e33085e4e2a9bf1820b9e3612148563c976bcdb0e2ec4a28cc", + "writes/resident-common-wal0-02-candidate.log": "08c5497eb94536a19388c030c2795bc2232089e5ac485b84511072d496dcf32d", + "writes/resident-common-wal0-03-main.csv": "40267adf5e8fe22864da435620d54cde085ccaf2eb9e5423cf4ed1b44371f682", + "writes/resident-common-wal0-03-main.log": "6a677217e04dffa48e6be53b816d8886faa1f9df97506dd6c42396e7be62dea7", + "writes/resident-common-wal1-00-main.csv": "cca6126514214c030b99b26a5d63cc1223e4fcfc4473a3d389d9c4c10e5cfa03", + "writes/resident-common-wal1-00-main.log": "fb404721b1140afea7331235cc182917f7baf24322c915ab69822b2fe1a01060", + "writes/resident-common-wal1-01-candidate.csv": "9237560d45ef9ea4d7f5a8a4d86e26581f6a7092c35f3959fee1ba2a626eee0e", + "writes/resident-common-wal1-01-candidate.log": "8de6d260b9b819b3fd0f4e794ce54aa43b1a9fbead933946aa3bd1af7dbea1e3", + "writes/resident-common-wal1-02-candidate.csv": "0a4236ab7bfeb47e356b6baaea2ffe7f9b838d0f325b0adf8685ee69dda91283", + "writes/resident-common-wal1-02-candidate.log": "2fe14f556187e18a6ea151f8f9ae90d0cca46d3e30ff66eb3728e7c206aa7c8d", + "writes/resident-common-wal1-03-main.csv": "318e61a360a6056fd30981b3e7ff3264cea52fc156e0a9cf8ff47bc90f7db40f", + "writes/resident-common-wal1-03-main.log": "6f14487ead729ae50ecae11b91c9607ed3e6dc89aa4fef673f5313e7851e6383", + "writes/resident-random-wal0-00-main.csv": "4294f432a65895f8ebca93bdbc81c1561a66c83d53e9a17d155b90b86039bed4", + "writes/resident-random-wal0-00-main.log": "4f5ac2c4699a2eed46c256e1f9d8a0268687c8c614df63121843bfd992a464e4", + "writes/resident-random-wal0-01-candidate.csv": "515c3887d2883b3cdd7d6ee2be7aa4ff7bd173652cd20ce28c388bc6d807882e", + "writes/resident-random-wal0-01-candidate.log": "13a9123e26fa805e02456364abd56ff9e7c7407da3bdf040370c4bf52b581598", + "writes/resident-random-wal0-02-candidate.csv": "e5a399256fa3e587fbd6905dbe6ba65871bc7e990617c6ae7dc7128ba9f71a23", + "writes/resident-random-wal0-02-candidate.log": "55e0ebe386d8537912bbd1d93d9f20c9841ad5ac4da02e528bde37cb26afc4dd", + "writes/resident-random-wal0-03-main.csv": "dfa1d0f854e26228da1233253002d50e6452b8bc8624d0b521436858934dd42b", + "writes/resident-random-wal0-03-main.log": "6896ee0363d31e82f91b99d9715fbe245001f77a0292367f880272c2cb62aa34", + "writes/resident-random-wal1-00-main.csv": "a55729078990c8b1ace115dded4a8053bdb6e84300e389cf381c855b526634b3", + "writes/resident-random-wal1-00-main.log": "6c5933a186a389ab971f65d8723ca660d12f52f66064d2fe6c4ad2f919a819bc", + "writes/resident-random-wal1-01-candidate.csv": "d98158ad3ef707ccea8927210937f34918eb670e3264508b453a92e6f7b5330c", + "writes/resident-random-wal1-01-candidate.log": "c7134994f4e27d5e7ba4437f4f564dfb3218c8e5bedae4840903708d93fd5102", + "writes/resident-random-wal1-02-candidate.csv": "8f03b8cb2c52641eda8fc3e0a15e1221861f47b2c0d089ec9f5454cd1ec7a48a", + "writes/resident-random-wal1-02-candidate.log": "61a7b1c61bda86ca7dbe49f63042fe0353219c43b45253bac38450b63db7b674", + "writes/resident-random-wal1-03-main.csv": "05aaf4807eb3e8005922ab4087d790bb381e04ecd0f3317e7fd71c75af22eaec", + "writes/resident-random-wal1-03-main.log": "03752930bd4d6efbc748790a766ae8042e26886c24795a02b45fe7208e078751", + "writes-progress.log": "5958deb97d0a3ff05852433d512189100be4de7b9932e4a05b47025a0bfd7d07" +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/summary.csv b/benchmarks/results-20261014/prefix-main-6105c49f/summary.csv new file mode 100644 index 000000000..555e78772 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/summary.csv @@ -0,0 +1,33 @@ +mode,case,wal,phase,main_samples,candidate_samples,main_ops_s,candidate_ops_s,change_ops_s_pct,main_ops_s_min,main_ops_s_max,candidate_ops_s_min,candidate_ops_s_max,main_p99_us,candidate_p99_us,change_p99_us_pct,main_p99_us_min,main_p99_us_max,candidate_p99_us_min,candidate_p99_us_max,main_p999_us,candidate_p999_us,change_p999_us_pct,main_p999_us_min,main_p999_us_max,candidate_p999_us_min,candidate_p999_us_max,main_ops_per_cpu_s,candidate_ops_per_cpu_s,change_ops_per_cpu_s_pct,main_ops_per_cpu_s_min,main_ops_per_cpu_s_max,candidate_ops_per_cpu_s_min,candidate_ops_per_cpu_s_max,main_rd_B_op,candidate_rd_B_op,change_rd_B_op_pct,main_rd_B_op_min,main_rd_B_op_max,candidate_rd_B_op_min,candidate_rd_B_op_max,main_wr_B_op,candidate_wr_B_op,change_wr_B_op_pct,main_wr_B_op_min,main_wr_B_op_max,candidate_wr_B_op_min,candidate_wr_B_op_max,main_ops_with_drain_s,candidate_ops_with_drain_s,change_ops_with_drain_s_pct,main_ops_with_drain_s_min,main_ops_with_drain_s_max,candidate_ops_with_drain_s_min,candidate_ops_with_drain_s_max,throughput_ranges_overlap +reads,resident-common,0,point:uniform@8,2,2,4500543.05,4740951.300000001,5.341760923717875,4074604.5,4926481.6,4492319.2,4989583.4,2.592,2.24,-13.58024691358024,2.592,2.592,2.144,2.336,10.975999999999999,6.016,-45.18950437317783,6.72,15.232,5.184,6.848,562793.25,592746.7,5.322283094191338,509634.3,615952.2,561629.2,623864.2,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,4500677.214285715,4741101.285714285,5.341953221293783,4074736.4285714286,4926618.0,4492463.285714285,4989739.285714285,True +reads,resident-common,0,range:uniform:1@8,2,2,1164460.1,1175871.2999999998,0.9799562904731385,1072409.9,1256510.3,1165847.2,1185895.4,9.728000000000002,9.6,-1.3157894736842257,8.832,10.624,9.344,9.856,27.584,17.344,-37.12296983758701,14.72,40.448,15.488,19.2,145596.95,147014.65,0.9737154521437308,134116.5,157077.4,145750.5,148278.8,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,1164494.9285714286,1175911.214285714,0.9803637125573861,1072442.7142857143,1256547.142857143,1165880.857142857,1185941.5714285714,True +reads,resident-common,0,range:uniform:10000@8,2,2,4675.5,3975.5,-14.971660784942786,3877.3,5473.7,3481.6,4469.4,4341.76,3850.2400000000002,-11.32075471698113,4161.536,4521.984,3178.496,4521.984,4521.984,4014.08,-11.231884057971019,4259.84,4784.128,3375.104,4653.056,584.5999999999999,497.0,-14.984604858022566,484.9,684.3,435.3,558.7,0.0,0.0,,0.0,0.0,0.0,0.0,0.13,0.0,-100.0,0.11,0.15,0.0,0.0,4628.311545196715,3939.554233313584,-14.881394762587385,3838.495262339132,5418.127828054298,3450.6583604700554,4428.450106157113,True +reads,resident-random,0,point:uniform@8,2,2,4009986.3,4091707.7,2.0379471121883874,3854472.2,4165500.4,4068384.3,4115031.1,2.6239999999999997,2.496,-4.8780487804877986,2.4,2.848,2.464,2.528,7.776,6.944000000000001,-10.69958847736624,5.184,10.368,5.312,8.576,501346.25,511567.0,2.038660905511902,481951.4,520741.1,508614.7,514519.3,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,4010136.7142857146,4091845.2857142854,2.037550768219254,3854641.4285714286,4165632.0,4068519.8571428573,4115170.714285714,True +reads,resident-random,0,range:uniform:1@8,2,2,1077959.5499999998,1074310.1,-0.33855166457773533,1063328.2,1092590.9,1057405.9,1091214.3,10.368,10.24,-1.2345679012345734,10.112,10.624,10.112,10.368,18.688,18.176,-2.73972602739726,18.176,19.2,18.176,18.176,134764.59999999998,134302.95,-0.34256028660343274,132937.9,136591.3,132187.7,136418.2,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,1077993.2857142857,1074347.1428571427,-0.3382342826678153,1063360.857142857,1092625.7142857143,1057445.5714285714,1091248.7142857143,True +reads,resident-random,0,range:uniform:10000@8,2,2,3295.35,3523.3,6.917322894381495,3106.0,3484.7,3293.9,3752.7,4767.744000000001,4243.456,-10.996563573883167,4096.0,5439.488,4096.0,4390.912,5046.272,4390.912,-12.98701298701298,4390.912,5701.632,4259.84,4521.984,412.0,440.45000000000005,6.905339805825261,388.3,435.7,411.8,469.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.18,0.16999999999999998,-5.555555555555558,0.17,0.19,0.16,0.18,3295.5,3523.4285714285716,6.916357803931783,3106.1428571428573,3484.8571428571427,3294.0,3752.8571428571427,True +reads,resident-random,0,range:uniform:10000@1,2,2,1243.55,1252.0,0.6795062522616746,1159.1,1328.0,1218.0,1286.0,1019.904,925.6959999999999,-9.236947791164663,811.008,1228.8,843.776,1007.616,1159.1680000000001,1011.712,-12.720848056537115,827.392,1490.944,892.928,1130.496,1243.55,1252.05,0.6835269993164639,1159.1,1328.0,1218.0,1286.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.47,0.47,0.0,0.44,0.5,0.46,0.48,1231.2801401074048,1239.9092980052287,0.7008281557332019,1144.9132213912799,1317.6470588235295,1204.7477744807122,1275.0708215297452,True +reads,resident-nonlexical,0,point:uniform@8,2,2,4196571.75,4098610.5,-2.3343160998021806,4028951.9,4364191.6,3943007.4,4254213.6,2.496,2.528,1.2820512820512775,2.4,2.592,2.464,2.592,7.264,8.096,11.45374449339207,5.952,8.576,6.848,9.344,524741.1000000001,512446.55,-2.342974468742798,503819.4,545662.8,493016.4,531876.7,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,4196708.071428572,4098742.3571428573,-2.334346650239283,4029080.4285714286,4364335.714285715,3943138.4285714286,4254346.285714285,True +reads,resident-nonlexical,0,range:uniform:1@8,2,2,1041683.8,985847.95,-5.360153436196291,1024771.4,1058596.2,985488.4,986207.5,10.624,11.136,4.819277108433728,10.368,10.88,11.136,11.136,19.712,21.248,7.792207792207795,19.2,20.224,20.736,21.76,130231.9,123270.4,-5.345464513686737,128121.0,132342.8,123240.7,123300.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,1041718.6428571428,985881.4285714286,-5.360105117497782,1024804.7142857143,1058632.5714285714,985522.7142857143,986240.1428571428,False +reads,resident-nonlexical,0,range:uniform:10000@8,2,2,3360.95,3197.8,-4.854282271381594,3201.0,3520.9,2868.6,3527.0,5242.88,5505.023999999999,4.999999999999982,5046.272,5439.488,5177.344,5832.704,5373.952,5701.632,6.097560975609739,5177.344,5570.56,5308.416,6094.848,420.04999999999995,399.9,-4.797047970479696,400.2,439.9,358.8,441.0,0.0,0.0,,0.0,0.0,0.0,0.0,0.175,0.185,5.714285714285716,0.17,0.18,0.17,0.2,3329.6773280498164,3157.6719697043854,-5.165826637206738,3171.2425700537788,3488.1120860458536,2831.500282007896,3483.843657400875,True +reads,disk-common,0,point:uniform@8,2,2,170248.15000000002,188040.75,10.4509799372269,163698.1,176798.2,181356.1,194725.4,93.184,77.824,-16.483516483516482,87.04,99.328,74.752,80.896,705.024,649.728,-7.843137254901967,115.712,1294.336,103.424,1196.032,138038.4,153160.65,10.955103797204258,132369.3,143707.5,149546.0,156775.3,3527.465,3207.825,-9.061464819636777,3527.4,3527.53,3207.41,3208.24,0.0,0.0,,0.0,0.0,0.0,0.0,170252.35714285716,188046.07142857142,10.451376171422822,163702.14285714287,176802.57142857142,181361.42857142858,194730.7142857143,False +reads,disk-common,0,range:uniform:1@8,2,2,70584.0,78249.4,10.859968264762543,68021.3,73146.7,76025.5,80473.3,286.72,279.552,-2.500000000000002,266.24,307.2,260.096,299.008,1095.68,1017.856,-7.102803738317764,372.736,1818.624,380.928,1654.784,8392.7,9350.95,11.417660585985434,8096.3,8689.1,9091.9,9610.0,14152.52,10932.815,-22.7500473413922,14141.46,14163.58,10930.2,10935.43,0.0,0.0,,0.0,0.0,0.0,0.0,70586.35714285714,78252.07142857142,10.860050859686554,68023.57142857143,73149.14285714286,76028.28571428571,80475.85714285714,False +reads,disk-common,0,range:uniform:10000@8,2,2,909.15,1093.6,20.288181268217564,900.0,918.3,1061.8,1125.4,24903.68,21495.807999999997,-13.684210526315798,23330.816,26476.544,19136.512,23855.104,41025.536,34734.08,-15.335463258785943,31195.136,50855.936,23855.104,45613.056,256.70000000000005,287.55,12.017919750681717,254.8,258.6,282.1,293.0,2541146.18,1801838.2349999999,-29.093483516166717,2538977.12,2543315.24,1793184.4,1810492.07,0.0,0.0,,0.0,0.0,0.0,0.0,901.1694943965135,1083.8224264048447,20.2684326471402,891.3412563667233,910.9977324263039,1051.9388621568073,1115.705990652882,False +reads,disk-random,0,point:uniform@8,2,2,134411.1,134207.90000000002,-0.15117799050821112,132155.7,136666.5,133577.2,134838.6,121.856,120.832,-0.8403361344537785,119.808,123.904,119.808,121.856,564.224,226.30400000000003,-59.89110707803993,169.984,958.464,169.984,282.624,141506.3,143293.45,1.2629473034063032,140382.2,142630.4,142704.7,143882.2,3529.025,3529.725,0.01983550697430836,3528.61,3529.44,3529.68,3529.77,0.0,0.0,,0.0,0.0,0.0,0.0,134414.42857142858,134211.5,-0.15097231270878586,132159.2857142857,136669.57142857142,133580.57142857142,134842.42857142858,True +reads,disk-random,0,range:uniform:1@8,2,2,54883.2,55567.4,1.2466474258060911,53370.4,56396.0,55082.8,56052.0,393.216,368.64,-6.25,364.544,421.888,364.544,372.736,1622.016,872.448,-46.21212121212122,1556.48,1687.552,548.864,1196.032,6562.25,6636.85,1.1368052116271121,6389.1,6735.4,6574.3,6699.4,14159.295,14140.795,-0.13065622264385457,14154.01,14164.58,14140.47,14141.12,0.0,0.0,,0.0,0.0,0.0,0.0,54884.857142857145,55569.357142857145,1.2471563845348976,53372.0,56397.71428571428,55084.71428571428,56054.0,True +reads,disk-random,0,range:uniform:10000@8,2,2,794.9000000000001,792.15,-0.3459554660963815,788.7,801.1,787.5,796.8,29622.272,28835.84,-2.6548672566371723,29097.984,30146.56,27525.12,30146.56,47185.92,40894.464,-13.33333333333333,44564.48,49807.36,36175.872,45613.056,247.3,246.95,-0.14152850788516913,245.5,249.1,246.7,247.2,2526206.925,2533304.865,0.2809722327081543,2520361.31,2532052.54,2532493.36,2534116.37,0.0,0.0,,0.0,0.0,0.0,0.0,786.3403053013228,781.3371659640949,-0.6362562498065993,779.5820389720418,793.0985716306039,775.9324419422941,786.7418899858957,True +reads,disk-nonlexical,0,point:uniform@8,2,2,145681.5,137161.05,-5.848683600869031,133323.3,158039.7,130352.7,143969.4,111.616,117.75999999999999,5.504587155963292,101.376,121.856,111.616,123.904,676.864,157.696,-76.70196671709532,223.232,1130.496,149.504,165.888,134923.65,124554.54999999999,-7.68516120042706,129978.7,139868.6,120347.4,128761.7,3528.52,3528.6800000000003,0.004534479045048556,3528.35,3528.69,3528.4,3528.96,0.0,0.0,,0.0,0.0,0.0,0.0,145685.42857142858,137164.5,-5.848854380965651,133327.0,158043.85714285713,130356.0,143973.0,True +reads,disk-nonlexical,0,range:uniform:1@8,2,2,60266.7,57849.5,-4.010838489580482,54996.1,65537.3,55657.5,60041.5,344.06399999999996,344.06399999999996,0.0,307.2,380.928,331.776,356.352,1605.632,499.712,-68.87755102040816,1490.944,1720.32,479.232,520.192,7183.049999999999,6899.45,-3.948183571045716,6568.9,7797.2,6639.4,7159.5,14149.82,14143.385,-0.04547761031589159,14141.35,14158.29,14140.26,14146.51,0.0,0.0,,0.0,0.0,0.0,0.0,60268.78571428571,57851.5,-4.010841907028384,54998.142857142855,65539.42857142857,55659.57142857143,60043.42857142857,True +reads,disk-nonlexical,0,range:uniform:10000@8,2,2,797.65,800.35,0.3384943270858143,766.3,829.0,780.0,820.7,31981.568,27000.832000000002,-15.573770491803273,30670.848,33292.288,26476.544,27525.12,60555.264,36175.872,-40.25974025974026,50855.936,70254.592,35127.296,37224.448,232.60000000000002,236.1,1.5047291487532144,231.9,233.3,233.2,239.0,2538518.9349999996,2543305.56,0.18855975167269,2526938.01,2550099.86,2537409.73,2549201.39,0.0,0.0,,0.0,0.0,0.0,0.0,788.5248525049924,790.5173553665702,0.2526873890211556,756.0253699788584,821.0243350311263,768.9057879171947,812.1289228159458,True +reads,resident-common-disabled,0,point:uniform@8,2,2,3677185.65,3863049.1,5.054502755388501,3544771.5,3809599.8,3784307.2,3941791.0,2.88,2.624,-8.888888888888879,2.784,2.976,2.528,2.72,9.984,8.608,-13.782051282051277,9.6,10.368,8.128,9.088,459705.80000000005,482935.6,5.053188365254457,443155.7,476255.9,473088.6,492782.6,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,3677312.0714285714,3863184.6428571427,5.054577033935637,3544899.0,3809725.1428571427,3784438.1428571427,3941931.1428571427,True +reads,resident-common-disabled,0,range:uniform:1@8,2,2,948568.75,945603.8999999999,-0.3125603705582902,892793.3,1004344.2,913518.7,977689.1,11.648,11.648,0.0,11.136,12.16,11.136,12.16,20.736,20.992,1.2345679012345734,19.712,21.76,20.224,21.76,118587.0,118212.8,-0.3155489218885643,111617.9,125556.1,114202.6,122223.0,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,948600.6428571428,945635.7857142857,-0.31255061496976433,892825.4285714285,1004375.8571428572,913550.4285714285,977721.1428571428,True +reads,resident-common-disabled,0,range:uniform:10000@8,2,2,3919.05,3131.5,-20.09543129074649,3405.3,4432.8,2982.7,3280.3,4603.904,4734.976000000001,2.8469750889679846,3244.032,5963.776,4030.464,5439.488,4702.2080000000005,4866.048000000001,3.4843205574912828,3309.568,6094.848,4161.536,5570.56,489.9,391.5,-20.08573178199632,425.7,554.1,372.9,410.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.15000000000000002,0.19,26.66666666666664,0.13,0.17,0.18,0.2,3919.214285714286,3131.642857142857,-20.0951356868177,3405.4285714285716,4433.0,2982.8571428571427,3280.4285714285716,False +reads,resident-common-disabled,0,range:uniform:10000@1,2,2,1289.1,1272.25,-1.307113490031797,1248.7,1329.5,1243.4,1301.1,892.928,892.928,0.0,860.16,925.696,876.544,909.312,1036.288,1159.1680000000001,11.857707509881443,974.848,1097.728,991.232,1327.104,1289.15,1272.25,-1.3109413179226648,1248.7,1329.6,1243.4,1301.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.45499999999999996,0.45999999999999996,1.098901098901095,0.44,0.47,0.45,0.47,1265.3059585729843,1256.1394454164658,-0.7244503271648606,1222.3465249615438,1308.265392184425,1227.471442673812,1284.8074481591198,True +writes,resident-common,0,ow:uniform@8,2,2,1966796.4500000002,2014988.9,2.4503018601645277,1651774.3,2281818.6,1951505.2,2078472.6,6.272,6.336,1.0204081632652962,6.208,6.336,6.336,6.336,80.64,36.864,-54.28571428571429,51.712,109.568,36.352,37.376,306398.75,318094.6,3.8171989931421013,290814.6,321982.9,316910.9,319278.3,141.47,84.695,-40.13218350180251,141.46,141.48,83.08,86.31,187.47,112.805,-39.827705766255924,187.39,187.55,112.58,113.03,1932737.1243178155,1975842.8933216466,2.2302965292833488,1615660.716469006,2249813.5321666254,1902096.978557505,2049588.8080857883,True +writes,resident-random,0,ow:uniform@8,2,2,1532285.1,1614541.25,5.368201387587712,1417795.4,1646774.8,1583743.5,1645339.0,6.016,6.08,1.0638297872340496,5.952,6.08,5.952,6.208,122.36800000000001,93.184,-23.84937238493725,103.424,141.312,74.752,111.616,294729.35,293141.45,-0.5387654809403841,288644.5,300814.2,291701.9,294581.0,150.51999999999998,138.03,-8.297900611214448,141.32,159.72,132.82,143.24,191.715,185.73000000000002,-3.1218214537203637,187.3,196.13,182.88,188.58,1498383.1798511934,1588280.7675773385,5.999639406995549,1380056.2112179098,1616710.1484844768,1558664.2883503507,1617897.2468043265,True +writes,resident-common,1,ow:uniform@8,2,2,629594.05,749170.1000000001,18.992563541539198,578949.9,680238.2,691557.9,806782.3,217.08800000000002,204.8,-5.660377358490576,198.656,235.52,190.464,219.136,1474.56,1044.48,-29.166666666666664,1425.408,1523.712,925.696,1163.264,259060.5,256907.85,-0.830944895111374,243713.3,274407.7,248907.8,264907.9,158.185,94.035,-40.5537819641559,156.79,159.58,89.4,98.67,427.605,353.375,-17.35947895838449,419.71,435.5,352.9,353.85,620393.2591604214,735223.1354268892,18.509207598720057,569917.558754768,670868.9595660749,678682.1638861629,791764.1069676154,False +writes,resident-random,1,ow:uniform@8,2,2,576156.75,525078.8999999999,-8.865269737792724,570998.2,581315.3,484679.1,565478.7,235.51999999999998,259.072,10.000000000000009,227.328,243.712,251.904,266.24,1425.408,1458.176,2.298850574712641,1327.104,1523.712,1327.104,1589.248,228188.05,182787.35,-19.89617773586302,216555.9,239820.2,162959.0,202615.7,153.7,131.29500000000002,-14.577098243331143,149.64,157.76,127.73,134.86,437.94,428.235,-2.2160569941087838,437.83,438.05,422.31,434.16,566929.2403528946,510361.04196030286,-9.977999786601233,561259.9827988697,572598.4979069195,473162.0500305064,547560.0338900993,False +repeat,resident-common,0,range:uniform:10000@8,3,3,4025.3,3538.366666666667,-12.096820940882258,3909.3,4235.1,3136.6,4012.2,4609.365333333333,4423.68,-4.028436018957338,4259.84,5046.272,3571.712,5177.344,4871.509333333333,4707.669333333333,-3.363228699551568,4653.056,5177.344,3768.32,5308.416,503.26666666666665,442.3666666666667,-12.10094052192343,488.7,529.5,392.1,501.6,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,4001.016958481691,3512.0952062839924,-12.219937012794734,3882.7385287691186,4216.366894537731,3111.9783054434815,3982.0034405187243,True +repeat,resident-common-disabled,0,range:uniform:10000@8,3,3,3854.7999999999997,3762.9666666666667,-2.3823112310193295,3365.5,4357.7,3613.8,3853.3,3975.8506666666667,4576.597333333333,15.1098901098901,3440.64,5046.272,4161.536,5177.344,4237.9946666666665,4740.437333333333,11.855670103092786,3637.248,5308.416,4390.912,5177.344,481.93333333333334,470.43333333333334,-2.386222160741458,420.8,544.8,451.8,481.7,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,3854.866666666667,3763.0222222222224,-2.382558266894952,3365.5333333333333,4357.8,3613.866666666667,3853.3333333333335,True +repeat,resident-common-disabled,0,range:uniform:10000@1,3,3,1350.8333333333333,1376.3,1.8852560148056696,1334.6,1377.4,1373.1,1381.2,876.544,811.008,-7.476635514018682,843.776,925.696,794.624,827.392,1220.608,936.6186666666666,-23.266219239373598,1007.616,1359.872,860.16,974.848,1350.9,1376.2333333333333,1.8752930145335078,1334.9,1377.2,1373.2,1381.2,0.0,0.0,,0.0,0.0,0.0,0.0,0.33666666666666667,0.4,18.811881188118807,0.2,0.41,0.4,0.4,1341.7840419000438,1367.106487376034,1.8872221374858666,1322.6744186046512,1371.639115714001,1362.7762339552733,1370.87275855224,True +repeat,resident-nonlexical,0,range:uniform:1@8,3,3,1028346.2,969401.0,-5.732038490539471,995559.2,1081379.8,944712.2,990583.5,10.624,11.392,7.228915662650581,10.112,10.88,11.136,11.648,19.882666666666665,20.565333333333335,3.4334763948498104,18.688,20.736,19.712,21.76,128571.7,121192.36666666667,-5.739469364823934,124463.5,135198.3,118102.7,123841.1,0.0,0.0,,0.0,0.0,0.0,0.0,0.0,0.0,,0.0,0.0,0.0,0.0,1023362.4445549916,964199.6596989221,-5.781215166811826,991214.1908934023,1075374.1050119333,938906.7117206652,985801.499369734,False +repeat,resident-random,1,ow:uniform@8,3,3,890070.2666666666,837595.4,-5.895586970137334,771902.2,1050078.9,809333.6,880444.9,149.84533333333334,152.23466666666667,1.5945330296127436,130.048,161.792,149.504,153.6,1044.48,1294.336,23.921568627450984,479.232,1392.64,1196.032,1359.872,244809.63333333333,242372.16666666666,-0.9956579867704041,241168.8,248213.5,240051.1,244257.4,161.31666666666666,161.42333333333335,0.06612253331956808,153.19,165.73,155.83,165.84,430.62,430.9633333333333,0.07973000170296007,428.62,432.23,429.49,432.01,882006.7343931693,828312.1230690569,-6.087777930749572,763515.9907682163,1041828.4278060718,803133.5670812385,871105.5339357562,True diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/summary.json b/benchmarks/results-20261014/prefix-main-6105c49f/summary.json new file mode 100644 index 000000000..63facbd1e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/summary.json @@ -0,0 +1,1858 @@ +[ + { + "mode": "reads", + "case": "resident-common", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 4500543.05, + "candidate_ops_s": 4740951.300000001, + "change_ops_s_pct": 5.341760923717875, + "main_ops_s_min": 4074604.5, + "main_ops_s_max": 4926481.6, + "candidate_ops_s_min": 4492319.2, + "candidate_ops_s_max": 4989583.4, + "main_p99_us": 2.592, + "candidate_p99_us": 2.24, + "change_p99_us_pct": -13.58024691358024, + "main_p99_us_min": 2.592, + "main_p99_us_max": 2.592, + "candidate_p99_us_min": 2.144, + "candidate_p99_us_max": 2.336, + "main_p999_us": 10.975999999999999, + "candidate_p999_us": 6.016, + "change_p999_us_pct": -45.18950437317783, + "main_p999_us_min": 6.72, + "main_p999_us_max": 15.232, + "candidate_p999_us_min": 5.184, + "candidate_p999_us_max": 6.848, + "main_ops_per_cpu_s": 562793.25, + "candidate_ops_per_cpu_s": 592746.7, + "change_ops_per_cpu_s_pct": 5.322283094191338, + "main_ops_per_cpu_s_min": 509634.3, + "main_ops_per_cpu_s_max": 615952.2, + "candidate_ops_per_cpu_s_min": 561629.2, + "candidate_ops_per_cpu_s_max": 623864.2, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 4500677.214285715, + "candidate_ops_with_drain_s": 4741101.285714285, + "change_ops_with_drain_s_pct": 5.341953221293783, + "main_ops_with_drain_s_min": 4074736.4285714286, + "main_ops_with_drain_s_max": 4926618.0, + "candidate_ops_with_drain_s_min": 4492463.285714285, + "candidate_ops_with_drain_s_max": 4989739.285714285, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-common", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1164460.1, + "candidate_ops_s": 1175871.2999999998, + "change_ops_s_pct": 0.9799562904731385, + "main_ops_s_min": 1072409.9, + "main_ops_s_max": 1256510.3, + "candidate_ops_s_min": 1165847.2, + "candidate_ops_s_max": 1185895.4, + "main_p99_us": 9.728000000000002, + "candidate_p99_us": 9.6, + "change_p99_us_pct": -1.3157894736842257, + "main_p99_us_min": 8.832, + "main_p99_us_max": 10.624, + "candidate_p99_us_min": 9.344, + "candidate_p99_us_max": 9.856, + "main_p999_us": 27.584, + "candidate_p999_us": 17.344, + "change_p999_us_pct": -37.12296983758701, + "main_p999_us_min": 14.72, + "main_p999_us_max": 40.448, + "candidate_p999_us_min": 15.488, + "candidate_p999_us_max": 19.2, + "main_ops_per_cpu_s": 145596.95, + "candidate_ops_per_cpu_s": 147014.65, + "change_ops_per_cpu_s_pct": 0.9737154521437308, + "main_ops_per_cpu_s_min": 134116.5, + "main_ops_per_cpu_s_max": 157077.4, + "candidate_ops_per_cpu_s_min": 145750.5, + "candidate_ops_per_cpu_s_max": 148278.8, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 1164494.9285714286, + "candidate_ops_with_drain_s": 1175911.214285714, + "change_ops_with_drain_s_pct": 0.9803637125573861, + "main_ops_with_drain_s_min": 1072442.7142857143, + "main_ops_with_drain_s_max": 1256547.142857143, + "candidate_ops_with_drain_s_min": 1165880.857142857, + "candidate_ops_with_drain_s_max": 1185941.5714285714, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-common", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 4675.5, + "candidate_ops_s": 3975.5, + "change_ops_s_pct": -14.971660784942786, + "main_ops_s_min": 3877.3, + "main_ops_s_max": 5473.7, + "candidate_ops_s_min": 3481.6, + "candidate_ops_s_max": 4469.4, + "main_p99_us": 4341.76, + "candidate_p99_us": 3850.2400000000002, + "change_p99_us_pct": -11.32075471698113, + "main_p99_us_min": 4161.536, + "main_p99_us_max": 4521.984, + "candidate_p99_us_min": 3178.496, + "candidate_p99_us_max": 4521.984, + "main_p999_us": 4521.984, + "candidate_p999_us": 4014.08, + "change_p999_us_pct": -11.231884057971019, + "main_p999_us_min": 4259.84, + "main_p999_us_max": 4784.128, + "candidate_p999_us_min": 3375.104, + "candidate_p999_us_max": 4653.056, + "main_ops_per_cpu_s": 584.5999999999999, + "candidate_ops_per_cpu_s": 497.0, + "change_ops_per_cpu_s_pct": -14.984604858022566, + "main_ops_per_cpu_s_min": 484.9, + "main_ops_per_cpu_s_max": 684.3, + "candidate_ops_per_cpu_s_min": 435.3, + "candidate_ops_per_cpu_s_max": 558.7, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.13, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": -100.0, + "main_wr_B_op_min": 0.11, + "main_wr_B_op_max": 0.15, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 4628.311545196715, + "candidate_ops_with_drain_s": 3939.554233313584, + "change_ops_with_drain_s_pct": -14.881394762587385, + "main_ops_with_drain_s_min": 3838.495262339132, + "main_ops_with_drain_s_max": 5418.127828054298, + "candidate_ops_with_drain_s_min": 3450.6583604700554, + "candidate_ops_with_drain_s_max": 4428.450106157113, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-random", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 4009986.3, + "candidate_ops_s": 4091707.7, + "change_ops_s_pct": 2.0379471121883874, + "main_ops_s_min": 3854472.2, + "main_ops_s_max": 4165500.4, + "candidate_ops_s_min": 4068384.3, + "candidate_ops_s_max": 4115031.1, + "main_p99_us": 2.6239999999999997, + "candidate_p99_us": 2.496, + "change_p99_us_pct": -4.8780487804877986, + "main_p99_us_min": 2.4, + "main_p99_us_max": 2.848, + "candidate_p99_us_min": 2.464, + "candidate_p99_us_max": 2.528, + "main_p999_us": 7.776, + "candidate_p999_us": 6.944000000000001, + "change_p999_us_pct": -10.69958847736624, + "main_p999_us_min": 5.184, + "main_p999_us_max": 10.368, + "candidate_p999_us_min": 5.312, + "candidate_p999_us_max": 8.576, + "main_ops_per_cpu_s": 501346.25, + "candidate_ops_per_cpu_s": 511567.0, + "change_ops_per_cpu_s_pct": 2.038660905511902, + "main_ops_per_cpu_s_min": 481951.4, + "main_ops_per_cpu_s_max": 520741.1, + "candidate_ops_per_cpu_s_min": 508614.7, + "candidate_ops_per_cpu_s_max": 514519.3, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 4010136.7142857146, + "candidate_ops_with_drain_s": 4091845.2857142854, + "change_ops_with_drain_s_pct": 2.037550768219254, + "main_ops_with_drain_s_min": 3854641.4285714286, + "main_ops_with_drain_s_max": 4165632.0, + "candidate_ops_with_drain_s_min": 4068519.8571428573, + "candidate_ops_with_drain_s_max": 4115170.714285714, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-random", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1077959.5499999998, + "candidate_ops_s": 1074310.1, + "change_ops_s_pct": -0.33855166457773533, + "main_ops_s_min": 1063328.2, + "main_ops_s_max": 1092590.9, + "candidate_ops_s_min": 1057405.9, + "candidate_ops_s_max": 1091214.3, + "main_p99_us": 10.368, + "candidate_p99_us": 10.24, + "change_p99_us_pct": -1.2345679012345734, + "main_p99_us_min": 10.112, + "main_p99_us_max": 10.624, + "candidate_p99_us_min": 10.112, + "candidate_p99_us_max": 10.368, + "main_p999_us": 18.688, + "candidate_p999_us": 18.176, + "change_p999_us_pct": -2.73972602739726, + "main_p999_us_min": 18.176, + "main_p999_us_max": 19.2, + "candidate_p999_us_min": 18.176, + "candidate_p999_us_max": 18.176, + "main_ops_per_cpu_s": 134764.59999999998, + "candidate_ops_per_cpu_s": 134302.95, + "change_ops_per_cpu_s_pct": -0.34256028660343274, + "main_ops_per_cpu_s_min": 132937.9, + "main_ops_per_cpu_s_max": 136591.3, + "candidate_ops_per_cpu_s_min": 132187.7, + "candidate_ops_per_cpu_s_max": 136418.2, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 1077993.2857142857, + "candidate_ops_with_drain_s": 1074347.1428571427, + "change_ops_with_drain_s_pct": -0.3382342826678153, + "main_ops_with_drain_s_min": 1063360.857142857, + "main_ops_with_drain_s_max": 1092625.7142857143, + "candidate_ops_with_drain_s_min": 1057445.5714285714, + "candidate_ops_with_drain_s_max": 1091248.7142857143, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-random", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 3295.35, + "candidate_ops_s": 3523.3, + "change_ops_s_pct": 6.917322894381495, + "main_ops_s_min": 3106.0, + "main_ops_s_max": 3484.7, + "candidate_ops_s_min": 3293.9, + "candidate_ops_s_max": 3752.7, + "main_p99_us": 4767.744000000001, + "candidate_p99_us": 4243.456, + "change_p99_us_pct": -10.996563573883167, + "main_p99_us_min": 4096.0, + "main_p99_us_max": 5439.488, + "candidate_p99_us_min": 4096.0, + "candidate_p99_us_max": 4390.912, + "main_p999_us": 5046.272, + "candidate_p999_us": 4390.912, + "change_p999_us_pct": -12.98701298701298, + "main_p999_us_min": 4390.912, + "main_p999_us_max": 5701.632, + "candidate_p999_us_min": 4259.84, + "candidate_p999_us_max": 4521.984, + "main_ops_per_cpu_s": 412.0, + "candidate_ops_per_cpu_s": 440.45000000000005, + "change_ops_per_cpu_s_pct": 6.905339805825261, + "main_ops_per_cpu_s_min": 388.3, + "main_ops_per_cpu_s_max": 435.7, + "candidate_ops_per_cpu_s_min": 411.8, + "candidate_ops_per_cpu_s_max": 469.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.18, + "candidate_wr_B_op": 0.16999999999999998, + "change_wr_B_op_pct": -5.555555555555558, + "main_wr_B_op_min": 0.17, + "main_wr_B_op_max": 0.19, + "candidate_wr_B_op_min": 0.16, + "candidate_wr_B_op_max": 0.18, + "main_ops_with_drain_s": 3295.5, + "candidate_ops_with_drain_s": 3523.4285714285716, + "change_ops_with_drain_s_pct": 6.916357803931783, + "main_ops_with_drain_s_min": 3106.1428571428573, + "main_ops_with_drain_s_max": 3484.8571428571427, + "candidate_ops_with_drain_s_min": 3294.0, + "candidate_ops_with_drain_s_max": 3752.8571428571427, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-random", + "wal": 0, + "phase": "range:uniform:10000@1", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1243.55, + "candidate_ops_s": 1252.0, + "change_ops_s_pct": 0.6795062522616746, + "main_ops_s_min": 1159.1, + "main_ops_s_max": 1328.0, + "candidate_ops_s_min": 1218.0, + "candidate_ops_s_max": 1286.0, + "main_p99_us": 1019.904, + "candidate_p99_us": 925.6959999999999, + "change_p99_us_pct": -9.236947791164663, + "main_p99_us_min": 811.008, + "main_p99_us_max": 1228.8, + "candidate_p99_us_min": 843.776, + "candidate_p99_us_max": 1007.616, + "main_p999_us": 1159.1680000000001, + "candidate_p999_us": 1011.712, + "change_p999_us_pct": -12.720848056537115, + "main_p999_us_min": 827.392, + "main_p999_us_max": 1490.944, + "candidate_p999_us_min": 892.928, + "candidate_p999_us_max": 1130.496, + "main_ops_per_cpu_s": 1243.55, + "candidate_ops_per_cpu_s": 1252.05, + "change_ops_per_cpu_s_pct": 0.6835269993164639, + "main_ops_per_cpu_s_min": 1159.1, + "main_ops_per_cpu_s_max": 1328.0, + "candidate_ops_per_cpu_s_min": 1218.0, + "candidate_ops_per_cpu_s_max": 1286.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.47, + "candidate_wr_B_op": 0.47, + "change_wr_B_op_pct": 0.0, + "main_wr_B_op_min": 0.44, + "main_wr_B_op_max": 0.5, + "candidate_wr_B_op_min": 0.46, + "candidate_wr_B_op_max": 0.48, + "main_ops_with_drain_s": 1231.2801401074048, + "candidate_ops_with_drain_s": 1239.9092980052287, + "change_ops_with_drain_s_pct": 0.7008281557332019, + "main_ops_with_drain_s_min": 1144.9132213912799, + "main_ops_with_drain_s_max": 1317.6470588235295, + "candidate_ops_with_drain_s_min": 1204.7477744807122, + "candidate_ops_with_drain_s_max": 1275.0708215297452, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-nonlexical", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 4196571.75, + "candidate_ops_s": 4098610.5, + "change_ops_s_pct": -2.3343160998021806, + "main_ops_s_min": 4028951.9, + "main_ops_s_max": 4364191.6, + "candidate_ops_s_min": 3943007.4, + "candidate_ops_s_max": 4254213.6, + "main_p99_us": 2.496, + "candidate_p99_us": 2.528, + "change_p99_us_pct": 1.2820512820512775, + "main_p99_us_min": 2.4, + "main_p99_us_max": 2.592, + "candidate_p99_us_min": 2.464, + "candidate_p99_us_max": 2.592, + "main_p999_us": 7.264, + "candidate_p999_us": 8.096, + "change_p999_us_pct": 11.45374449339207, + "main_p999_us_min": 5.952, + "main_p999_us_max": 8.576, + "candidate_p999_us_min": 6.848, + "candidate_p999_us_max": 9.344, + "main_ops_per_cpu_s": 524741.1000000001, + "candidate_ops_per_cpu_s": 512446.55, + "change_ops_per_cpu_s_pct": -2.342974468742798, + "main_ops_per_cpu_s_min": 503819.4, + "main_ops_per_cpu_s_max": 545662.8, + "candidate_ops_per_cpu_s_min": 493016.4, + "candidate_ops_per_cpu_s_max": 531876.7, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 4196708.071428572, + "candidate_ops_with_drain_s": 4098742.3571428573, + "change_ops_with_drain_s_pct": -2.334346650239283, + "main_ops_with_drain_s_min": 4029080.4285714286, + "main_ops_with_drain_s_max": 4364335.714285715, + "candidate_ops_with_drain_s_min": 3943138.4285714286, + "candidate_ops_with_drain_s_max": 4254346.285714285, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-nonlexical", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1041683.8, + "candidate_ops_s": 985847.95, + "change_ops_s_pct": -5.360153436196291, + "main_ops_s_min": 1024771.4, + "main_ops_s_max": 1058596.2, + "candidate_ops_s_min": 985488.4, + "candidate_ops_s_max": 986207.5, + "main_p99_us": 10.624, + "candidate_p99_us": 11.136, + "change_p99_us_pct": 4.819277108433728, + "main_p99_us_min": 10.368, + "main_p99_us_max": 10.88, + "candidate_p99_us_min": 11.136, + "candidate_p99_us_max": 11.136, + "main_p999_us": 19.712, + "candidate_p999_us": 21.248, + "change_p999_us_pct": 7.792207792207795, + "main_p999_us_min": 19.2, + "main_p999_us_max": 20.224, + "candidate_p999_us_min": 20.736, + "candidate_p999_us_max": 21.76, + "main_ops_per_cpu_s": 130231.9, + "candidate_ops_per_cpu_s": 123270.4, + "change_ops_per_cpu_s_pct": -5.345464513686737, + "main_ops_per_cpu_s_min": 128121.0, + "main_ops_per_cpu_s_max": 132342.8, + "candidate_ops_per_cpu_s_min": 123240.7, + "candidate_ops_per_cpu_s_max": 123300.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 1041718.6428571428, + "candidate_ops_with_drain_s": 985881.4285714286, + "change_ops_with_drain_s_pct": -5.360105117497782, + "main_ops_with_drain_s_min": 1024804.7142857143, + "main_ops_with_drain_s_max": 1058632.5714285714, + "candidate_ops_with_drain_s_min": 985522.7142857143, + "candidate_ops_with_drain_s_max": 986240.1428571428, + "throughput_ranges_overlap": false + }, + { + "mode": "reads", + "case": "resident-nonlexical", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 3360.95, + "candidate_ops_s": 3197.8, + "change_ops_s_pct": -4.854282271381594, + "main_ops_s_min": 3201.0, + "main_ops_s_max": 3520.9, + "candidate_ops_s_min": 2868.6, + "candidate_ops_s_max": 3527.0, + "main_p99_us": 5242.88, + "candidate_p99_us": 5505.023999999999, + "change_p99_us_pct": 4.999999999999982, + "main_p99_us_min": 5046.272, + "main_p99_us_max": 5439.488, + "candidate_p99_us_min": 5177.344, + "candidate_p99_us_max": 5832.704, + "main_p999_us": 5373.952, + "candidate_p999_us": 5701.632, + "change_p999_us_pct": 6.097560975609739, + "main_p999_us_min": 5177.344, + "main_p999_us_max": 5570.56, + "candidate_p999_us_min": 5308.416, + "candidate_p999_us_max": 6094.848, + "main_ops_per_cpu_s": 420.04999999999995, + "candidate_ops_per_cpu_s": 399.9, + "change_ops_per_cpu_s_pct": -4.797047970479696, + "main_ops_per_cpu_s_min": 400.2, + "main_ops_per_cpu_s_max": 439.9, + "candidate_ops_per_cpu_s_min": 358.8, + "candidate_ops_per_cpu_s_max": 441.0, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.175, + "candidate_wr_B_op": 0.185, + "change_wr_B_op_pct": 5.714285714285716, + "main_wr_B_op_min": 0.17, + "main_wr_B_op_max": 0.18, + "candidate_wr_B_op_min": 0.17, + "candidate_wr_B_op_max": 0.2, + "main_ops_with_drain_s": 3329.6773280498164, + "candidate_ops_with_drain_s": 3157.6719697043854, + "change_ops_with_drain_s_pct": -5.165826637206738, + "main_ops_with_drain_s_min": 3171.2425700537788, + "main_ops_with_drain_s_max": 3488.1120860458536, + "candidate_ops_with_drain_s_min": 2831.500282007896, + "candidate_ops_with_drain_s_max": 3483.843657400875, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-common", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 170248.15000000002, + "candidate_ops_s": 188040.75, + "change_ops_s_pct": 10.4509799372269, + "main_ops_s_min": 163698.1, + "main_ops_s_max": 176798.2, + "candidate_ops_s_min": 181356.1, + "candidate_ops_s_max": 194725.4, + "main_p99_us": 93.184, + "candidate_p99_us": 77.824, + "change_p99_us_pct": -16.483516483516482, + "main_p99_us_min": 87.04, + "main_p99_us_max": 99.328, + "candidate_p99_us_min": 74.752, + "candidate_p99_us_max": 80.896, + "main_p999_us": 705.024, + "candidate_p999_us": 649.728, + "change_p999_us_pct": -7.843137254901967, + "main_p999_us_min": 115.712, + "main_p999_us_max": 1294.336, + "candidate_p999_us_min": 103.424, + "candidate_p999_us_max": 1196.032, + "main_ops_per_cpu_s": 138038.4, + "candidate_ops_per_cpu_s": 153160.65, + "change_ops_per_cpu_s_pct": 10.955103797204258, + "main_ops_per_cpu_s_min": 132369.3, + "main_ops_per_cpu_s_max": 143707.5, + "candidate_ops_per_cpu_s_min": 149546.0, + "candidate_ops_per_cpu_s_max": 156775.3, + "main_rd_B_op": 3527.465, + "candidate_rd_B_op": 3207.825, + "change_rd_B_op_pct": -9.061464819636777, + "main_rd_B_op_min": 3527.4, + "main_rd_B_op_max": 3527.53, + "candidate_rd_B_op_min": 3207.41, + "candidate_rd_B_op_max": 3208.24, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 170252.35714285716, + "candidate_ops_with_drain_s": 188046.07142857142, + "change_ops_with_drain_s_pct": 10.451376171422822, + "main_ops_with_drain_s_min": 163702.14285714287, + "main_ops_with_drain_s_max": 176802.57142857142, + "candidate_ops_with_drain_s_min": 181361.42857142858, + "candidate_ops_with_drain_s_max": 194730.7142857143, + "throughput_ranges_overlap": false + }, + { + "mode": "reads", + "case": "disk-common", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 70584.0, + "candidate_ops_s": 78249.4, + "change_ops_s_pct": 10.859968264762543, + "main_ops_s_min": 68021.3, + "main_ops_s_max": 73146.7, + "candidate_ops_s_min": 76025.5, + "candidate_ops_s_max": 80473.3, + "main_p99_us": 286.72, + "candidate_p99_us": 279.552, + "change_p99_us_pct": -2.500000000000002, + "main_p99_us_min": 266.24, + "main_p99_us_max": 307.2, + "candidate_p99_us_min": 260.096, + "candidate_p99_us_max": 299.008, + "main_p999_us": 1095.68, + "candidate_p999_us": 1017.856, + "change_p999_us_pct": -7.102803738317764, + "main_p999_us_min": 372.736, + "main_p999_us_max": 1818.624, + "candidate_p999_us_min": 380.928, + "candidate_p999_us_max": 1654.784, + "main_ops_per_cpu_s": 8392.7, + "candidate_ops_per_cpu_s": 9350.95, + "change_ops_per_cpu_s_pct": 11.417660585985434, + "main_ops_per_cpu_s_min": 8096.3, + "main_ops_per_cpu_s_max": 8689.1, + "candidate_ops_per_cpu_s_min": 9091.9, + "candidate_ops_per_cpu_s_max": 9610.0, + "main_rd_B_op": 14152.52, + "candidate_rd_B_op": 10932.815, + "change_rd_B_op_pct": -22.7500473413922, + "main_rd_B_op_min": 14141.46, + "main_rd_B_op_max": 14163.58, + "candidate_rd_B_op_min": 10930.2, + "candidate_rd_B_op_max": 10935.43, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 70586.35714285714, + "candidate_ops_with_drain_s": 78252.07142857142, + "change_ops_with_drain_s_pct": 10.860050859686554, + "main_ops_with_drain_s_min": 68023.57142857143, + "main_ops_with_drain_s_max": 73149.14285714286, + "candidate_ops_with_drain_s_min": 76028.28571428571, + "candidate_ops_with_drain_s_max": 80475.85714285714, + "throughput_ranges_overlap": false + }, + { + "mode": "reads", + "case": "disk-common", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 909.15, + "candidate_ops_s": 1093.6, + "change_ops_s_pct": 20.288181268217564, + "main_ops_s_min": 900.0, + "main_ops_s_max": 918.3, + "candidate_ops_s_min": 1061.8, + "candidate_ops_s_max": 1125.4, + "main_p99_us": 24903.68, + "candidate_p99_us": 21495.807999999997, + "change_p99_us_pct": -13.684210526315798, + "main_p99_us_min": 23330.816, + "main_p99_us_max": 26476.544, + "candidate_p99_us_min": 19136.512, + "candidate_p99_us_max": 23855.104, + "main_p999_us": 41025.536, + "candidate_p999_us": 34734.08, + "change_p999_us_pct": -15.335463258785943, + "main_p999_us_min": 31195.136, + "main_p999_us_max": 50855.936, + "candidate_p999_us_min": 23855.104, + "candidate_p999_us_max": 45613.056, + "main_ops_per_cpu_s": 256.70000000000005, + "candidate_ops_per_cpu_s": 287.55, + "change_ops_per_cpu_s_pct": 12.017919750681717, + "main_ops_per_cpu_s_min": 254.8, + "main_ops_per_cpu_s_max": 258.6, + "candidate_ops_per_cpu_s_min": 282.1, + "candidate_ops_per_cpu_s_max": 293.0, + "main_rd_B_op": 2541146.18, + "candidate_rd_B_op": 1801838.2349999999, + "change_rd_B_op_pct": -29.093483516166717, + "main_rd_B_op_min": 2538977.12, + "main_rd_B_op_max": 2543315.24, + "candidate_rd_B_op_min": 1793184.4, + "candidate_rd_B_op_max": 1810492.07, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 901.1694943965135, + "candidate_ops_with_drain_s": 1083.8224264048447, + "change_ops_with_drain_s_pct": 20.2684326471402, + "main_ops_with_drain_s_min": 891.3412563667233, + "main_ops_with_drain_s_max": 910.9977324263039, + "candidate_ops_with_drain_s_min": 1051.9388621568073, + "candidate_ops_with_drain_s_max": 1115.705990652882, + "throughput_ranges_overlap": false + }, + { + "mode": "reads", + "case": "disk-random", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 134411.1, + "candidate_ops_s": 134207.90000000002, + "change_ops_s_pct": -0.15117799050821112, + "main_ops_s_min": 132155.7, + "main_ops_s_max": 136666.5, + "candidate_ops_s_min": 133577.2, + "candidate_ops_s_max": 134838.6, + "main_p99_us": 121.856, + "candidate_p99_us": 120.832, + "change_p99_us_pct": -0.8403361344537785, + "main_p99_us_min": 119.808, + "main_p99_us_max": 123.904, + "candidate_p99_us_min": 119.808, + "candidate_p99_us_max": 121.856, + "main_p999_us": 564.224, + "candidate_p999_us": 226.30400000000003, + "change_p999_us_pct": -59.89110707803993, + "main_p999_us_min": 169.984, + "main_p999_us_max": 958.464, + "candidate_p999_us_min": 169.984, + "candidate_p999_us_max": 282.624, + "main_ops_per_cpu_s": 141506.3, + "candidate_ops_per_cpu_s": 143293.45, + "change_ops_per_cpu_s_pct": 1.2629473034063032, + "main_ops_per_cpu_s_min": 140382.2, + "main_ops_per_cpu_s_max": 142630.4, + "candidate_ops_per_cpu_s_min": 142704.7, + "candidate_ops_per_cpu_s_max": 143882.2, + "main_rd_B_op": 3529.025, + "candidate_rd_B_op": 3529.725, + "change_rd_B_op_pct": 0.01983550697430836, + "main_rd_B_op_min": 3528.61, + "main_rd_B_op_max": 3529.44, + "candidate_rd_B_op_min": 3529.68, + "candidate_rd_B_op_max": 3529.77, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 134414.42857142858, + "candidate_ops_with_drain_s": 134211.5, + "change_ops_with_drain_s_pct": -0.15097231270878586, + "main_ops_with_drain_s_min": 132159.2857142857, + "main_ops_with_drain_s_max": 136669.57142857142, + "candidate_ops_with_drain_s_min": 133580.57142857142, + "candidate_ops_with_drain_s_max": 134842.42857142858, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-random", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 54883.2, + "candidate_ops_s": 55567.4, + "change_ops_s_pct": 1.2466474258060911, + "main_ops_s_min": 53370.4, + "main_ops_s_max": 56396.0, + "candidate_ops_s_min": 55082.8, + "candidate_ops_s_max": 56052.0, + "main_p99_us": 393.216, + "candidate_p99_us": 368.64, + "change_p99_us_pct": -6.25, + "main_p99_us_min": 364.544, + "main_p99_us_max": 421.888, + "candidate_p99_us_min": 364.544, + "candidate_p99_us_max": 372.736, + "main_p999_us": 1622.016, + "candidate_p999_us": 872.448, + "change_p999_us_pct": -46.21212121212122, + "main_p999_us_min": 1556.48, + "main_p999_us_max": 1687.552, + "candidate_p999_us_min": 548.864, + "candidate_p999_us_max": 1196.032, + "main_ops_per_cpu_s": 6562.25, + "candidate_ops_per_cpu_s": 6636.85, + "change_ops_per_cpu_s_pct": 1.1368052116271121, + "main_ops_per_cpu_s_min": 6389.1, + "main_ops_per_cpu_s_max": 6735.4, + "candidate_ops_per_cpu_s_min": 6574.3, + "candidate_ops_per_cpu_s_max": 6699.4, + "main_rd_B_op": 14159.295, + "candidate_rd_B_op": 14140.795, + "change_rd_B_op_pct": -0.13065622264385457, + "main_rd_B_op_min": 14154.01, + "main_rd_B_op_max": 14164.58, + "candidate_rd_B_op_min": 14140.47, + "candidate_rd_B_op_max": 14141.12, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 54884.857142857145, + "candidate_ops_with_drain_s": 55569.357142857145, + "change_ops_with_drain_s_pct": 1.2471563845348976, + "main_ops_with_drain_s_min": 53372.0, + "main_ops_with_drain_s_max": 56397.71428571428, + "candidate_ops_with_drain_s_min": 55084.71428571428, + "candidate_ops_with_drain_s_max": 56054.0, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-random", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 794.9000000000001, + "candidate_ops_s": 792.15, + "change_ops_s_pct": -0.3459554660963815, + "main_ops_s_min": 788.7, + "main_ops_s_max": 801.1, + "candidate_ops_s_min": 787.5, + "candidate_ops_s_max": 796.8, + "main_p99_us": 29622.272, + "candidate_p99_us": 28835.84, + "change_p99_us_pct": -2.6548672566371723, + "main_p99_us_min": 29097.984, + "main_p99_us_max": 30146.56, + "candidate_p99_us_min": 27525.12, + "candidate_p99_us_max": 30146.56, + "main_p999_us": 47185.92, + "candidate_p999_us": 40894.464, + "change_p999_us_pct": -13.33333333333333, + "main_p999_us_min": 44564.48, + "main_p999_us_max": 49807.36, + "candidate_p999_us_min": 36175.872, + "candidate_p999_us_max": 45613.056, + "main_ops_per_cpu_s": 247.3, + "candidate_ops_per_cpu_s": 246.95, + "change_ops_per_cpu_s_pct": -0.14152850788516913, + "main_ops_per_cpu_s_min": 245.5, + "main_ops_per_cpu_s_max": 249.1, + "candidate_ops_per_cpu_s_min": 246.7, + "candidate_ops_per_cpu_s_max": 247.2, + "main_rd_B_op": 2526206.925, + "candidate_rd_B_op": 2533304.865, + "change_rd_B_op_pct": 0.2809722327081543, + "main_rd_B_op_min": 2520361.31, + "main_rd_B_op_max": 2532052.54, + "candidate_rd_B_op_min": 2532493.36, + "candidate_rd_B_op_max": 2534116.37, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 786.3403053013228, + "candidate_ops_with_drain_s": 781.3371659640949, + "change_ops_with_drain_s_pct": -0.6362562498065993, + "main_ops_with_drain_s_min": 779.5820389720418, + "main_ops_with_drain_s_max": 793.0985716306039, + "candidate_ops_with_drain_s_min": 775.9324419422941, + "candidate_ops_with_drain_s_max": 786.7418899858957, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-nonlexical", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 145681.5, + "candidate_ops_s": 137161.05, + "change_ops_s_pct": -5.848683600869031, + "main_ops_s_min": 133323.3, + "main_ops_s_max": 158039.7, + "candidate_ops_s_min": 130352.7, + "candidate_ops_s_max": 143969.4, + "main_p99_us": 111.616, + "candidate_p99_us": 117.75999999999999, + "change_p99_us_pct": 5.504587155963292, + "main_p99_us_min": 101.376, + "main_p99_us_max": 121.856, + "candidate_p99_us_min": 111.616, + "candidate_p99_us_max": 123.904, + "main_p999_us": 676.864, + "candidate_p999_us": 157.696, + "change_p999_us_pct": -76.70196671709532, + "main_p999_us_min": 223.232, + "main_p999_us_max": 1130.496, + "candidate_p999_us_min": 149.504, + "candidate_p999_us_max": 165.888, + "main_ops_per_cpu_s": 134923.65, + "candidate_ops_per_cpu_s": 124554.54999999999, + "change_ops_per_cpu_s_pct": -7.68516120042706, + "main_ops_per_cpu_s_min": 129978.7, + "main_ops_per_cpu_s_max": 139868.6, + "candidate_ops_per_cpu_s_min": 120347.4, + "candidate_ops_per_cpu_s_max": 128761.7, + "main_rd_B_op": 3528.52, + "candidate_rd_B_op": 3528.6800000000003, + "change_rd_B_op_pct": 0.004534479045048556, + "main_rd_B_op_min": 3528.35, + "main_rd_B_op_max": 3528.69, + "candidate_rd_B_op_min": 3528.4, + "candidate_rd_B_op_max": 3528.96, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 145685.42857142858, + "candidate_ops_with_drain_s": 137164.5, + "change_ops_with_drain_s_pct": -5.848854380965651, + "main_ops_with_drain_s_min": 133327.0, + "main_ops_with_drain_s_max": 158043.85714285713, + "candidate_ops_with_drain_s_min": 130356.0, + "candidate_ops_with_drain_s_max": 143973.0, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-nonlexical", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 60266.7, + "candidate_ops_s": 57849.5, + "change_ops_s_pct": -4.010838489580482, + "main_ops_s_min": 54996.1, + "main_ops_s_max": 65537.3, + "candidate_ops_s_min": 55657.5, + "candidate_ops_s_max": 60041.5, + "main_p99_us": 344.06399999999996, + "candidate_p99_us": 344.06399999999996, + "change_p99_us_pct": 0.0, + "main_p99_us_min": 307.2, + "main_p99_us_max": 380.928, + "candidate_p99_us_min": 331.776, + "candidate_p99_us_max": 356.352, + "main_p999_us": 1605.632, + "candidate_p999_us": 499.712, + "change_p999_us_pct": -68.87755102040816, + "main_p999_us_min": 1490.944, + "main_p999_us_max": 1720.32, + "candidate_p999_us_min": 479.232, + "candidate_p999_us_max": 520.192, + "main_ops_per_cpu_s": 7183.049999999999, + "candidate_ops_per_cpu_s": 6899.45, + "change_ops_per_cpu_s_pct": -3.948183571045716, + "main_ops_per_cpu_s_min": 6568.9, + "main_ops_per_cpu_s_max": 7797.2, + "candidate_ops_per_cpu_s_min": 6639.4, + "candidate_ops_per_cpu_s_max": 7159.5, + "main_rd_B_op": 14149.82, + "candidate_rd_B_op": 14143.385, + "change_rd_B_op_pct": -0.04547761031589159, + "main_rd_B_op_min": 14141.35, + "main_rd_B_op_max": 14158.29, + "candidate_rd_B_op_min": 14140.26, + "candidate_rd_B_op_max": 14146.51, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 60268.78571428571, + "candidate_ops_with_drain_s": 57851.5, + "change_ops_with_drain_s_pct": -4.010841907028384, + "main_ops_with_drain_s_min": 54998.142857142855, + "main_ops_with_drain_s_max": 65539.42857142857, + "candidate_ops_with_drain_s_min": 55659.57142857143, + "candidate_ops_with_drain_s_max": 60043.42857142857, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "disk-nonlexical", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 797.65, + "candidate_ops_s": 800.35, + "change_ops_s_pct": 0.3384943270858143, + "main_ops_s_min": 766.3, + "main_ops_s_max": 829.0, + "candidate_ops_s_min": 780.0, + "candidate_ops_s_max": 820.7, + "main_p99_us": 31981.568, + "candidate_p99_us": 27000.832000000002, + "change_p99_us_pct": -15.573770491803273, + "main_p99_us_min": 30670.848, + "main_p99_us_max": 33292.288, + "candidate_p99_us_min": 26476.544, + "candidate_p99_us_max": 27525.12, + "main_p999_us": 60555.264, + "candidate_p999_us": 36175.872, + "change_p999_us_pct": -40.25974025974026, + "main_p999_us_min": 50855.936, + "main_p999_us_max": 70254.592, + "candidate_p999_us_min": 35127.296, + "candidate_p999_us_max": 37224.448, + "main_ops_per_cpu_s": 232.60000000000002, + "candidate_ops_per_cpu_s": 236.1, + "change_ops_per_cpu_s_pct": 1.5047291487532144, + "main_ops_per_cpu_s_min": 231.9, + "main_ops_per_cpu_s_max": 233.3, + "candidate_ops_per_cpu_s_min": 233.2, + "candidate_ops_per_cpu_s_max": 239.0, + "main_rd_B_op": 2538518.9349999996, + "candidate_rd_B_op": 2543305.56, + "change_rd_B_op_pct": 0.18855975167269, + "main_rd_B_op_min": 2526938.01, + "main_rd_B_op_max": 2550099.86, + "candidate_rd_B_op_min": 2537409.73, + "candidate_rd_B_op_max": 2549201.39, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 788.5248525049924, + "candidate_ops_with_drain_s": 790.5173553665702, + "change_ops_with_drain_s_pct": 0.2526873890211556, + "main_ops_with_drain_s_min": 756.0253699788584, + "main_ops_with_drain_s_max": 821.0243350311263, + "candidate_ops_with_drain_s_min": 768.9057879171947, + "candidate_ops_with_drain_s_max": 812.1289228159458, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-common-disabled", + "wal": 0, + "phase": "point:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 3677185.65, + "candidate_ops_s": 3863049.1, + "change_ops_s_pct": 5.054502755388501, + "main_ops_s_min": 3544771.5, + "main_ops_s_max": 3809599.8, + "candidate_ops_s_min": 3784307.2, + "candidate_ops_s_max": 3941791.0, + "main_p99_us": 2.88, + "candidate_p99_us": 2.624, + "change_p99_us_pct": -8.888888888888879, + "main_p99_us_min": 2.784, + "main_p99_us_max": 2.976, + "candidate_p99_us_min": 2.528, + "candidate_p99_us_max": 2.72, + "main_p999_us": 9.984, + "candidate_p999_us": 8.608, + "change_p999_us_pct": -13.782051282051277, + "main_p999_us_min": 9.6, + "main_p999_us_max": 10.368, + "candidate_p999_us_min": 8.128, + "candidate_p999_us_max": 9.088, + "main_ops_per_cpu_s": 459705.80000000005, + "candidate_ops_per_cpu_s": 482935.6, + "change_ops_per_cpu_s_pct": 5.053188365254457, + "main_ops_per_cpu_s_min": 443155.7, + "main_ops_per_cpu_s_max": 476255.9, + "candidate_ops_per_cpu_s_min": 473088.6, + "candidate_ops_per_cpu_s_max": 492782.6, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 3677312.0714285714, + "candidate_ops_with_drain_s": 3863184.6428571427, + "change_ops_with_drain_s_pct": 5.054577033935637, + "main_ops_with_drain_s_min": 3544899.0, + "main_ops_with_drain_s_max": 3809725.1428571427, + "candidate_ops_with_drain_s_min": 3784438.1428571427, + "candidate_ops_with_drain_s_max": 3941931.1428571427, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-common-disabled", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 948568.75, + "candidate_ops_s": 945603.8999999999, + "change_ops_s_pct": -0.3125603705582902, + "main_ops_s_min": 892793.3, + "main_ops_s_max": 1004344.2, + "candidate_ops_s_min": 913518.7, + "candidate_ops_s_max": 977689.1, + "main_p99_us": 11.648, + "candidate_p99_us": 11.648, + "change_p99_us_pct": 0.0, + "main_p99_us_min": 11.136, + "main_p99_us_max": 12.16, + "candidate_p99_us_min": 11.136, + "candidate_p99_us_max": 12.16, + "main_p999_us": 20.736, + "candidate_p999_us": 20.992, + "change_p999_us_pct": 1.2345679012345734, + "main_p999_us_min": 19.712, + "main_p999_us_max": 21.76, + "candidate_p999_us_min": 20.224, + "candidate_p999_us_max": 21.76, + "main_ops_per_cpu_s": 118587.0, + "candidate_ops_per_cpu_s": 118212.8, + "change_ops_per_cpu_s_pct": -0.3155489218885643, + "main_ops_per_cpu_s_min": 111617.9, + "main_ops_per_cpu_s_max": 125556.1, + "candidate_ops_per_cpu_s_min": 114202.6, + "candidate_ops_per_cpu_s_max": 122223.0, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 948600.6428571428, + "candidate_ops_with_drain_s": 945635.7857142857, + "change_ops_with_drain_s_pct": -0.31255061496976433, + "main_ops_with_drain_s_min": 892825.4285714285, + "main_ops_with_drain_s_max": 1004375.8571428572, + "candidate_ops_with_drain_s_min": 913550.4285714285, + "candidate_ops_with_drain_s_max": 977721.1428571428, + "throughput_ranges_overlap": true + }, + { + "mode": "reads", + "case": "resident-common-disabled", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 3919.05, + "candidate_ops_s": 3131.5, + "change_ops_s_pct": -20.09543129074649, + "main_ops_s_min": 3405.3, + "main_ops_s_max": 4432.8, + "candidate_ops_s_min": 2982.7, + "candidate_ops_s_max": 3280.3, + "main_p99_us": 4603.904, + "candidate_p99_us": 4734.976000000001, + "change_p99_us_pct": 2.8469750889679846, + "main_p99_us_min": 3244.032, + "main_p99_us_max": 5963.776, + "candidate_p99_us_min": 4030.464, + "candidate_p99_us_max": 5439.488, + "main_p999_us": 4702.2080000000005, + "candidate_p999_us": 4866.048000000001, + "change_p999_us_pct": 3.4843205574912828, + "main_p999_us_min": 3309.568, + "main_p999_us_max": 6094.848, + "candidate_p999_us_min": 4161.536, + "candidate_p999_us_max": 5570.56, + "main_ops_per_cpu_s": 489.9, + "candidate_ops_per_cpu_s": 391.5, + "change_ops_per_cpu_s_pct": -20.08573178199632, + "main_ops_per_cpu_s_min": 425.7, + "main_ops_per_cpu_s_max": 554.1, + "candidate_ops_per_cpu_s_min": 372.9, + "candidate_ops_per_cpu_s_max": 410.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.15000000000000002, + "candidate_wr_B_op": 0.19, + "change_wr_B_op_pct": 26.66666666666664, + "main_wr_B_op_min": 0.13, + "main_wr_B_op_max": 0.17, + "candidate_wr_B_op_min": 0.18, + "candidate_wr_B_op_max": 0.2, + "main_ops_with_drain_s": 3919.214285714286, + "candidate_ops_with_drain_s": 3131.642857142857, + "change_ops_with_drain_s_pct": -20.0951356868177, + "main_ops_with_drain_s_min": 3405.4285714285716, + "main_ops_with_drain_s_max": 4433.0, + "candidate_ops_with_drain_s_min": 2982.8571428571427, + "candidate_ops_with_drain_s_max": 3280.4285714285716, + "throughput_ranges_overlap": false + }, + { + "mode": "reads", + "case": "resident-common-disabled", + "wal": 0, + "phase": "range:uniform:10000@1", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1289.1, + "candidate_ops_s": 1272.25, + "change_ops_s_pct": -1.307113490031797, + "main_ops_s_min": 1248.7, + "main_ops_s_max": 1329.5, + "candidate_ops_s_min": 1243.4, + "candidate_ops_s_max": 1301.1, + "main_p99_us": 892.928, + "candidate_p99_us": 892.928, + "change_p99_us_pct": 0.0, + "main_p99_us_min": 860.16, + "main_p99_us_max": 925.696, + "candidate_p99_us_min": 876.544, + "candidate_p99_us_max": 909.312, + "main_p999_us": 1036.288, + "candidate_p999_us": 1159.1680000000001, + "change_p999_us_pct": 11.857707509881443, + "main_p999_us_min": 974.848, + "main_p999_us_max": 1097.728, + "candidate_p999_us_min": 991.232, + "candidate_p999_us_max": 1327.104, + "main_ops_per_cpu_s": 1289.15, + "candidate_ops_per_cpu_s": 1272.25, + "change_ops_per_cpu_s_pct": -1.3109413179226648, + "main_ops_per_cpu_s_min": 1248.7, + "main_ops_per_cpu_s_max": 1329.6, + "candidate_ops_per_cpu_s_min": 1243.4, + "candidate_ops_per_cpu_s_max": 1301.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.45499999999999996, + "candidate_wr_B_op": 0.45999999999999996, + "change_wr_B_op_pct": 1.098901098901095, + "main_wr_B_op_min": 0.44, + "main_wr_B_op_max": 0.47, + "candidate_wr_B_op_min": 0.45, + "candidate_wr_B_op_max": 0.47, + "main_ops_with_drain_s": 1265.3059585729843, + "candidate_ops_with_drain_s": 1256.1394454164658, + "change_ops_with_drain_s_pct": -0.7244503271648606, + "main_ops_with_drain_s_min": 1222.3465249615438, + "main_ops_with_drain_s_max": 1308.265392184425, + "candidate_ops_with_drain_s_min": 1227.471442673812, + "candidate_ops_with_drain_s_max": 1284.8074481591198, + "throughput_ranges_overlap": true + }, + { + "mode": "writes", + "case": "resident-common", + "wal": 0, + "phase": "ow:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1966796.4500000002, + "candidate_ops_s": 2014988.9, + "change_ops_s_pct": 2.4503018601645277, + "main_ops_s_min": 1651774.3, + "main_ops_s_max": 2281818.6, + "candidate_ops_s_min": 1951505.2, + "candidate_ops_s_max": 2078472.6, + "main_p99_us": 6.272, + "candidate_p99_us": 6.336, + "change_p99_us_pct": 1.0204081632652962, + "main_p99_us_min": 6.208, + "main_p99_us_max": 6.336, + "candidate_p99_us_min": 6.336, + "candidate_p99_us_max": 6.336, + "main_p999_us": 80.64, + "candidate_p999_us": 36.864, + "change_p999_us_pct": -54.28571428571429, + "main_p999_us_min": 51.712, + "main_p999_us_max": 109.568, + "candidate_p999_us_min": 36.352, + "candidate_p999_us_max": 37.376, + "main_ops_per_cpu_s": 306398.75, + "candidate_ops_per_cpu_s": 318094.6, + "change_ops_per_cpu_s_pct": 3.8171989931421013, + "main_ops_per_cpu_s_min": 290814.6, + "main_ops_per_cpu_s_max": 321982.9, + "candidate_ops_per_cpu_s_min": 316910.9, + "candidate_ops_per_cpu_s_max": 319278.3, + "main_rd_B_op": 141.47, + "candidate_rd_B_op": 84.695, + "change_rd_B_op_pct": -40.13218350180251, + "main_rd_B_op_min": 141.46, + "main_rd_B_op_max": 141.48, + "candidate_rd_B_op_min": 83.08, + "candidate_rd_B_op_max": 86.31, + "main_wr_B_op": 187.47, + "candidate_wr_B_op": 112.805, + "change_wr_B_op_pct": -39.827705766255924, + "main_wr_B_op_min": 187.39, + "main_wr_B_op_max": 187.55, + "candidate_wr_B_op_min": 112.58, + "candidate_wr_B_op_max": 113.03, + "main_ops_with_drain_s": 1932737.1243178155, + "candidate_ops_with_drain_s": 1975842.8933216466, + "change_ops_with_drain_s_pct": 2.2302965292833488, + "main_ops_with_drain_s_min": 1615660.716469006, + "main_ops_with_drain_s_max": 2249813.5321666254, + "candidate_ops_with_drain_s_min": 1902096.978557505, + "candidate_ops_with_drain_s_max": 2049588.8080857883, + "throughput_ranges_overlap": true + }, + { + "mode": "writes", + "case": "resident-random", + "wal": 0, + "phase": "ow:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 1532285.1, + "candidate_ops_s": 1614541.25, + "change_ops_s_pct": 5.368201387587712, + "main_ops_s_min": 1417795.4, + "main_ops_s_max": 1646774.8, + "candidate_ops_s_min": 1583743.5, + "candidate_ops_s_max": 1645339.0, + "main_p99_us": 6.016, + "candidate_p99_us": 6.08, + "change_p99_us_pct": 1.0638297872340496, + "main_p99_us_min": 5.952, + "main_p99_us_max": 6.08, + "candidate_p99_us_min": 5.952, + "candidate_p99_us_max": 6.208, + "main_p999_us": 122.36800000000001, + "candidate_p999_us": 93.184, + "change_p999_us_pct": -23.84937238493725, + "main_p999_us_min": 103.424, + "main_p999_us_max": 141.312, + "candidate_p999_us_min": 74.752, + "candidate_p999_us_max": 111.616, + "main_ops_per_cpu_s": 294729.35, + "candidate_ops_per_cpu_s": 293141.45, + "change_ops_per_cpu_s_pct": -0.5387654809403841, + "main_ops_per_cpu_s_min": 288644.5, + "main_ops_per_cpu_s_max": 300814.2, + "candidate_ops_per_cpu_s_min": 291701.9, + "candidate_ops_per_cpu_s_max": 294581.0, + "main_rd_B_op": 150.51999999999998, + "candidate_rd_B_op": 138.03, + "change_rd_B_op_pct": -8.297900611214448, + "main_rd_B_op_min": 141.32, + "main_rd_B_op_max": 159.72, + "candidate_rd_B_op_min": 132.82, + "candidate_rd_B_op_max": 143.24, + "main_wr_B_op": 191.715, + "candidate_wr_B_op": 185.73000000000002, + "change_wr_B_op_pct": -3.1218214537203637, + "main_wr_B_op_min": 187.3, + "main_wr_B_op_max": 196.13, + "candidate_wr_B_op_min": 182.88, + "candidate_wr_B_op_max": 188.58, + "main_ops_with_drain_s": 1498383.1798511934, + "candidate_ops_with_drain_s": 1588280.7675773385, + "change_ops_with_drain_s_pct": 5.999639406995549, + "main_ops_with_drain_s_min": 1380056.2112179098, + "main_ops_with_drain_s_max": 1616710.1484844768, + "candidate_ops_with_drain_s_min": 1558664.2883503507, + "candidate_ops_with_drain_s_max": 1617897.2468043265, + "throughput_ranges_overlap": true + }, + { + "mode": "writes", + "case": "resident-common", + "wal": 1, + "phase": "ow:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 629594.05, + "candidate_ops_s": 749170.1000000001, + "change_ops_s_pct": 18.992563541539198, + "main_ops_s_min": 578949.9, + "main_ops_s_max": 680238.2, + "candidate_ops_s_min": 691557.9, + "candidate_ops_s_max": 806782.3, + "main_p99_us": 217.08800000000002, + "candidate_p99_us": 204.8, + "change_p99_us_pct": -5.660377358490576, + "main_p99_us_min": 198.656, + "main_p99_us_max": 235.52, + "candidate_p99_us_min": 190.464, + "candidate_p99_us_max": 219.136, + "main_p999_us": 1474.56, + "candidate_p999_us": 1044.48, + "change_p999_us_pct": -29.166666666666664, + "main_p999_us_min": 1425.408, + "main_p999_us_max": 1523.712, + "candidate_p999_us_min": 925.696, + "candidate_p999_us_max": 1163.264, + "main_ops_per_cpu_s": 259060.5, + "candidate_ops_per_cpu_s": 256907.85, + "change_ops_per_cpu_s_pct": -0.830944895111374, + "main_ops_per_cpu_s_min": 243713.3, + "main_ops_per_cpu_s_max": 274407.7, + "candidate_ops_per_cpu_s_min": 248907.8, + "candidate_ops_per_cpu_s_max": 264907.9, + "main_rd_B_op": 158.185, + "candidate_rd_B_op": 94.035, + "change_rd_B_op_pct": -40.5537819641559, + "main_rd_B_op_min": 156.79, + "main_rd_B_op_max": 159.58, + "candidate_rd_B_op_min": 89.4, + "candidate_rd_B_op_max": 98.67, + "main_wr_B_op": 427.605, + "candidate_wr_B_op": 353.375, + "change_wr_B_op_pct": -17.35947895838449, + "main_wr_B_op_min": 419.71, + "main_wr_B_op_max": 435.5, + "candidate_wr_B_op_min": 352.9, + "candidate_wr_B_op_max": 353.85, + "main_ops_with_drain_s": 620393.2591604214, + "candidate_ops_with_drain_s": 735223.1354268892, + "change_ops_with_drain_s_pct": 18.509207598720057, + "main_ops_with_drain_s_min": 569917.558754768, + "main_ops_with_drain_s_max": 670868.9595660749, + "candidate_ops_with_drain_s_min": 678682.1638861629, + "candidate_ops_with_drain_s_max": 791764.1069676154, + "throughput_ranges_overlap": false + }, + { + "mode": "writes", + "case": "resident-random", + "wal": 1, + "phase": "ow:uniform@8", + "main_samples": 2, + "candidate_samples": 2, + "main_ops_s": 576156.75, + "candidate_ops_s": 525078.8999999999, + "change_ops_s_pct": -8.865269737792724, + "main_ops_s_min": 570998.2, + "main_ops_s_max": 581315.3, + "candidate_ops_s_min": 484679.1, + "candidate_ops_s_max": 565478.7, + "main_p99_us": 235.51999999999998, + "candidate_p99_us": 259.072, + "change_p99_us_pct": 10.000000000000009, + "main_p99_us_min": 227.328, + "main_p99_us_max": 243.712, + "candidate_p99_us_min": 251.904, + "candidate_p99_us_max": 266.24, + "main_p999_us": 1425.408, + "candidate_p999_us": 1458.176, + "change_p999_us_pct": 2.298850574712641, + "main_p999_us_min": 1327.104, + "main_p999_us_max": 1523.712, + "candidate_p999_us_min": 1327.104, + "candidate_p999_us_max": 1589.248, + "main_ops_per_cpu_s": 228188.05, + "candidate_ops_per_cpu_s": 182787.35, + "change_ops_per_cpu_s_pct": -19.89617773586302, + "main_ops_per_cpu_s_min": 216555.9, + "main_ops_per_cpu_s_max": 239820.2, + "candidate_ops_per_cpu_s_min": 162959.0, + "candidate_ops_per_cpu_s_max": 202615.7, + "main_rd_B_op": 153.7, + "candidate_rd_B_op": 131.29500000000002, + "change_rd_B_op_pct": -14.577098243331143, + "main_rd_B_op_min": 149.64, + "main_rd_B_op_max": 157.76, + "candidate_rd_B_op_min": 127.73, + "candidate_rd_B_op_max": 134.86, + "main_wr_B_op": 437.94, + "candidate_wr_B_op": 428.235, + "change_wr_B_op_pct": -2.2160569941087838, + "main_wr_B_op_min": 437.83, + "main_wr_B_op_max": 438.05, + "candidate_wr_B_op_min": 422.31, + "candidate_wr_B_op_max": 434.16, + "main_ops_with_drain_s": 566929.2403528946, + "candidate_ops_with_drain_s": 510361.04196030286, + "change_ops_with_drain_s_pct": -9.977999786601233, + "main_ops_with_drain_s_min": 561259.9827988697, + "main_ops_with_drain_s_max": 572598.4979069195, + "candidate_ops_with_drain_s_min": 473162.0500305064, + "candidate_ops_with_drain_s_max": 547560.0338900993, + "throughput_ranges_overlap": false + }, + { + "mode": "repeat", + "case": "resident-common", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 3, + "candidate_samples": 3, + "main_ops_s": 4025.3, + "candidate_ops_s": 3538.366666666667, + "change_ops_s_pct": -12.096820940882258, + "main_ops_s_min": 3909.3, + "main_ops_s_max": 4235.1, + "candidate_ops_s_min": 3136.6, + "candidate_ops_s_max": 4012.2, + "main_p99_us": 4609.365333333333, + "candidate_p99_us": 4423.68, + "change_p99_us_pct": -4.028436018957338, + "main_p99_us_min": 4259.84, + "main_p99_us_max": 5046.272, + "candidate_p99_us_min": 3571.712, + "candidate_p99_us_max": 5177.344, + "main_p999_us": 4871.509333333333, + "candidate_p999_us": 4707.669333333333, + "change_p999_us_pct": -3.363228699551568, + "main_p999_us_min": 4653.056, + "main_p999_us_max": 5177.344, + "candidate_p999_us_min": 3768.32, + "candidate_p999_us_max": 5308.416, + "main_ops_per_cpu_s": 503.26666666666665, + "candidate_ops_per_cpu_s": 442.3666666666667, + "change_ops_per_cpu_s_pct": -12.10094052192343, + "main_ops_per_cpu_s_min": 488.7, + "main_ops_per_cpu_s_max": 529.5, + "candidate_ops_per_cpu_s_min": 392.1, + "candidate_ops_per_cpu_s_max": 501.6, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 4001.016958481691, + "candidate_ops_with_drain_s": 3512.0952062839924, + "change_ops_with_drain_s_pct": -12.219937012794734, + "main_ops_with_drain_s_min": 3882.7385287691186, + "main_ops_with_drain_s_max": 4216.366894537731, + "candidate_ops_with_drain_s_min": 3111.9783054434815, + "candidate_ops_with_drain_s_max": 3982.0034405187243, + "throughput_ranges_overlap": true + }, + { + "mode": "repeat", + "case": "resident-common-disabled", + "wal": 0, + "phase": "range:uniform:10000@8", + "main_samples": 3, + "candidate_samples": 3, + "main_ops_s": 3854.7999999999997, + "candidate_ops_s": 3762.9666666666667, + "change_ops_s_pct": -2.3823112310193295, + "main_ops_s_min": 3365.5, + "main_ops_s_max": 4357.7, + "candidate_ops_s_min": 3613.8, + "candidate_ops_s_max": 3853.3, + "main_p99_us": 3975.8506666666667, + "candidate_p99_us": 4576.597333333333, + "change_p99_us_pct": 15.1098901098901, + "main_p99_us_min": 3440.64, + "main_p99_us_max": 5046.272, + "candidate_p99_us_min": 4161.536, + "candidate_p99_us_max": 5177.344, + "main_p999_us": 4237.9946666666665, + "candidate_p999_us": 4740.437333333333, + "change_p999_us_pct": 11.855670103092786, + "main_p999_us_min": 3637.248, + "main_p999_us_max": 5308.416, + "candidate_p999_us_min": 4390.912, + "candidate_p999_us_max": 5177.344, + "main_ops_per_cpu_s": 481.93333333333334, + "candidate_ops_per_cpu_s": 470.43333333333334, + "change_ops_per_cpu_s_pct": -2.386222160741458, + "main_ops_per_cpu_s_min": 420.8, + "main_ops_per_cpu_s_max": 544.8, + "candidate_ops_per_cpu_s_min": 451.8, + "candidate_ops_per_cpu_s_max": 481.7, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 3854.866666666667, + "candidate_ops_with_drain_s": 3763.0222222222224, + "change_ops_with_drain_s_pct": -2.382558266894952, + "main_ops_with_drain_s_min": 3365.5333333333333, + "main_ops_with_drain_s_max": 4357.8, + "candidate_ops_with_drain_s_min": 3613.866666666667, + "candidate_ops_with_drain_s_max": 3853.3333333333335, + "throughput_ranges_overlap": true + }, + { + "mode": "repeat", + "case": "resident-common-disabled", + "wal": 0, + "phase": "range:uniform:10000@1", + "main_samples": 3, + "candidate_samples": 3, + "main_ops_s": 1350.8333333333333, + "candidate_ops_s": 1376.3, + "change_ops_s_pct": 1.8852560148056696, + "main_ops_s_min": 1334.6, + "main_ops_s_max": 1377.4, + "candidate_ops_s_min": 1373.1, + "candidate_ops_s_max": 1381.2, + "main_p99_us": 876.544, + "candidate_p99_us": 811.008, + "change_p99_us_pct": -7.476635514018682, + "main_p99_us_min": 843.776, + "main_p99_us_max": 925.696, + "candidate_p99_us_min": 794.624, + "candidate_p99_us_max": 827.392, + "main_p999_us": 1220.608, + "candidate_p999_us": 936.6186666666666, + "change_p999_us_pct": -23.266219239373598, + "main_p999_us_min": 1007.616, + "main_p999_us_max": 1359.872, + "candidate_p999_us_min": 860.16, + "candidate_p999_us_max": 974.848, + "main_ops_per_cpu_s": 1350.9, + "candidate_ops_per_cpu_s": 1376.2333333333333, + "change_ops_per_cpu_s_pct": 1.8752930145335078, + "main_ops_per_cpu_s_min": 1334.9, + "main_ops_per_cpu_s_max": 1377.2, + "candidate_ops_per_cpu_s_min": 1373.2, + "candidate_ops_per_cpu_s_max": 1381.2, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.33666666666666667, + "candidate_wr_B_op": 0.4, + "change_wr_B_op_pct": 18.811881188118807, + "main_wr_B_op_min": 0.2, + "main_wr_B_op_max": 0.41, + "candidate_wr_B_op_min": 0.4, + "candidate_wr_B_op_max": 0.4, + "main_ops_with_drain_s": 1341.7840419000438, + "candidate_ops_with_drain_s": 1367.106487376034, + "change_ops_with_drain_s_pct": 1.8872221374858666, + "main_ops_with_drain_s_min": 1322.6744186046512, + "main_ops_with_drain_s_max": 1371.639115714001, + "candidate_ops_with_drain_s_min": 1362.7762339552733, + "candidate_ops_with_drain_s_max": 1370.87275855224, + "throughput_ranges_overlap": true + }, + { + "mode": "repeat", + "case": "resident-nonlexical", + "wal": 0, + "phase": "range:uniform:1@8", + "main_samples": 3, + "candidate_samples": 3, + "main_ops_s": 1028346.2, + "candidate_ops_s": 969401.0, + "change_ops_s_pct": -5.732038490539471, + "main_ops_s_min": 995559.2, + "main_ops_s_max": 1081379.8, + "candidate_ops_s_min": 944712.2, + "candidate_ops_s_max": 990583.5, + "main_p99_us": 10.624, + "candidate_p99_us": 11.392, + "change_p99_us_pct": 7.228915662650581, + "main_p99_us_min": 10.112, + "main_p99_us_max": 10.88, + "candidate_p99_us_min": 11.136, + "candidate_p99_us_max": 11.648, + "main_p999_us": 19.882666666666665, + "candidate_p999_us": 20.565333333333335, + "change_p999_us_pct": 3.4334763948498104, + "main_p999_us_min": 18.688, + "main_p999_us_max": 20.736, + "candidate_p999_us_min": 19.712, + "candidate_p999_us_max": 21.76, + "main_ops_per_cpu_s": 128571.7, + "candidate_ops_per_cpu_s": 121192.36666666667, + "change_ops_per_cpu_s_pct": -5.739469364823934, + "main_ops_per_cpu_s_min": 124463.5, + "main_ops_per_cpu_s_max": 135198.3, + "candidate_ops_per_cpu_s_min": 118102.7, + "candidate_ops_per_cpu_s_max": 123841.1, + "main_rd_B_op": 0.0, + "candidate_rd_B_op": 0.0, + "change_rd_B_op_pct": null, + "main_rd_B_op_min": 0.0, + "main_rd_B_op_max": 0.0, + "candidate_rd_B_op_min": 0.0, + "candidate_rd_B_op_max": 0.0, + "main_wr_B_op": 0.0, + "candidate_wr_B_op": 0.0, + "change_wr_B_op_pct": null, + "main_wr_B_op_min": 0.0, + "main_wr_B_op_max": 0.0, + "candidate_wr_B_op_min": 0.0, + "candidate_wr_B_op_max": 0.0, + "main_ops_with_drain_s": 1023362.4445549916, + "candidate_ops_with_drain_s": 964199.6596989221, + "change_ops_with_drain_s_pct": -5.781215166811826, + "main_ops_with_drain_s_min": 991214.1908934023, + "main_ops_with_drain_s_max": 1075374.1050119333, + "candidate_ops_with_drain_s_min": 938906.7117206652, + "candidate_ops_with_drain_s_max": 985801.499369734, + "throughput_ranges_overlap": false + }, + { + "mode": "repeat", + "case": "resident-random", + "wal": 1, + "phase": "ow:uniform@8", + "main_samples": 3, + "candidate_samples": 3, + "main_ops_s": 890070.2666666666, + "candidate_ops_s": 837595.4, + "change_ops_s_pct": -5.895586970137334, + "main_ops_s_min": 771902.2, + "main_ops_s_max": 1050078.9, + "candidate_ops_s_min": 809333.6, + "candidate_ops_s_max": 880444.9, + "main_p99_us": 149.84533333333334, + "candidate_p99_us": 152.23466666666667, + "change_p99_us_pct": 1.5945330296127436, + "main_p99_us_min": 130.048, + "main_p99_us_max": 161.792, + "candidate_p99_us_min": 149.504, + "candidate_p99_us_max": 153.6, + "main_p999_us": 1044.48, + "candidate_p999_us": 1294.336, + "change_p999_us_pct": 23.921568627450984, + "main_p999_us_min": 479.232, + "main_p999_us_max": 1392.64, + "candidate_p999_us_min": 1196.032, + "candidate_p999_us_max": 1359.872, + "main_ops_per_cpu_s": 244809.63333333333, + "candidate_ops_per_cpu_s": 242372.16666666666, + "change_ops_per_cpu_s_pct": -0.9956579867704041, + "main_ops_per_cpu_s_min": 241168.8, + "main_ops_per_cpu_s_max": 248213.5, + "candidate_ops_per_cpu_s_min": 240051.1, + "candidate_ops_per_cpu_s_max": 244257.4, + "main_rd_B_op": 161.31666666666666, + "candidate_rd_B_op": 161.42333333333335, + "change_rd_B_op_pct": 0.06612253331956808, + "main_rd_B_op_min": 153.19, + "main_rd_B_op_max": 165.73, + "candidate_rd_B_op_min": 155.83, + "candidate_rd_B_op_max": 165.84, + "main_wr_B_op": 430.62, + "candidate_wr_B_op": 430.9633333333333, + "change_wr_B_op_pct": 0.07973000170296007, + "main_wr_B_op_min": 428.62, + "main_wr_B_op_max": 432.23, + "candidate_wr_B_op_min": 429.49, + "candidate_wr_B_op_max": 432.01, + "main_ops_with_drain_s": 882006.7343931693, + "candidate_ops_with_drain_s": 828312.1230690569, + "change_ops_with_drain_s_pct": -6.087777930749572, + "main_ops_with_drain_s_min": 763515.9907682163, + "main_ops_with_drain_s_max": 1041828.4278060718, + "candidate_ops_with_drain_s_min": 803133.5670812385, + "candidate_ops_with_drain_s_max": 871105.5339357562, + "throughput_ranges_overlap": true + } +] diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-automatic-log-recovery.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-automatic-log-recovery.log new file mode 100644 index 000000000..e3ce73261 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-automatic-log-recovery.log @@ -0,0 +1,3 @@ +Running 1 CTests, suite name 'splinterdb_forked_child', test case 'automatic_log_barriers_survive_process_exit'. +TEST 1/1 splinterdb_forked_child:automatic_log_barriers_survive_process_exit [OK] +RESULTS: 1 tests (1 ok, 0 failed, 0 skipped) ran in 750 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-btree.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-btree.log new file mode 100644 index 000000000..d67a52443 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-btree.log @@ -0,0 +1,36 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/12 btree:test_compressed_suffix_copy [OK] +TEST 2/12 btree:test_leaf_hdr [OK] +TEST 3/12 btree:test_leaf_hdr_search [OK] +TEST 4/12 btree:test_index_hdr [OK] +TEST 5/12 btree:test_index_hdr_search [OK] +TEST 6/12 btree:test_leaf_split [OK] +TEST 7/12 btree:test_defragmented_leaf_bytes [OK] +TEST 8/12 btree:test_defragmented_index_bytes [OK] +TEST 9/12 btree:test_invalid_branch_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 10/12 btree:test_invalid_branch_async_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 11/12 btree:test_invalid_branch_iterator Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 12/12 btree:test_invalid_branch_metadata_queries Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 12 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.json new file mode 100644 index 000000000..62f4e5808 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.json @@ -0,0 +1,199 @@ +{ + "command": [ + "make", + "-j6", + "BUILD_ROOT=build-main-6105c49f", + "BUILD_MODE=debug", + "all" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "started": 1792006846.5902853, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792006848.9100454, + "log_sha256": "ec851d07175da201343734413275610d482f4a8df028a2dd6973c0366772800a", + "log": "debug-build.log", + "seconds": 2.3197600841522217, + "TMPDIR": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-9mdij74s", + "source_manifest": { + "head": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "origin_main": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "source_sha256": { + "Makefile": "64ffc4bcbe25fca2a45da700ead4a6d4add7601c6f406290e2cf5cde52e95296", + "examples/README.md": "e5f70bd344661c7018b43dc9fe02fa9bfa047f277b2de4535f0e035b1ffb2d71", + "examples/splinterdb_custom_ipv4_addr_sortcmp_example.c": "add1a04c25e8bb1ae9d8dfdf1a04c50228b9820c3da01e021f5359be816118bb", + "examples/splinterdb_intro_example.c": "ba0138e7994d16e45c77667c1e5576ca38e727aaa0cab0872ba0e5afb5ea44cc", + "examples/splinterdb_iterators_example.c": "22a9ca47be0433c276e9ad4ce119962edcc2911814e1e62cb22d3c8a8a26beed", + "examples/splinterdb_optimize_example.c": "bbc5a089afc7e62f06d00ffab1fd2b1c1cf1111669a1a7452d587e1f68f62c06", + "examples/splinterdb_wide_values_example.c": "a333d406974f0b3a85ed418d21e2846e3e2e80028d18254469d61f900a95d831", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "2a4487280f7d81a78e4d27e14e62c0c4c62dd1539e94df380fdf097a859556b7", + "tests/config.h": "754d9e0aca8f9d0359b73a5d6e470e80a2ac48ac43eb46d43aa1a5104fd89065", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "c011e72c204cc7640d1d259c791ba7ead40ef2a2c01fcfff3140d988d6666547", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "d58945f7c783584c65963381068c0225ed34dcb8d7dad7b2dfe865692a452853", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "5464ef364dddffcb9aa5d80c1ee47994fb2ef6c451da25ac69b80c330f69d28c", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "cb06609cf0134f1952a8742d19ef850ff4c80d86a6ffca85607998a2c921b17a", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "fc47bbf44ca520c6ebcbc8843871e394a2de4521cb3c679c55a01a4b8c278d21", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "1aa7a844349a1070f497f8ded0be9a36a5cf492d8731b49d626a771664f3ba79", + "tests/unit/btree_test.c": "cfb4057349c6580acead4950876f9665ac0d0d38ef7d8289bf90db00e88878e3", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "8c916b53e14f3a1f03b314f33d6d67975d7c60909a06c5c5b41b62ef02dc94f4", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/notification_test.c": "b9dcf332b319cf1ff0c1f9c3aa7fc32a35c9f19b81f8122d55c6ed7f6e02e84b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "297752b1102d3d85ef8cd4be54c0fa15d9a6aeb7e03ce092d14a967ccff42244", + "tests/unit/splinterdb_forked_child_test.c": "88fb68b05aef1238ddce814eccd636b1dfffcb3f439d4892f66b82ad686a075d", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "719af1e83c60df31e63dfd782ace852605edbc355dfb487608e9c77a8f33ebae", + "tests/unit/splinterdb_quick_test.c": "9515f6fe840c1012f54701e1e5a75430f764063b6a4f3091f426bd3038bc2eda", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "04864b8fce2142d49abefebd0dd3acca6158ebea495484ef05d670013a6c8977", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "4237641a463b28b7be333ed5d4f80a4830c3b0ef75335b196da34318a9f58b18", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" + }, + "tracked_source_diff": "diff --git a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\nindex 7a251f1c..8855fc0c 100644\n--- a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n+++ b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n@@ -140,6 +140,8 @@ main()\n // up-front. Every insert will invoke this method to insert the new key\n // in custom-sorted order.\n splinter_data_cfg.key_compare = custom_key_compare;\n+ // IP address order differs from bytewise lexical order.\n+ splinter_data_cfg.key_compare_is_lexical = FALSE;\n \n // Basic configuration of a SplinterDB instance\n splinterdb_config splinterdb_cfg;" + }, + "build_config": null +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.log new file mode 100644 index 000000000..14761b542 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-build.log @@ -0,0 +1,131 @@ +Checking for mismatched config...No mismatched config found +Saving config to build-main-6105c49f/debug/build-config.e33dfc688a9c2bf2dad4e17ef758ec3e +Compiling src/PackedArray.c [build-main-6105c49f/debug/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-6105c49f/debug/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-6105c49f/debug/obj/src/core.o] +Compiling src/default_data_config.c [build-main-6105c49f/debug/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-6105c49f/debug/obj/src/memtable.o] +Compiling src/merge.c [build-main-6105c49f/debug/obj/src/merge.o] +Compiling src/notification.c [build-main-6105c49f/debug/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-6105c49f/debug/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-6105c49f/debug/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-6105c49f/debug/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-6105c49f/debug/obj/src/superblock.o] +Compiling src/trunk.c [build-main-6105c49f/debug/obj/src/trunk.o] +Compiling tools/splinter_inspect.c [build-main-6105c49f/debug/obj/tools/splinter_inspect.o] +Compiling src/allocator.c [build-main-6105c49f/debug/obj/src/allocator.o] +Compiling src/blob.c [build-main-6105c49f/debug/obj/src/blob.o] +Compiling src/blob_build.c [build-main-6105c49f/debug/obj/src/blob_build.o] +Compiling src/btree.c [build-main-6105c49f/debug/obj/src/btree.o] +Compiling src/clockcache.c [build-main-6105c49f/debug/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-6105c49f/debug/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-6105c49f/debug/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-6105c49f/debug/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-6105c49f/debug/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-6105c49f/debug/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-6105c49f/debug/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-6105c49f/debug/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-6105c49f/debug/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-6105c49f/debug/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-6105c49f/debug/obj/src/task.o] +Compiling src/util.c [build-main-6105c49f/debug/obj/src/util.o] +Compiling src/writeback_set.c [build-main-6105c49f/debug/obj/src/writeback_set.o] +Compiling tests/functional/avlTree.c [build-main-6105c49f/debug/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-6105c49f/debug/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-6105c49f/debug/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-6105c49f/debug/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-6105c49f/debug/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-6105c49f/debug/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-6105c49f/debug/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-6105c49f/debug/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-6105c49f/debug/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-6105c49f/debug/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-6105c49f/debug/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-6105c49f/debug/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-6105c49f/debug/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-6105c49f/debug/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-6105c49f/debug/obj/tests/config.o] +Compiling tests/test_common.c [build-main-6105c49f/debug/obj/tests/test_common.o] +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Compiling tests/test_data.c [build-main-6105c49f/debug/obj/tests/test_data.o] +Compiling tests/unit/btree_stress_test.c [build-main-6105c49f/debug/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-6105c49f/debug/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-6105c49f/debug/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-6105c49f/debug/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-6105c49f/debug/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-6105c49f/debug/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-6105c49f/debug/obj/tests/unit/misc_test.o] +Compiling tests/unit/notification_test.c [build-main-6105c49f/debug/obj/tests/unit/notification_test.o] +Compiling tests/unit/platform_apis_test.c [build-main-6105c49f/debug/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-6105c49f/debug/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-6105c49f/debug/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-6105c49f/debug/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-6105c49f/debug/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-6105c49f/debug/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-6105c49f/debug/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-6105c49f/debug/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-6105c49f/debug/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-6105c49f/debug/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-6105c49f/debug/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-6105c49f/debug/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-6105c49f/debug/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-6105c49f/debug/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-6105c49f/debug/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-6105c49f/debug/obj/tests/unit/writeback_set_test.o] +Linking build-main-6105c49f/debug/bin/unit/btree_stress_test +Linking build-main-6105c49f/debug/bin/unit/btree_test +Compiling tests/unit/config_parse_test.c [build-main-6105c49f/debug/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-6105c49f/debug/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-6105c49f/debug/bin/unit/misc_test +Linking build-main-6105c49f/debug/bin/unit/platform_apis_test +Linking build-main-6105c49f/debug/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-6105c49f/debug/obj/tests/unit/splinter_test.o] +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-6105c49f/debug/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-6105c49f/debug/bin/unit/util_test +Linking build-main-6105c49f/debug/bin/unit/vector_test +Linking build-main-6105c49f/debug/bin/unit/writeback_set_test +Compiling examples/splinterdb_custom_ipv4_addr_sortcmp_example.c [build-main-6105c49f/debug/obj/examples/splinterdb_custom_ipv4_addr_sortcmp_example.o] +Compiling examples/splinterdb_intro_example.c [build-main-6105c49f/debug/obj/examples/splinterdb_intro_example.o] +Compiling examples/splinterdb_iterators_example.c [build-main-6105c49f/debug/obj/examples/splinterdb_iterators_example.o] +Compiling examples/splinterdb_optimize_example.c [build-main-6105c49f/debug/obj/examples/splinterdb_optimize_example.o] +Compiling examples/splinterdb_wide_values_example.c [build-main-6105c49f/debug/obj/examples/splinterdb_wide_values_example.o] +Building archive build-main-6105c49f/debug/lib/libsplinterdb.a +Linking build-main-6105c49f/debug/lib/libsplinterdb.so +Linking build-main-6105c49f/debug/bin/splinter_inspect +Linking build-main-6105c49f/debug/bin/driver_test +Linking build-main-6105c49f/debug/bin/unit_test +Linking build-main-6105c49f/debug/bin/unit/config_parse_test +Linking build-main-6105c49f/debug/bin/unit/large_inserts_stress_test +Linking build-main-6105c49f/debug/bin/unit/limitations_test +Linking build-main-6105c49f/debug/bin/unit/merge_test +Linking build-main-6105c49f/debug/bin/unit/notification_test +Linking build-main-6105c49f/debug/bin/unit/splinterdb_forked_child_test +Linking build-main-6105c49f/debug/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-6105c49f/debug/bin/unit/splinterdb_optimize_test +Linking build-main-6105c49f/debug/bin/unit/splinterdb_quick_test +Linking build-main-6105c49f/debug/bin/unit/splinterdb_stress_test +Linking build-main-6105c49f/debug/bin/unit/superblock_test +Linking build-main-6105c49f/debug/bin/unit/task_system_test +Linking build-main-6105c49f/debug/bin/unit/trunk_async_test +Linking build-main-6105c49f/debug/bin/unit/trunk_gc_test +Linking build-main-6105c49f/debug/bin/unit/trunk_split_test +Linking build-main-6105c49f/debug/bin/unit/writable_buffer_test +Linking build-main-6105c49f/debug/bin/examples/splinterdb_custom_ipv4_addr_sortcmp_example +Linking build-main-6105c49f/debug/bin/examples/splinterdb_intro_example +Linking build-main-6105c49f/debug/bin/examples/splinterdb_iterators_example +Linking build-main-6105c49f/debug/bin/examples/splinterdb_optimize_example +Linking build-main-6105c49f/debug/bin/examples/splinterdb_wide_values_example +Linking build-main-6105c49f/debug/bin/unit/splinter_test diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-functional-log.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-functional-log.log new file mode 100644 index 000000000..ff9b156f2 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-functional-log.log @@ -0,0 +1,11 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/driver_test: splinterdb_build_version 97e5c0e3-dirty +Dispatch test log_test + +Started log_test!! +Malformed log page sequence at page 9052160: group=3 page=0 follows group=1 page=0 (terminated). +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +shard_log_iterator_init: record validation failed in group 1 at log page 146800640: Invalid argument; discarding this group and the rest +Malformed log page sequence at page 147587072: group=1 page=0 follows group=1 page=0. +shard_log_iterator_init: record validation failed in group 2 at log page 148377600: Input/output error; discarding this group and the rest +log returned 500000 of 500000 entries diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-merge.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-merge.log new file mode 100644 index 000000000..c2c001f9c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-merge.log @@ -0,0 +1,18 @@ +Running 1 CTests, suite name 'merge', test case 'all'. +TEST 1/10 merge:direction_change_propagates_child_errors [OK] +TEST 2/10 merge:direction_change_succeeds [OK] +TEST 3/10 merge:failed_direction_change_preserves_iterator_ownership setup_ordered_iterators: exception: Cannot allocate memory +setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 4/10 merge:failed_creation_cleans_up setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 5/10 merge:maximum_arity_is_accepted merge_iterator_create: bad parameter merge_itor 0x7ffd3240b168 num_trees 1025 itor_arr 0x7ffd3240b170 cfg 0x7ffd3240d1b0 +[OK] +TEST 6/10 merge:direction_change_clears_stale_equal_key_flag [OK] +TEST 7/10 merge:direction_change_at_duplicate_key_moves_to_adjacent_key [OK] +TEST 8/10 merge:random_direction_changes_match_merged_sequence [OK] +TEST 9/10 merge:filtering_does_not_eagerly_drain_nonmatching_sources [OK] +TEST 10/10 merge:filtering_propagates_errors_while_skipping_rejected_keys setup_ordered_iterators: exception: Input/output error +setup_ordered_iterators: exception: Input/output error +[OK] +RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 1 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-results.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-results.json new file mode 100644 index 000000000..609fc3d84 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-results.json @@ -0,0 +1,156 @@ +[ + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/btree", + "started": 1792007050.2731333, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007050.2888684, + "log_sha256": "8d6f3caf1bd818039731202863e513bfa32dffa0b668513bf8fc5b17721b9a9b", + "log": "debug-btree.log", + "seconds": 0.015735149383544922, + "name": "btree", + "binary_sha256": "ba072fdd14e78f0380656584a82ed3c2175a08ba73a6873f68524846260dab49", + "summaries": [ + "RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 12 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/superblock_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/superblock", + "started": 1792007050.2913764, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007050.3555405, + "log_sha256": "e2c7a8d4c83a3efbcdba82d51287d69fbb76a04a828b3d2b4d23fb08c2b8f6c7", + "log": "debug-superblock.log", + "seconds": 0.0641641616821289, + "name": "superblock", + "binary_sha256": "82ea68f6be0882de693de207ad870b0e198355e48599d8d90d047345fbee84d1", + "summaries": [ + "RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 37 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/merge_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/merge", + "started": 1792007050.35791, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007050.3619225, + "log_sha256": "90bda4d9f7155fdb6f9a2e394aa3acc5746f0d71217805fcf2210fa3d4f27a3b", + "log": "debug-merge.log", + "seconds": 0.004012584686279297, + "name": "merge", + "binary_sha256": "d3a5968c15ecaf68bbc936d9a9333534f6f0a6eab5498161f25e5792146ff380", + "summaries": [ + "RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 1 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/splinterdb_quick_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/splinterdb_quick", + "started": 1792007050.3634038, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007062.9243162, + "log_sha256": "f0f92daa0cb7550e9767a81139bd5abfc4428225588502b5245fae1af36de79b", + "log": "debug-splinterdb_quick.log", + "seconds": 12.560912370681763, + "name": "splinterdb_quick", + "binary_sha256": "6d0c03c6dec785b01bced9e71e1ce2f92777e5b8b954529781b01045400d9450", + "summaries": [ + "RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 12535 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/splinter_test", + "--db-location", + "core.db", + "--cache-capacity-mib", + "128", + "--db-capacity-gib", + "64" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/splinter", + "started": 1792007062.9262893, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007145.0106342, + "log_sha256": "4fb0254a17a2aa94f48c0a0a74fff31af30102d1db784cf5fc968d274bcd1731", + "log": "debug-splinter.log", + "seconds": 82.0843448638916, + "name": "splinter", + "binary_sha256": "7b7adc92ad3bb3fc2cea2fc3c2dba6a444858ace2cd440f4ebc407a3efc76f5c", + "summaries": [ + "RESULTS: 44 tests (44 ok, 0 failed, 0 skipped) ran in 82052 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a", + "blob_cases": [ + "TEST 1/44 splinter:test_blob_checksums [OK]", + "TEST 42/44 splinter:test_blob_descriptor_sizes [OK]", + "TEST 43/44 splinter:test_blob_trees [OK]", + "TEST 44/44 splinter:test_blob_height_three_and_large_stats [OK]" + ] + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/unit/splinterdb_forked_child_test", + "automatic_log_barriers_survive_process_exit" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/automatic-log-recovery", + "started": 1792007145.0127292, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007145.779022, + "log_sha256": "8dc9ad999563816f8e216bc466f0e27af5f128d687db59d144b9ccc6fd3887f1", + "log": "debug-automatic-log-recovery.log", + "seconds": 0.7662928104400635, + "name": "automatic-log-recovery", + "binary_sha256": "32b4522bfcc17783570f036b93ae38e27a8ee30a10c7da8db70f79805ceaa30d", + "summaries": [ + "RESULTS: 1 tests (1 ok, 0 failed, 0 skipped) ran in 750 ms" + ], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/debug/bin/driver_test", + "log_test", + "--db-location", + "log.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "4" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-debug-d9ao8tfw/functional-log", + "started": 1792007145.7811332, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007146.6978927, + "log_sha256": "eedf17c606920f787b8601ebc222198fe2eaa797d80870fd672096fa65c81222", + "log": "debug-functional-log.log", + "seconds": 0.9167594909667969, + "name": "functional-log", + "binary_sha256": "14080d49b4ee400c6766550232a558f17d7e115e880f3973a04ce30c6a73eaf0", + "summaries": [], + "library_sha256": "ea4f3738e0f55b1f4799195e5ebab6478d5be74b22c384550bb59a66430f4e2a", + "replay_summary": [ + "log returned 500000 of 500000 entries" + ] + } +] diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-check.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-check.json new file mode 100644 index 000000000..3629d318a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-check.json @@ -0,0 +1,3 @@ +{ + "unchanged": true +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-manifest.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-manifest.json new file mode 100644 index 000000000..e0e39bcbe --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-source-manifest.json @@ -0,0 +1,180 @@ +{ + "head": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "origin_main": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "source_sha256": { + "Makefile": "64ffc4bcbe25fca2a45da700ead4a6d4add7601c6f406290e2cf5cde52e95296", + "examples/README.md": "e5f70bd344661c7018b43dc9fe02fa9bfa047f277b2de4535f0e035b1ffb2d71", + "examples/splinterdb_custom_ipv4_addr_sortcmp_example.c": "add1a04c25e8bb1ae9d8dfdf1a04c50228b9820c3da01e021f5359be816118bb", + "examples/splinterdb_intro_example.c": "ba0138e7994d16e45c77667c1e5576ca38e727aaa0cab0872ba0e5afb5ea44cc", + "examples/splinterdb_iterators_example.c": "22a9ca47be0433c276e9ad4ce119962edcc2911814e1e62cb22d3c8a8a26beed", + "examples/splinterdb_optimize_example.c": "bbc5a089afc7e62f06d00ffab1fd2b1c1cf1111669a1a7452d587e1f68f62c06", + "examples/splinterdb_wide_values_example.c": "a333d406974f0b3a85ed418d21e2846e3e2e80028d18254469d61f900a95d831", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "2a4487280f7d81a78e4d27e14e62c0c4c62dd1539e94df380fdf097a859556b7", + "tests/config.h": "754d9e0aca8f9d0359b73a5d6e470e80a2ac48ac43eb46d43aa1a5104fd89065", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "c011e72c204cc7640d1d259c791ba7ead40ef2a2c01fcfff3140d988d6666547", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "d58945f7c783584c65963381068c0225ed34dcb8d7dad7b2dfe865692a452853", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "5464ef364dddffcb9aa5d80c1ee47994fb2ef6c451da25ac69b80c330f69d28c", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "cb06609cf0134f1952a8742d19ef850ff4c80d86a6ffca85607998a2c921b17a", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "fc47bbf44ca520c6ebcbc8843871e394a2de4521cb3c679c55a01a4b8c278d21", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "1aa7a844349a1070f497f8ded0be9a36a5cf492d8731b49d626a771664f3ba79", + "tests/unit/btree_test.c": "cfb4057349c6580acead4950876f9665ac0d0d38ef7d8289bf90db00e88878e3", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "8c916b53e14f3a1f03b314f33d6d67975d7c60909a06c5c5b41b62ef02dc94f4", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/notification_test.c": "b9dcf332b319cf1ff0c1f9c3aa7fc32a35c9f19b81f8122d55c6ed7f6e02e84b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "297752b1102d3d85ef8cd4be54c0fa15d9a6aeb7e03ce092d14a967ccff42244", + "tests/unit/splinterdb_forked_child_test.c": "88fb68b05aef1238ddce814eccd636b1dfffcb3f439d4892f66b82ad686a075d", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "719af1e83c60df31e63dfd782ace852605edbc355dfb487608e9c77a8f33ebae", + "tests/unit/splinterdb_quick_test.c": "9515f6fe840c1012f54701e1e5a75430f764063b6a4f3091f426bd3038bc2eda", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "04864b8fce2142d49abefebd0dd3acca6158ebea495484ef05d670013a6c8977", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "4237641a463b28b7be333ed5d4f80a4830c3b0ef75335b196da34318a9f58b18", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" + }, + "tracked_source_diff": "diff --git a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\nindex 7a251f1c..8855fc0c 100644\n--- a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n+++ b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n@@ -140,6 +140,8 @@ main()\n // up-front. Every insert will invoke this method to insert the new key\n // in custom-sorted order.\n splinter_data_cfg.key_compare = custom_key_compare;\n+ // IP address order differs from bytewise lexical order.\n+ splinter_data_cfg.key_compare_is_lexical = FALSE;\n \n // Basic configuration of a SplinterDB instance\n splinterdb_config splinterdb_cfg;" +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinter.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinter.log new file mode 100644 index 000000000..6b014360d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinter.log @@ -0,0 +1,96 @@ +Running 1 CTests, suite name 'splinter', test case 'all'. +TEST 1/44 splinter:test_blob_checksums [OK] +TEST 2/44 splinter:test_inserts [OK] +TEST 3/44 splinter:test_btree_pack_abort_releases_reserved_extents btree_pack error status: 5 +[OK] +TEST 4/44 splinter:test_btree_pack_rejects_counter_overflow btree_pack: output statistics exceed the on-disk limit +btree_pack error status: 28 +[OK] +TEST 5/44 splinter:test_malformed_trunk_pivot_bundle [OK] +TEST 6/44 splinter:test_invalid_branch_reference_rejected Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +[OK] +TEST 7/44 splinter:test_malformed_trunk_pivot_stats trunk_merge_lookup: ondisk_node_find_pivot failed: 22 +trunk_merge_lookup_async: ondisk_node_find_pivot_async failed: 22 +[OK] +TEST 8/44 splinter:test_malformed_trunk_child_height trunk_merge_lookup_async: ondisk_node_handle_init_async failed: 22 +[OK] +TEST 9/44 splinter:test_two_log_checkpoint [OK] +TEST 10/44 splinter:test_reopen_with_changed_filter_config [OK] +TEST 11/44 splinter:test_logged_large_insert_shares_blob_extents [OK] +TEST 12/44 splinter:test_durable_barrier_waits_for_visible_insert_log_write [OK] +TEST 13/44 splinter:test_durable_barrier_packs_concurrent_small_tails [OK] +TEST 14/44 splinter:test_shard_log_first_fit_decreasing_packing [OK] +TEST 15/44 splinter:test_shard_log_page_alloc_failure_retries_open_buffer shard_log_graduate_buffer: out of log space +shard_log_graduate_group: failed to terminate group 1: No space left on device +[OK] +TEST 16/44 splinter:test_async_durable_barrier_reports_device_failure [OK] +TEST 17/44 splinter:test_async_durable_barrier_defers_nested_wait [OK] +TEST 18/44 splinter:test_async_durable_barrier_launches_with_blocked_device [OK] +TEST 19/44 splinter:test_durable_barrier_without_log_publishes_root [OK] +TEST 20/44 splinter:test_checkpoint_reports_terminal_incorporation_failure trunk_node_serialize():2802: cache_alloc() failedserialize_nodes():2986: node_serialize() failedserialize_nodes_and_save_contingent_compactions: serialize_nodes failed: 12 +restore_balance_leaf():6155: serialize_nodes() failed: Cannot allocate memorytrunk_flush_prepare: flush_then_compact failed: 12 +trunk_incorporate_prepare failed: Cannot allocate memory +Memtable incorporation failed: generation=0 state=INCORPORATION_ASSIGNED status=Cannot allocate memory memtable_root=2228224 +memtable flush failed: Cannot allocate memory +Shutdown found memtable from failed incorporation: generation=0 state=INCORPORATION_FAILED status=Cannot allocate memory memtable_root=2228224 compacted_root=0 +[OK] +TEST 21/44 splinter:test_durable_barrier_reopens_writers_before_device_barrier [OK] +TEST 22/44 splinter:test_concurrent_durable_barriers_coalesce [OK] +TEST 23/44 splinter:test_durable_barrier_waits_for_checkpoint_publication [OK] +TEST 24/44 splinter:test_log_prepare_failure_leaves_update_unapplied core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_unmount: failed to publish the unmount root: Input/output error +core_unmount: shutdown retained recovery state; the next mount must recover +[OK] +TEST 25/44 splinter:test_checkpoint_advance_retries_cut_publish_failure core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +[OK] +TEST 26/44 splinter:test_checkpoint_advance_retries_completion_failure core_checkpoint_advance: completion publish failed: Input/output error +core_checkpoint_advance: completion publish failed: Input/output error +[OK] +TEST 27/44 splinter:test_self_managed_checkpoints_reclaim_log_space [OK] +TEST 28/44 splinter:test_auto_checkpoint [OK] +TEST 29/44 splinter:test_auto_checkpoint_grace_allows_natural_rotation [OK] +TEST 30/44 splinter:test_auto_checkpoint_grace_forces_overwrite_rotation [OK] +TEST 31/44 splinter:test_auto_checkpoint_on_overwrites [OK] +TEST 32/44 splinter:test_recover_allocations_reproduces_persisted_map [OK] +TEST 33/44 splinter:test_unmount_skips_allocator_map_that_needs_rebuild core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 34/44 splinter:test_late_reclamation_failure_requires_recovery WARNING: abandoned reclamation of mini allocator at 8519680 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +WARNING: core_unmount: reclamation failed (Connection timed out); remaining space was retained. Shutdown requires recovery and the next open will rebuild allocation state. +core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 35/44 splinter:test_mount_active_checkpoint_stays_mountable [OK] +TEST 36/44 splinter:test_lookups [OK] +TEST 37/44 splinter:test_splinter_print_diags [OK] +TEST 38/44 splinter:test_automatic_log_barrier_reports_failure_and_retries WARNING: fire-and-forget durable barrier failed: Input/output error; recent writes may not be durable. A later barrier can retry. +[OK] +TEST 39/44 splinter:test_automatic_log_barrier_submission_failure_retries WARNING: automatic durable barrier submission failed: Cannot allocate memory; recent writes may not be durable. +[OK] +TEST 40/44 splinter:test_automatic_log_barrier_insert_does_not_wait [OK] +TEST 41/44 splinter:test_cache_read_errors_reach_core_operations ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 110 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 110 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 110 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 110 +[OK] +TEST 42/44 splinter:test_blob_descriptor_sizes [OK] +TEST 43/44 splinter:test_blob_trees [OK] +TEST 44/44 splinter:test_blob_height_three_and_large_stats [OK] +RESULTS: 44 tests (44 ok, 0 failed, 0 skipped) ran in 82052 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinterdb_quick.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinterdb_quick.log new file mode 100644 index 000000000..bbb0639b0 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-splinterdb_quick.log @@ -0,0 +1,64 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/57 splinterdb_quick:test_get_config_returns_effective_config [OK] +TEST 2/57 splinterdb_quick:test_get_cost_stats [OK] +TEST 3/57 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 4/57 splinterdb_quick:test_durable_barrier [OK] +TEST 5/57 splinterdb_quick:test_async_durable_barrier_notifications [OK] +TEST 6/57 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 7/57 splinterdb_quick:test_basic_flow [OK] +TEST 8/57 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 9/57 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 10/57 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 11/57 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 12/57 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 13/57 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 14/57 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 15/57 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 16/57 splinterdb_quick:test_apis_for_large_key [OK] +TEST 17/57 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 18/57 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 19/57 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 20/57 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 21/57 splinterdb_quick:test_variable_length_values [OK] +TEST 22/57 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 23/57 splinterdb_quick:test_basic_iterator [OK] +TEST 24/57 splinterdb_quick:test_iterator_delete_current [OK] +TEST 25/57 splinterdb_quick:test_empty_iterator [OK] +TEST 26/57 splinterdb_quick:test_bounded_iterator [OK] +TEST 27/57 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 28/57 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 29/57 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 30/57 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 31/57 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 32/57 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 33/57 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 34/57 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 35/57 splinterdb_quick:test_close_and_reopen [OK] +TEST 36/57 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 37/57 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 38/57 splinterdb_quick:test_custom_data_config [OK] +TEST 39/57 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 40/57 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 41/57 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 42/57 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 43/57 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 44/57 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 45/57 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 46/57 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 47/57 splinterdb_quick:test_iterator_init_bug [OK] +TEST 48/57 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 49/57 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 50/57 splinterdb_quick:test_filtered_range_merges_only_matching_keys [OK] +TEST 51/57 splinterdb_quick:test_filtered_range_crosses_empty_trunk_leaves [OK] +TEST 52/57 splinterdb_quick:test_filtered_range_persisted_mixed_seeds [OK] +TEST 53/57 splinterdb_quick:test_filtered_range_predicate_only_and_bounds [OK] +TEST 54/57 splinterdb_quick:test_filtered_range_propagates_matching_merge_errors setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 55/57 splinterdb_quick:test_filtered_range_context_survives_thread_handoff [OK] +TEST 56/57 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 57/57 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 12535 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-superblock.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-superblock.log new file mode 100644 index 000000000..c6f009cb1 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/debug-superblock.log @@ -0,0 +1,50 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/17 superblock:test_format_sets_fresh_state [OK] +TEST 2/17 superblock:test_rejects_other_experiment_formats Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +[OK] +TEST 3/17 superblock:test_snapshot_persists_state [OK] +TEST 4/17 superblock:test_two_log_checkpoint_transitions [OK] +TEST 5/17 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 6/17 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 7/17 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 8/17 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 9/17 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 10/17 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 11/17 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 12/17 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 13/17 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/17 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 15/17 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +TEST 16/17 superblock:test_unknown_structure_version_rejected Unsupported trunk format version 2; this build requires version 1. +Unsupported trunk format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +[OK] +TEST 17/17 superblock:test_unsupported_superblock_version_rejected Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +[OK] +RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 37 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-automatic-log-recovery.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-automatic-log-recovery.log new file mode 100644 index 000000000..91175dae4 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-automatic-log-recovery.log @@ -0,0 +1,3 @@ +Running 1 CTests, suite name 'splinterdb_forked_child', test case 'automatic_log_barriers_survive_process_exit'. +TEST 1/1 splinterdb_forked_child:automatic_log_barriers_survive_process_exit [OK] +RESULTS: 1 tests (1 ok, 0 failed, 0 skipped) ran in 743 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-btree.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-btree.log new file mode 100644 index 000000000..172fb2026 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-btree.log @@ -0,0 +1,36 @@ +Running 1 CTests, suite name 'btree', test case 'all'. +TEST 1/12 btree:test_leaf_hdr [OK] +TEST 2/12 btree:test_leaf_hdr_search [OK] +TEST 3/12 btree:test_index_hdr [OK] +TEST 4/12 btree:test_index_hdr_search [OK] +TEST 5/12 btree:test_leaf_split [OK] +TEST 6/12 btree:test_defragmented_leaf_bytes [OK] +TEST 7/12 btree:test_defragmented_index_bytes [OK] +TEST 8/12 btree:test_invalid_branch_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 9/12 btree:test_invalid_branch_async_point_lookup Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 10/12 btree:test_invalid_branch_iterator Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 11/12 btree:test_invalid_branch_metadata_queries Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 1 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +Unsupported branch format version 3 at 4096; this build requires version 2. +[OK] +TEST 12/12 btree:test_compressed_suffix_copy [OK] +RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 2 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.json new file mode 100644 index 000000000..8a3c3c134 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.json @@ -0,0 +1,200 @@ +{ + "command": [ + "make", + "-j6", + "BUILD_ROOT=build-main-6105c49f", + "BUILD_MODE=release", + "all", + "benchmarks" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "started": 1792006709.9028127, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792006726.7072697, + "log_sha256": "5905efb5904de017adee723fba2e69132469012570fe056af37573bc6b935562", + "log": "release-build.log", + "seconds": 16.80445694923401, + "TMPDIR": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-xn10vunh", + "source_manifest": { + "head": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "origin_main": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "source_sha256": { + "Makefile": "64ffc4bcbe25fca2a45da700ead4a6d4add7601c6f406290e2cf5cde52e95296", + "examples/README.md": "e5f70bd344661c7018b43dc9fe02fa9bfa047f277b2de4535f0e035b1ffb2d71", + "examples/splinterdb_custom_ipv4_addr_sortcmp_example.c": "add1a04c25e8bb1ae9d8dfdf1a04c50228b9820c3da01e021f5359be816118bb", + "examples/splinterdb_intro_example.c": "ba0138e7994d16e45c77667c1e5576ca38e727aaa0cab0872ba0e5afb5ea44cc", + "examples/splinterdb_iterators_example.c": "22a9ca47be0433c276e9ad4ce119962edcc2911814e1e62cb22d3c8a8a26beed", + "examples/splinterdb_optimize_example.c": "bbc5a089afc7e62f06d00ffab1fd2b1c1cf1111669a1a7452d587e1f68f62c06", + "examples/splinterdb_wide_values_example.c": "a333d406974f0b3a85ed418d21e2846e3e2e80028d18254469d61f900a95d831", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "2a4487280f7d81a78e4d27e14e62c0c4c62dd1539e94df380fdf097a859556b7", + "tests/config.h": "754d9e0aca8f9d0359b73a5d6e470e80a2ac48ac43eb46d43aa1a5104fd89065", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "c011e72c204cc7640d1d259c791ba7ead40ef2a2c01fcfff3140d988d6666547", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "d58945f7c783584c65963381068c0225ed34dcb8d7dad7b2dfe865692a452853", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "5464ef364dddffcb9aa5d80c1ee47994fb2ef6c451da25ac69b80c330f69d28c", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "cb06609cf0134f1952a8742d19ef850ff4c80d86a6ffca85607998a2c921b17a", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "fc47bbf44ca520c6ebcbc8843871e394a2de4521cb3c679c55a01a4b8c278d21", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "1aa7a844349a1070f497f8ded0be9a36a5cf492d8731b49d626a771664f3ba79", + "tests/unit/btree_test.c": "cfb4057349c6580acead4950876f9665ac0d0d38ef7d8289bf90db00e88878e3", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "8c916b53e14f3a1f03b314f33d6d67975d7c60909a06c5c5b41b62ef02dc94f4", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/notification_test.c": "b9dcf332b319cf1ff0c1f9c3aa7fc32a35c9f19b81f8122d55c6ed7f6e02e84b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "297752b1102d3d85ef8cd4be54c0fa15d9a6aeb7e03ce092d14a967ccff42244", + "tests/unit/splinterdb_forked_child_test.c": "88fb68b05aef1238ddce814eccd636b1dfffcb3f439d4892f66b82ad686a075d", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "719af1e83c60df31e63dfd782ace852605edbc355dfb487608e9c77a8f33ebae", + "tests/unit/splinterdb_quick_test.c": "9515f6fe840c1012f54701e1e5a75430f764063b6a4f3091f426bd3038bc2eda", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "04864b8fce2142d49abefebd0dd3acca6158ebea495484ef05d670013a6c8977", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "4237641a463b28b7be333ed5d4f80a4830c3b0ef75335b196da34318a9f58b18", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" + }, + "tracked_source_diff": "diff --git a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\nindex 7a251f1c..8855fc0c 100644\n--- a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n+++ b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n@@ -140,6 +140,8 @@ main()\n // up-front. Every insert will invoke this method to insert the new key\n // in custom-sorted order.\n splinter_data_cfg.key_compare = custom_key_compare;\n+ // IP address order differs from bytewise lexical order.\n+ splinter_data_cfg.key_compare_is_lexical = FALSE;\n \n // Basic configuration of a SplinterDB instance\n splinterdb_config splinterdb_cfg;" + }, + "build_config": null +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.log new file mode 100644 index 000000000..d086d6612 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-build.log @@ -0,0 +1,133 @@ +Checking for mismatched config...No mismatched config found +Saving config to build-main-6105c49f/release/build-config.fb6bc8eeb8390429253883c09491f5bd +Compiling src/PackedArray.c [build-main-6105c49f/release/obj/src/PackedArray.o] +Compiling src/batch_rwlock.c [build-main-6105c49f/release/obj/src/batch_rwlock.o] +Compiling src/core.c [build-main-6105c49f/release/obj/src/core.o] +Compiling src/default_data_config.c [build-main-6105c49f/release/obj/src/default_data_config.o] +Compiling src/memtable.c [build-main-6105c49f/release/obj/src/memtable.o] +Compiling src/merge.c [build-main-6105c49f/release/obj/src/merge.o] +Compiling src/notification.c [build-main-6105c49f/release/obj/src/notification.o] +Compiling src/routing_filter.c [build-main-6105c49f/release/obj/src/routing_filter.o] +Compiling src/shard_log.c [build-main-6105c49f/release/obj/src/shard_log.o] +Compiling src/splinterdb.c [build-main-6105c49f/release/obj/src/splinterdb.o] +Compiling src/superblock.c [build-main-6105c49f/release/obj/src/superblock.o] +Compiling src/trunk.c [build-main-6105c49f/release/obj/src/trunk.o] +Compiling tools/splinter_inspect.c [build-main-6105c49f/release/obj/tools/splinter_inspect.o] +Compiling src/allocator.c [build-main-6105c49f/release/obj/src/allocator.o] +Compiling src/blob.c [build-main-6105c49f/release/obj/src/blob.o] +Compiling src/blob_build.c [build-main-6105c49f/release/obj/src/blob_build.o] +Compiling src/btree.c [build-main-6105c49f/release/obj/src/btree.o] +Compiling src/clockcache.c [build-main-6105c49f/release/obj/src/clockcache.o] +Compiling src/data_blob_build.c [build-main-6105c49f/release/obj/src/data_blob_build.o] +Compiling src/data_internal.c [build-main-6105c49f/release/obj/src/data_internal.o] +Compiling src/histogram.c [build-main-6105c49f/release/obj/src/histogram.o] +Compiling src/mini_allocator.c [build-main-6105c49f/release/obj/src/mini_allocator.o] +Compiling src/ondisk_ref.c [build-main-6105c49f/release/obj/src/ondisk_ref.o] +Compiling src/platform_linux/laio.c [build-main-6105c49f/release/obj/src/platform_linux/laio.o] +Compiling src/platform_linux/platform_assert.c [build-main-6105c49f/release/obj/src/platform_linux/platform_assert.o] +Compiling src/platform_linux/platform_buffer.c [build-main-6105c49f/release/obj/src/platform_linux/platform_buffer.o] +Compiling src/platform_linux/platform_condvar.c [build-main-6105c49f/release/obj/src/platform_linux/platform_condvar.o] +Compiling src/platform_linux/platform_heap.c [build-main-6105c49f/release/obj/src/platform_linux/platform_heap.o] +Compiling src/platform_linux/platform_io.c [build-main-6105c49f/release/obj/src/platform_linux/platform_io.o] +Compiling src/platform_linux/platform_log.c [build-main-6105c49f/release/obj/src/platform_linux/platform_log.o] +Compiling src/platform_linux/platform_mutex.c [build-main-6105c49f/release/obj/src/platform_linux/platform_mutex.o] +Compiling src/platform_linux/platform_threads.c [build-main-6105c49f/release/obj/src/platform_linux/platform_threads.o] +Compiling src/platform_linux/platform_trace.c [build-main-6105c49f/release/obj/src/platform_linux/platform_trace.o] +Compiling src/platform_linux/shmalloc.c [build-main-6105c49f/release/obj/src/platform_linux/shmalloc.o] +Compiling src/rc_allocator.c [build-main-6105c49f/release/obj/src/rc_allocator.o] +Compiling src/task.c [build-main-6105c49f/release/obj/src/task.o] +Compiling src/util.c [build-main-6105c49f/release/obj/src/util.o] +Compiling src/writeback_set.c [build-main-6105c49f/release/obj/src/writeback_set.o] +Compiling tests/functional/avlTree.c [build-main-6105c49f/release/obj/tests/functional/avlTree.o] +Compiling tests/functional/btree_test.c [build-main-6105c49f/release/obj/tests/functional/btree_test.o] +Compiling tests/functional/cache_test.c [build-main-6105c49f/release/obj/tests/functional/cache_test.o] +Compiling tests/functional/driver_test.c [build-main-6105c49f/release/obj/tests/functional/driver_test.o] +Compiling tests/functional/filter_test.c [build-main-6105c49f/release/obj/tests/functional/filter_test.o] +Compiling tests/functional/io_apis_test.c [build-main-6105c49f/release/obj/tests/functional/io_apis_test.o] +Compiling tests/functional/log_test.c [build-main-6105c49f/release/obj/tests/functional/log_test.o] +Compiling tests/functional/scan_benchmark.c [build-main-6105c49f/release/obj/tests/functional/scan_benchmark.o] +Compiling tests/functional/splinter_test.c [build-main-6105c49f/release/obj/tests/functional/splinter_test.o] +Compiling tests/functional/test_async.c [build-main-6105c49f/release/obj/tests/functional/test_async.o] +Compiling tests/functional/test_dispatcher.c [build-main-6105c49f/release/obj/tests/functional/test_dispatcher.o] +Compiling tests/functional/test_functionality.c [build-main-6105c49f/release/obj/tests/functional/test_functionality.o] +Compiling tests/functional/test_splinter_shadow.c [build-main-6105c49f/release/obj/tests/functional/test_splinter_shadow.o] +Compiling tests/functional/ycsb_test.c [build-main-6105c49f/release/obj/tests/functional/ycsb_test.o] +Compiling tests/config.c [build-main-6105c49f/release/obj/tests/config.o] +Compiling tests/test_common.c [build-main-6105c49f/release/obj/tests/test_common.o] +Compiling tests/test_data.c [build-main-6105c49f/release/obj/tests/test_data.o] +Compiling tests/unit/btree_stress_test.c [build-main-6105c49f/release/obj/tests/unit/btree_stress_test.o] +Compiling tests/unit/btree_test.c [build-main-6105c49f/release/obj/tests/unit/btree_test.o] +Compiling tests/unit/btree_test_common.c [build-main-6105c49f/release/obj/tests/unit/btree_test_common.o] +Compiling tests/unit/limitations_test.c [build-main-6105c49f/release/obj/tests/unit/limitations_test.o] +Compiling tests/unit/main.c [build-main-6105c49f/release/obj/tests/unit/main.o] +Compiling tests/unit/merge_test.c [build-main-6105c49f/release/obj/tests/unit/merge_test.o] +Compiling tests/unit/misc_test.c [build-main-6105c49f/release/obj/tests/unit/misc_test.o] +Compiling tests/unit/notification_test.c [build-main-6105c49f/release/obj/tests/unit/notification_test.o] +In file included from src/PackedArray.c:296, + from src/PackedArray.c:356: +src/PackedArray.c: In function ‘__PackedArray_unpack_21’: +src/PackedArray.c:177: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers + 177 | PACKEDARRAY_IMPL_UNPACK_CASE_BREAK +src/PackedArray.c:177: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory +Compiling tests/unit/platform_apis_test.c [build-main-6105c49f/release/obj/tests/unit/platform_apis_test.o] +Compiling tests/unit/platform_threads_test.c [build-main-6105c49f/release/obj/tests/unit/platform_threads_test.o] +Compiling tests/unit/splinterdb_heap_id_mgmt_test.c [build-main-6105c49f/release/obj/tests/unit/splinterdb_heap_id_mgmt_test.o] +Compiling tests/unit/splinterdb_optimize_test.c [build-main-6105c49f/release/obj/tests/unit/splinterdb_optimize_test.o] +Compiling tests/unit/splinterdb_quick_test.c [build-main-6105c49f/release/obj/tests/unit/splinterdb_quick_test.o] +Compiling tests/unit/splinterdb_stress_test.c [build-main-6105c49f/release/obj/tests/unit/splinterdb_stress_test.o] +Compiling tests/unit/superblock_test.c [build-main-6105c49f/release/obj/tests/unit/superblock_test.o] +Compiling tests/unit/task_system_test.c [build-main-6105c49f/release/obj/tests/unit/task_system_test.o] +Compiling tests/unit/trunk_async_test.c [build-main-6105c49f/release/obj/tests/unit/trunk_async_test.o] +Compiling tests/unit/trunk_gc_test.c [build-main-6105c49f/release/obj/tests/unit/trunk_gc_test.o] +Compiling tests/unit/trunk_split_test.c [build-main-6105c49f/release/obj/tests/unit/trunk_split_test.o] +Compiling tests/unit/unit_tests_common.c [build-main-6105c49f/release/obj/tests/unit/unit_tests_common.o] +Compiling tests/unit/util_test.c [build-main-6105c49f/release/obj/tests/unit/util_test.o] +Compiling tests/unit/vector_test.c [build-main-6105c49f/release/obj/tests/unit/vector_test.o] +Compiling tests/unit/writable_buffer_test.c [build-main-6105c49f/release/obj/tests/unit/writable_buffer_test.o] +Compiling tests/unit/writeback_set_test.c [build-main-6105c49f/release/obj/tests/unit/writeback_set_test.o] +Linking build-main-6105c49f/release/bin/unit/btree_stress_test +Linking build-main-6105c49f/release/bin/unit/btree_test +Compiling tests/unit/config_parse_test.c [build-main-6105c49f/release/obj/tests/unit/config_parse_test.o] +Compiling tests/unit/large_inserts_stress_test.c [build-main-6105c49f/release/obj/tests/unit/large_inserts_stress_test.o] +Linking build-main-6105c49f/release/bin/unit/misc_test +Linking build-main-6105c49f/release/bin/unit/platform_apis_test +Linking build-main-6105c49f/release/bin/unit/platform_threads_test +Compiling tests/unit/splinter_test.c [build-main-6105c49f/release/obj/tests/unit/splinter_test.o] +Linking build-main-6105c49f/release/lib/libsplinterdb.so +Compiling tests/unit/splinterdb_forked_child_test.c [build-main-6105c49f/release/obj/tests/unit/splinterdb_forked_child_test.o] +Linking build-main-6105c49f/release/bin/unit/util_test +Linking build-main-6105c49f/release/bin/unit/vector_test +Linking build-main-6105c49f/release/bin/unit/writeback_set_test +Compiling examples/splinterdb_custom_ipv4_addr_sortcmp_example.c [build-main-6105c49f/release/obj/examples/splinterdb_custom_ipv4_addr_sortcmp_example.o] +Compiling examples/splinterdb_intro_example.c [build-main-6105c49f/release/obj/examples/splinterdb_intro_example.o] +Compiling examples/splinterdb_iterators_example.c [build-main-6105c49f/release/obj/examples/splinterdb_iterators_example.o] +Compiling examples/splinterdb_optimize_example.c [build-main-6105c49f/release/obj/examples/splinterdb_optimize_example.o] +Compiling examples/splinterdb_wide_values_example.c [build-main-6105c49f/release/obj/examples/splinterdb_wide_values_example.o] +Compiling benchmarks/insert_benchmark.c [build-main-6105c49f/release/obj/benchmarks/insert_benchmark.o] +Building archive build-main-6105c49f/release/lib/libsplinterdb.a +Linking build-main-6105c49f/release/bin/splinter_inspect +Linking build-main-6105c49f/release/bin/insert_benchmark +Linking build-main-6105c49f/release/bin/driver_test +Linking build-main-6105c49f/release/bin/unit_test +Linking build-main-6105c49f/release/bin/unit/config_parse_test +Linking build-main-6105c49f/release/bin/unit/large_inserts_stress_test +Linking build-main-6105c49f/release/bin/unit/limitations_test +Linking build-main-6105c49f/release/bin/unit/merge_test +Linking build-main-6105c49f/release/bin/unit/notification_test +Linking build-main-6105c49f/release/bin/unit/splinter_test +Linking build-main-6105c49f/release/bin/unit/splinterdb_forked_child_test +Linking build-main-6105c49f/release/bin/unit/splinterdb_heap_id_mgmt_test +Linking build-main-6105c49f/release/bin/unit/splinterdb_optimize_test +Linking build-main-6105c49f/release/bin/unit/splinterdb_quick_test +Linking build-main-6105c49f/release/bin/unit/splinterdb_stress_test +Linking build-main-6105c49f/release/bin/unit/superblock_test +Linking build-main-6105c49f/release/bin/unit/task_system_test +Linking build-main-6105c49f/release/bin/unit/trunk_async_test +Linking build-main-6105c49f/release/bin/unit/trunk_gc_test +Linking build-main-6105c49f/release/bin/unit/trunk_split_test +Linking build-main-6105c49f/release/bin/unit/writable_buffer_test +Linking build-main-6105c49f/release/bin/examples/splinterdb_custom_ipv4_addr_sortcmp_example +Linking build-main-6105c49f/release/bin/examples/splinterdb_intro_example +Linking build-main-6105c49f/release/bin/examples/splinterdb_iterators_example +Linking build-main-6105c49f/release/bin/examples/splinterdb_optimize_example +Linking build-main-6105c49f/release/bin/examples/splinterdb_wide_values_example diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-functional-log.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-functional-log.log new file mode 100644 index 000000000..1516d2e16 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-functional-log.log @@ -0,0 +1,11 @@ +/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/driver_test: splinterdb_build_version 97e5c0e3-dirty +Dispatch test log_test + +Started log_test!! +Malformed log page sequence at page 9052160: group=3 page=0 follows group=1 page=0 (terminated). +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +shard_log_iterator_init: record validation failed in group 1 at log page 146800640: Invalid argument; discarding this group and the rest +Malformed log page sequence at page 147587072: group=1 page=0 follows group=1 page=0. +shard_log_iterator_init: record validation failed in group 2 at log page 148377600: Input/output error; discarding this group and the rest +log returned 500000 of 500000 entries diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-merge.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-merge.log new file mode 100644 index 000000000..8fe45babc --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-merge.log @@ -0,0 +1,18 @@ +Running 1 CTests, suite name 'merge', test case 'all'. +TEST 1/10 merge:filtering_propagates_errors_while_skipping_rejected_keys setup_ordered_iterators: exception: Input/output error +setup_ordered_iterators: exception: Input/output error +[OK] +TEST 2/10 merge:filtering_does_not_eagerly_drain_nonmatching_sources [OK] +TEST 3/10 merge:random_direction_changes_match_merged_sequence [OK] +TEST 4/10 merge:direction_change_at_duplicate_key_moves_to_adjacent_key [OK] +TEST 5/10 merge:direction_change_clears_stale_equal_key_flag [OK] +TEST 6/10 merge:maximum_arity_is_accepted merge_iterator_create: bad parameter merge_itor 0x7ffd5318ad78 num_trees 1025 itor_arr 0x7ffd5318ae00 cfg 0x7ffd5318ad80 +[OK] +TEST 7/10 merge:failed_creation_cleans_up setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 8/10 merge:failed_direction_change_preserves_iterator_ownership setup_ordered_iterators: exception: Cannot allocate memory +setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 9/10 merge:direction_change_succeeds [OK] +TEST 10/10 merge:direction_change_propagates_child_errors [OK] +RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 0 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-results.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-results.json new file mode 100644 index 000000000..18e451773 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-results.json @@ -0,0 +1,156 @@ +[ + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/btree_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/btree", + "started": 1792007146.7631073, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007146.7668188, + "log_sha256": "1159d05f22b0856c2e5eb66afcb51bf70db527e8597e2f4aef0d4dce5894cead", + "log": "release-btree.log", + "seconds": 0.0037114620208740234, + "name": "btree", + "binary_sha256": "9e13dfc7722c83b7e9c81ce1201fca63d99b5cd2691b3680cf403b29d74cb598", + "summaries": [ + "RESULTS: 12 tests (12 ok, 0 failed, 0 skipped) ran in 2 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/superblock_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/superblock", + "started": 1792007146.7718694, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007146.8359447, + "log_sha256": "335762194e6cc9560c21f1feb24f5694bcc88031bcc1c072dca9413d08b68753", + "log": "release-superblock.log", + "seconds": 0.06407523155212402, + "name": "superblock", + "binary_sha256": "1e4ae4214e791a5b53bdc620646b2b2cfa44e53769d211510a02235963f568f2", + "summaries": [ + "RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 53 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/merge_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/merge", + "started": 1792007146.8399613, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007146.8435314, + "log_sha256": "8321f9bc1d800a010cbe8c77234da380a5a6f3cfa6a499dfc557b29632a3cbe2", + "log": "release-merge.log", + "seconds": 0.003570079803466797, + "name": "merge", + "binary_sha256": "09b450c5b37b640812cfc611107392b9e11938e75faa5e1778584a5f84c1b9f6", + "summaries": [ + "RESULTS: 10 tests (10 ok, 0 failed, 0 skipped) ran in 0 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/splinterdb_quick_test" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/splinterdb_quick", + "started": 1792007146.8465574, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007158.1051238, + "log_sha256": "a334eaa7cf546f086b7796751627d2381d14a3824bf69ac5f903d5b7813a5b20", + "log": "release-splinterdb_quick.log", + "seconds": 11.25856637954712, + "name": "splinterdb_quick", + "binary_sha256": "fea895f31fa091285f586b15903a52278fd5355b8649b1324810f9fc7b6df619", + "summaries": [ + "RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 11224 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/splinter_test", + "--db-location", + "core.db", + "--cache-capacity-mib", + "128", + "--db-capacity-gib", + "64" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/splinter", + "started": 1792007158.1083732, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007193.827915, + "log_sha256": "70df441665ddd1975c20649be48edba0bdd058ba0e2aa644d782cbfbda67ef99", + "log": "release-splinter.log", + "seconds": 35.719541788101196, + "name": "splinter", + "binary_sha256": "5323a085431471afb5916e347eedc3187a40b5acc318ce9d55a4c2bac382ccbe", + "summaries": [ + "RESULTS: 44 tests (44 ok, 0 failed, 0 skipped) ran in 35678 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f", + "blob_cases": [ + "TEST 41/44 splinter:test_blob_descriptor_sizes [OK]", + "TEST 42/44 splinter:test_blob_trees [OK]", + "TEST 43/44 splinter:test_blob_height_three_and_large_stats [OK]", + "TEST 44/44 splinter:test_blob_checksums [OK]" + ] + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/unit/splinterdb_forked_child_test", + "automatic_log_barriers_survive_process_exit" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/automatic-log-recovery", + "started": 1792007193.8316197, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007194.5980272, + "log_sha256": "4e1a3eea4cc3abba55ea549d48473a0815980bce645ad80d50e2adf7087ef83b", + "log": "release-automatic-log-recovery.log", + "seconds": 0.7664074897766113, + "name": "automatic-log-recovery", + "binary_sha256": "0079b294e35e06264c1275a37d241f308c6d71532ae3c66eb937229b6c631fc7", + "summaries": [ + "RESULTS: 1 tests (1 ok, 0 failed, 0 skipped) ran in 743 ms" + ], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f" + }, + { + "command": [ + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/driver_test", + "log_test", + "--db-location", + "log.db", + "--cache-capacity-mib", + "64", + "--db-capacity-gib", + "4" + ], + "cwd": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-validation-release-faya0ddo/functional-log", + "started": 1792007194.6013877, + "timeout_seconds": 900, + "returncode": 0, + "finished": 1792007195.2673273, + "log_sha256": "0a43cfe8076562afbe26fbe237e9e601d63b638bde798ba9abfced51d505cee1", + "log": "release-functional-log.log", + "seconds": 0.6659395694732666, + "name": "functional-log", + "binary_sha256": "c6a8e12c52c81ebdb1889ac331d4fb4a56a88711a2a8325852673991c4b0d3fc", + "summaries": [], + "library_sha256": "5a0426fed5a0606c55dc38c7bbddfb8c5c65580fb79fc9d09b17f7890fcff32f", + "replay_summary": [ + "log returned 500000 of 500000 entries" + ] + } +] diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-check.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-check.json new file mode 100644 index 000000000..3629d318a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-check.json @@ -0,0 +1,3 @@ +{ + "unchanged": true +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-manifest.json b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-manifest.json new file mode 100644 index 000000000..e0e39bcbe --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-source-manifest.json @@ -0,0 +1,180 @@ +{ + "head": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "origin_main": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "source_sha256": { + "Makefile": "64ffc4bcbe25fca2a45da700ead4a6d4add7601c6f406290e2cf5cde52e95296", + "examples/README.md": "e5f70bd344661c7018b43dc9fe02fa9bfa047f277b2de4535f0e035b1ffb2d71", + "examples/splinterdb_custom_ipv4_addr_sortcmp_example.c": "add1a04c25e8bb1ae9d8dfdf1a04c50228b9820c3da01e021f5359be816118bb", + "examples/splinterdb_intro_example.c": "ba0138e7994d16e45c77667c1e5576ca38e727aaa0cab0872ba0e5afb5ea44cc", + "examples/splinterdb_iterators_example.c": "22a9ca47be0433c276e9ad4ce119962edcc2911814e1e62cb22d3c8a8a26beed", + "examples/splinterdb_optimize_example.c": "bbc5a089afc7e62f06d00ffab1fd2b1c1cf1111669a1a7452d587e1f68f62c06", + "examples/splinterdb_wide_values_example.c": "a333d406974f0b3a85ed418d21e2846e3e2e80028d18254469d61f900a95d831", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb", + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "tests/config.c": "2a4487280f7d81a78e4d27e14e62c0c4c62dd1539e94df380fdf097a859556b7", + "tests/config.h": "754d9e0aca8f9d0359b73a5d6e470e80a2ac48ac43eb46d43aa1a5104fd89065", + "tests/functional/README.md": "c95907cfe5f4aaebc303d0d94cdcbd51e78d717ec11e4c5ecea6b8efaf723be0", + "tests/functional/avlTree.c": "5c24865aa50a21c626dacb2bd6172ff182a25e3532f5aee73a25aeb47c6bb043", + "tests/functional/avlTree.h": "39d82dc2b4c99a635c095800efcd060e7c95822a1194de0f03524a970040ac86", + "tests/functional/btree_test.c": "c011e72c204cc7640d1d259c791ba7ead40ef2a2c01fcfff3140d988d6666547", + "tests/functional/cache_test.c": "549f326d035fbb81cf9f272a66948f34f30313495624c6320e4a75b47c042e48", + "tests/functional/driver_test.c": "aef8d611eae488b287a796007c2a4e2a5f2e7f3f3190dce51be0e2be78ecb765", + "tests/functional/filter_test.c": "d58945f7c783584c65963381068c0225ed34dcb8d7dad7b2dfe865692a452853", + "tests/functional/io_apis_test.c": "be9b36b3af71975782f42ecc8087a922dea828d82049844d0833845cc1698ec5", + "tests/functional/log_test.c": "5464ef364dddffcb9aa5d80c1ee47994fb2ef6c451da25ac69b80c330f69d28c", + "tests/functional/random.h": "8b6567f2e066099fc21d9f6548b561169ffadb0da07150be7bf940c86d146082", + "tests/functional/scan_benchmark.c": "cb06609cf0134f1952a8742d19ef850ff4c80d86a6ffca85607998a2c921b17a", + "tests/functional/splinter_test.c": "b6c2e683dd48e23bc5d035e5d00142012f64085a21cff563b44d54fbaf2c7b9c", + "tests/functional/splinter_test.h": "9eb16fb6c779b27df477213c341031421d383c1c72051f2f42abec4c3c5b0f79", + "tests/functional/test.h": "fc47bbf44ca520c6ebcbc8843871e394a2de4521cb3c679c55a01a4b8c278d21", + "tests/functional/test_async.c": "258f7c56c6c500c783e659b69b157d3c9a06812fcbc31a8fb165b6c66f213acd", + "tests/functional/test_async.h": "c3530305b730c3d9a2c3c73ed438ee7ccd6c5c45cd26e0e02e6a821350b1d778", + "tests/functional/test_dispatcher.c": "60eaa54ce5ffd0d50095722ecd488b448e875fa07a44acc4ba560534c16d67b9", + "tests/functional/test_functionality.c": "d7b71e53f78b88257a10d8cc4fddd3daa48d704a89f6b4c5590af507da4637cd", + "tests/functional/test_functionality.h": "d065e9b63d00f37a88ee9cf962a1280040d7ee4684a1141a506e393fa38913b0", + "tests/functional/test_splinter_shadow.c": "4b856d30739b5ae544b65f514a55cc9d91cbc550044c498bedc51e8d5da26bd5", + "tests/functional/test_splinter_shadow.h": "a1b23c891db62785db9c4f80035ea1060de68c79aa0230dd6dbc03a8fe0b118d", + "tests/functional/ycsb_test.c": "5b1be412e93cfe56b8578051583fa231c138e2acee1afe4b3d1dfb925e0ad26f", + "tests/test_common.c": "fd1d18926096852a7dcfb54622d534d76a8ec62437ce72143c261f402587e493", + "tests/test_common.h": "3691f4e6bdaedb246dc9edea3d62a5cc69b456240492ba6cca8a2320c27cd595", + "tests/test_data.c": "48433bcf29a2e5ce1540a7b479bf0ddf85278e3d2a3c5ca6d8e4538cd1f0012f", + "tests/test_data.h": "61af4814f5d37200fa2393fc40abc7aa19acf4af322ca159390da3332af2952a", + "tests/unit/README.md": "9d4dc976f63738ebe5b73d446e2d6de088f29b26e2683f3c3c552c964949de2d", + "tests/unit/btree_stress_test.c": "1aa7a844349a1070f497f8ded0be9a36a5cf492d8731b49d626a771664f3ba79", + "tests/unit/btree_test.c": "cfb4057349c6580acead4950876f9665ac0d0d38ef7d8289bf90db00e88878e3", + "tests/unit/btree_test_common.c": "3fa17ff41ec7afa5e7204aeb68767a7fcb7e1c7cf81695ef9506876a2af324bf", + "tests/unit/btree_test_common.h": "b7b30bdc02449e81d2fe263c0ef74a4a28c728f717d1ea20d16e3f1acb10a6a2", + "tests/unit/config_parse_test.c": "700a56f940237508e1ce647cc011f2f42c503aab262f930fd1baf0f265a9a112", + "tests/unit/ctest.h": "db9f53f9da859ff1d72be00efb993ca551720e0acaf747236e34e031368c7a16", + "tests/unit/large_inserts_stress_test.c": "df90d2de303f72829779f23cad3881cc65465d5d1a22fcdaf10000b23430b7ae", + "tests/unit/limitations_test.c": "e851344911b8c835578ccd9ae777b79369d339a375cca1468a12c70f03a9efe3", + "tests/unit/main.c": "a4a3ca6e237e3f40f07682c6528b1ef6f32105afc6071810e15411ad297b7a38", + "tests/unit/merge_test.c": "8c916b53e14f3a1f03b314f33d6d67975d7c60909a06c5c5b41b62ef02dc94f4", + "tests/unit/misc_test.c": "4ec5cf57c933275ccdf532a529ae79909840f7d41d36b842a4cb9d9a291ea05b", + "tests/unit/notification_test.c": "b9dcf332b319cf1ff0c1f9c3aa7fc32a35c9f19b81f8122d55c6ed7f6e02e84b", + "tests/unit/platform_apis_test.c": "c3623021ae04b4305b0971cfb2760f895c5b6908310a6e4c192f65769262c860", + "tests/unit/platform_threads_test.c": "bd8e8bb58926344add7b38357c15237687165da8995b052f02612967b6bd8af5", + "tests/unit/splinter_test.c": "297752b1102d3d85ef8cd4be54c0fa15d9a6aeb7e03ce092d14a967ccff42244", + "tests/unit/splinterdb_forked_child_test.c": "88fb68b05aef1238ddce814eccd636b1dfffcb3f439d4892f66b82ad686a075d", + "tests/unit/splinterdb_heap_id_mgmt_test.c": "43729def7a6d91cf66f5bc1fe2e6f0a4a45d63ebbb55887ed10a5eafcdc8235e", + "tests/unit/splinterdb_optimize_test.c": "719af1e83c60df31e63dfd782ace852605edbc355dfb487608e9c77a8f33ebae", + "tests/unit/splinterdb_quick_test.c": "9515f6fe840c1012f54701e1e5a75430f764063b6a4f3091f426bd3038bc2eda", + "tests/unit/splinterdb_stress_test.c": "21a7f8725c82e4d8ec780131eff514294304aba322d8a2650ae893efaaf66f3a", + "tests/unit/superblock_test.c": "04864b8fce2142d49abefebd0dd3acca6158ebea495484ef05d670013a6c8977", + "tests/unit/task_system_test.c": "bd8ad9ca2632f17a6353f3c1e4d0849d98604e6b3a30f9c0c0b7ee13904a3024", + "tests/unit/trunk_async_test.c": "00c51d4302a48e09bdfacf217d45fc3c935f59bac130ded3f3164cc64ec5713b", + "tests/unit/trunk_gc_test.c": "00d6134ad82ed061cbc16d4b19fc21f41432c4b7c5a4b7ade80c3bed3b2dfdca", + "tests/unit/trunk_split_test.c": "4237641a463b28b7be333ed5d4f80a4830c3b0ef75335b196da34318a9f58b18", + "tests/unit/unit_test_template_dot_c": "ffb5e31229ca59caaece995122fcefe11f360ae45953caae0b5d4a72b2a6bcf7", + "tests/unit/unit_tests.h": "4e15f58455d8d759e9fad8432a02b1ec70f3a47a3e74eb39ea11b6a2ad44af42", + "tests/unit/unit_tests_common.c": "7a47eb40fadea397842e2f56932083d7e8840f08834788d6774b1f688288e735", + "tests/unit/util_test.c": "e992dff255d18e84673ea3954eb2da314de0815e64d55fd1980018b22444508b", + "tests/unit/vector_test.c": "463c0ae5b0c7525844f198c6859988a1bc33274d26cace87b9229673bc7c5186", + "tests/unit/writable_buffer_test.c": "3418d6ae29c5bc09dda485c1c1fe1768a1a3fc66b9b6bfdd05aa50e52516241e", + "tests/unit/writeback_set_test.c": "7bef6ea2a4a9d13fe0d83549cadd8e9497018068ac397ac8c31edea6909ee398" + }, + "tracked_source_diff": "diff --git a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\nindex 7a251f1c..8855fc0c 100644\n--- a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n+++ b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c\n@@ -140,6 +140,8 @@ main()\n // up-front. Every insert will invoke this method to insert the new key\n // in custom-sorted order.\n splinter_data_cfg.key_compare = custom_key_compare;\n+ // IP address order differs from bytewise lexical order.\n+ splinter_data_cfg.key_compare_is_lexical = FALSE;\n \n // Basic configuration of a SplinterDB instance\n splinterdb_config splinterdb_cfg;" +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinter.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinter.log new file mode 100644 index 000000000..104cac8bc --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinter.log @@ -0,0 +1,96 @@ +Running 1 CTests, suite name 'splinter', test case 'all'. +TEST 1/44 splinter:test_inserts [OK] +TEST 2/44 splinter:test_btree_pack_abort_releases_reserved_extents btree_pack error status: 5 +[OK] +TEST 3/44 splinter:test_btree_pack_rejects_counter_overflow btree_pack: output statistics exceed the on-disk limit +btree_pack error status: 28 +[OK] +TEST 4/44 splinter:test_malformed_trunk_pivot_bundle [OK] +TEST 5/44 splinter:test_invalid_branch_reference_rejected Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +Unsupported branch format version 3 at 8519680; this build requires version 2. +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 22 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 22 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 22 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 22 +trunk_collect_branches: trunk_collect_bundle_branches failed: 22 +[OK] +TEST 6/44 splinter:test_malformed_trunk_pivot_stats trunk_merge_lookup: ondisk_node_find_pivot failed: 22 +trunk_merge_lookup_async: ondisk_node_find_pivot_async failed: 22 +[OK] +TEST 7/44 splinter:test_malformed_trunk_child_height trunk_merge_lookup_async: ondisk_node_handle_init_async failed: 22 +[OK] +TEST 8/44 splinter:test_two_log_checkpoint [OK] +TEST 9/44 splinter:test_reopen_with_changed_filter_config [OK] +TEST 10/44 splinter:test_logged_large_insert_shares_blob_extents [OK] +TEST 11/44 splinter:test_durable_barrier_waits_for_visible_insert_log_write [OK] +TEST 12/44 splinter:test_durable_barrier_packs_concurrent_small_tails [OK] +TEST 13/44 splinter:test_shard_log_first_fit_decreasing_packing [OK] +TEST 14/44 splinter:test_shard_log_page_alloc_failure_retries_open_buffer shard_log_graduate_buffer: out of log space +shard_log_graduate_group: failed to terminate group 1: No space left on device +[OK] +TEST 15/44 splinter:test_async_durable_barrier_reports_device_failure [OK] +TEST 16/44 splinter:test_async_durable_barrier_defers_nested_wait [OK] +TEST 17/44 splinter:test_async_durable_barrier_launches_with_blocked_device [OK] +TEST 18/44 splinter:test_durable_barrier_without_log_publishes_root [OK] +TEST 19/44 splinter:test_checkpoint_reports_terminal_incorporation_failure trunk_node_serialize():2802: cache_alloc() failedserialize_nodes():2986: node_serialize() failedserialize_nodes_and_save_contingent_compactions: serialize_nodes failed: 12 +restore_balance_leaf():6155: serialize_nodes() failed: Cannot allocate memorytrunk_flush_prepare: flush_then_compact failed: 12 +trunk_incorporate_prepare failed: Cannot allocate memory +Memtable incorporation failed: generation=0 state=INCORPORATION_ASSIGNED status=Cannot allocate memory memtable_root=2228224 +memtable flush failed: Cannot allocate memory +Shutdown found memtable from failed incorporation: generation=0 state=INCORPORATION_FAILED status=Cannot allocate memory memtable_root=2228224 compacted_root=0 +[OK] +TEST 20/44 splinter:test_durable_barrier_reopens_writers_before_device_barrier [OK] +TEST 21/44 splinter:test_concurrent_durable_barriers_coalesce [OK] +TEST 22/44 splinter:test_durable_barrier_waits_for_checkpoint_publication [OK] +TEST 23/44 splinter:test_log_prepare_failure_leaves_update_unapplied core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_unmount: failed to publish the unmount root: Input/output error +core_unmount: shutdown retained recovery state; the next mount must recover +[OK] +TEST 24/44 splinter:test_checkpoint_advance_retries_cut_publish_failure core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +core_checkpoint_advance: failed to publish the log cut; will retry: Input/output error +[OK] +TEST 25/44 splinter:test_checkpoint_advance_retries_completion_failure core_checkpoint_advance: completion publish failed: Input/output error +core_checkpoint_advance: completion publish failed: Input/output error +[OK] +TEST 26/44 splinter:test_self_managed_checkpoints_reclaim_log_space [OK] +TEST 27/44 splinter:test_auto_checkpoint [OK] +TEST 28/44 splinter:test_auto_checkpoint_grace_allows_natural_rotation [OK] +TEST 29/44 splinter:test_auto_checkpoint_grace_forces_overwrite_rotation [OK] +TEST 30/44 splinter:test_auto_checkpoint_on_overwrites [OK] +TEST 31/44 splinter:test_recover_allocations_reproduces_persisted_map [OK] +TEST 32/44 splinter:test_unmount_skips_allocator_map_that_needs_rebuild core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 33/44 splinter:test_late_reclamation_failure_requires_recovery WARNING: abandoned reclamation of mini allocator at 8519680 (type misc): Connection timed out. Remaining space is unavailable until reopen; clean allocation state will not be written. Recovery is required. +WARNING: core_unmount: reclamation failed (Connection timed out); remaining space was retained. Shutdown requires recovery and the next open will rebuild allocation state. +core_unmount: allocator reference accounting is incomplete; leaving allocation state invalid for rebuild on the next mount +[OK] +TEST 34/44 splinter:test_mount_active_checkpoint_stays_mountable [OK] +TEST 35/44 splinter:test_lookups [OK] +TEST 36/44 splinter:test_splinter_print_diags [OK] +TEST 37/44 splinter:test_automatic_log_barrier_reports_failure_and_retries WARNING: fire-and-forget durable barrier failed: Input/output error; recent writes may not be durable. A later barrier can retry. +[OK] +TEST 38/44 splinter:test_automatic_log_barrier_submission_failure_retries WARNING: automatic durable barrier submission failed: Cannot allocate memory; recent writes may not be durable. +[OK] +TEST 39/44 splinter:test_automatic_log_barrier_insert_does_not_wait [OK] +TEST 40/44 splinter:test_cache_read_errors_reach_core_operations ondisk_bundle_merge_lookup: btree_lookup_and_merge failed: 110 +trunk_merge_lookup: ondisk_bundle_merge_lookup failed: 110 +ondisk_bundle_merge_lookup_async: btree_lookup_and_merge_async failed: 110 +trunk_merge_lookup_async: ondisk_bundle_merge_lookup_async failed: 110 +[OK] +TEST 41/44 splinter:test_blob_descriptor_sizes [OK] +TEST 42/44 splinter:test_blob_trees [OK] +TEST 43/44 splinter:test_blob_height_three_and_large_stats [OK] +TEST 44/44 splinter:test_blob_checksums [OK] +RESULTS: 44 tests (44 ok, 0 failed, 0 skipped) ran in 35678 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinterdb_quick.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinterdb_quick.log new file mode 100644 index 000000000..1cb39099b --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-splinterdb_quick.log @@ -0,0 +1,64 @@ +Running 1 CTests, suite name 'splinterdb_quick', test case 'all'. +TEST 1/57 splinterdb_quick:test_get_cost_stats [OK] +TEST 2/57 splinterdb_quick:test_checkpoint_log_grace_default [OK] +TEST 3/57 splinterdb_quick:test_durable_barrier [OK] +TEST 4/57 splinterdb_quick:test_async_durable_barrier_notifications [OK] +TEST 5/57 splinterdb_quick:test_logged_large_value_replaces_old_value [OK] +TEST 6/57 splinterdb_quick:test_basic_flow [OK] +TEST 7/57 splinterdb_quick:test_pthread_auto_registration [OK] +TEST 8/57 splinterdb_quick:test_result_auto_registration_with_stats [OK] +TEST 9/57 splinterdb_quick:test_stats_reset_clears_cache_io [OK] +TEST 10/57 splinterdb_quick:test_final_merge_error_propagation [OK] +TEST 11/57 splinterdb_quick:test_fetch_and_update_catches_up_after_rotation [OK] +TEST 12/57 splinterdb_quick:test_fetch_and_update_rejects_incorporated_boundary [OK] +TEST 13/57 splinterdb_quick:test_range_init_error_cleanup_preserves_branches setup_ordered_iterators: exception: Cannot allocate memory +core_apply_to_range: range iterator init failed: Cannot allocate memory +[OK] +TEST 14/57 splinterdb_quick:stats_reset_excludes_active_operations [OK] +TEST 15/57 splinterdb_quick:test_apis_for_large_key [OK] +TEST 16/57 splinterdb_quick:test_key_size_gt_max_inline_key_size [OK] +TEST 17/57 splinterdb_quick:test_value_size_gt_max_value_size [OK] +TEST 18/57 splinterdb_quick:test_large_lookup_survives_memtable_recycle [OK] +TEST 19/57 splinterdb_quick:test_iterator_survives_memtable_recycle [OK] +TEST 20/57 splinterdb_quick:test_variable_length_values [OK] +TEST 21/57 splinterdb_quick:test_branch_prefix_roundtrip [OK] +TEST 22/57 splinterdb_quick:test_basic_iterator [OK] +TEST 23/57 splinterdb_quick:test_iterator_delete_current [OK] +TEST 24/57 splinterdb_quick:test_empty_iterator [OK] +TEST 25/57 splinterdb_quick:test_bounded_iterator [OK] +TEST 26/57 splinterdb_quick:test_bounded_iterator_start_normalization [OK] +TEST 27/57 splinterdb_quick:test_splinterdb_iterator_with_startkey [OK] +TEST 28/57 splinterdb_quick:test_splinterdb_iterator_with_non_existent_startkey [OK] +TEST 29/57 splinterdb_quick:test_splinterdb_iterator_with_missing_startkey_in_sequence [OK] +TEST 30/57 splinterdb_quick:test_iterator_prev_and_next [OK] +TEST 31/57 splinterdb_quick:test_iterator_reversal_on_key_in_two_branches [OK] +TEST 32/57 splinterdb_quick:test_iterator_reversal_with_three_branches [OK] +TEST 33/57 splinterdb_quick:test_rewriting_keys_does_not_grow_trunk [OK] +TEST 34/57 splinterdb_quick:test_close_and_reopen [OK] +TEST 35/57 splinterdb_quick:test_logged_close_and_reopen [OK] +TEST 36/57 splinterdb_quick:test_repeated_insert_close_reopen [OK] +TEST 37/57 splinterdb_quick:test_custom_data_config [OK] +TEST 38/57 splinterdb_quick:test_existence_only_memtable_lookup [OK] +TEST 39/57 splinterdb_quick:test_existence_only_trunk_lookup_skips_branches [OK] +TEST 40/57 splinterdb_quick:test_write_api_returns_old_value [OK] +TEST 41/57 splinterdb_quick:test_write_api_old_result_existence_only [OK] +TEST 42/57 splinterdb_quick:test_write_api_old_result_custom_merge_semantics [OK] +TEST 43/57 splinterdb_quick:test_write_api_old_result_merges_memtable_and_trunk [OK] +TEST 44/57 splinterdb_quick:test_write_api_old_result_respects_trunk_delete_shadow [OK] +TEST 45/57 splinterdb_quick:test_iterator_custom_comparator [OK] +TEST 46/57 splinterdb_quick:test_iterator_init_bug [OK] +TEST 47/57 splinterdb_quick:test_splinterdb_create_w_background_threads [OK] +TEST 48/57 splinterdb_quick:test_splinterdb_create_w_all_background_threads [OK] +TEST 49/57 splinterdb_quick:test_filtered_range_merges_only_matching_keys [OK] +TEST 50/57 splinterdb_quick:test_filtered_range_crosses_empty_trunk_leaves [OK] +TEST 51/57 splinterdb_quick:test_filtered_range_persisted_mixed_seeds [OK] +TEST 52/57 splinterdb_quick:test_filtered_range_predicate_only_and_bounds [OK] +TEST 53/57 splinterdb_quick:test_filtered_range_propagates_matching_merge_errors setup_ordered_iterators: exception: Cannot allocate memory +[OK] +TEST 54/57 splinterdb_quick:test_filtered_range_context_survives_thread_handoff [OK] +TEST 55/57 splinterdb_quick:test_iterator_thread_handoff [OK] +TEST 56/57 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery Running 1 CTests, suite name 'splinterdb_quick', test case 'test_blob_tree_crash_recovery'. +TEST 1/1 splinterdb_quick:test_blob_tree_crash_recovery [OK] +TEST 57/57 splinterdb_quick:test_get_config_returns_effective_config [OK] +RESULTS: 57 tests (57 ok, 0 failed, 0 skipped) ran in 11224 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-superblock.log b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-superblock.log new file mode 100644 index 000000000..be313f51e --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/release-superblock.log @@ -0,0 +1,50 @@ +Running 1 CTests, suite name 'superblock', test case 'all'. +TEST 1/17 superblock:test_rejects_other_experiment_formats Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32774; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +Unsupported superblock format version 32775; this build requires version 8. +[OK] +TEST 2/17 superblock:test_snapshot_persists_state [OK] +TEST 3/17 superblock:test_two_log_checkpoint_transitions [OK] +TEST 4/17 superblock:test_snapshot_preserves_unincorporated_sealed_log [OK] +TEST 5/17 superblock:test_two_log_checkpoint_torn_begin [OK] +TEST 6/17 superblock:test_torn_write_falls_back_to_older_generation [OK] +TEST 7/17 superblock:test_generation_wrap_selects_newest_slot [OK] +TEST 8/17 superblock:test_both_slots_corrupt_is_not_found superblock_mount: no valid superblock found +[OK] +TEST 9/17 superblock:test_mount_rejects_invalid_metadata superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +superblock_mount: no valid superblock found +[OK] +TEST 10/17 superblock:test_slot_read_error_falls_back_to_peer [OK] +TEST 11/17 superblock:test_both_slot_read_errors_are_reported superblock_mount: no readable valid superblock found: Input/output error +[OK] +TEST 12/17 superblock:test_read_geometry superblock_read_bootstrap: no valid superblock found +[OK] +TEST 13/17 superblock:test_read_bootstrap_allocation_state superblock_read_bootstrap: no valid superblock found +[OK] +TEST 14/17 superblock:test_bootstrap_geometry_metadata_budget Device geometry needs 134217728 bytes of cache lookup metadata, which exceeds the configured cache budget of 67108864 bytes. +Failed to open existing SplinterDB device 'db' with specified configuration: No space left on device +[OK] +TEST 15/17 superblock:test_unknown_structure_version_rejected Unsupported trunk format version 2; this build requires version 1. +Unsupported trunk format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported allocator format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +Unsupported log format version 2; this build requires version 1. +[OK] +TEST 16/17 superblock:test_unsupported_superblock_version_rejected Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 7; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +Unsupported superblock format version 9; this build requires version 8. +[OK] +TEST 17/17 superblock:test_format_sets_fresh_state [OK] +RESULTS: 17 tests (17 ok, 0 failed, 0 skipped) ran in 53 ms diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/tests/validate.py b/benchmarks/results-20261014/prefix-main-6105c49f/tests/validate.py new file mode 100644 index 000000000..cf6bd1675 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/tests/validate.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +"""Build/test the prefix merge; serialize with exclusive campaign benchmarks.""" + +import argparse +import fcntl +import hashlib +import json +import os +from pathlib import Path +import re +import signal +import subprocess +import tempfile +import time + + +ARCHIVE = Path(__file__).resolve().parent +TREE = ARCHIVE.parents[3] +BUILD = TREE / "build-main-6105c49f" +MACHINE_LOCK = Path( + "/home/rob/projects/splinterdb/.cache/projects-20261011/coordination/machine.lock" +) + + +def sha256(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def write_json(path, value): + path.write_text(json.dumps(value, indent=2) + "\n") + + +def git(*args): + return subprocess.check_output(["git", *args], cwd=TREE, text=True).strip() + + +def source_manifest(): + paths = git("ls-files", "Makefile", "src", "include", "tests", "examples") + return { + "head": git("rev-parse", "HEAD"), + "origin_main": git("rev-parse", "origin/main"), + "source_sha256": {p: sha256(TREE / p) for p in paths.splitlines()}, + "tracked_source_diff": git("diff", "HEAD", "--", "Makefile", "src", "include", "tests", "examples"), + } + + +def run(command, cwd, log, timeout, env=None): + record = { + "command": [str(arg) for arg in command], + "cwd": str(cwd), + "started": time.time(), + "timeout_seconds": timeout, + } + with log.open("w") as output: + process = subprocess.Popen(command, cwd=cwd, env=env, stdout=output, + stderr=subprocess.STDOUT, start_new_session=True) + try: + record["returncode"] = process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + os.killpg(process.pid, signal.SIGTERM) + try: + process.wait(timeout=10) + except subprocess.TimeoutExpired: + os.killpg(process.pid, signal.SIGKILL) + process.wait() + record.update(returncode=124, timed_out=True) + record.update(finished=time.time(), log_sha256=sha256(log), log=log.name) + record["seconds"] = record["finished"] - record["started"] + return record + + +def build(mode): + command = ["make", "-j6", "BUILD_ROOT=" + BUILD.name, + "BUILD_MODE=" + mode, "all"] + if mode == "release": + command.append("benchmarks") + env = os.environ.copy() + with tempfile.TemporaryDirectory(prefix="prefix-build-", dir=TREE / ".cache") as tmp: + env["TMPDIR"] = tmp + record = run(command, TREE, ARCHIVE / (mode + "-build.log"), 900, env) + record["TMPDIR"] = tmp + record["source_manifest"] = source_manifest() + record["build_config"] = (BUILD / mode / ".build_config").read_text() if (BUILD / mode / ".build_config").exists() else None + write_json(ARCHIVE / (mode + "-build.json"), record) + print(mode, "build", record["returncode"], flush=True) + return record["returncode"] + + +def test(mode): + initial_sources = source_manifest() + write_json(ARCHIVE / (mode + "-source-manifest.json"), initial_sources) + scratch_root = Path(tempfile.mkdtemp(prefix="prefix-validation-" + mode + "-", dir=TREE / ".cache")) + jobs = [(name, "unit/" + name + "_test", []) for name in + ["btree", "superblock", "merge", "splinterdb_quick", "splinter"]] + jobs.extend([ + ("automatic-log-recovery", "unit/splinterdb_forked_child_test", + ["automatic_log_barriers_survive_process_exit"]), + ("functional-log", "driver_test", ["log_test", "--db-location", "log.db", + "--cache-capacity-mib", "64", "--db-capacity-gib", "4"]), + ]) + records = [] + for name, binary_name, args in jobs: + scratch = scratch_root / name + scratch.mkdir() + (scratch / BUILD.name).symlink_to(BUILD, target_is_directory=True) + binary = BUILD / mode / "bin" / binary_name + command = [str(binary), *args] + if name == "splinter": + command.extend(["--db-location", "core.db", "--cache-capacity-mib", "128", "--db-capacity-gib", "64"]) + log = ARCHIVE / (mode + "-" + name + ".log") + record = run(command, scratch, log, 900) + content = log.read_text() + summaries = re.findall(r"RESULTS:.*", content) + record.update(name=name, binary_sha256=sha256(binary), summaries=summaries, + library_sha256=sha256(BUILD / mode / "lib/libsplinterdb.so")) + if name == "splinter": + record["blob_cases"] = [line for line in content.splitlines() if "test_blob_" in line] + if name == "functional-log": + record["replay_summary"] = [line for line in content.splitlines() if "500000" in line or "500,000" in line] + if name != "functional-log" and not re.search(r"RESULTS: [1-9][0-9]* tests", content): + record["missing_test_summary"] = True + record["returncode"] = record["returncode"] or 125 + records.append(record) + write_json(ARCHIVE / (mode + "-results.json"), records) + print(mode, name, record["returncode"], summaries, flush=True) + if record["returncode"]: + return record["returncode"] + final_sources = source_manifest() + unchanged = initial_sources["source_sha256"] == final_sources["source_sha256"] + write_json(ARCHIVE / (mode + "-source-check.json"), {"unchanged": unchanged}) + return 0 if unchanged else 126 + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("action", choices=["build", "test"]) + parser.add_argument("mode", choices=["debug", "release"]) + args = parser.parse_args() + (TREE / ".cache").mkdir(exist_ok=True) + with MACHINE_LOCK.open("rb") as lock: + print("Waiting for shared campaign machine lock", flush=True) + fcntl.flock(lock, fcntl.LOCK_SH) + print("Acquired shared campaign machine lock", flush=True) + return build(args.mode) if args.action == "build" else test(args.mode) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes-progress.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes-progress.log new file mode 100644 index 000000000..85686da0d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes-progress.log @@ -0,0 +1,24 @@ +resident-common-wal0-00-main +resident-common-wal0-01-candidate +resident-common-wal0-02-candidate +resident-common-wal0-03-main +resident-random-wal0-00-main +resident-random-wal0-01-candidate +resident-random-wal0-02-candidate +resident-random-wal0-03-main +load-main-resident-common-wal1 +space-main-resident-common-wal1 +resident-common-wal1-00-main +load-candidate-resident-common-wal1 +space-candidate-resident-common-wal1 +resident-common-wal1-01-candidate +resident-common-wal1-02-candidate +resident-common-wal1-03-main +load-main-resident-random-wal1 +space-main-resident-random-wal1 +resident-random-wal1-00-main +load-candidate-resident-random-wal1 +space-candidate-resident-random-wal1 +resident-random-wal1-01-candidate +resident-random-wal1-02-candidate +resident-random-wal1-03-main diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/manifest.json b/benchmarks/results-20261014/prefix-main-6105c49f/writes/manifest.json new file mode 100644 index 000000000..69441692a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/manifest.json @@ -0,0 +1,2140 @@ +{ + "mode": "writes", + "started": 1792008135.2144141, + "complete": true, + "runner_sha256": "eef41a21f8c4275c300fa24ed69b457b233c8ee0a470926d84c3f5ea755ebd25", + "build_json_sha256": "7bed995652687ea945106e764423ed445b4573d79dc5973b77f05c3cfda0051b", + "builds": { + "main": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main", + "commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "8b059dfa240564a7fca21379b467afc7635b9128d2ca72555300333ae06dbc97", + "src/btree.h": "2dc405429d4d84f606412d3a16dc07dd2aee2877524d658e946cb1a8bf1d865e", + "src/btree_private.h": "43693dd3048ae050b3358ccfc9b91371a3d9dff4f3d6d5c8b07445897dee09f6", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "161352f5247978f3d57033818d05a79d0a1a0d0ffac2bc9f25f4f33eabca2227", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "57be61933a057f52f679dfcf21755a8645e6228cd1a7cdee983f5d57768923ab", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "MAKEFLAGS=B -j8 --jobserver-auth=fifo:/tmp/prefix-main-build-6105c49f/GMfifo3 -- GIT_VERSION=6105c49f BUILD_MODE=release\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557" + } + }, + "candidate": { + "tree": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix", + "commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "library": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "binary": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "source_files_sha256": { + "src/PackedArray.c": "97b64eb0a4f550e55f3385d39d729a878fbc581909ea16ec3b8987a7f46604cc", + "src/PackedArray.h": "e46f854b487a8b130f0613efcab11836012d27c8aacf9ca9e76a2de1a7eb6874", + "src/allocator.c": "96c7f0a5e0808719cf114d267c84da1f057b5eed748b0672d60686d7f130b96f", + "src/allocator.h": "06da1d6a491a15ef5229e8e2e4b4ad6468cb3c9ba620e0d956032dc0a1b6aec1", + "src/batch_rwlock.c": "c043d9e5ead75cd9e1266a6f51fb555012269f3822d7f0233dc2abbd962c3aae", + "src/batch_rwlock.h": "0ff5f0bd7fdf5f9a63ca2f77c387d574d8009ad726b47283c93566cf06bc0927", + "src/blob.c": "75e01e92c06d775b1cb36ea63a7cddf191b5179b94c3e9cd6b5b23ab0480485b", + "src/blob.h": "8f68d2f67de8a9d81a422b28d47aa636cc7234fccc3dbabe59f2355bc361e93c", + "src/blob_build.c": "e484e9c14fd8a9b3c1d211485c35931c944fc66ac4ee78ea20ffc5b3f074b10b", + "src/blob_build.h": "38176881cf9159247e6f578bbc7abb725cfa969c493715df7d1388cb7cbfd119", + "src/btree.c": "37261b2d1237adc99be07c53f211b0ece5def9c5e1377eb9e5af0281e28f8dfd", + "src/btree.h": "af862c7ec14b2c7ff9e610a700fbb2628479ec31c04e77b4037cf81895cbf486", + "src/btree_private.h": "4093945f3edd1e5915469b2b780e4c7bac93f78048c9c2bd00c1b96198bd8166", + "src/cache.h": "d4c1e133d6423fff324d0ebcf5c95e13647c0022a3458935156746b90d816d6d", + "src/clockcache.c": "e0ef2e19a8280849df4ee80d9b8a54a0faaf56a13faefe7a91d54f5b7269f933", + "src/clockcache.h": "68f4e7b019d0440f85929bfc0da1891ce941318ee7dfd14a3d4d923e3d4e72d8", + "src/core.c": "7f4c49cc68de619c588abd65df69583b0c1cb4634da5e2096cd7538f96cc0025", + "src/core.h": "c820a39abdcf0e69bb7aba1f8f9741d72e77609df4b85dbd2233b693559869ec", + "src/data_blob_build.c": "13475faa56bba94ee26ef7fec4e4da8a5045e0efe510a63291fd5e2697cb5d22", + "src/data_blob_build.h": "dd7f263a0b1138325b211c561ba7289183a2cc8472978cba3ca430295e11e5f3", + "src/data_internal.c": "0a42dd477aaa6ad6c4910841045c4c768ad8d248c0126c64c51035f53e769cde", + "src/data_internal.h": "98b4ebe77576c4cbb7dd9984ca5e297851175494062073f1a4c137c5afb8b587", + "src/default_data_config.c": "08a6f5e78d3874f5a1ead8d309efb910a0900bcd5ff5e4e981de3593ccd09f9e", + "src/histogram.c": "24e09dfabd6085021d8a06ef9b10f6e85b24914d95831be359df09f8a9729aff", + "src/histogram.h": "7ccfde6d3ada7ead18fe477c06a6b021db83ca8c041ab0998ca023b945a3c1c7", + "src/iterator.h": "2fcddeb9fa6bd49f4e3da933224219bdb830f9e2f11638ea1ed13eba534fa27f", + "src/log.h": "da650095ba27154c029a2ef10c5fcac963002e294ad65688b80b5805786b8a45", + "src/log_data.h": "8b9198c49c95367f5c66cfa23ec1a3b6cab2abd875fe74c4afb4dafb5a5c44fe", + "src/lookup_result.h": "7528b988a28ef91b6bd7a4fa10dfa51b9ce2475e801b3b6a8bf30adf88f1ef16", + "src/memtable.c": "7db3b4754497c73b4071c7e7e591cc76fc226197fb70d98fb46caf139b3953f4", + "src/memtable.h": "244cac7cf304df85a25c8bede2df106d6f840d65bbd1a3551b3d9f2ed9129fc1", + "src/merge.c": "0b9547090a291b88f957689d8786fbaab35a2e2a18a4ae72b532c11415f5a9a7", + "src/merge.h": "771c1c2b5c581901c67aefa07d9e8c9d4f730e1137633b5b5efe35d14a6bd0d1", + "src/mini_allocator.c": "d620cbdff9867ce64c752992ede58783010fb09366220ad3bd6d8518911205ca", + "src/mini_allocator.h": "39d245b58914d28b26dfe230b9de15582382cec1c2a90fa14db19f5f2c203632", + "src/notification.c": "54af1fe6af2e5fc84fbee21a74ff55069a8aa7e4ec7f9d8c9485e85e91669b58", + "src/notification.h": "f4df33131f407e6a957602a05c72f4bca7efed98b1a39134f94bf889a6ca5f29", + "src/ondisk_ref.c": "2ace8cbbce3f80a54ff7762ad03a79a564665fa660394f1d3446235a3e40ed7b", + "src/ondisk_ref.h": "643325c8b4f16fab41d8c884c97bdfcf6c86e5178398508fa0f81b6b0606926d", + "src/pcq.h": "862cd346b0097014ccae797dc1463e7b3fc387f409319d5adcef7613b6f82f84", + "src/platform_linux/async.h": "41383b57e21f0f51d737749a4ce7c2c5330ac9363e742330625c9aedd4f13a52", + "src/platform_linux/laio.c": "0ce628806e6896070359a9e39d069f326f460ab697c6c17ff17d171614290881", + "src/platform_linux/laio.h": "f3987e22f1fd7a9d6b46c79f84e75559aec5410239a13d52a7a5343ba792b28e", + "src/platform_linux/platform.h": "f1c3d7c5bcd089ed7a7df129d3b8d00d7617de9a7aa6f9d1f7deeb739281e768", + "src/platform_linux/platform_assert.c": "112e803b6db03dd8c14a3bfc3f1139bbcc4b81f1d5e24a232b7b99ce89146c2d", + "src/platform_linux/platform_assert.h": "751dccceac9ce4a97d25d441b5216ced5ee5f079a13c9ccd43551b0994aa7cc2", + "src/platform_linux/platform_backtrace.h": "ef13ccbf4ae4747b0de244a37c026ad8769018d84f9fc4d6493db43d9714358c", + "src/platform_linux/platform_buffer.c": "b790d645b3dc5f638da871bf9611865dc700927f3b594a1d645b0350bd1bd027", + "src/platform_linux/platform_buffer.h": "72e016dbb19b8250378b3a5c79fbebf9c3d72a31d07a232f36431e04f0e4afa6", + "src/platform_linux/platform_condvar.c": "e595f69194accb3f3460d6fc9a4a9144bd7f495dbeb77f11bf3616dc0e9b03ec", + "src/platform_linux/platform_condvar.h": "a4ee02ae5069637bce4cae07f3ed9869925f17a9e6e1b04d69baedfc148fd493", + "src/platform_linux/platform_hash.h": "f69f5ed6218bfe62c62718b387e1c110e9fca46c07603d4d51ccc4fc782b09ab", + "src/platform_linux/platform_heap.c": "72bb2753f525e56f8c398988a787feb38f02efaa749e5d57cb476f967269c479", + "src/platform_linux/platform_heap.h": "921f3113d20b44c36817c284702e965e01769596ff012edd6ceaa70cbdbbd10a", + "src/platform_linux/platform_io.c": "875a7331f8bfa46e9a6961f50acb40b107d40883839c94def52a289a521c66be", + "src/platform_linux/platform_io.h": "69ae9556daf1c7a69e007abd494bf9c86ec81c08bca1e032663009cef95b2fac", + "src/platform_linux/platform_log.c": "318bd17c858475a3a91c5e9641b52808f7c4194e1c6fc9a7d801392b04c49538", + "src/platform_linux/platform_log.h": "569484386150fcfbf5dde722c5b8e34d67d65be3454e3e009cb9df41f11efea6", + "src/platform_linux/platform_machine.h": "c02745313c7268dbe99efa2b93dd4d37640b5a7aa2e88c78fd5b73742f252c7d", + "src/platform_linux/platform_mutex.c": "7ec1dd6a5397217d28fd85c10648d29a70bf66649f59f76d7387236031b15bf3", + "src/platform_linux/platform_mutex.h": "688991d6a7dc57a7a88f565541561344cdfbb1733ca6073f1655d6c436ed6544", + "src/platform_linux/platform_random.h": "184ac9da9c38a6c10275891be61ccb91beaf2234ebb9ce046d059cb16824d68f", + "src/platform_linux/platform_semaphore.h": "9fdb7cfeaf36c8bf9aa346a16466ed6bc50bea76fdb5722c86001563d55bedfe", + "src/platform_linux/platform_sleep.h": "34aeaea35133bf33e47eb1d9ace429297644e13bc100d90ebbd205bceb58d3ab", + "src/platform_linux/platform_sort.h": "d374788510f94a8c3b86ff6bfa1f6a3ff8ac33168eb26f6f7774984252f6d01e", + "src/platform_linux/platform_spinlock.h": "7b3f0409109f3341f2287fe7cd8fb69faac4a74b009a44c1eb83220f71e94de0", + "src/platform_linux/platform_status.h": "2749285ea1322e5c1639019b728fde4b87b0cae6f71a7fc16e420bd592d38c00", + "src/platform_linux/platform_string.h": "fa41faf9c6661c62ece783740250232709656b0a8677f542e390a5f3b0d834a6", + "src/platform_linux/platform_threads.c": "789465a2c6ac7ac501e5878f429cc0dd9b163145a522e247a4833e3de7af8f2a", + "src/platform_linux/platform_threads.h": "653e070115131756e6aaffc3c2764a6437fb39ff96df4afc8a01e6e751c9d622", + "src/platform_linux/platform_time.h": "f212a08cf8432693711cecfd389f9ed3d0a70e0c056dc062321bd11c4a8cbec7", + "src/platform_linux/platform_trace.c": "4a68e89f214920dd2762d072a0ad8e7c80d9b1733a64e4a7e3dd4bb04b91c352", + "src/platform_linux/platform_trace.h": "345f7283b01e5a9b4d5da7bea66ad44ff61f53155417c97990e23bb8fedadf33", + "src/platform_linux/platform_typed_alloc.h": "42c1d2bbd56c183d11768a5f43d440cf3c1bfe329c4352afa6acd3bc2b191a8e", + "src/platform_linux/platform_units.h": "1cb22a07b33ec8b58f9381438f480f561d12b838f315a117cc1f979e95b1ef65", + "src/platform_linux/platform_util.h": "4fa2702b3919eb1a7efcf29457f5ee9a3d7a7b4c38fed4606264562022fa2638", + "src/platform_linux/poison.h": "a32dfa445439eb08913e519117e7b11f72b2c3550577a74769ed935a792c42c5", + "src/platform_linux/shmalloc.c": "e4631d63a9db1ad58472ad3d034d081f2bb9a97f34c5898f7c848dda923727f8", + "src/platform_linux/shmalloc.h": "081a82473f6021f8ed628e79f8ae5dc7104988981f8c3b25749ea42c8158113d", + "src/prefetch.h": "9d55d9dad64e3795c81856bc38688936e4e74e488dfe2d29a1f5438ad000df42", + "src/rc_allocator.c": "23ef0da6fb2d5114fe403403c8e535bf8ba19ed2c8bef4397212933cedfc8b9e", + "src/rc_allocator.h": "5f1fae7e32207a4e0cd5c4f799c9b802ce116dd381ee5c074c21d64a229dc3ad", + "src/routing_filter.c": "b367f375536ad2119515ee450235ffd27a588a8a73e3495250abd44ac48f453a", + "src/routing_filter.h": "66a6f52a7773857e52b1440f32c46f492210d9dd54c0e3145cbed553fa959f3d", + "src/shard_log.c": "2ce39e31f8c770f60bfdfac354a9af304fbd89ff0e260efbc6b05098a56cd9e5", + "src/shard_log.h": "9d4f1514380d9ede38b08842344eb1c41e93c4565ae36c5741b6d742f4689350", + "src/splinterdb.c": "658a74458e2c07b363e85e78d81313dcad7ca4c705bdceb40b16a78d1c167b01", + "src/splinterdb_tests_private.h": "579031767b8869f49cf1e3fc94caeec13a1362dfd047782538df40b281c93414", + "src/superblock.c": "e3fbe387ac4fef197c11977e35e3aecf0d31c27c9d4932e4ec54b1bfc391620a", + "src/superblock.h": "cec63cb28426e2d23140b3ac310a86ae9635d6b3ec429abe7c469bc0de06aa73", + "src/task.c": "470418c0da14795c4697c51ef7b22e128b691c1c24a704791eea09a10b9373a4", + "src/task.h": "ebcc3bd29cef9ee8718c6ff0186863fff0dad03bcfaa43e5eacaf83c1933d01d", + "src/trunk.c": "013d25adbdc62c98935e8043ce0afba76565ce1971b664d7ce1eec2aab2167c3", + "src/trunk.h": "3c5081230d6fdfcf2e8aa2bbcff093c7694154b465d7e77cb28d48cb0412c855", + "src/util.c": "969df408c4c393f73feb05dfa37ebe1ed8be627cef630061830e4992c4c1fd9c", + "src/util.h": "9fa455f5a6268fa4a6864d444849b0872391af00512932c1587363cfd38304ef", + "src/vector.h": "6855dd0430f1a868d098797cbd4f3453ab542b5f6fbe716c79871124bee200a9", + "src/writeback_set.c": "cb485716f57a3183ce82543848edaf61f6568c9ff0445ea5ff989f95c00848ff", + "src/writeback_set.h": "68d6f589d24719a09e2680b05a1eb7e36c22b1fab978768f5b54f958f667aec9", + "include/splinterdb/data.h": "cbb9c1d63a7ff902cb6b3ef382981e31983331d8423ada510cd9693e5b7b123a", + "include/splinterdb/default_data_config.h": "179386f3e224d322a9d7ac97afd929292994a1d890a3254705f9ebea525bce32", + "include/splinterdb/platform_linux/public_platform.h": "c5ded82c5b5bb5bbcedf06a66951eb98dc8892f7b3c4f8ce07c474db98ac68a0", + "include/splinterdb/public_platform.h": "4ce9da3fea9a54fb7bb613ec1458f11f043525efb7d0bc55182f7183dd4a4f6e", + "include/splinterdb/public_util.h": "4e8f6b30408fb4174894d4ba809acff4e96f559370c7749b65bb3724a853603f", + "include/splinterdb/splinterdb.h": "18ef6fd1d5aa273370aa7483c66bbc5dc87b6880b23fca945e5bd9bd9dd82aeb" + }, + "build_config": { + "build-config.fb6bc8eeb8390429253883c09491f5bd": "BUILD_ROOT=build-main-6105c49f\nMAKEFLAGS= -j6 --jobserver-auth=fifo:/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-build-xn10vunh/GMfifo3 -- BUILD_MODE=release BUILD_ROOT=build-main-6105c49f\nBUILD_MODE=release\nQT_ACCESSIBILITY=1\nCC = cc\nDEPFLAGS = -MMD -MP\nCFLAGS = -D_GNU_SOURCE -ggdb -Wall -pthread -Wfatal-errors -Werror -Wvla -DXXH_STATIC_LINKING_ONLY -fPIC -DSPLINTERDB_PLATFORM_DIR=platform_linux -O3 -ffast-math -flto -DPLATFORM_MEMORY_FAULT_INJECTION=0\nTEST_MEMORY_FAULT_DISABLED_CFLAGS = -DPLATFORM_MEMORY_FAULT_INJECTION_DISABLED_IN_THIS_FILE\nINCLUDE = -I include -I src -I src/platform_linux -I tests\nTARGET_ARCH =\nLD = cc\nLDFLAGS = -ggdb -pthread -O3 -ffast-math -flto\nLIBS = -lm -lpthread -laio -lxxhash\nAR = ar\n" + }, + "harness_build": { + "command": [ + "cc", + "-D_GNU_SOURCE", + "-ggdb", + "-Wall", + "-pthread", + "-Werror", + "-DXXH_STATIC_LINKING_ONLY", + "-fPIC", + "-DSPLINTERDB_PLATFORM_DIR=platform_linux", + "-O3", + "-ffast-math", + "-flto", + "-march=native", + "-DKVBENCH_CLOSE_HAS_FORCE", + "-DKVBENCH_SPACE_MODE", + "-DKVBENCH_PREFIX_SUPPORT", + "-I", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/include", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench.c", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/lib/libsplinterdb.a", + "-laio", + "-lxxhash", + "-lm", + "-lpthread", + "-o", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench" + ], + "source_sha256": "127357ddacf129b1a15d2c8e5d60f928d28a101b2ea414ff6d7fff4c2e386d51", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a" + } + } + }, + "storage": "ext4 /dev/mapper/snafu-root_crypt[/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix]", + "database_directory": "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases", + "io": "O_DIRECT", + "fixture_copy": "cp --reflink=auto --sparse=always, then fsync", + "cpu_affinity": "0-11", + "platform": "Linux-6.12.107+deb13-amd64-x86_64-with-glibc2.41", + "available_cpu_affinity": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "loadavg_start": [ + 6.9853515625, + 7.5205078125, + 5.0498046875 + ], + "environment": { + "PREFIX_PATTERN": "per case", + "PREFIX_DISABLE": "unset except candidate disabled case", + "KVBENCH_STATS_BEFORE_CLOSE": "1 for fixture creation only" + }, + "coordination": "Caller holds exclusive campaign benchmark and machine locks", + "seconds": 8, + "warmup_seconds": 1, + "seed": 42, + "loading_threads": 1, + "background_workers": 0, + "memtable_mib": 4, + "verification": "Every query verifies key/value or ordered range; overwrite validates up to 4096 measured keys per worker after timing", + "runs": [ + { + "label": "resident-common-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008135.2435777, + "log": "writes/resident-common-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008145.1315868, + "log_sha256": "f09b3e1e9d2d6554edfb349576937113473fcb256f7692d2cd562c4bfb8d9245", + "process_cpu_s": 64.55474000000001, + "process_read_bytes": 2787983360, + "process_write_bytes": 3819388928, + "case": "resident-common", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.027447938919067383, + "csv": "writes/resident-common-wal0-00-main.csv", + "csv_sha256": "8882b022747dca641e7228f74ca2e817654cb2980e6c113ade723576d51c2d70", + "allocated_bytes": 3299307520, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008145.2262595, + "log": "writes/resident-common-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008154.560756, + "log_sha256": "f0931c63cf82b382ed5227493a90fdf5746bc7de9f5d65806f3313197518a4b4", + "process_cpu_s": 60.30219699999998, + "process_read_bytes": 1485963264, + "process_write_bytes": 2100105216, + "case": "resident-common", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.05681300163269043, + "csv": "writes/resident-common-wal0-01-candidate.csv", + "csv_sha256": "dd3fe9c1d144a7da55c5b8ad074b96ed0fe3325c8064c5bce633f643a34387c5", + "allocated_bytes": 1967857664, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008154.6560426, + "log": "writes/resident-common-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008164.5444024, + "log_sha256": "08c5497eb94536a19388c030c2795bc2232089e5ac485b84511072d496dcf32d", + "process_cpu_s": 57.02393700000001, + "process_read_bytes": 1448644608, + "process_write_bytes": 2001268736, + "case": "resident-common", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-common-wal0", + "fixture_sha256": "f4c8713c867c9c3cb90a91315e9d7aa8f227a7a2ed6f95d4b11d5aac53ba70f9", + "copy_fsynced": true, + "copy_seconds": 0.0686185359954834, + "csv": "writes/resident-common-wal0-02-candidate.csv", + "csv_sha256": "988dc3c82721c0e33085e4e2a9bf1820b9e3612148563c976bcdb0e2ec4a28cc", + "allocated_bytes": 1887563776, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008164.6189334, + "log": "writes/resident-common-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008174.9081142, + "log_sha256": "6a677217e04dffa48e6be53b816d8886faa1f9df97506dd6c42396e7be62dea7", + "process_cpu_s": 53.360085, + "process_read_bytes": 2155966464, + "process_write_bytes": 2882187264, + "case": "resident-common", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-common-wal0", + "fixture_sha256": "f8a175cd7fd7799d33e91c5632881a609249e5901518790cf4cd606ed8dd05d7", + "copy_fsynced": true, + "copy_seconds": 0.05270266532897949, + "csv": "writes/resident-common-wal0-03-main.csv", + "csv_sha256": "40267adf5e8fe22864da435620d54cde085ccaf2eb9e5423cf4ed1b44371f682", + "allocated_bytes": 2619596800, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal0-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008175.0090284, + "log": "writes/resident-random-wal0-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008184.8460336, + "log_sha256": "4f5ac2c4699a2eed46c256e1f9d8a0268687c8c614df63121843bfd992a464e4", + "process_cpu_s": 51.47578699999999, + "process_read_bytes": 2065104896, + "process_write_bytes": 2832412672, + "case": "resident-random", + "wal": 0, + "index": 0, + "fixture_key": "main-resident-random-wal0", + "fixture_sha256": "61b6513de7a5bc2bee5ea8de5e4f475dfefa9fe9afd5de49b2353066e11a4b1a", + "copy_fsynced": true, + "copy_seconds": 0.07411026954650879, + "csv": "writes/resident-random-wal0-00-main.csv", + "csv_sha256": "4294f432a65895f8ebca93bdbc81c1561a66c83d53e9a17d155b90b86039bed4", + "allocated_bytes": 2572365824, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal0-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008184.9633715, + "log": "writes/resident-random-wal0-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008194.550738, + "log_sha256": "13a9123e26fa805e02456364abd56ff9e7c7407da3bdf040370c4bf52b581598", + "process_cpu_s": 50.82079599999997, + "process_read_bytes": 1928122368, + "process_write_bytes": 2723835904, + "case": "resident-random", + "wal": 0, + "index": 1, + "fixture_key": "candidate-resident-random-wal0", + "fixture_sha256": "fd1e976b91a26f529f5d3f7a2341b16f0dd61f0166973da8ee0424907081ef84", + "copy_fsynced": true, + "copy_seconds": 0.08821606636047363, + "csv": "writes/resident-random-wal0-01-candidate.csv", + "csv_sha256": "515c3887d2883b3cdd7d6ee2be7aa4ff7bd173652cd20ce28c388bc6d807882e", + "allocated_bytes": 2481422336, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal0-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008194.6460087, + "log": "writes/resident-random-wal0-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008204.1825893, + "log_sha256": "55e0ebe386d8537912bbd1d93d9f20c9841ad5ac4da02e528bde37cb26afc4dd", + "process_cpu_s": 51.98449000000004, + "process_read_bytes": 1857642496, + "process_write_bytes": 2733617152, + "case": "resident-random", + "wal": 0, + "index": 2, + "fixture_key": "candidate-resident-random-wal0", + "fixture_sha256": "fd1e976b91a26f529f5d3f7a2341b16f0dd61f0166973da8ee0424907081ef84", + "copy_fsynced": true, + "copy_seconds": 0.06569981575012207, + "csv": "writes/resident-random-wal0-02-candidate.csv", + "csv_sha256": "e5a399256fa3e587fbd6905dbe6ba65871bc7e990617c6ae7dc7128ba9f71a23", + "allocated_bytes": 2509463552, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal0-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "0", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008204.2622902, + "log": "writes/resident-random-wal0-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008213.8988156, + "log_sha256": "6896ee0363d31e82f91b99d9715fbe245001f77a0292367f880272c2cb62aa34", + "process_cpu_s": 46.99365799999994, + "process_read_bytes": 1922359296, + "process_write_bytes": 2570141696, + "case": "resident-random", + "wal": 0, + "index": 3, + "fixture_key": "main-resident-random-wal0", + "fixture_sha256": "61b6513de7a5bc2bee5ea8de5e4f475dfefa9fe9afd5de49b2353066e11a4b1a", + "copy_fsynced": true, + "copy_seconds": 0.053458213806152344, + "csv": "writes/resident-random-wal0-03-main.csv", + "csv_sha256": "dfa1d0f854e26228da1233253002d50e6452b8bc8624d0b521436858934dd42b", + "allocated_bytes": 2354335744, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "load-main-resident-common-wal1", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal1.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal1.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "load:random@1" + ], + "started": 1792008213.9247308, + "log": "fixtures/load-main-resident-common-wal1.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008214.6912608, + "log_sha256": "0048bd392310c3ede7f901b36d6e846884a51a9cbcaeb16313c9147852264257", + "process_cpu_s": 0.4594000000000591, + "process_read_bytes": 0, + "process_write_bytes": 76374016, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-resident-common-wal1.csv" + }, + { + "label": "space-main-resident-common-wal1", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-common-wal1.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-common-wal1.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "space" + ], + "started": 1792008214.6929772, + "log": "fixtures/space-main-resident-common-wal1.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008214.8579965, + "log_sha256": "05e7995a1cf7767804894edd7ced6c6126e5294d2531ac88f99cbf1e7c78313e", + "process_cpu_s": 0.010649000000022113, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 347 + }, + { + "label": "resident-common-wal1-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008215.3081622, + "log": "writes/resident-common-wal1-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008224.9439561, + "log_sha256": "fb404721b1140afea7331235cc182917f7baf24322c915ab69822b2fe1a01060", + "process_cpu_s": 22.944876000000008, + "process_read_bytes": 951427072, + "process_write_bytes": 2651205632, + "case": "resident-common", + "wal": 1, + "index": 0, + "fixture_key": "main-resident-common-wal1", + "fixture_sha256": "856cb8b26a6a90a57c1a5dd1452889f50403360304aba11e61052b4ce625390a", + "copy_fsynced": true, + "copy_seconds": 0.10549139976501465, + "csv": "writes/resident-common-wal1-00-main.csv", + "csv_sha256": "cca6126514214c030b99b26a5d63cc1223e4fcfc4473a3d389d9c4c10e5cfa03", + "allocated_bytes": 2525745152, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "load-candidate-resident-common-wal1", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal1.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal1.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "load:random@1" + ], + "started": 1792008224.976122, + "log": "fixtures/load-candidate-resident-common-wal1.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008225.6921437, + "log_sha256": "c5eaf969791b324c3a0f707c8a990a7116c7d35e3b47c3c865741d20e6b722b4", + "process_cpu_s": 0.4462900000000545, + "process_read_bytes": 0, + "process_write_bytes": 65093632, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-common-wal1.csv" + }, + { + "label": "space-candidate-resident-common-wal1", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-common-wal1.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-common-wal1.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "space" + ], + "started": 1792008225.6939938, + "log": "fixtures/space-candidate-resident-common-wal1.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008225.8087838, + "log_sha256": "396cc5934ab676fe64361c1b17a4c80ba086f37f9b6a7561d628062b0cac9ea8", + "process_cpu_s": 0.011739000000005717, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 261 + }, + { + "label": "resident-common-wal1-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008226.2106426, + "log": "writes/resident-common-wal1-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008235.745267, + "log_sha256": "8de6d260b9b819b3fd0f4e794ce54aa43b1a9fbead933946aa3bd1af7dbea1e3", + "process_cpu_s": 27.737018000000006, + "process_read_bytes": 643612672, + "process_write_bytes": 2602889216, + "case": "resident-common", + "wal": 1, + "index": 1, + "fixture_key": "candidate-resident-common-wal1", + "fixture_sha256": "30d7a46071ee083cf56fee4dc1a28135ad39412918fb7e51b093f49bddf178aa", + "copy_fsynced": true, + "copy_seconds": 0.07528519630432129, + "csv": "writes/resident-common-wal1-01-candidate.csv", + "csv_sha256": "9237560d45ef9ea4d7f5a8a4d86e26581f6a7092c35f3959fee1ba2a626eee0e", + "allocated_bytes": 2504220672, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal1-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008235.8652184, + "log": "writes/resident-common-wal1-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008245.5494325, + "log_sha256": "2fe14f556187e18a6ea151f8f9ae90d0cca46d3e30ff66eb3728e7c206aa7c8d", + "process_cpu_s": 25.54661699999992, + "process_read_bytes": 609222656, + "process_write_bytes": 2303242240, + "case": "resident-common", + "wal": 1, + "index": 2, + "fixture_key": "candidate-resident-common-wal1", + "fixture_sha256": "30d7a46071ee083cf56fee4dc1a28135ad39412918fb7e51b093f49bddf178aa", + "copy_fsynced": true, + "copy_seconds": 0.09100055694580078, + "csv": "writes/resident-common-wal1-02-candidate.csv", + "csv_sha256": "0a4236ab7bfeb47e356b6baaea2ffe7f9b838d0f325b0adf8685ee69dda91283", + "allocated_bytes": 2256248832, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-common-wal1-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008245.7076378, + "log": "writes/resident-common-wal1-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "common", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008255.7428412, + "log_sha256": "6f14487ead729ae50ecae11b91c9607ed3e6dc89aa4fef673f5313e7851e6383", + "process_cpu_s": 22.266572000000068, + "process_read_bytes": 870674432, + "process_write_bytes": 2352144384, + "case": "resident-common", + "wal": 1, + "index": 3, + "fixture_key": "main-resident-common-wal1", + "fixture_sha256": "856cb8b26a6a90a57c1a5dd1452889f50403360304aba11e61052b4ce625390a", + "copy_fsynced": true, + "copy_seconds": 0.12808966636657715, + "csv": "writes/resident-common-wal1-03-main.csv", + "csv_sha256": "318e61a360a6056fd30981b3e7ff3264cea52fc156e0a9cf8ff47bc90f7db40f", + "allocated_bytes": 2317344768, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "load-main-resident-random-wal1", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal1.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal1.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "load:random@1" + ], + "started": 1792008255.778685, + "log": "fixtures/load-main-resident-random-wal1.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008256.745302, + "log_sha256": "5388431799ac6253569c93c08505e2c6080e1b9a401f12a4677cc20b59f49869", + "process_cpu_s": 0.6445199999999929, + "process_read_bytes": 0, + "process_write_bytes": 76374016, + "errors": 0, + "violations": 0, + "csv": "fixtures/main-resident-random-wal1.csv" + }, + { + "label": "space-main-resident-random-wal1", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-main-resident-random-wal1.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/main-resident-random-wal1.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "space" + ], + "started": 1792008256.7470994, + "log": "fixtures/space-main-resident-random-wal1.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008256.9124455, + "log_sha256": "5483c4eff622bffe1d0de5e3a355aff34e42c853f91d3e1d4a0fbe93de0343fa", + "process_cpu_s": 0.07281899999997421, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 347 + }, + { + "label": "resident-random-wal1-00-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-00-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008257.4168031, + "log": "writes/resident-random-wal1-00-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008267.2533798, + "log_sha256": "6c5933a186a389ab971f65d8723ca660d12f52f66064d2fe6c4ad2f919a819bc", + "process_cpu_s": 22.58386899999995, + "process_read_bytes": 876425216, + "process_write_bytes": 2327093248, + "case": "resident-random", + "wal": 1, + "index": 0, + "fixture_key": "main-resident-random-wal1", + "fixture_sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "copy_fsynced": true, + "copy_seconds": 0.1327686309814453, + "csv": "writes/resident-random-wal1-00-main.csv", + "csv_sha256": "a55729078990c8b1ace115dded4a8053bdb6e84300e389cf381c855b526634b3", + "allocated_bytes": 2309144576, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "load-candidate-resident-random-wal1", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal1.db", + "--create", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "1", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "1", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal1.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "load:random@1" + ], + "started": 1792008267.2799368, + "log": "fixtures/load-candidate-resident-random-wal1.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008268.0964565, + "log_sha256": "c8918b811c9c8f4ce273a2633dc6e1a4a27117db59da0764624c002d681bab1f", + "process_cpu_s": 0.5231319999999755, + "process_read_bytes": 0, + "process_write_bytes": 76374016, + "errors": 0, + "violations": 0, + "csv": "fixtures/candidate-resident-random-wal1.csv" + }, + { + "label": "space-candidate-resident-random-wal1", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/fixture-candidate-resident-random-wal1.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/fixtures/candidate-resident-random-wal1.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "0", + "--rep", + "0", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "space" + ], + "started": 1792008268.0984495, + "log": "fixtures/space-candidate-resident-random-wal1.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008268.2639968, + "log_sha256": "01f39efed5e205fa7a3fee92f8656a5a92e76414c49a21c4be63675231b17407", + "process_cpu_s": 0.06544499999995423, + "process_read_bytes": 282624, + "process_write_bytes": 327680, + "live_extents": 347 + }, + { + "label": "resident-random-wal1-01-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-01-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "1", + "--rep", + "1", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008268.7194254, + "log": "writes/resident-random-wal1-01-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008278.7064173, + "log_sha256": "c7134994f4e27d5e7ba4437f4f564dfb3218c8e5bedae4840903708d93fd5102", + "process_cpu_s": 27.38142499999998, + "process_read_bytes": 595357696, + "process_write_bytes": 1984651264, + "case": "resident-random", + "wal": 1, + "index": 1, + "fixture_key": "candidate-resident-random-wal1", + "fixture_sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "copy_fsynced": true, + "copy_seconds": 0.09647440910339355, + "csv": "writes/resident-random-wal1-01-candidate.csv", + "csv_sha256": "d98158ad3ef707ccea8927210937f34918eb670e3264508b453a92e6f7b5330c", + "allocated_bytes": 2027864064, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-02-candidate", + "profile": "candidate", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/build-main-6105c49f/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-02-candidate.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.csv", + "--vtag", + "candidate", + "--stag", + "resident", + "--otag", + "2", + "--rep", + "2", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008278.9156673, + "log": "writes/resident-random-wal1-02-candidate.log", + "binary_sha256": "4a2832906a6eb61b2876ae44486b6e5ff066cefb0b3e4b50b2feac6464fe3d1a", + "library_sha256": "88ff40df48b997a907a7fffb617c3dbbffb1f5e215f1d61bfa2b232fe86b2fbf", + "source_commit": "97e5c0e38b818ae43cd3abdcf8d4489b7dbe3789", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008289.4018507, + "log_sha256": "61a7b1c61bda86ca7dbe49f63042fe0353219c43b45253bac38450b63db7b674", + "process_cpu_s": 26.215483999999947, + "process_read_bytes": 780300288, + "process_write_bytes": 2256977920, + "case": "resident-random", + "wal": 1, + "index": 2, + "fixture_key": "candidate-resident-random-wal1", + "fixture_sha256": "0327d5f0ced6cd12906480fdadec36abb6519d35948adcd8e1edde6411ad5451", + "copy_fsynced": true, + "copy_seconds": 0.15073466300964355, + "csv": "writes/resident-random-wal1-02-candidate.csv", + "csv_sha256": "8f03b8cb2c52641eda8fc3e0a15e1221861f47b2c0d089ec9f5454cd1ec7a48a", + "allocated_bytes": 2247405568, + "errors": 0, + "violations": 0, + "phase_count": 2 + }, + { + "label": "resident-random-wal1-03-main", + "profile": "main", + "command": [ + "taskset", + "-c", + "0-11", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/main/build/release/bin/prefix_kvbench", + "--db", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-03-main.db", + "--open", + "--n", + "200000", + "--cache-mib", + "128", + "--disk-gib", + "8", + "--log", + "1", + "--threads", + "8", + "--mt-bg", + "0", + "--normal-bg", + "0", + "--memtable-mib", + "4", + "--secs", + "8", + "--warmup", + "1", + "--csv", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.csv", + "--vtag", + "main", + "--stag", + "resident", + "--otag", + "3", + "--rep", + "3", + "--seed", + "42", + "--hang-secs", + "60", + "--hang-dir", + "/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/benchmarks/results-20261014/prefix-main-6105c49f/writes", + "warm", + "ow:uniform@8" + ], + "started": 1792008289.5184915, + "log": "writes/resident-random-wal1-03-main.log", + "binary_sha256": "809362cdfdcd9258f2dd11d53e4324aa86bb040eea5362480db07860ab98c557", + "library_sha256": "93bb1358bd7c087796b7f44e8eb6cda66f63a107c4854b397edfbff7cc3a5523", + "source_commit": "6105c49f66a24d3006ba0464d9558b52e692e27c", + "pattern": "random", + "compression_disabled": false, + "verified": true, + "returncode": 0, + "finished": 1792008299.6044567, + "log_sha256": "03752930bd4d6efbc748790a766ae8042e26886c24795a02b45fe7208e078751", + "process_cpu_s": 24.593229000000136, + "process_read_bytes": 839225344, + "process_write_bytes": 2337067008, + "case": "resident-random", + "wal": 1, + "index": 3, + "fixture_key": "main-resident-random-wal1", + "fixture_sha256": "7ee03b7eebb20d952f90527ff4622769833d9b849d0444ce08d528f3255fdcd1", + "copy_fsynced": true, + "copy_seconds": 0.08344626426696777, + "csv": "writes/resident-random-wal1-03-main.csv", + "csv_sha256": "05aaf4807eb3e8005922ab4087d790bb381e04ecd0f3317e7fd71c75af22eaec", + "allocated_bytes": 2309431296, + "errors": 0, + "violations": 0, + "phase_count": 2 + } + ], + "finished": 1792008299.6424491, + "loadavg_end": [ + 9.98486328125, + 8.5859375, + 5.85986328125 + ] +} diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.csv new file mode 100644 index 000000000..3c5d77bdf --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.014,14618258.8,nan,nan,nan,0.000,nan,0.059,3406110.6,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,14618258.8,0.014,0.000,0.014,0.000,0,0,nan,0,0,0.005,0,0,0,0,0 +main,resident,0,0,ow:uniform@8,8,0,200000,18254987,8.000,2281818.6,1.584,6.208,51.712,207392.738,3.466,56.696,321982.9,2582802432,3420741632,141.48,187.39,nan,nan,nan,nan,nan,0,0.0,8.000,0.114,8.114,0.027,442368,10694656,1.1462,8589934592,3299307520,0.005,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.log new file mode 100644 index 000000000..621c73536 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-00-main.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=0 sabotage=0 +open took 0.005 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 14618259 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.06s ops/cpu-s=3406111 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.114 s +== ow:uniform@8 T=8 ops=18254987 secs= 8.00 ops/s= 2281819 lat us p50=1.58 p99=6.21 p99.9=51.71 max=207392.7 mean=3.47 + cpu=56.70s ops/cpu-s=321983 rd=141.5 B/op wr=187.4 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.11s total=8.11s drain_cpu=0.03s drain_rd=442368 drain_wr=10694656 wamp=1.146 db_apparent=8589934592 db_alloc=3299307520 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.csv new file mode 100644 index 000000000..f5b8f545f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.012,16519354.0,nan,nan,nan,0.000,nan,0.048,4130524.6,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,16519354.0,0.012,0.000,0.012,0.000,0,0,nan,0,0,0.006,0,0,0,0,0 +candidate,resident,1,0,ow:uniform@8,8,1,200000,16628314,8.000,2078472.6,1.616,6.336,37.376,254673.570,3.805,52.470,316910.9,1435172864,1879560192,86.31,113.03,nan,nan,nan,nan,nan,0,0.0,8.000,0.113,8.113,0.044,94208,42147840,0.7047,8588754944,1967857664,0.006,0,0,1,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.log new file mode 100644 index 000000000..5a9d975b6 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-01-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=1 sabotage=0 +open took 0.006 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 16519354 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.05s ops/cpu-s=4130525 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.113 s +== ow:uniform@8 T=8 ops=16628314 secs= 8.00 ops/s= 2078473 lat us p50=1.62 p99=6.34 p99.9=37.38 max=254673.6 mean=3.81 + cpu=52.47s ops/cpu-s=316911 rd=86.3 B/op wr=113.0 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.11s total=8.11s drain_cpu=0.04s drain_rd=94208 drain_wr=42147840 wamp=0.705 db_apparent=8588754944 db_alloc=1967857664 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.csv new file mode 100644 index 000000000..13961f705 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.027,7367928.7,nan,nan,nan,0.000,nan,0.110,1822240.4,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,7367928.7,0.027,0.000,0.027,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +candidate,resident,2,0,ow:uniform@8,8,2,200000,15612412,8.000,1951505.2,1.584,6.336,36.352,333840.705,4.076,48.899,319278.3,1297068032,1757614080,83.08,112.58,nan,nan,nan,nan,nan,0,0.0,8.000,0.208,8.208,0.083,16961536,22794240,0.6954,8589672448,1887563776,0.010,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.log new file mode 100644 index 000000000..3fc93f6d5 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-02-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=2 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.03 ops/s= 7367929 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.11s ops/cpu-s=1822240 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.208 s +== ow:uniform@8 T=8 ops=15612412 secs= 8.00 ops/s= 1951505 lat us p50=1.58 p99=6.34 p99.9=36.35 max=333840.7 mean=4.08 + cpu=48.90s ops/cpu-s=319278 rd=83.1 B/op wr=112.6 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.21s total=8.21s drain_cpu=0.08s drain_rd=16961536 drain_wr=22794240 wamp=0.695 db_apparent=8589672448 db_alloc=1887563776 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.csv new file mode 100644 index 000000000..724d34d11 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.015,13539913.6,nan,nan,nan,0.000,nan,0.066,3043352.6,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,13539913.6,0.015,0.000,0.015,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +main,resident,3,0,ow:uniform@8,8,3,200000,13214489,8.000,1651774.3,1.648,6.336,109.568,413355.643,4.841,45.440,290814.6,1869361152,2478436352,141.46,187.55,nan,nan,nan,nan,nan,0,0.0,8.000,0.179,8.179,0.087,26181632,23744512,1.1546,8589934592,2619596800,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.log new file mode 100644 index 000000000..aa350cc93 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal0-03-main.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=3 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.01 ops/s= 13539914 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=3043353 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.179 s +== ow:uniform@8 T=8 ops=13214489 secs= 8.00 ops/s= 1651774 lat us p50=1.65 p99=6.34 p99.9=109.57 max=413355.6 mean=4.84 + cpu=45.44s ops/cpu-s=290815 rd=141.5 B/op wr=187.6 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.18s total=8.18s drain_cpu=0.09s drain_rd=26181632 drain_wr=23744512 wamp=1.155 db_apparent=8589934592 db_alloc=2619596800 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.csv new file mode 100644 index 000000000..26bee7d72 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,1,warm,8,0,200000,200000,0.038,5325021.6,nan,nan,nan,0.000,nan,0.152,1317835.6,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5325021.6,0.038,0.000,0.038,0.000,0,0,nan,0,0,0.008,0,0,0,0,1 +main,resident,0,1,ow:uniform@8,8,0,200000,5442089,8.000,680238.2,1.264,198.656,1425.408,330912.053,11.718,19.832,274407.7,853258240,2284109824,156.79,419.71,nan,nan,nan,nan,nan,0,0.0,8.000,0.112,8.112,0.038,385024,39395328,2.6034,8589549568,2525745152,0.008,0,0,1,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.log new file mode 100644 index 000000000..0a7d784a9 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-00-main.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=0 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.04 ops/s= 5325022 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.15s ops/cpu-s=1317836 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.112 s +== ow:uniform@8 T=8 ops=5442089 secs= 8.00 ops/s= 680238 lat us p50=1.26 p99=198.66 p99.9=1425.41 max=330912.1 mean=11.72 + cpu=19.83s ops/cpu-s=274408 rd=156.8 B/op wr=419.7 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.11s total=8.11s drain_cpu=0.04s drain_rd=385024 drain_wr=39395328 wamp=2.603 db_apparent=8589549568 db_alloc=2525745152 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.csv new file mode 100644 index 000000000..37eccd964 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,1,warm,8,1,200000,200000,0.027,7526438.6,nan,nan,nan,0.000,nan,0.094,2123683.3,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,7526438.6,0.027,0.000,0.027,0.000,0,0,nan,0,0,0.012,0,0,0,0,0 +candidate,resident,1,1,ow:uniform@8,8,1,200000,6454461,8.000,806782.3,1.360,190.464,925.696,286187.748,9.874,24.365,264907.9,577019904,2277765120,89.40,352.90,nan,nan,nan,nan,nan,0,0.0,8.000,0.152,8.152,0.053,581632,31731712,2.1818,8589934592,2504220672,0.012,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.log new file mode 100644 index 000000000..1e752ae28 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-01-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=1 sabotage=0 +open took 0.012 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.03 ops/s= 7526439 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.09s ops/cpu-s=2123683 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.152 s +== ow:uniform@8 T=8 ops=6454461 secs= 8.00 ops/s= 806782 lat us p50=1.36 p99=190.46 p99.9=925.70 max=286187.7 mean=9.87 + cpu=24.36s ops/cpu-s=264908 rd=89.4 B/op wr=352.9 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.15s total=8.15s drain_cpu=0.05s drain_rd=581632 drain_wr=31731712 wamp=2.182 db_apparent=8589934592 db_alloc=2504220672 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.csv new file mode 100644 index 000000000..e0d19e599 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,1,warm,8,2,200000,200000,0.023,8852416.5,nan,nan,nan,0.000,nan,0.098,2047082.9,24694784,0,123.47,0.00,nan,nan,nan,nan,nan,200000,8852416.5,0.023,0.000,0.023,0.000,0,0,nan,0,0,0.016,0,0,0,0,0 +candidate,resident,2,1,ow:uniform@8,8,2,200000,5532617,8.000,691557.9,1.392,219.136,1163.264,296862.937,11.533,22.228,248907.8,545914880,1957711872,98.67,353.85,nan,nan,nan,nan,nan,0,0.0,8.000,0.152,8.153,0.056,303104,11907072,2.1707,8589672448,2256248832,0.016,0,0,338,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.log new file mode 100644 index 000000000..bbb2a40b7 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-02-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=2 sabotage=0 +open took 0.016 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 8852417 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.10s ops/cpu-s=2047083 rd=123.5 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.152 s +== ow:uniform@8 T=8 ops=5532617 secs= 8.00 ops/s= 691558 lat us p50=1.39 p99=219.14 p99.9=1163.26 max=296862.9 mean=11.53 + cpu=22.23s ops/cpu-s=248908 rd=98.7 B/op wr=353.8 B/op violations=0 errors=0 swapin=338 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.15s total=8.15s drain_cpu=0.06s drain_rd=303104 drain_wr=11907072 wamp=2.171 db_apparent=8589672448 db_alloc=2256248832 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.csv new file mode 100644 index 000000000..f30bb1824 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,1,warm,8,3,200000,200000,0.036,5548991.1,nan,nan,nan,0.000,nan,0.159,1259493.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5548991.1,0.036,0.000,0.036,0.000,0,0,nan,0,0,0.010,0,0,0,0,0 +main,resident,3,1,ow:uniform@8,8,3,200000,4631720,8.000,578949.9,1.360,235.520,1523.712,323510.005,13.768,19.005,243713.3,739115008,2017091584,159.58,435.50,nan,nan,nan,nan,nan,0,0.0,8.000,0.127,8.127,0.041,471040,24965120,2.6883,8589025280,2317344768,0.010,0,0,2,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.log new file mode 100644 index 000000000..002bef1be --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-common-wal1-03-main.log @@ -0,0 +1,11 @@ +prefix-pattern=common key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-common-wal1-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=3 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.04 ops/s= 5548991 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.16s ops/cpu-s=1259493 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.127 s +== ow:uniform@8 T=8 ops=4631720 secs= 8.00 ops/s= 578950 lat us p50=1.36 p99=235.52 p99.9=1523.71 max=323510.0 mean=13.77 + cpu=19.00s ops/cpu-s=243713 rd=159.6 B/op wr=435.5 B/op violations=0 errors=0 swapin=2 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.13s total=8.13s drain_cpu=0.04s drain_rd=471040 drain_wr=24965120 wamp=2.688 db_apparent=8589025280 db_alloc=2317344768 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.csv new file mode 100644 index 000000000..0f132d5c0 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,0,warm,8,0,200000,200000,0.016,12879440.4,nan,nan,nan,0.000,nan,0.076,2626981.7,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12879440.4,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.007,0,0,0,0,0 +main,resident,0,0,ow:uniform@8,8,0,200000,13174571,8.000,1646774.8,1.520,6.080,103.424,476890.627,4.726,43.796,300814.2,1861791744,2467561472,141.32,187.30,nan,nan,nan,nan,nan,0,0.0,8.000,0.149,8.149,0.081,25501696,29188096,1.1556,8589811712,2572365824,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.log new file mode 100644 index 000000000..fd4b7ca5f --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-00-main.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=0 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12879440 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2626982 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.149 s +== ow:uniform@8 T=8 ops=13174571 secs= 8.00 ops/s= 1646775 lat us p50=1.52 p99=6.08 p99.9=103.42 max=476890.6 mean=4.73 + cpu=43.80s ops/cpu-s=300814 rd=141.3 B/op wr=187.3 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.15s total=8.15s drain_cpu=0.08s drain_rd=25501696 drain_wr=29188096 wamp=1.156 db_apparent=8589811712 db_alloc=2572365824 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.csv new file mode 100644 index 000000000..8133ee83a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,0,warm,8,1,200000,200000,0.016,12562477.9,nan,nan,nan,0.000,nan,0.073,2758126.1,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12562477.9,0.016,0.000,0.016,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +candidate,resident,1,0,ow:uniform@8,8,1,200000,12670382,8.000,1583743.5,1.520,5.952,111.616,443823.120,4.900,43.436,291701.9,1814925312,2389409792,143.24,188.58,nan,nan,nan,nan,nan,0,0.0,8.000,0.129,8.130,0.052,147456,45113344,1.1716,8589418496,2481422336,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.log new file mode 100644 index 000000000..1cfa1bb22 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-01-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=1 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12562478 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2758126 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.129 s +== ow:uniform@8 T=8 ops=12670382 secs= 8.00 ops/s= 1583743 lat us p50=1.52 p99=5.95 p99.9=111.62 max=443823.1 mean=4.90 + cpu=43.44s ops/cpu-s=291702 rd=143.2 B/op wr=188.6 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.13s total=8.13s drain_cpu=0.05s drain_rd=147456 drain_wr=45113344 wamp=1.172 db_apparent=8589418496 db_alloc=2481422336 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.csv new file mode 100644 index 000000000..2655d92ab --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,0,warm,8,2,200000,200000,0.017,12110074.5,nan,nan,nan,0.000,nan,0.074,2694437.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12110074.5,0.017,0.000,0.017,0.000,0,0,nan,0,0,0.007,0,0,0,0,1 +candidate,resident,2,0,ow:uniform@8,8,2,200000,13163212,8.000,1645339.0,1.552,6.208,74.752,459459.423,4.707,44.685,294581.0,1748275200,2407337984,132.82,182.88,nan,nan,nan,nan,nan,0,0.0,8.000,0.136,8.136,0.062,348160,47198208,1.1370,8589934592,2509463552,0.007,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.log new file mode 100644 index 000000000..ac9184638 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-02-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=2 sabotage=0 +open took 0.007 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12110075 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.07s ops/cpu-s=2694437 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.136 s +== ow:uniform@8 T=8 ops=13163212 secs= 8.00 ops/s= 1645339 lat us p50=1.55 p99=6.21 p99.9=74.75 max=459459.4 mean=4.71 + cpu=44.68s ops/cpu-s=294581 rd=132.8 B/op wr=182.9 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.14s total=8.14s drain_cpu=0.06s drain_rd=348160 drain_wr=47198208 wamp=1.137 db_apparent=8589934592 db_alloc=2509463552 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.csv new file mode 100644 index 000000000..9c98fe198 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,0,warm,8,3,200000,200000,0.032,6276742.7,nan,nan,nan,0.000,nan,0.146,1371469.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,6276742.7,0.032,0.000,0.032,0.000,0,0,nan,0,0,0.008,0,0,0,0,1 +main,resident,3,0,ow:uniform@8,8,3,200000,11342682,8.000,1417795.4,1.488,5.952,141.312,564980.420,5.493,39.296,288644.5,1811705856,2224594944,159.72,196.13,nan,nan,nan,nan,nan,0,0.0,8.000,0.219,8.219,0.113,995328,46493696,1.2209,8589684736,2354335744,0.008,0,0,0,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.log new file mode 100644 index 000000000..cd1ff798c --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal0-03-main.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal0-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=0 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=3 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.03 ops/s= 6276743 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.15s ops/cpu-s=1371469 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.219 s +== ow:uniform@8 T=8 ops=11342682 secs= 8.00 ops/s= 1417795 lat us p50=1.49 p99=5.95 p99.9=141.31 max=564980.4 mean=5.49 + cpu=39.30s ops/cpu-s=288645 rd=159.7 B/op wr=196.1 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.22s total=8.22s drain_cpu=0.11s drain_rd=995328 drain_wr=46493696 wamp=1.221 db_apparent=8589684736 db_alloc=2354335744 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.csv new file mode 100644 index 000000000..70fd7fc85 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,0,1,warm,8,0,200000,200000,0.017,11906985.3,nan,nan,nan,0.000,nan,0.084,2386663.3,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,11906985.3,0.017,0.000,0.017,0.000,0,0,nan,0,0,0.010,0,0,0,0,1 +main,resident,0,1,ow:uniform@8,8,0,200000,4650645,8.000,581315.3,1.296,227.328,1523.712,375066.442,13.626,19.392,239820.2,733708288,2037219328,157.76,438.05,nan,nan,nan,nan,nan,0,0.0,8.000,0.122,8.123,0.035,946176,22536192,2.7006,8589803520,2309144576,0.010,0,0,103,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.log new file mode 100644 index 000000000..859a34f4a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-00-main.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-00-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=0 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 11906985 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2386663 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.122 s +== ow:uniform@8 T=8 ops=4650645 secs= 8.00 ops/s= 581315 lat us p50=1.30 p99=227.33 p99.9=1523.71 max=375066.4 mean=13.63 + cpu=19.39s ops/cpu-s=239820 rd=157.8 B/op wr=438.1 B/op violations=0 errors=0 swapin=103 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.12s total=8.12s drain_cpu=0.04s drain_rd=946176 drain_wr=22536192 wamp=2.701 db_apparent=8589803520 db_alloc=2309144576 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.csv new file mode 100644 index 000000000..fb2a75957 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,1,1,warm,8,1,200000,200000,0.035,5703255.3,nan,nan,nan,0.000,nan,0.156,1285594.9,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,5703255.3,0.035,0.000,0.035,0.000,0,0,nan,0,0,0.027,0,0,0,0,2 +candidate,resident,1,1,ow:uniform@8,8,1,200000,3877563,8.000,484679.1,1.584,266.240,1589.248,359525.583,16.300,23.795,162959.0,495284224,1637535744,127.73,422.31,nan,nan,nan,nan,nan,0,0.0,8.000,0.195,8.195,0.095,901120,39387136,2.6370,8101040128,2027864064,0.027,0,0,15,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.log new file mode 100644 index 000000000..bc481c710 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-01-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-01-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=1 sabotage=0 +open took 0.027 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.04 ops/s= 5703255 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.16s ops/cpu-s=1285595 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=2 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.195 s +== ow:uniform@8 T=8 ops=3877563 secs= 8.00 ops/s= 484679 lat us p50=1.58 p99=266.24 p99.9=1589.25 max=359525.6 mean=16.30 + cpu=23.79s ops/cpu-s=162959 rd=127.7 B/op wr=422.3 B/op violations=0 errors=0 swapin=15 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.20s total=8.20s drain_cpu=0.10s drain_rd=901120 drain_wr=39387136 wamp=2.637 db_apparent=8101040128 db_alloc=2027864064 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.csv new file mode 100644 index 000000000..60978a1f6 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +candidate,resident,2,1,warm,8,2,200000,200000,0.018,11333749.4,nan,nan,nan,0.000,nan,0.095,2113070.4,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,11333749.4,0.018,0.000,0.018,0.000,0,0,nan,0,0,0.010,0,0,0,0,1 +candidate,resident,2,1,ow:uniform@8,8,2,200000,4523941,8.000,565478.7,1.552,251.904,1327.104,298930.680,13.963,22.328,202615.7,610103296,1964118016,134.86,434.16,nan,nan,nan,nan,nan,0,0.0,8.000,0.262,8.262,0.133,25706496,26333184,2.6828,8589807616,2247405568,0.010,0,0,1,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.log new file mode 100644 index 000000000..d190ae29d --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-02-candidate.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=candidate splinter=splinterdb_build_version 97e5c0e3-dirty db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-02-candidate.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=2 sabotage=0 +open took 0.010 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 11333749 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.09s ops/cpu-s=2113070 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=1 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.262 s +== ow:uniform@8 T=8 ops=4523941 secs= 8.00 ops/s= 565479 lat us p50=1.55 p99=251.90 p99.9=1327.10 max=298930.7 mean=13.96 + cpu=22.33s ops/cpu-s=202616 rd=134.9 B/op wr=434.2 B/op violations=0 errors=0 swapin=1 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.26s total=8.26s drain_cpu=0.13s drain_rd=25706496 drain_wr=26333184 wamp=2.683 db_apparent=8589807616 db_alloc=2247405568 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.csv b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.csv new file mode 100644 index 000000000..919fdf445 --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.csv @@ -0,0 +1,3 @@ +version,size,order,log,phase,threads,rep,n,ops,secs,ops_s,p50_us,p99_us,p999_us,max_us,mean_us,cpu_s,ops_per_cpu_s,rd_bytes,wr_bytes,rd_B_op,wr_B_op,startup_p50_us,startup_p99_us,startup_mean_us,per_tuple_ns,deinit_mean_us,tuples,tuples_s,insert_s,drain_s,total_s,drain_cpu_s,drain_rd,drain_wr,wamp,db_apparent,db_alloc,open_s,violations,errors,swapin,swapout,majflt +main,resident,3,1,warm,8,3,200000,200000,0.017,12069977.6,nan,nan,nan,0.000,nan,0.084,2367172.1,35729408,0,178.65,0.00,nan,nan,nan,nan,nan,200000,12069977.6,0.017,0.000,0.017,0.000,0,0,nan,0,0,0.008,0,0,0,0,0 +main,resident,3,1,ow:uniform@8,8,3,200000,4568095,8.000,570998.2,1.424,243.712,1327.104,303815.355,13.847,21.094,216555.9,683556864,2000048128,149.64,437.83,nan,nan,nan,nan,nan,0,0.0,8.000,0.139,8.139,0.037,409600,19451904,2.6957,8589934592,2309431296,0.008,0,0,11,0,0 diff --git a/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.log b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.log new file mode 100644 index 000000000..660a7d97a --- /dev/null +++ b/benchmarks/results-20261014/prefix-main-6105c49f/writes/resident-random-wal1-03-main.log @@ -0,0 +1,11 @@ +prefix-pattern=random key_bytes=64 compression_disabled=false +kvbench version=main splinter=splinterdb_build_version 6105c49f db=/home/rob/projects/splinterdb/.cache/projects-20261011/worktrees/branch-prefix/.cache/prefix-main-6105c49f/databases/writes-resident-random-wal1-03-main.db mode=open n=200000 cache_mib=128 disk_gib=8 log=1 threads=8 mt_bg=0 normal_bg=0 memtable_mib=4 secs=8.0 warmup=1.0 rep=3 sabotage=0 +open took 0.008 s +phase warm: T=8 dist=uniform (fixed count) +== warm T=8 ops=200000 secs= 0.02 ops/s= 12069978 lat us p50=nan p99=nan p99.9=nan max=0.0 mean=nan + cpu=0.08s ops/cpu-s=2367172 rd=178.6 B/op wr=0.0 B/op violations=0 errors=0 swapin=0 swapout=0 majflt=0 +phase ow:uniform@8: T=8 dist=uniform (fixed duration) +close took 0.139 s +== ow:uniform@8 T=8 ops=4568095 secs= 8.00 ops/s= 570998 lat us p50=1.42 p99=243.71 p99.9=1327.10 max=303815.4 mean=13.85 + cpu=21.09s ops/cpu-s=216556 rd=149.6 B/op wr=437.8 B/op violations=0 errors=0 swapin=11 swapout=0 majflt=0 + insert/run=8.00s drain(close)=0.14s total=8.14s drain_cpu=0.04s drain_rd=409600 drain_wr=19451904 wamp=2.696 db_apparent=8589934592 db_alloc=2309431296 diff --git a/docs/branch-prefix-experiment.md b/docs/branch-prefix-experiment.md new file mode 100644 index 000000000..4b5313195 --- /dev/null +++ b/docs/branch-prefix-experiment.md @@ -0,0 +1,415 @@ +# Branch leaf prefix experiment + +The [final B-tree evaluation](../benchmarks/branch-prefix-evaluation/README.md) +records the implementation in `5fc43c31` against main `6105c49f` and supersedes +the performance assessments below. All nine resident nonlexical throughput +estimates are within 0.9% of main; every nominal 95% interval has its lower +endpoint above -2.1%. The remaining lexical compression costs are explicit in +that report. The selected CPU evaluation is complete; there is no apparent +nonlexical performance blocker in the measured workloads. + +Persisted branch version 1 is rejected before branch-page interpretation. +A clean mount remains lazy and rejects when an affected branch is accessed; +recovery rejects during mount when rebuilding allocation state. The persisted +version regression, existing early-rejection tests, and current-version +controls passed 42 executions across release, debug, and ASan/UBSan builds. +This confirms rejection, without adding format migration or an eager tree walk. + +`data_config.key_compare_is_lexical` opts construction into prefix compression. +It promises unsigned-byte lexicographic ordering for stored keys and query +keys, including the rule that a shorter equal prefix sorts first. The default +data configuration opts in. Applications replacing its comparator must clear +the flag unless their replacement preserves this contract. + +When a branch leaf first fills, packing extracts the longest common prefix of +its first and last keys, rebuilds entries as suffixes, and continues filling the +page only if that prefix is at least four bytes long. This decision is per leaf; +readers still accept previously written shorter prefixes. A later key outside +that prefix starts another leaf. Prefix bytes occupy +the page tail, so offset-table growth never moves them. A final partially full +leaf is left uncompressed. Index pivots and mutable memtable keys stay complete. + +Point reads compare the prefix once, then binary-search suffixes. A mismatch +can place the query on either side of the leaf. On compressed leaves, range +iterators reconstruct full keys into owned buffers, copying the prefix only +when changing leaves. Uncompressed leaves return keys directly from the page, +including nonlexical scans; they skip prefix reconstruction. +Prefix scratch state is allocated only after encountering a compressed leaf, +reused across positioning operations, and released during teardown. Iterators +that visit only uncompressed pages do not initialize or allocate these buffers. +The decode buffer retains its largest logical length, so shorter subsequent +keys do not trigger resizing; the returned key still has its exact length. +Allocation, growth and replacement of the per-leaf prefix stay outside the +ordinary per-key path, and suffix copies of at most 16 bytes use bounded inline +copies. Uncompressed branch-leaf iterators borrow keys from pinned pages; +mutable memtable iterators retain their existing copied-page behavior. +Positioning operations perform any allocation before returning; observing the +current tuple stays infallible. Bounds, seeks, asynchronous lookup, diagnostics, +parent pivots and logical key-byte accounting use the full key semantics. +Iterator boundary and seek probes compare checked prefix/suffix representations +directly, without reconstructing a separate boundary key. Uncompressed leaves +can use direct lexical comparison during checked binary search when the lexical +contract permits it. Nonlexical comparisons, infinity targets on uncompressed +leaves, boundary comparisons and index pivots use the configured comparator. + +This prototype now uses branch format version `2` within main's superblock +format `8`. Branch readers reject format `1` before interpreting its different +page header. Earlier standalone prefix images used superblock `0x8007` and are +rejected. Page encoding is determined from the page itself; existing compressed +leaves remain readable after changing the construction opt-in on reopen. + +Initial prototype validation passed all 48 public quick tests. The regression checks +compression enabled/disabled, actual compressed pages, close/reopen, point hits +and misses, asynchronous lookup, zero-length suffixes, forward/reverse ranges, +repeated seeks, full-key-only lexical callbacks, and prefix mismatches on both +sides. All 15 superblock tests pass, including rejection of the other independent +experiment formats. After the reconstruction optimization, all eight B-tree +tests (including bounded suffix copies) and the prefix roundtrip pass. +Performance remains workload dependent; the completed measurements follow. + +`benchmarks/build_prefix_bench.py /path/to/tree` compiles identical generated +kvbench source against baseline and candidate libraries and records source and +binary hashes. The campaign uses the same generator from its coordination +directory. It produces `build/release/bin/prefix_kvbench` with the existing +kvbench phase arguments and additional environment controls: + +* `PREFIX_PATTERN=common`: 64-byte keys with 48 fixed leading bytes. +* `PREFIX_PATTERN=random`: uniformly dispersed first words with random tails. +* `PREFIX_PATTERN=nonlexical`: a comparator orders the final eight-byte rank; + compression stays disabled. +* `PREFIX_DISABLE=1`: disable candidate compression for an overhead control. + +Use the same pattern, seed and key count on reopen. The random workload keeps +two eight-byte words per logical key in the harness to generate ordered ranks; +this memory is identical in baseline and candidate. Space mode reports live +allocation statistics and filesystem allocation after close. Report load plus +drain, point throughput, short/long range throughput and space together: saved +leaf bytes can trade off against rebuilding and key reconstruction. + +# Historical measurements + +These sections retain earlier implementation and measurement states. Their +merge concerns and references to the "current" source describe those dated +states, not the final B-tree evaluation linked above. + +The [2026-10-15 performance confirmation](../benchmarks/results-20261015/prefix-confirmation/README.md) +records the applied decode-buffer and validation optimizations, longer paired +experiments, and the completed write-stall investigation. All planned controls +are complete, and origin/main remains `6105c49f`, already included in this branch. +On the exact adopted highwater source, shared-prefix disk long scans improve +27.53% [14.16%, 42.46%], with 29.06% fewer storage read bytes per query. +Resident shared-prefix long scans improve 2.29%, and one-key ranges improve +3.65%. Uncompressed resident long scans retain roughly 1.6–2.2% losses; all +eight targeted final-source read intervals exclude a loss above 3%. The +nonlexical one-key range estimate is +0.35% [-0.61%, +1.33%]. These are +nominal paired intervals, not universal bounds or point-lookup measurements. + +Fresh random insertion remains indeterminate: exact highwater/main throughput +including close is -4.10% [-16.57%, +10.24%] with WAL, and -0.08% +[-11.02%, +12.20%] without WAL. Identical-main controls vary substantially in +both executed work and blocking time despite unchanged initialized file +extents. A review PR is reasonable, but insertion performance remains a merge +concern under a strict 3% no-harm requirement. The final confirmation is +targeted; point lookups and the remaining workload matrix retain their earlier +version labels. The historical results below do not describe the newly applied +implementation unless explicitly identified as highwater. + +The [2026-10-15 slowdown diagnosis](../benchmarks/results-20261015/prefix-slowdown-diagnosis/README.md) +adds phase-scoped hardware counters and profiles for the then-remaining resident +scan and logged-overwrite concerns. That older min4lex implementation executed about 28 extra +instructions per returned key; with statistics disabled it used 1.70% +more user cycles/key with one worker and 2.56% more with eight. Keys are borrowed, +not copied. Prefix-aware validation and loss of compiler inlining explain part +of the cost. The earlier timing harness also enabled statistics, whose per-key +locking substantially reduces multithreaded throughput and introduces a +false-sharing risk. Logged-overwrite losses remain inconclusive amid changing +filesystem/direct-I/O waits and host conditions. Neither of two isolated code +probes was adopted at that stage; runtime source then matched the candidate below. + +The earlier complete evaluation is the +[2026-10-15 optimization and read/write matrix](../benchmarks/results-20261015/prefix-evaluation/README.md). +It compares main `6105c49f`, the frozen branch after boundary-key removal, and +the retained four-byte per-leaf cutoff with direct lexical comparison. It covers +resident/disk point, short and long reads for long-prefix lexical, tiny-prefix +lexical and nonlexical keys; fresh insertions and overwrites with WAL off/on; +space, CPU and physical I/O; and isolated tests of the proposed optimizations. +The branch-flag investigation was an uncompressed-only upper-bound probe; +it did not implement a persisted branch flag. + +The frozen min4lex candidate improved shared-prefix disk long scans by 15.27%, with +29.18% less read I/O and 24.28% less live space. The prepared-fixture random-key +disk repeat improves point/short/long throughput by 7.65% / 8.72% / 5.51%. +Single-worker resident long scans were 2.18–3.06% below main across the three +key patterns. Nonlexical multithreaded scans and logged overwrites retained +inconclusive negative averages. Short insertion results varied substantially; +both the larger logged load and a same-size repeat failed to reproduce the +initial candidate slowdown. The archive preserves every round and its limits. +At that stage a review PR was reasonable, but performance neutrality was not +established and the no-harm requirement remained a merge concern. See the +latest confirmation above for the current assessment. + +The fixed-capacity decode buffer did not show a repeatable speedup and reserved +more memory for these 64-byte keys. The branch-flag upper-bound probe did not +justify persisted metadata changes. Plain runtime-sized `memcpy` still calls +libc in this build and was about 1–2% slower on single-worker compressed scans; +the bounded suffix helper remains. The frozen min4lex source and mixed-prefix +regression passed 142 test cases in each of debug and release, plus functional +log replay. The current highwater source instead has the 320 unit-test executions, +two functional log replays and four fresh production-build checks recorded in +the latest confirmation. See the archives for hashes and raw evidence. + +The following measurements are historical and predate that retained policy. + +The lazy-state fix is now applied. It removes unconditional prefix-buffer +initialization on uncompressed leaves and reduces additional fixed iterator +storage from 38 KiB to 2 KiB. The +[fix validation archive](../benchmarks/results-20261014/prefix-lazy-6105c49f/README.md) +contains the correctness and performance evidence for that stage. The earlier +[nonlexical diagnosis](../benchmarks/results-20261014/prefix-nonlexical-diagnosis/README.md) +and [pre-fix integration comparison](../benchmarks/results-20261014/prefix-main-6105c49f/README.md) +remain as historical evidence, along with the measurements below. + +All runs used O_DIRECT files on ext4, CPU affinity 0–11, 64-byte keys, +100-byte values and WAL disabled. Loading used one thread and zero background +workers for reproducible construction within each format. Baseline and candidate +formats require separate images. The random workload's 16-byte/key harness +array is identical for both variants. Resident runs used 200,000 keys and a +128 MiB cache; disk runs used 2 million keys and a 64 MiB cache. + +| Common-prefix space | Resident | Disk | +| --- | ---: | ---: | +| Mean allocated file bytes, baseline | 37,408,768 | 833,912,832 | +| Mean allocated file bytes, candidate | 26,128,384 | 545,222,656 | +| File allocation reduction | 30.2% | 34.6% | +| Mounted live extents, baseline → candidate | 342 → 256 | 3,414 → 2,585 | +| Live extent reduction | 25.1% | 24.3% | + +Filesystem allocation includes written pages that were subsequently freed; +live extents measure current allocator ownership and include constant empty +memtable allocations. Per-page-type allocation counters are not persisted and +are not used to interpret reopened images. Random and nonlexical inputs showed +no live-extent reduction. + +The final common-prefix measurements use copies of fixed per-format images. +Resident order was baseline / previous candidate / final candidate / final +candidate / previous candidate / baseline. Both candidate binaries read the +same candidate image. Disk order was ABBA. Read phases lasted seven seconds. +Positive changes below mean more throughput than baseline. + +These full fixed-image matrices used buffered `cp` without an explicit fsync +before O_DIRECT open/warm/timing. Pending copy writeback, including unreachable +historical pages, may confound their results. This is a method limitation, not +proof of the cause of any earlier outlier. The initial seven pattern/control +matrices constructed fresh O_DIRECT databases and did not use this copy path. +The bounded fsynced disk repeat described below checks two final-reader phases; +the original full matrices are preserved here for comparison. + +| Final common-prefix reader | Resident | Disk | +| --- | ---: | ---: | +| Point, 1 reader | +0.9% | +11.0% | +| Point, 8 readers | +1.0% | +14.0% | +| Length-1 range, 1 reader | +4.7% | +17.0% | +| Length-1 range, 8 readers | +1.9% | +9.8% | +| Length-10,000 range, 1 reader | +0.8% | +24.2% | +| Length-10,000 range, 8 readers | -2.9% | +19.7% | + +The final reconstruction path improved the resident eight-reader long scan by +10.1% relative to the previous candidate on identical images. Disk I/O per query +fell about 9% for points, 23% for length-1 ranges and 29% for long ranges. The +initial disk common-prefix matrix had one severely slow candidate repetition; +the fixed-image repeat above did not reproduce it. + +The earlier five-second ABBA controls used the previous reconstruction path. +Random inputs changed resident point throughput by +0.3–0.5%, while long-range +throughput ranged from -5.9% to +1.5%. Disk random-input point throughput was +4.3–5.7% lower and ranges were 1.2–7.6% lower. Nonlexical resident point throughput +was 1.6–3.0% lower, and its eight-reader long range was 10.8% lower. Disabling +compression on common-prefix input left space unchanged and point throughput +within 1.1%, but eight-reader long ranges were 7.1% lower. These controls do not +establish a universally neutral overhead, and they are not final-reader results. + +The final nonlexical disk control repeated fixed per-format images in ABBA +order. Point throughput changed by -0.0% / -1.4%, length-1 ranges by -1.4% / +-2.6%, and long ranges by +0.4% / -1.2% (one/eight readers). I/O per operation +remained comparable. This did not reproduce the earlier isolated 8-reader +collapse, but the small negative differences remain part of the measured cost. + +A bounded followup fsynced each copied disk fixture before O_DIRECT open and +warmup, then repeated only point and length-10,000 queries with eight readers. +It used the same frozen final binaries, the same per-format images, ABBA order +and seven-second phases. All four runs passed with no errors or violations. + +| Fsynced common-prefix disk control | Baseline ops/s, min–max | Candidate ops/s, min–max | Mean throughput change | Read bytes/query change | +| --- | ---: | ---: | ---: | ---: | +| Point, 8 readers | 138,877–161,839 | 169,695–187,194 | +18.7% | -9.1% | +| Length-10,000 range, 8 readers | 810.7–840.3 | 1,039.3–1,049.8 | +26.5% | -29.0% | + +CPU efficiency increased 3.6% for points and 13.9% for long ranges. Baseline +rates still varied between the two repetitions, so these throughput deltas are +not precise universal estimates. The large gains and read-I/O reductions persist +after explicitly synchronizing the copies. This control does not establish that +copy writeback caused any earlier outlier, and it does not replace unmeasured +phases or the nonlexical and resident controls. + +All completed samples report zero correctness violations and errors. Loads were +short (subsecond resident, a few seconds on disk), so their throughput is not a +strong write-performance conclusion. The experiment is promising for large +shared prefixes, with a demonstrated space/read-I/O tradeoff; broader adoption +still requires resolving workloads with little prefix benefit and the remaining +resident long-scan cost. + +Compact CSVs, manifests, build hashes and campaign runners are retained in +`benchmarks/branch-prefix-history/results-20261011/`. Full original artifacts and images remain in +`.cache/projects-20261011/benchmarks/branch-prefix/` in the main checkout. + +# Main integration, 2026-10-13 + +Merged `origin/main` at `7bb5fab305b9c6179e31f75998dabea833537a08`, +including caller-owned transferable cache handles, cache-read error propagation, +hierarchical blobs, and wide B-tree statistics. The merge required no source +adaptations. Lexical opt-in, per-leaf prefix encoding, full-key reconstruction, +and the independent experimental superblock format remain in place. + +Debug and release each passed 77 checks: 50 public API quick tests, eight +B-tree tests, 15 superblock tests, and four blob tests. This covers compressed +point/async lookups, forward/reverse scans and seeks, reopen, iterator transfer, +three-level blob trees, wide statistics, and injected cache-read failures. +The builds use `BUILD_ROOT=build-main-7bb5fab` with the default compiler. Raw +logs, commands, binary hashes, and the source manifest are recorded in the +main checkout under `.cache/projects-20261011/coordination/main-7bb5fab/branch-prefix/`. +The performance measurements above predate this merge and do not establish the +performance of the merged implementation. + +## Fresh benchmarks after main integration (2026-10-13) + +Common-prefix resident point throughput improved 10.61%, while the random-key resident long-range workload lost 10.88%, both with non-overlapping sample ranges. Common-prefix disk long-range throughput improved about 14.4%. The experiment retains a workload-dependent cost; it is not performance neutral. + +These are updated-feature comparisons against main `7bb5fab`, not an isolated +measurement of merge cost. Main controls drifted; observed range overlap is +descriptive, not a statistical confidence interval. Exact samples, build/source +hashes, commands, verification scope and fresh correctness evidence are in +[the integration archive](../benchmarks/branch-prefix-history/results-20261013/main-7bb5fab/README.md). + +# Filtered-range and disk-format integration, 2026-10-13 + +Merged main `fc0bc8f7`, including asynchronous durable barriers, per-structure +on-disk versions, and predicate-based filtered iterators. Branch format `2` +identifies the prefix header layout; the superblock retains main's format `8`. +The B-tree owns compatibility validation. Existing prefix pages do not depend on +the current construction opt-in. + +Debug and release each passed 137 unit cases across B-tree, superblock, merge, +public API and internal core suites. The compressed-leaf regression now checks +reopen with changed construction policy and both predicate-only and +routing-pruned forward/reverse scans. All targets, tools and examples build. +The [integration evidence](../benchmarks/results-20261013/prefix-main-fc0bc8f7/README.md) +records exact commands and source/binary hashes. Prior benchmark evidence is +preserved under `benchmarks/branch-prefix-history`; it does not establish +performance on this new main. + +# Current-main integration and performance review, 2026-10-14 (before the lazy-state fix) + +Merged `origin/main` at `6105c49f` (bounded automatic log groups) without +conflicts, as merge commit `97e5c0e3`. The custom IPv4 comparator example now +clears the lexical flag. Debug and release each passed 141 unit cases plus the +functional log test. The benchmark libraries exactly match the recorded main +and merge runtime sources. + +The refreshed comparison completed 28 read, 16 overwrite and 24 targeted repeat +runs, all with zero errors/violations, on real ext4 storage with O_DIRECT, +serialized execution, identical harness source and fsynced fixture copies. +Shared-prefix disk point/short/long scans improved 10.45% / 10.86% / 20.29%, +and file allocation fell 34.73%. + +Performance remains a merge blocker. Resident nonlexical short scans were +5.36% slower initially and 5.73% slower in three longer paired repetitions, +with nonoverlapping sample ranges in both. Common-prefix resident long scans +averaged 12.10% slower in the repeat, although their sample ranges overlap. +The initial 20.10% disabled-compression long-scan loss did not repeat; that +repeat averaged -2.38% with overlapping ranges. Logged random overwrites +including close/drain averaged -6.09% in the repeat, also with overlapping +ranges. These short writes do not establish steady-state insertion performance. + +Each public iterator is also 38 KiB larger (94,592 -> 133,504 bytes on this +build), even when compression is disabled. This is an object-size comparison, +not an RSS measurement. The unchanged-cache benchmark does not impose a total +memory cap. This branch is suitable for review as a PR, but the nonlexical +regression and remaining resident scan costs should be addressed before merging +the default-enabled feature. Full results, limitations, hashes, commands and +validation are in [the current archive](../benchmarks/results-20261014/prefix-main-6105c49f/README.md). + +# Lazy prefix state and performance validation, 2026-10-14 + +Prefix buffers and the cached prefix-page address now live in a lazily allocated +state object. An iterator creates it only when it encounters a compressed +leaf; uncompressed and nonlexical scans continue borrowing keys from the pinned +page. Selection depends on the actual page prefix, preserving reads of +compressed images reopened with construction-time compression disabled. + +| Iterator object | Main | Before fix | After fix | +| --- | ---: | ---: | ---: | +| B-tree iterator | 336 B | 488 B | 344 B | +| Core range iterator | 94,592 B | 133,504 B | 96,640 B | + +This removes 36 KiB of unconditional storage per public iterator and leaves +2 KiB over main. Each compressed child also allocates a 152-byte state object, +before allocator rounding/metadata and full-key buffers. Object sizes do not +establish RSS savings or constant memory savings for compressed workloads. + +Debug and release each passed 141 unit cases plus functional replay of 500,000 +log records. The prefix regression checks lazy allocation and reuse, unchanged +zero-copy behavior for uncompressed leaves, allocation-failure cleanup, and +compressed/uncompressed traversal and reopen. The fault-injection build and +AddressSanitizer with leak detection both passed. + +The direct before/after comparison on identical images measured a 4.00% gain +for resident nonlexical short scans and 4.17% for common-prefix long scans, both +with overlapping sample ranges. Against main, the longer nonlexical short-scan +repeat is now -0.22%, also with overlap; the earlier 5.73% deficit did not persist. + +The feature remains suitable for a review PR but is not performance-ready to +merge: common-prefix resident long scans were 14.71% slower than main in the +longer repeat, with nonoverlapping ranges, 14.69% lower CPU efficiency and +15.88% higher mean p99. Shared-prefix disk points, short scans and long scans +improved 16.21%, 20.13% and 26.71%; file allocation fell 34.51%. Logged random +overwrites including close/drain averaged -5.56% with overlapping ranges; +unlogged random overwrites lost 8.56% in the initial screen. These bounded +writes do not establish steady-state insertion performance. + +An observed 400 MHz host-clock episode confounded the first longer nonlexical +disk comparison. Its data are retained, and the entire three-version group +was repeated with host-clock observations. The recheck avoided that episode +but retained substantial control drift: fixed-version means were 9.63%, 9.72% +and 5.36% lower than main for points, short scans and long scans, with overlapping +sample ranges. Nonlexical disk overhead remains unresolved. All 98 query/write +invocations and 17 fixture load/space pairs passed, with zero errors or +correctness violations. A final fetch still found main at `6105c49f`. The +[fix validation archive](../benchmarks/results-20261014/prefix-lazy-6105c49f/README.md) +records all results, caveats, source/binary hashes and the updated assessment. + +## Boundary-key buffer removal + +The subsequent boundary-comparison optimization removes `bound_key` and its +allocation, copying and teardown. The compressed iterator's scratch state is +now 80 bytes rather than 152, before allocator rounding and decoded-key storage. +The B-tree and core range iterator object sizes remain 344 and 96,640 bytes. +All branch entry validation and comparison directions are preserved. + +The expanded prefix regression covers nearby and cross-leaf seeks, an aliased +current-key seek target, prefix mismatches, and finite inclusive/exclusive +bounds with present and absent endpoints in both directions. Debug and release +each passed all 79 B-tree, merge and public API test cases. The prefix regression +also passed fault injection and AddressSanitizer with leak detection. Commands, +logs and source hashes are retained in `.cache/prefix-bound-key/`. +The direct before/after comparison is now recorded in the +[boundary-key validation archive](../benchmarks/results-20261014/prefix-bound-key/README.md). +All 18 timed invocations and four harness smoke checks passed with zero errors +or correctness violations. A pinned single-worker check averaged +1.26% for +common-prefix forward long scans and +1.74% for reverse long scans, both with +overlapping sample ranges. Eight-worker results were mixed and varied widely; +the apparent +16.66% reverse-scan gain did not persist in every pair. Thermal +throttling and clock variation limit these measurements. The memory reduction +is definite, but a repeatable throughput improvement or regression is not +established. This targeted resident-scan comparison uses the frozen pre-removal +implementation as its baseline and does not clear the earlier regression +against origin/main. diff --git a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c index 7a251f1cc..8855fc0ce 100644 --- a/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c +++ b/examples/splinterdb_custom_ipv4_addr_sortcmp_example.c @@ -140,6 +140,8 @@ main() // up-front. Every insert will invoke this method to insert the new key // in custom-sorted order. splinter_data_cfg.key_compare = custom_key_compare; + // IP address order differs from bytewise lexical order. + splinter_data_cfg.key_compare_is_lexical = FALSE; // Basic configuration of a SplinterDB instance splinterdb_config splinterdb_cfg; diff --git a/format-check.sh b/format-check.sh index ac0f45c75..a6e281788 100755 --- a/format-check.sh +++ b/format-check.sh @@ -7,6 +7,9 @@ set -eu -o pipefail +# Run from the source root, regardless of the caller's working directory. +cd "$(dirname "$0")" + # different tool versions yield different results # so we standardize on this version TOOL="clang-format-19" @@ -19,14 +22,21 @@ This tool is typically provided by the clang-format package" exit 1 fi +source_files() { + # Keep generated builds and frozen benchmark source snapshots out of both + # checking and fixall. Include new files in the maintained source directories. + find src include tests examples tools benchmarks \ + -type d \( -path benchmarks/branch-prefix-history \ + -o -path 'benchmarks/results-*' \) -prune -o \ + -type f \( -name '*.c' -o -name '*.h' \) -print0 +} + if [ "${1:-""}" = "fixall" ]; then - # shellcheck disable=SC2046 - "$TOOL" -i $(find . -path ./.cache -prune -o -name "*.[ch]" -print) + source_files | xargs -0 -r "$TOOL" -i exit 0 fi -# shellcheck disable=SC2046 -if "$TOOL" --Werror --dry-run $(find . -path ./.cache -prune -o -name "*.[ch]" -print); then +if source_files | xargs -0 -r "$TOOL" --Werror --dry-run; then echo Format OK exit 0 else diff --git a/include/splinterdb/data.h b/include/splinterdb/data.h index fbf507557..da8e5974c 100644 --- a/include/splinterdb/data.h +++ b/include/splinterdb/data.h @@ -193,6 +193,11 @@ struct data_config { merge_tuple_final_fn merge_tuples_final; key_to_str_fn key_to_string; message_to_str_fn message_to_string; + /* Opt in only when key_compare is exactly unsigned bytewise lexical order, + * with shorter equal-prefix keys first, for both stored and query keys. + * Enables common-prefix compression in immutable branch leaves. Clear this + * when replacing the default comparator with a different ordering. */ + bool32 key_compare_is_lexical; }; #ifdef __cplusplus diff --git a/src/btree.c b/src/btree.c index 91ccfc1ee..572b4c2db 100644 --- a/src/btree.c +++ b/src/btree.c @@ -130,8 +130,9 @@ btree_increment_height(btree_hdr *hdr) static inline void btree_reset_node_entries(const btree_config *cfg, btree_hdr *hdr) { - hdr->num_entries = 0; - hdr->next_entry = btree_page_size(cfg); + hdr->num_entries = 0; + hdr->prefix_length = 0; + hdr->next_entry = btree_page_size(cfg); } @@ -1251,6 +1252,8 @@ btree_read_branch_header(const btree_config *cfg, uint64 page_size = btree_page_size(cfg); if (page_size < sizeof(*hdr) || hdr->height >= BTREE_MAX_HEIGHT + || hdr->prefix_length > MAX_INLINE_KEY_SIZE(page_size) + || (hdr->height != 0 && hdr->prefix_length != 0) || (hdr->flags & ~(BTREE_HDR_FIRST_IN_LEVEL | BTREE_HDR_LAST_IN_LEVEL)) != 0 || ((hdr->page_no == 0) != btree_hdr_is_first_in_level(hdr))) @@ -1264,7 +1267,8 @@ btree_read_branch_header(const btree_config *cfg, } uint64 table_end = sizeof(*hdr) + (uint64)hdr->num_entries * sizeof(hdr->offsets[0]); - if (hdr->next_entry < table_end || page_size < hdr->next_entry + if (hdr->next_entry < table_end + || page_size - hdr->prefix_length < hdr->next_entry || hdr->num_entries == 0) { return STATUS_INVALID_STATE; @@ -1301,10 +1305,11 @@ btree_read_entry_bounds(const btree_config *cfg, return STATUS_INVALID_STATE; } uint64 offset = hdr->offsets[idx]; - uint64 page_size = btree_page_size(cfg); - if (offset < hdr->next_entry || page_size <= offset - || page_size - offset < min_size) - { + uint64 page_size = btree_page_size(cfg) - hdr->prefix_length; + /* The offset is uint16, and the only callers pass sizeof(leaf_entry) or + * sizeof(index_entry). Their positive sizes cannot overflow this uint64 + * sum. Checking the header endpoint also rejects offsets at/past the end. */ + if (offset < hdr->next_entry || page_size < offset + min_size) { return STATUS_INVALID_STATE; } *offset_out = offset; @@ -1364,7 +1369,9 @@ btree_read_leaf_key(const btree_config *cfg, if (entry->key_flags != ONDISK_KEY_DEFAULT_FLAGS || entry->key_length == ONDISK_KEY_NEGATIVE_INFINITY || entry->key_length == ONDISK_KEY_POSITIVE_INFINITY - || entry->key_length > remaining - sizeof(*entry)) + || entry->key_length > remaining - sizeof(*entry) + || (uint64)entry->key_length + hdr->prefix_length + > MAX_INLINE_KEY_SIZE(btree_page_size(cfg))) { return STATUS_INVALID_STATE; } @@ -1372,29 +1379,44 @@ btree_read_leaf_key(const btree_config *cfg, return STATUS_OK; } +/* Every nonzero value representable by the type bits is a valid user type. + * Together with the allowed-flags check below, rejecting zero therefore + * rejects exactly the same bytes as the full user-type interval check. */ +_Static_assert(MESSAGE_TYPE_INVALID == 0, + "Leaf message validation requires zero to be invalid"); +_Static_assert(MESSAGE_TYPE_MAX_VALID_USER_TYPE == ONDISK_MESSAGE_TYPE_MASK, + "All nonzero on-disk message type values must be valid"); + +/* Descriptor scratch is needed only for blob messages. Keep that stack frame + * out of the ordinary inline-message validation path. */ +static __attribute__((noinline)) platform_status +btree_read_leaf_blob(cache *cc, const leaf_entry *entry) +{ + parsed_blob pblob; + slice descriptor = slice_create(entry->message_length, + entry->key_and_message + entry->key_length); + return blob_parse_descriptor(cc, descriptor, &pblob); +} + static inline platform_status btree_read_leaf_message(cache *cc, const btree_config *cfg, const btree_hdr *hdr, const leaf_entry *entry) { - uint64 offset = (const char *)entry - (const char *)hdr; - uint64 remaining = btree_page_size(cfg) - offset; + uint64 offset = (const char *)entry - (const char *)hdr; + uint64 remaining = btree_page_size(cfg) - hdr->prefix_length - offset; message_type message_class = ondisk_tuple_message_class(entry); if ((entry->flags & ~(ONDISK_MESSAGE_TYPE_MASK | ONDISK_MESSAGE_IS_BLOB)) != 0 || message_class == MESSAGE_TYPE_INVALID - || message_class > MESSAGE_TYPE_MAX_VALID_USER_TYPE || (uint64)entry->key_length + entry->message_length > remaining - sizeof(*entry)) { return STATUS_INVALID_STATE; } if (ondisk_tuple_message_is_blob(entry)) { - parsed_blob pblob; - slice descriptor = slice_create( - entry->message_length, entry->key_and_message + entry->key_length); - platform_status rc = blob_parse_descriptor(cc, descriptor, &pblob); + platform_status rc = btree_read_leaf_blob(cc, entry); if (!SUCCESS(rc)) { return rc; } @@ -1402,6 +1424,10 @@ btree_read_leaf_message(cache *cc, return STATUS_OK; } +_Static_assert(MAX_INLINE_KEY_SIZE(MAX_PAGE_SIZE) + < ONDISK_KEY_POSITIVE_INFINITY, + "Inline keys must exclude both infinity length encodings"); + static inline platform_status btree_read_leaf_entry(cache *cc, const btree_config *cfg, @@ -1409,8 +1435,30 @@ btree_read_leaf_entry(cache *cc, table_index idx, const leaf_entry **entry_out) { - platform_status rc = btree_read_leaf_key(cfg, hdr, idx, entry_out); - return SUCCESS(rc) ? btree_read_leaf_message(cc, cfg, hdr, *entry_out) : rc; + uint64 offset; + uint64 remaining; + platform_status rc = btree_read_entry_bounds( + cfg, hdr, idx, sizeof(leaf_entry), &offset, &remaining); + if (!SUCCESS(rc)) { + return rc; + } + const leaf_entry *entry = (const leaf_entry *)((const char *)hdr + offset); + /* Checking the full key plus message below also checks the key's byte + * range. Keep key-only reads separate because they do not inspect messages. + */ + /* Supported pages are at most MAX_PAGE_SIZE bytes. The widened full-key + * bound therefore rejects both infinity length encodings as well. */ + if (entry->key_flags != ONDISK_KEY_DEFAULT_FLAGS + || (uint64)entry->key_length + hdr->prefix_length + > MAX_INLINE_KEY_SIZE(btree_page_size(cfg))) + { + return STATUS_INVALID_STATE; + } + rc = btree_read_leaf_message(cc, cfg, hdr, entry); + if (SUCCESS(rc)) { + *entry_out = entry; + } + return rc; } static platform_status @@ -1454,6 +1502,47 @@ btree_find_pivot_checked(const btree_config *cfg, return STATUS_OK; } +/* The caller initializes *found and selects callback semantics once for the + * leaf. Keep all checked-key reads before invoking the user's comparator. */ +static inline platform_status +btree_find_tuple_callback_checked(const btree_config *cfg, + const btree_hdr *hdr, + key target, + bool32 *found, + int64 *idx_out, + const leaf_entry **entry_out) +{ + int64 lo = 0, hi = btree_num_entries(hdr); + while (lo < hi) { + int64 mid = (lo + hi) / 2; + const leaf_entry *entry; + platform_status rc = btree_read_leaf_key(cfg, hdr, mid, &entry); + if (!SUCCESS(rc)) { + return rc; + } + int cmp = + btree_key_compare(cfg, target, leaf_entry_key((leaf_entry *)entry)); + if (cmp == 0) { + *found = TRUE; + *idx_out = mid; + if (entry_out != NULL) { + *entry_out = entry; + } + return STATUS_OK; + } + if (cmp > 0) { + lo = mid + 1; + } else { + hi = mid; + } + } + *idx_out = lo - 1; + if (entry_out != NULL) { + *entry_out = NULL; + } + return STATUS_OK; +} + static platform_status btree_find_tuple_checked(const btree_config *cfg, const btree_hdr *hdr, @@ -1463,7 +1552,29 @@ btree_find_tuple_checked(const btree_config *cfg, const leaf_entry **entry_out) { int64 lo = 0, hi = btree_num_entries(hdr); - *found = FALSE; + *found = FALSE; + bool32 compressed = hdr->prefix_length != 0; + if (compressed) { + int cmp = btree_compare_prefix(cfg, hdr, target); + if (cmp != 0) { + *idx_out = cmp < 0 ? -1 : hi - 1; + if (entry_out != NULL) { + *entry_out = NULL; + } + return STATUS_OK; + } + target = key_create(target.is_query_key, + key_length(target) - hdr->prefix_length, + (const char *)key_data(target) + hdr->prefix_length); + } + bool32 lexical = compressed + || (cfg->data_cfg->key_compare_is_lexical + && !key_is_negative_infinity(target) + && !key_is_positive_infinity(target)); + if (!lexical) { + return btree_find_tuple_callback_checked( + cfg, hdr, target, found, idx_out, entry_out); + } while (lo < hi) { int64 mid = (lo + hi) / 2; const leaf_entry *entry; @@ -1471,8 +1582,8 @@ btree_find_tuple_checked(const btree_config *cfg, if (!SUCCESS(rc)) { return rc; } - int cmp = - btree_key_compare(cfg, target, leaf_entry_key((leaf_entry *)entry)); + int cmp = slice_lex_cmp(key_slice(target), + key_slice(leaf_entry_key((leaf_entry *)entry))); if (cmp == 0) { *found = TRUE; *idx_out = mid; @@ -2226,8 +2337,8 @@ accumulate_node_ranks(cache *cc, } else { entry = btree_get_leaf_entry(cfg, hdr, i); } - stats->key_bytes = - add_unknown(stats->key_bytes, leaf_entry_key_size(entry)); + stats->key_bytes = add_unknown( + stats->key_bytes, leaf_entry_key_size(entry) + hdr->prefix_length); stats->message_bytes = add_unknown(stats->message_bytes, leaf_entry_message_size(entry)); } @@ -3048,7 +3159,11 @@ btree_lookup_with_ref_async(btree_lookup_async_state *state, uint64 depth) } else { entry = btree_get_leaf_entry(state->cfg, state->node.hdr, idx); } - state->found_key = leaf_entry_key((leaf_entry *)entry); + state->found_key = state->node.hdr->prefix_length == 0 + ? leaf_entry_key((leaf_entry *)entry) + : key_create(FALSE, + key_length(state->target), + key_data(state->target)); state->msg = leaf_entry_message(state->cc, (leaf_entry *)entry); } else { btree_node_unget(state->cc, state->cfg, &state->node); @@ -3099,7 +3214,9 @@ btree_lookup_with_ref(cache *cc, // IN } else { entry = btree_get_leaf_entry(cfg, node->hdr, idx); } - *found_key = leaf_entry_key((leaf_entry *)entry); + *found_key = node->hdr->prefix_length == 0 + ? leaf_entry_key((leaf_entry *)entry) + : key_create(FALSE, key_length(target), key_data(target)); *msg = leaf_entry_message(cc, (leaf_entry *)entry); } else { btree_node_unget(cc, cfg, node); @@ -3332,23 +3449,75 @@ find_key_in_node(btree_iterator *itor, } -/* - * For copied leaves, end_addr is zero while the range continues into another - * leaf. Only a terminating copy sets end_addr to curr.addr and caches its - * exclusive upper bound in end_idx. Interior leaves thus retain the cheap - * address-only bounds check. Copies always have valid bounds; no live-tree - * endpoint lookup is needed. A split after copying may move max_key to a new - * leaf that the copy's old next pointer deliberately skips. +/* Uncompressed leaves return keys directly from the pinned page. Keep their + * iterators small and avoid initializing buffers they will never use. */ +typedef struct btree_iterator_prefix_state { + key_buffer decoded_key; + uint64 prefix_page_addr; + // Cache the buffer's logical high-water length, not its allocation size. + // Keeping that length above the prefix preserves it when the buffer grows. + char *decoded_data; + uint64 decoded_capacity; +} btree_iterator_prefix_state; + +static platform_status +btree_iterator_ensure_prefix_state(btree_iterator *itor) +{ + // Use the page's prefix, not the construction policy, to choose this path: + // compressed leaves can be reopened with compression disabled. + if (itor->prefix_state == NULL) { + itor->prefix_state = + TYPED_ZALLOC(PROCESS_PRIVATE_HEAP_ID, itor->prefix_state); + if (itor->prefix_state == NULL) { + return STATUS_NO_MEMORY; + } + key_buffer_init(&itor->prefix_state->decoded_key, + PROCESS_PRIVATE_HEAP_ID); + } + return STATUS_OK; +} + +/* Keep allocation, buffer growth and prefix replacement off the ordinary + * per-key path. The suffix copy stays inline, including on compressed leaves. */ +static __attribute__((noinline)) platform_status +btree_iterator_prepare_decode(btree_iterator *itor, uint64 key_length) +{ + platform_status rc = btree_iterator_ensure_prefix_state(itor); + if (!SUCCESS(rc)) { + return rc; + } + btree_iterator_prefix_state *state = itor->prefix_state; + if (key_buffer_length(&state->decoded_key) < key_length) { + rc = key_buffer_resize(&state->decoded_key, key_length); + if (!SUCCESS(rc)) { + return rc; + } + } + state->decoded_data = key_buffer_data(&state->decoded_key); + state->decoded_capacity = key_buffer_length(&state->decoded_key); + if (state->prefix_page_addr != itor->curr.addr) { + memcpy(state->decoded_data, + btree_leaf_prefix(itor->cfg, itor->curr.hdr), + itor->curr.hdr->prefix_length); + state->prefix_page_addr = itor->curr.addr; + } + return STATUS_OK; +} + +/* Compare target with a node key without reconstructing compressed keys. + * Branch entries retain the same validation as reads of full keys. */ static inline platform_status -btree_iterator_read_node_key(btree_iterator *itor, - btree_hdr *hdr, - uint64 idx, - key *result) +btree_iterator_compare_node_key(btree_iterator *itor, + btree_hdr *hdr, + uint64 idx, + key target, + int *result) { if (itor->page_type != PAGE_TYPE_BRANCH) { - *result = itor->height ? btree_get_pivot(itor->cfg, hdr, idx) - : btree_get_tuple_key(itor->cfg, hdr, idx); + key node_key = itor->height ? btree_get_pivot(itor->cfg, hdr, idx) + : btree_get_tuple_key(itor->cfg, hdr, idx); + *result = btree_key_compare(itor->cfg, target, node_key); return STATUS_OK; } @@ -3356,7 +3525,7 @@ btree_iterator_read_node_key(btree_iterator *itor, const index_entry *entry; platform_status rc = btree_read_index_key(itor->cfg, hdr, idx, &entry); if (SUCCESS(rc)) { - *result = index_entry_key(entry); + *result = btree_key_compare(itor->cfg, target, index_entry_key(entry)); } return rc; } @@ -3364,11 +3533,19 @@ btree_iterator_read_node_key(btree_iterator *itor, const leaf_entry *entry; platform_status rc = btree_read_leaf_key(itor->cfg, hdr, idx, &entry); if (SUCCESS(rc)) { - *result = leaf_entry_key((leaf_entry *)entry); + *result = btree_compare_leaf_key(itor->cfg, hdr, target, entry); } return rc; } +/* + * For copied leaves, end_addr is zero while the range continues into another + * leaf. Only a terminating copy sets end_addr to curr.addr and caches its + * exclusive upper bound in end_idx. Interior leaves thus retain the cheap + * address-only bounds check. Copies always have valid bounds; no live-tree + * endpoint lookup is needed. A split after copying may move max_key to a new + * leaf that the copy's old next pointer deliberately skips. + */ static inline platform_status btree_iterator_set_copy_bounds(btree_iterator *itor) { @@ -3383,14 +3560,14 @@ btree_iterator_set_copy_bounds(btree_iterator *itor) return STATUS_OK; } - key last_key; - platform_status rc = btree_iterator_read_node_key( - itor, itor->curr.hdr, num_entries - 1, &last_key); + int cmp; + platform_status rc = btree_iterator_compare_node_key( + itor, itor->curr.hdr, num_entries - 1, itor->max_key, &cmp); if (!SUCCESS(rc)) { itor->validation_status = rc; return rc; } - if (btree_key_compare(itor->cfg, itor->max_key, last_key) > 0) { + if (cmp > 0) { itor->end_addr = has_next ? 0 : itor->curr.addr; itor->end_idx = num_entries; } else { @@ -3508,15 +3685,15 @@ btree_iterator_end_key_beyond_curr(btree_iterator *itor, bool32 *result) return STATUS_OK; } - key last_key; - platform_status rc = btree_iterator_read_node_key( - itor, itor->curr.hdr, num_entries - 1, &last_key); + int cmp; + platform_status rc = btree_iterator_compare_node_key( + itor, itor->curr.hdr, num_entries - 1, itor->max_key, &cmp); if (!SUCCESS(rc)) { itor->validation_status = rc; return rc; } *result = - btree_key_compare(itor->cfg, itor->max_key, last_key) > 0 + cmp > 0 && btree_node_next_addr(itor->cfg, &itor->curr, itor->page_type) != 0; return STATUS_OK; } @@ -3639,6 +3816,30 @@ btree_iterator_can_next(iterator *base_itor) || (itor->idx < itor->end_idx && itor->curr_min_idx != itor->end_idx); } +/* Keep the uncompressed entry-validation path small. Compressed leaves pay + * this call after validation; their decode algorithm and buffer ownership are + * unchanged. */ +static __attribute__((noinline)) platform_status +btree_iterator_decode_current(btree_iterator *itor, const leaf_entry *entry) +{ + uint64 prefix_length = itor->curr.hdr->prefix_length; + uint64 key_length = prefix_length + entry->key_length; + btree_iterator_prefix_state *state = itor->prefix_state; + platform_status rc = STATUS_OK; + if (state == NULL || state->decoded_capacity < key_length + || state->prefix_page_addr != itor->curr.addr) + { + rc = btree_iterator_prepare_decode(itor, key_length); + state = itor->prefix_state; + } + if (SUCCESS(rc)) { + btree_copy_key_suffix(state->decoded_data + prefix_length, + entry->key_and_message, + entry->key_length); + } + return rc; +} + /* * curr() cannot report errors. Every positioning operation therefore reads * and checks the entry it is about to expose before returning success. @@ -3661,6 +3862,9 @@ btree_iterator_check_current(btree_iterator *itor) itor->cc, itor->cfg, itor->curr.hdr, itor->idx, &entry); if (SUCCESS(rc)) { itor->validated_entry = entry; + if (itor->curr.hdr->prefix_length != 0) { + rc = btree_iterator_decode_current(itor, entry); + } } } else { const index_entry *entry; @@ -3706,7 +3910,12 @@ btree_iterator_curr(iterator *base_itor, key *curr_key, message *data) } else { entry = btree_get_leaf_entry(itor->cfg, itor->curr.hdr, itor->idx); } - *curr_key = leaf_entry_key(entry); + *curr_key = itor->curr.hdr->prefix_length == 0 + ? leaf_entry_key(entry) + : key_create(FALSE, + (uint64)itor->curr.hdr->prefix_length + + entry->key_length, + itor->prefix_state->decoded_data); *data = leaf_entry_message(itor->cc, entry); log_trace_key(*curr_key, "btree_iterator_get_curr"); } else { @@ -4303,13 +4512,14 @@ btree_iterator_prev_leaf(btree_iterator *itor) itor->idx = btree_num_entries(itor->curr.hdr) - 1; /* Do a quick check whether this entire leaf is within the range. */ - key first_key; - rc = btree_iterator_read_node_key(itor, itor->curr.hdr, 0, &first_key); + int cmp; + rc = btree_iterator_compare_node_key( + itor, itor->curr.hdr, 0, itor->min_key, &cmp); if (!SUCCESS(rc)) { itor->validation_status = rc; return rc; } - if (btree_key_compare(cfg, itor->min_key, first_key) < 0) { + if (cmp < 0) { itor->curr_min_idx = -1; } else { rc = find_key_in_node(itor, @@ -4504,16 +4714,14 @@ btree_iterator_prev_leaf_async(btree_iterator_async_state *state, uint64 depth) state->itor->idx = btree_num_entries(state->itor->curr.hdr) - 1; /* Do a quick check whether this entire leaf is within the range. */ - rc = btree_iterator_read_node_key( - state->itor, state->itor->curr.hdr, 0, &state->first_key); + int cmp; + rc = btree_iterator_compare_node_key( + state->itor, state->itor->curr.hdr, 0, state->itor->min_key, &cmp); if (!SUCCESS(rc)) { state->itor->validation_status = rc; async_return(state, rc); } - if (btree_key_compare( - state->itor->cfg, state->itor->min_key, state->first_key) - < 0) - { + if (cmp < 0) { state->itor->curr_min_idx = -1; } else { rc = find_key_in_node(state->itor, @@ -4866,23 +5074,21 @@ btree_iterator_seek(iterator *base_itor, comparison seek_type, key seek_key) uint64 num_entries = btree_num_entries(itor->curr.hdr); bool32 seek_current_node = FALSE; if (num_entries != 0) { - key first_key; - key last_key; - platform_status rc = - btree_iterator_read_node_key(itor, itor->curr.hdr, 0, &first_key); + int first_cmp; + int last_cmp; + platform_status rc = btree_iterator_compare_node_key( + itor, itor->curr.hdr, 0, seek_key, &first_cmp); if (!SUCCESS(rc)) { itor->validation_status = rc; return rc; } - rc = btree_iterator_read_node_key( - itor, itor->curr.hdr, num_entries - 1, &last_key); + rc = btree_iterator_compare_node_key( + itor, itor->curr.hdr, num_entries - 1, seek_key, &last_cmp); if (!SUCCESS(rc)) { itor->validation_status = rc; return rc; } - seek_current_node = - btree_key_compare(itor->cfg, seek_key, first_key) >= 0 - && btree_key_compare(itor->cfg, seek_key, last_key) <= 0; + seek_current_node = first_cmp >= 0 && last_cmp <= 0; } if (seek_current_node) { @@ -5130,6 +5336,11 @@ btree_iterator_deinit(btree_iterator *itor) debug_assert(itor != NULL); btree_prefetch_cursor_deinit(itor); btree_iterator_release_curr(itor); + if (itor->prefix_state != NULL) { + key_buffer_deinit(&itor->prefix_state->decoded_key); + platform_free(PROCESS_PRIVATE_HEAP_ID, itor->prefix_state); + itor->prefix_state = NULL; + } if (itor->node_copy != NULL) { platform_free(PROCESS_PRIVATE_HEAP_ID, itor->node_copy); itor->node_copy = NULL; @@ -5216,8 +5427,21 @@ btree_pack_link_node(btree_pack_req *req, uint64 height, uint64 offset) btree_node *edge = &req->edge[height][offset]; btree_pivot_stats *edge_stats = &req->edge_stats[height][offset]; - key pivot = height ? btree_get_pivot(req->cfg, edge->hdr, 0) - : btree_get_tuple_key(req->cfg, edge->hdr, 0); + DECLARE_AUTO_KEY_BUFFER(pivot_buffer, PROCESS_PRIVATE_HEAP_ID); + key pivot; + if (height) { + pivot = btree_get_pivot(req->cfg, edge->hdr, 0); + } else { + platform_status rc = + btree_leaf_full_key(req->cfg, + edge->hdr, + btree_get_leaf_entry(req->cfg, edge->hdr, 0), + &pivot_buffer, + &pivot); + if (!SUCCESS(rc)) { + return rc; + } + } btree_node_unlock(req->cc, req->cfg, edge); btree_node_unclaim(req->cc, req->cfg, edge); // Cannot fully unlock edge yet because the key "pivot" may point into it. @@ -5349,6 +5573,81 @@ btree_pack_create_next_node(btree_pack_req *req, return STATUS_OK; } +/* Tiny prefixes can impose reconstruction work without improving page + * occupancy. This construction policy is per leaf; readers still accept + * previously written leaves with shorter prefixes. */ +#define BTREE_MIN_LEAF_PREFIX_LENGTH (4) + +/* Pull a common prefix out only when the uncompressed leaf first fills. + * The prefix lives at the page tail so appending offsets never moves it. */ +static bool32 +btree_pack_compress_leaf(btree_pack_req *req, btree_hdr *hdr) +{ + if (!req->cfg->data_cfg->key_compare_is_lexical || hdr->prefix_length != 0 + || hdr->num_entries < 2) + { + return FALSE; + } + key first = btree_get_tuple_key(req->cfg, hdr, 0); + key last = btree_get_tuple_key(req->cfg, hdr, hdr->num_entries - 1); + uint64 length = MIN(key_length(first), key_length(last)); + uint64 prefix = 0; + while (prefix < length + && ((const char *)key_data(first))[prefix] + == ((const char *)key_data(last))[prefix]) + { + prefix++; + } + if (prefix < BTREE_MIN_LEAF_PREFIX_LENGTH) { + return FALSE; + } + char scratch[MAX_PAGE_SIZE]; + btree_hdr *packed = (btree_hdr *)scratch; + memcpy(packed, hdr, sizeof(*hdr)); + packed->num_entries = 0; + packed->prefix_length = prefix; + packed->next_entry = btree_page_size(req->cfg) - prefix; + memcpy(scratch + packed->next_entry, key_data(first), prefix); + for (uint64 i = 0; i < hdr->num_entries; i++) { + leaf_entry *entry = btree_get_leaf_entry(req->cfg, hdr, i); + key full = leaf_entry_key(entry); + key suffix = key_create(FALSE, + key_length(full) - prefix, + (const char *)key_data(full) + prefix); + bool32 fits = btree_set_leaf_entry( + req->cfg, packed, i, suffix, leaf_entry_message(req->cc, entry)); + platform_assert(fits); + } + /* The whole page is copied back and may be written to disk. Do not copy + * uninitialized stack bytes from the free space between offsets and tuples. + * Initialize just that gap; the header, offsets and payload are already set. + */ + uint64 offsets_end = + sizeof(*packed) + packed->num_entries * sizeof(packed->offsets[0]); + debug_assert(offsets_end <= packed->next_entry); + memset(scratch + offsets_end, 0, packed->next_entry - offsets_end); + memcpy(hdr, scratch, btree_page_size(req->cfg)); + return TRUE; +} + +static bool32 +btree_pack_append_leaf(btree_pack_req *req, + btree_hdr *hdr, + key full, + message msg) +{ + key suffix = full; + if (hdr->prefix_length != 0) { + if (btree_compare_prefix(req->cfg, hdr, full) != 0) { + return FALSE; + } + suffix = key_create(FALSE, + key_length(full) - hdr->prefix_length, + (const char *)key_data(full) + hdr->prefix_length); + } + return btree_set_leaf_entry(req->cfg, hdr, hdr->num_entries, suffix, msg); +} + static inline platform_status btree_pack_loop(btree_pack_req *req, // IN/OUT key tuple_key, // IN @@ -5410,10 +5709,12 @@ btree_pack_loop(btree_pack_req *req, // IN/OUT btree_node *leaf = btree_pack_get_current_node(req, 0); - if (!leaf - || !btree_set_leaf_entry( - req->cfg, leaf->hdr, btree_num_entries(leaf->hdr), tuple_key, msg)) - { + bool32 appended = + leaf != NULL && btree_pack_append_leaf(req, leaf->hdr, tuple_key, msg); + if (!appended && leaf != NULL && btree_pack_compress_leaf(req, leaf->hdr)) { + appended = btree_pack_append_leaf(req, leaf->hdr, tuple_key, msg); + } + if (!appended) { rc = btree_pack_create_next_node(req, 0, tuple_key, &leaf); if (!SUCCESS(rc)) { return rc; @@ -5846,19 +6147,28 @@ btree_print_index_node(platform_log_handle *log_handle, return STATUS_OK; } -static void +static platform_status btree_print_leaf_entry(platform_log_handle *log_handle, const btree_config *cfg, cache *cc, + const btree_hdr *hdr, leaf_entry *entry, uint64 entry_num) { data_config *dcfg = cfg->data_cfg; + DECLARE_AUTO_KEY_BUFFER(buffer, PROCESS_PRIVATE_HEAP_ID); + key full_key; + platform_status rc = + btree_leaf_full_key(cfg, hdr, entry, &buffer, &full_key); + if (!SUCCESS(rc)) { + return rc; + } platform_log(log_handle, "[%2lu]: %s -- %s\n", entry_num, - key_string(dcfg, leaf_entry_key(entry)), + key_string(dcfg, full_key), message_string(dcfg, leaf_entry_message(cc, entry))); + return STATUS_OK; } static platform_status @@ -5913,7 +6223,11 @@ btree_print_leaf_node(platform_log_handle *log_handle, } else { entry = btree_get_leaf_entry(cfg, hdr, i); } - btree_print_leaf_entry(log_handle, cfg, cc, (leaf_entry *)entry, i); + rc = btree_print_leaf_entry( + log_handle, cfg, cc, hdr, (leaf_entry *)entry, i); + if (!SUCCESS(rc)) { + return rc; + } } platform_log(log_handle, "-------------------\n"); platform_log(log_handle, "\n"); @@ -6197,11 +6511,14 @@ btree_verify_node(cache *cc, goto out; } } - if (btree_key_compare(cfg, - btree_get_tuple_key(cfg, node.hdr, idx), - btree_get_tuple_key(cfg, node.hdr, idx + 1)) - >= 0) - { + key first = btree_get_tuple_key(cfg, node.hdr, idx); + key second = btree_get_tuple_key(cfg, node.hdr, idx + 1); + // A user comparator may require full keys even when its ordering + // is lexical. Compressed entries contain only suffixes. + int cmp = node.hdr->prefix_length != 0 + ? slice_lex_cmp(key_slice(first), key_slice(second)) + : btree_key_compare(cfg, first, second); + if (cmp >= 0) { platform_error_log("out of order tuples\n"); platform_error_log("addr: %lu idx %2u\n", node.addr, idx); btree_node_unget(cc, cfg, &node); @@ -6259,9 +6576,11 @@ btree_verify_node(cache *cc, } } if (0 < idx - && btree_key_compare(cfg, - btree_get_pivot(cfg, node.hdr, idx), - btree_get_tuple_key(cfg, child.hdr, 0)) + && btree_compare_leaf_key( + cfg, + child.hdr, + btree_get_pivot(cfg, node.hdr, idx), + btree_get_leaf_entry(cfg, child.hdr, 0)) != 0) { platform_error_log( @@ -6295,10 +6614,11 @@ btree_verify_node(cache *cc, } } if (idx != btree_num_entries(node.hdr) - 1 - && btree_key_compare( + && btree_compare_leaf_key( cfg, + child.hdr, btree_get_pivot(cfg, node.hdr, idx + 1), - btree_get_tuple_key( + btree_get_leaf_entry( cfg, child.hdr, btree_num_entries(child.hdr) - 1)) < 0) { diff --git a/src/btree.h b/src/btree.h index eec7940ce..40db334be 100644 --- a/src/btree.h +++ b/src/btree.h @@ -36,9 +36,13 @@ /* * Immutable branch versions travel with the root address. Query and recovery * entry points validate the version before interpreting branch pages. The - * version argument is ignored for PAGE_TYPE_MEMTABLE (an in-memory structure). + * Version 2 adds the common-prefix length to the page header and encodes + * branch leaf keys as suffixes when that length is nonzero. The construction + * opt-in is not required to read existing prefix-compressed leaves. + * The version argument is ignored for PAGE_TYPE_MEMTABLE (an in-memory + * structure). */ -#define BTREE_BRANCH_FORMAT_VERSION (1) +#define BTREE_BRANCH_FORMAT_VERSION (2) /* * Mini-allocator uses separate batches for each height of the BTree. @@ -214,6 +218,8 @@ typedef struct btree_iterator { // Entry checked by the last successful positioning operation. Branch-tree // curr() reuses it so it does not decode the offset table again. const void *validated_entry; + // Owned scratch space, allocated only after encountering a compressed leaf. + struct btree_iterator_prefix_state *prefix_state; btree_prefetch_cursor prefetch; btree_pivot_data pivot_data; @@ -476,7 +482,6 @@ DEFINE_ASYNC_STATE(btree_iterator_async_state, 6, local, uint64, next_addr, local, uint64, prev_addr, local, uint64, expected_page_no, - local, key, first_key, local, key, last_key) // clang-format on diff --git a/src/btree_private.h b/src/btree_private.h index 8f7e152f7..c39fb10df 100644 --- a/src/btree_private.h +++ b/src/btree_private.h @@ -59,6 +59,9 @@ struct ONDISK btree_hdr { uint8 flags; node_offset next_entry; table_index num_entries; + /* Branch leaves only: prefix bytes occupy the end of the page. Entry keys + * are suffixes; index pivots and all mutable memtable keys remain full. */ + uint16 prefix_length; table_entry offsets[]; }; @@ -507,6 +510,99 @@ btree_get_tuple_key(const btree_config *cfg, return leaf_entry_key(btree_get_leaf_entry(cfg, hdr, k)); } +static inline const char * +btree_leaf_prefix(const btree_config *cfg, const btree_hdr *hdr) +{ + return (const char *)hdr + btree_page_size(cfg) - hdr->prefix_length; +} + +/* Compressed suffixes are commonly only a few bytes. Fixed-size copies avoid + * an out-of-line memcpy for these keys without reading past the suffix. */ +static inline void +btree_copy_key_suffix(char *dst, const char *src, uint64 length) +{ + if (length > 16) { + memcpy(dst, src, length); + } else if (length >= 8) { + memcpy(dst, src, 8); + memcpy(dst + length - 8, src + length - 8, 8); + } else if (length >= 4) { + memcpy(dst, src, 4); + memcpy(dst + length - 4, src + length - 4, 4); + } else if (length >= 2) { + memcpy(dst, src, 2); + memcpy(dst + length - 2, src + length - 2, 2); + } else if (length == 1) { + *dst = *src; + } +} + +/* The source leaf stays pinned while this key is used. Uncompressed keys keep + * the existing zero-copy path. */ +static inline platform_status +btree_leaf_full_key(const btree_config *cfg, + const btree_hdr *hdr, + const leaf_entry *entry, + key_buffer *buffer, + key *result) +{ + if (hdr->prefix_length == 0) { + *result = leaf_entry_key((leaf_entry *)entry); + return STATUS_OK; + } + uint64 length = (uint64)hdr->prefix_length + entry->key_length; + platform_status rc = key_buffer_resize(buffer, length); + if (!SUCCESS(rc)) { + return rc; + } + memcpy( + key_buffer_data(buffer), btree_leaf_prefix(cfg, hdr), hdr->prefix_length); + memcpy((char *)key_buffer_data(buffer) + hdr->prefix_length, + entry->key_and_message, + entry->key_length); + *result = key_buffer_key(buffer); + return STATUS_OK; +} + +/* Compare the shared prefix once before binary searching its suffixes. The + * mismatch may put target on either side of the entire leaf. */ +static inline int +btree_compare_prefix(const btree_config *cfg, const btree_hdr *hdr, key target) +{ + if (key_is_negative_infinity(target)) { + return -1; + } + if (key_is_positive_infinity(target)) { + return 1; + } + uint64 length = MIN(key_length(target), hdr->prefix_length); + int cmp = memcmp(key_data(target), btree_leaf_prefix(cfg, hdr), length); + if (cmp != 0) { + return cmp; + } + return key_length(target) < hdr->prefix_length ? -1 : 0; +} + +static inline int +btree_compare_leaf_key(const btree_config *cfg, + const btree_hdr *hdr, + key target, + const leaf_entry *entry) +{ + if (hdr->prefix_length == 0) { + return btree_key_compare( + cfg, target, leaf_entry_key((leaf_entry *)entry)); + } + int cmp = btree_compare_prefix(cfg, hdr, target); + if (cmp != 0) { + return cmp; + } + return slice_lex_cmp( + slice_create(key_length(target) - hdr->prefix_length, + (const char *)key_data(target) + hdr->prefix_length), + key_slice(leaf_entry_key((leaf_entry *)entry))); +} + static inline message btree_get_tuple_message(const btree_config *cfg, cache *cc, diff --git a/src/default_data_config.c b/src/default_data_config.c index 789af57ed..45f48eab6 100644 --- a/src/default_data_config.c +++ b/src/default_data_config.c @@ -59,12 +59,13 @@ default_data_config_init(data_config *out_cfg // OUT ) { data_config cfg = { - .key_compare = key_compare, - .key_hash = key_hash, - .merge_tuples = NULL, - .merge_tuples_final = NULL, - .key_to_string = key_to_string, - .message_to_string = message_to_string, + .key_compare = key_compare, + .key_hash = key_hash, + .merge_tuples = NULL, + .merge_tuples_final = NULL, + .key_to_string = key_to_string, + .message_to_string = message_to_string, + .key_compare_is_lexical = TRUE, }; *out_cfg = cfg; diff --git a/src/platform_linux/laio.c b/src/platform_linux/laio.c index c275ce781..054c75776 100644 --- a/src/platform_linux/laio.c +++ b/src/platform_linux/laio.c @@ -513,6 +513,8 @@ typedef struct laio_async_state { _Static_assert( sizeof(laio_async_state) <= IO_ASYNC_STATE_BUFFER_SIZE, "laio_async_read_state is to large for IO_ASYNC_STATE_BUFFER_SIZE"); +_Static_assert(_Alignof(laio_async_state) <= _Alignof(io_async_state_buffer), + "io_async_state_buffer has insufficient alignment"); static void laio_async_state_deinit(io_async_state *ios) @@ -555,6 +557,21 @@ laio_async_callback(io_context_t ctx, struct iocb *iocb, long res, long res2) laio_async_state *ios = (laio_async_state *)((char *)iocb - offsetof(laio_async_state, req)); ios->status = res; +#if defined(__has_feature) +# if __has_feature(memory_sanitizer) + /* libaio's kernel writes bypass MSan instrumentation. Publish only the + * bytes actually read, before a callback can expose them to its readers. + * Short reads leave the rest of the iovecs untouched. */ + if (ios->cmd == io_async_preadv && res > 0) { + uint64 remaining = (uint64)res; + for (uint64 i = 0; i < ios->iovlen && remaining != 0; i++) { + uint64 bytes = MIN(remaining, ios->iovs[i].iov_len); + __msan_unpoison(ios->iovs[i].iov_base, bytes); + remaining -= bytes; + } + } +# endif +#endif /* * A positive short completion may have extended a regular file. Invalidate * for every write completion, including failures, because the completion diff --git a/src/platform_linux/platform_io.h b/src/platform_linux/platform_io.h index 463d75813..f279e34a0 100644 --- a/src/platform_linux/platform_io.h +++ b/src/platform_linux/platform_io.h @@ -71,7 +71,10 @@ typedef platform_status (*io_range_is_readable_fn)(io_handle *io, bool32 *readable); #define IO_ASYNC_STATE_BUFFER_SIZE (1024) -typedef uint8 io_async_state_buffer[IO_ASYNC_STATE_BUFFER_SIZE]; +/* Backends store their native async state in this opaque byte buffer. Its + * alignment must hold when embedded after a smaller field in another state. */ +typedef uint8 io_async_state_buffer[IO_ASYNC_STATE_BUFFER_SIZE] + __attribute__((aligned(_Alignof(max_align_t)))); typedef enum { io_async_preadv, io_async_pwritev } io_async_cmd; typedef platform_status (*io_async_state_init_fn)(io_async_state *state, io_handle *io, diff --git a/tests/unit/btree_test.c b/tests/unit/btree_test.c index 5a6e74b73..ca4737c77 100644 --- a/tests/unit/btree_test.c +++ b/tests/unit/btree_test.c @@ -129,6 +129,24 @@ CTEST_TEARDOWN(btree) platform_deregister_thread(); } +CTEST2(btree, test_compressed_suffix_copy) +{ + char source[64]; + char destination[66]; + for (uint64 i = 0; i < sizeof(source); i++) { + source[i] = (char)(i + 1); + } + for (uint64 length = 0; length <= sizeof(source); length++) { + memset(destination, 0x5a, sizeof(destination)); + btree_copy_key_suffix(destination + 1, source, length); + ASSERT_EQUAL(0, memcmp(destination + 1, source, length)); + ASSERT_EQUAL(0x5a, destination[0]); + for (uint64 i = length + 1; i < sizeof(destination); i++) { + ASSERT_EQUAL(0x5a, destination[i]); + } + } +} + /* * Test leaf_hdr APIs. */ diff --git a/tests/unit/platform_apis_test.c b/tests/unit/platform_apis_test.c index 7645da57b..f03d2a2fe 100644 --- a/tests/unit/platform_apis_test.c +++ b/tests/unit/platform_apis_test.c @@ -14,6 +14,8 @@ * ----------------------------------------------------------------------------- */ #include +#include +#include #include "ctest.h" // This is required for all test-case files. #include "config.h" @@ -26,6 +28,17 @@ #include "platform_spinlock.h" #include "platform_mutex.h" #include "platform_condvar.h" +#include "platform_io.h" + +#if defined(__has_feature) +# if __has_feature(memory_sanitizer) +# include +# define PLATFORM_API_TEST_MSAN 1 +# endif +#endif +#ifndef PLATFORM_API_TEST_MSAN +# define PLATFORM_API_TEST_MSAN 0 +#endif /* * Global data declaration macro: @@ -113,6 +126,176 @@ CTEST2(platform_api, test_platform_buffer_init_fails_for_very_large_length) set_log_streams_for_tests(MSG_LEVEL_INFO); } +typedef struct async_read_shadow_probe { + io_async_state_buffer state; + char *buffer; + uint64 length; + uint64 initialized_bytes; + bool32 shadow_ok; + bool32 data_ok; + uint64 callbacks; +} async_read_shadow_probe; + +/* Inspect shadow before touching the data so the unfixed implementation + * produces an ordinary assertion failure after resources have been released. + * In particular, inspect from the completion callback, not just after wait. */ +static void +async_read_shadow_check(async_read_shadow_probe *probe) +{ + probe->shadow_ok = TRUE; +#if PLATFORM_API_TEST_MSAN + if (probe->initialized_bytes != 0) { + probe->shadow_ok = + __msan_test_shadow(probe->buffer, probe->initialized_bytes) == -1; + } + for (uint64 i = probe->initialized_bytes; i < probe->length; i++) { + if (__msan_test_shadow(probe->buffer + i, 1) != 0) { + probe->shadow_ok = FALSE; + } + } +#endif + probe->data_ok = probe->shadow_ok; + if (probe->shadow_ok) { + for (uint64 i = 0; i < probe->initialized_bytes; i++) { + if (probe->buffer[i] != 0x5a) { + probe->data_ok = FALSE; + } + } + } +} + +static void +async_read_shadow_callback(void *arg) +{ + async_read_shadow_probe *probe = arg; + if (io_async_run(probe->state) != ASYNC_STATUS_DONE) { + return; + } + async_read_shadow_check(probe); + probe->callbacks++; +} + +static void +test_async_io_shadow(platform_heap_id hid, + io_async_cmd cmd, + uint64 file_bytes, + uint64 addr, + uint64 initialized_bytes, + bool32 expect_success, + bool32 allow_submit_failure) +{ + char filename[] = "/tmp/splinterdb-async-shadow-XXXXXX"; + int fd = mkstemp(filename); + ASSERT_TRUE(fd >= 0); + io_config cfg; + io_config_init(&cfg, + IO_DEFAULT_PAGE_SIZE, + IO_DEFAULT_EXTENT_SIZE, + O_RDWR, + IO_DEFAULT_PERMS, + IO_DEFAULT_KERNEL_QUEUE_SIZE, + filename); + io_handle *io = io_handle_create(&cfg, hid); + ASSERT_NOT_NULL(io); + ASSERT_EQUAL(0, unlink(filename)); + + const uint64 page_size = IO_DEFAULT_PAGE_SIZE; + buffer_handle buffer; + ASSERT_TRUE(SUCCESS(platform_buffer_init(&buffer, 3 * page_size))); + char *bytes = platform_buffer_getaddr(&buffer); + memset(bytes, 0x5a, 3 * page_size); + ASSERT_TRUE(SUCCESS(io_write(io, bytes, 3 * page_size, 0))); + /* Buffered I/O permits EOF partway through an iovec. Creation may extend + * the file for a superblock, so establish this length after opening it. */ + ASSERT_EQUAL(0, ftruncate(fd, file_bytes)); + ASSERT_EQUAL(0, close(fd)); + + async_read_shadow_probe probe = { + .buffer = bytes, + .length = 3 * page_size, + .initialized_bytes = initialized_bytes, + }; + ASSERT_TRUE(SUCCESS(io_async_state_init( + probe.state, io, cmd, addr, async_read_shadow_callback, &probe))); + for (uint64 i = 0; i < 3; i++) { + ASSERT_TRUE(SUCCESS( + io_async_state_append_page(probe.state, bytes + i * page_size))); + } + if (cmd == io_async_preadv) { + memset(bytes, 0xa5, probe.length); + } +#if PLATFORM_API_TEST_MSAN + __msan_poison(bytes, probe.length); +#endif + async_status started = io_async_run(probe.state); + io_wait_all(io); + if (started == ASYNC_STATUS_DONE) { + /* A negative offset can be rejected by submission rather than by a + * completion. Neither path may mark destination bytes initialized. */ + async_read_shadow_check(&probe); + } + platform_status rc = io_async_state_get_result(probe.state); + io_async_state_deinit(probe.state); +#if PLATFORM_API_TEST_MSAN + __msan_unpoison(bytes, probe.length); +#endif + ASSERT_TRUE(SUCCESS(platform_buffer_deinit(&buffer))); + io_handle_destroy(io); + + ASSERT_TRUE(probe.shadow_ok); + ASSERT_TRUE(probe.data_ok); + ASSERT_EQUAL(expect_success, SUCCESS(rc)); + if (started == ASYNC_STATUS_DONE) { + ASSERT_TRUE(allow_submit_failure); + ASSERT_EQUAL(0, probe.callbacks); + } else { + ASSERT_EQUAL(1, probe.callbacks); + } +} + +CTEST2(platform_api, test_async_read_initializes_all_iovecs) +{ + test_async_io_shadow(data->hid, + io_async_preadv, + 3 * IO_DEFAULT_PAGE_SIZE, + 0, + 3 * IO_DEFAULT_PAGE_SIZE, + TRUE, + FALSE); +} + +CTEST2(platform_api, test_async_short_read_initializes_only_returned_bytes) +{ + test_async_io_shadow(data->hid, + io_async_preadv, + IO_DEFAULT_PAGE_SIZE + 37, + 0, + IO_DEFAULT_PAGE_SIZE + 37, + FALSE, + FALSE); +} + +CTEST2(platform_api, test_async_eof_read_keeps_buffer_poisoned) +{ + test_async_io_shadow(data->hid, io_async_preadv, 0, 0, 0, FALSE, FALSE); +} + +CTEST2(platform_api, test_async_failed_read_keeps_buffer_poisoned) +{ + test_async_io_shadow(data->hid, + io_async_preadv, + 3 * IO_DEFAULT_PAGE_SIZE, + UINT64_MAX, + 0, + FALSE, + TRUE); +} + +CTEST2(platform_api, test_async_write_does_not_initialize_source) +{ + test_async_io_shadow(data->hid, io_async_pwritev, 0, 0, 0, TRUE, FALSE); +} + CTEST_MEMORY_FAULT(platform_api, test_memory_fault_range) { platform_memory_fault_disable(); diff --git a/tests/unit/splinter_test.c b/tests/unit/splinter_test.c index 13d92956d..8d68a138f 100644 --- a/tests/unit/splinter_test.c +++ b/tests/unit/splinter_test.c @@ -1712,6 +1712,145 @@ CTEST2(splinter, test_invalid_branch_reference_rejected) } } +/* A clean mount leaves branch reads lazy; recovery must enumerate them. In + * both paths, a persisted old branch version must be rejected before its + * pages are interpreted. Restore the version before any owning-tree cleanup, + * then prove that the same persisted tree still mounts and returns its tuple. + * The B-tree's NULL-cache tests independently enforce the before-page-access + * ordering of the version check. */ +CTEST2(splinter, test_persisted_old_branch_version_rejected) +{ + allocator *alp = (allocator *)&data->al; + allocator_config *acfg = allocator_get_config(alp); + cache *cc = (cache *)data->clock_cache; + core_config *cfg = &data->system_cfg->splinter_cfg; + + for (bool32 recovering = FALSE; recovering <= TRUE; recovering++) { + allocator_root_id root_id = test_generate_allocator_root_id(); + core_handle spl; + ASSERT_TRUE(SUCCESS(core_mkfs( + &spl, cfg, alp, cc, data->io, &data->tasks, root_id, data->hid))); + DECLARE_AUTO_KEY_BUFFER(keybuf, data->hid); + test_key(&keybuf, TEST_RANDOM, 1, 0, 0, data->workload_cfg->key_size, 0); + merge_accumulator msg; + merge_accumulator_init(&msg, data->hid); + generate_test_message(&data->gen, 1, &msg); + ASSERT_TRUE(SUCCESS(core_insert(&spl, + key_buffer_key(&keybuf), + merge_accumulator_to_message(&msg), + NULL))); + merge_accumulator_deinit(&msg); + ASSERT_TRUE(SUCCESS(core_unmount(&spl, FALSE))); + + superblock_context sb; + ASSERT_TRUE( + SUCCESS(superblock_context_init(&sb, data->io, acfg, data->hid))); + ASSERT_TRUE(SUCCESS(superblock_mount(&sb, acfg))); + ASSERT_TRUE(superblock_allocation_state_valid(&sb)); + superblock_tree_record rec; + superblock_get_tree_record(&sb, &rec); + ASSERT_NOT_EQUAL(0, rec.root_addr); + ASSERT_TRUE(SUPERBLOCK_NO_LOG(rec.live_log)); + ASSERT_TRUE(SUPERBLOCK_NO_LOG(rec.sealed_log)); + if (recovering) { + /* Keep the durable tree, but require the mount's allocation walk. */ + superblock_snapshot_tree( + &sb, rec.root_addr, rec.first_unincorporated_generation); + ASSERT_TRUE(SUCCESS(superblock_make_durable(&sb))); + } + superblock_context_deinit(&sb); + + page_handle page = + test_splinter_claim_page(cc, rec.root_addr, PAGE_TYPE_TRUNK); + test_trunk_node_hdr *node = + (test_trunk_node_hdr *)page_handle_data(&page); + ASSERT_TRUE(node->num_pivots >= 2); + uint64 offset = node->pivot_offsets[0]; + test_splinter_unclaim_page(cc, &page); + uint64 page_size = cache_page_size(cc); + uint64 page_addr = rec.root_addr + offset - offset % page_size; + page = test_splinter_claim_page(cc, page_addr, PAGE_TYPE_TRUNK); + test_trunk_bundle *bundle = + test_splinter_pivot_bundle(&page, offset, page_size); + uint64 bundle_offset = (char *)bundle - page_handle_data(&page); + ASSERT_TRUE(bundle->num_branches != 0); + branch_ref saved_branch = bundle->branches[0]; + ASSERT_EQUAL(BTREE_BRANCH_FORMAT_VERSION, saved_branch.format_version); + /* Version 1 predates the prefix_length field in the branch header. */ + bundle->branches[0].format_version = 1; + test_splinter_unclaim_page(cc, &page); + ASSERT_TRUE(SUCCESS(cache_writeback_dirty(cc))); + ASSERT_TRUE(SUCCESS(cache_durable_barrier(cc))); + ASSERT_TRUE(SUCCESS(cache_evict(cc, FALSE))); + + platform_status mount_rc = core_mount( + &spl, cfg, alp, cc, data->io, &data->tasks, root_id, data->hid); + platform_status sync_rc = STATUS_OK; + platform_status async_rc = STATUS_OK; + platform_status range_rc = STATUS_OK; + if (SUCCESS(mount_rc) && !recovering) { + lookup_result result; + lookup_result_init( + &result, cfg->data_cfg, SPLINTERDB_LOOKUP_VALUE, 0, NULL); + sync_rc = core_lookup(&spl, key_buffer_key(&keybuf), &result); + async_rc = async_call_sync_callback(cache_cleanup(cc), + core_lookup_async, + &spl, + key_buffer_key(&keybuf), + &result); + lookup_result_deinit(&result); + core_range_iterator itor; + range_rc = core_range_iterator_init(&spl, + &itor, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY); + if (SUCCESS(range_rc)) { + core_range_iterator_deinit(&itor); + } + } + + /* Restore the reference before cleanup, even if rejection regresses. */ + page = test_splinter_claim_page(cc, page_addr, PAGE_TYPE_TRUNK); + bundle = (test_trunk_bundle *)(page_handle_data(&page) + bundle_offset); + bundle->branches[0] = saved_branch; + test_splinter_unclaim_page(cc, &page); + ASSERT_TRUE(SUCCESS(cache_writeback_dirty(cc))); + ASSERT_TRUE(SUCCESS(cache_durable_barrier(cc))); + if (SUCCESS(mount_rc)) { + ASSERT_TRUE(SUCCESS(core_unmount(&spl, FALSE))); + } + ASSERT_TRUE(SUCCESS(cache_evict(cc, FALSE))); + ASSERT_TRUE(SUCCESS(core_mount( + &spl, cfg, alp, cc, data->io, &data->tasks, root_id, data->hid))); + lookup_result result; + lookup_result_init( + &result, cfg->data_cfg, SPLINTERDB_LOOKUP_VALUE, 0, NULL); + ASSERT_TRUE(SUCCESS(core_lookup(&spl, key_buffer_key(&keybuf), &result))); + verify_tuple( + &spl, + &data->gen, + 1, + key_buffer_key(&keybuf), + merge_accumulator_to_message(lookup_result_accumulator(&result)), + TRUE); + lookup_result_deinit(&result); + core_destroy(&spl); + + if (recovering) { + ASSERT_TRUE(STATUS_IS_EQ(mount_rc, STATUS_INVALID_STATE)); + } else { + ASSERT_TRUE(SUCCESS(mount_rc)); + ASSERT_TRUE(STATUS_IS_EQ(sync_rc, STATUS_INVALID_STATE)); + ASSERT_TRUE(STATUS_IS_EQ(async_rc, STATUS_INVALID_STATE)); + ASSERT_TRUE(STATUS_IS_EQ(range_rc, STATUS_INVALID_STATE)); + } + } +} + /* Persisted pivot statistics are sizing hints, but they still feed arithmetic * during writes. Reject the impossible zero-tuple/nonzero-byte state before * it can reach leaf splitting (where it used to cause a division by zero). */ diff --git a/tests/unit/splinterdb_quick_test.c b/tests/unit/splinterdb_quick_test.c index ceca0e49f..7dd5dd4ea 100644 --- a/tests/unit/splinterdb_quick_test.c +++ b/tests/unit/splinterdb_quick_test.c @@ -40,12 +40,18 @@ #include "unit_tests.h" #include "util.h" #include "test_data.h" -#include "ctest.h" // This is required for all test-case files. -#include "btree.h" // for MAX_INLINE_MESSAGE_SIZE +#include "ctest.h" // This is required for all test-case files. +#include "btree_private.h" // branch encoding assertions #include "config.h" #include "splinterdb_tests_private.h" #include "clockcache.h" +#if defined(__has_feature) +# if __has_feature(memory_sanitizer) +# include +# endif +#endif + #define TEST_LARGE_KEY_SIZE 23 /* -1 for message encoding overhead */ @@ -1282,6 +1288,970 @@ CTEST2(splinterdb_quick, test_variable_length_values) /* * iterator test case. */ +static slice +prefix_test_key(char buffer[64], uint64 value) +{ + memset(buffer, 'm', 48); + char suffix[17]; + snprintf(suffix, sizeof(suffix), "%016lx", value); + memcpy(buffer + 48, suffix, 16); + return slice_create(64, buffer); +} + +static int +prefix_test_compare(const data_config *cfg, user_key first, user_key second) +{ + /* Lexical ordering does not require accepting compressed suffixes. */ + platform_assert(slice_length(first.key) >= 48); + platform_assert(slice_length(second.key) >= 48); + return slice_lex_cmp(first.key, second.key); +} + +typedef struct prefix_pack_test_iterator { + iterator super; + uint64 pos; + char keys[64][64]; + uint64 values[64]; +} prefix_pack_test_iterator; + +static void +prefix_pack_test_curr(iterator *base, key *tuple_key, message *msg) +{ + prefix_pack_test_iterator *itor = (prefix_pack_test_iterator *)base; + *tuple_key = key_create(FALSE, sizeof(itor->keys[0]), itor->keys[itor->pos]); + *msg = message_create( + MESSAGE_TYPE_INSERT, + NULL, + slice_create(sizeof(itor->values[0]), &itor->values[itor->pos])); +} + +static bool32 +prefix_pack_test_can_step(iterator *base) +{ + prefix_pack_test_iterator *itor = (prefix_pack_test_iterator *)base; + return itor->pos < ARRAY_SIZE(itor->keys); +} + +static platform_status +prefix_pack_test_next(iterator *base) +{ + prefix_pack_test_iterator *itor = (prefix_pack_test_iterator *)base; + itor->pos++; + return STATUS_OK; +} + +static const iterator_ops prefix_pack_test_ops = { + .curr = prefix_pack_test_curr, + .can_prev = prefix_pack_test_can_step, + .can_next = prefix_pack_test_can_step, + .next = prefix_pack_test_next, +}; + +/* Stop soon after the first uncompressed leaf fills. Compression leaves a + * large unused gap, which must not contain uninitialized scratch bytes when + * the complete page is copied or written. Pack directly from an array so the + * check observes the resident output before any writeback or disk reload can + * erase the sanitizer's initialization history. */ +CTEST2(splinterdb_quick, test_branch_prefix_pack_initializes_free_gap) +{ + core_handle *core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + prefix_pack_test_iterator input = {.super = {.ops = &prefix_pack_test_ops}}; + for (uint64 i = 0; i < ARRAY_SIZE(input.keys); i++) { + prefix_test_key(input.keys[i], i); + input.values[i] = i; + } + ASSERT_TRUE(core->cfg.btree_cfg->data_cfg->key_compare_is_lexical); + btree_pack_req req; + ASSERT_TRUE(SUCCESS(btree_pack_req_init(&req, + core->cc, + core->cfg.btree_cfg, + &input.super, + ARRAY_SIZE(input.keys), + 0, + FALSE, + core->heap_id))); + ASSERT_TRUE(SUCCESS(btree_pack(&req))); + btree_iterator scan; + ASSERT_TRUE(SUCCESS(btree_iterator_init(core->cc, + core->cfg.btree_cfg, + &scan, + req.root_addr, + BTREE_BRANCH_FORMAT_VERSION, + PAGE_TYPE_BRANCH, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + FALSE, + 0, + 0))); + btree_hdr *hdr = scan.curr.hdr; + ASSERT_EQUAL(0, hdr->height); + ASSERT_TRUE(hdr->prefix_length != 0); + ASSERT_EQUAL(ARRAY_SIZE(input.keys), hdr->num_entries); + char *gap = (char *)&hdr->offsets[hdr->num_entries]; + uint64 gap_length = (char *)hdr + hdr->next_entry - gap; + ASSERT_TRUE(gap_length > 1024); + bool32 gap_initialized = TRUE; +#if defined(__has_feature) +# if __has_feature(memory_sanitizer) + gap_initialized = __msan_test_shadow(gap, gap_length) == -1; +# endif +#endif + bool32 gap_zero = gap_initialized; + if (gap_initialized) { + for (uint64 i = 0; i < gap_length; i++) { + gap_zero &= gap[i] == 0; + } + } + for (uint64 i = 0; i < ARRAY_SIZE(input.keys); i++) { + ASSERT_TRUE(iterator_can_curr(&scan.super)); + key found; + message msg; + iterator_curr(&scan.super, &found, &msg); + ASSERT_EQUAL(sizeof(input.keys[0]), key_length(found)); + ASSERT_EQUAL(0, + memcmp(key_data(found), input.keys[i], key_length(found))); + ASSERT_EQUAL(sizeof(input.values[0]), message_length(msg)); + ASSERT_EQUAL( + 0, + memcmp(message_data(msg), &input.values[i], sizeof(input.values[0]))); + ASSERT_TRUE(SUCCESS(iterator_next(&scan.super))); + } + ASSERT_FALSE(iterator_can_curr(&scan.super)); + btree_iterator_deinit(&scan); + btree_dec_ref( + core->cc, core->cfg.btree_cfg, req.root_addr, PAGE_TYPE_BRANCH); + btree_pack_req_deinit(&req, core->heap_id); + ASSERT_TRUE(gap_initialized, "compressed leaf copied uninitialized bytes"); + ASSERT_TRUE(gap_zero, "compressed leaf free gap was not cleared"); +} + +typedef struct prefix_predicate_context { + slice expected; + uint64 calls; +} prefix_predicate_context; + +static bool +prefix_test_predicate(void *context, slice k) +{ + prefix_predicate_context *predicate = context; + /* Predicates receive full keys, even when the stored key is a suffix. */ + platform_assert(slice_length(k) >= 48); + predicate->calls++; + return slice_lex_cmp(k, predicate->expected) == 0; +} + +#if PLATFORM_MEMORY_FAULT_INJECTION +static void +prefix_test_init_failure(core_handle *core, + trunk_branch_info *branch, + key start_key) +{ + platform_memory_fault_config saved; + platform_memory_fault_config_get(&saved); + // Fail the lazy state allocation and then the first full-key allocation. + for (uint64 fail_at = 1; fail_at <= 2; fail_at++) { + platform_memory_fault_config fault = saved; + fault.mode = PLATFORM_MEMORY_FAULT_RANGE; + fault.range_start = fail_at; + fault.range_count = 1; + fault.max_failures = 1; + platform_memory_fault_config_set(&fault); + platform_memory_fault_reset_counters(); + platform_memory_fault_enable(); + btree_iterator itor; + platform_status rc = btree_iterator_init(core->cc, + core->cfg.btree_cfg, + &itor, + branch->addr, + branch->format_version, + PAGE_TYPE_BRANCH, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + start_key, + FALSE, + 0, + 0); + platform_memory_fault_counters counters = + platform_memory_fault_get_counters(); + platform_memory_fault_disable(); + platform_memory_fault_config_set(&saved); + if (SUCCESS(rc)) { + btree_iterator_deinit(&itor); + } + ASSERT_EQUAL(1, counters.failure_count); + ASSERT_TRUE(STATUS_IS_EQ(rc, STATUS_NO_MEMORY)); + ASSERT_TRUE(itor.prefix_state == NULL); + } +} +#endif + +static slice +prefix_minimum_test_key(char buffer[64], uint64 ordinal) +{ + const uint8 lengths[] = {1, 3, 4, 7}; + uint64 group = ordinal / 512; + uint64 rank = ordinal % 512; + memset(buffer, 'p', 64); + buffer[0] = 'A' + group; + buffer[lengths[group]] = rank / 2; + buffer[lengths[group] + 1] = rank % 2; + return slice_create(64, buffer); +} + +CTEST2(splinterdb_quick, test_branch_prefix_minimum) +{ + char keybuf[64], value[100]; + memset(value, 'v', sizeof(value)); + for (uint64 i = 0; i < 2048; i++) { + ASSERT_EQUAL(0, + splinterdb_insert(data->kvsb, + prefix_minimum_test_key(keybuf, i), + slice_create(sizeof(value), value), + NULL)); + } + core_handle *core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + ASSERT_TRUE(SUCCESS(core_checkpoint(core, 0))); + core_range_iterator scan; + ASSERT_TRUE(SUCCESS(core_range_iterator_init(core, + &scan, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY))); + uint64 ordinal = 0; + uint32 compressed_groups = 0, uncompressed_groups = 0; + while (iterator_can_curr(&scan.super)) { + key found; + message msg; + iterator_curr(&scan.super, &found, &msg); + ASSERT_TRUE(ordinal < 2048); + ASSERT_EQUAL(0, + slice_lex_cmp(key_slice(found), + prefix_minimum_test_key(keybuf, ordinal))); + ASSERT_EQUAL(sizeof(value), message_length(msg)); + ASSERT_STREQN(value, message_data(msg), sizeof(value)); + for (uint64 i = 0; i < scan.num_branches; i++) { + btree_iterator *child = &scan.btree_itor[i]; + if (!scan.btree_itor_initialized[i] || child->curr.hdr == NULL + || child->page_type != PAGE_TYPE_BRANCH + || child->curr.hdr->height != 0 + || !iterator_can_curr(&child->super)) + { + continue; + } + key child_key; + message child_msg; + iterator_curr(&child->super, &child_key, &child_msg); + uint32 group = *(const uint8 *)key_data(child_key) - 'A'; + ASSERT_TRUE(group < 4); + if (child->curr.hdr->prefix_length != 0) { + ASSERT_TRUE(child->curr.hdr->prefix_length >= 4); + compressed_groups |= 1U << group; + } else { + uncompressed_groups |= 1U << group; + } + } + ordinal++; + ASSERT_TRUE(SUCCESS(iterator_next(&scan.super))); + } + core_range_iterator_deinit(&scan); + ASSERT_EQUAL(2048, ordinal); + ASSERT_EQUAL((1U << 2) | (1U << 3), compressed_groups); + ASSERT_EQUAL(3, uncompressed_groups & 3); +} + +/* Cross both the builtin-buffer boundary and subsequent allocation growth. + * The rank precedes the variable tail, so lexical order is independent of + * length. Repeating the lengths also shrinks keys within compressed leaves. */ +static const uint16 prefix_variable_lengths[] = { + 47, + 48, + 49, + 95, + 96, + 97, + 255, + 256, + 257, + 511, + 512, +}; + +static slice +prefix_variable_test_key(char buffer[512], uint64 ordinal) +{ + uint64 length = + prefix_variable_lengths[ordinal % ARRAY_SIZE(prefix_variable_lengths)]; + memset(buffer, 'p', 4); + for (uint64 i = 0; i < sizeof(ordinal); i++) { + buffer[4 + i] = ordinal >> (8 * (sizeof(ordinal) - i - 1)); + } + for (uint64 i = 12; i < length; i++) { + buffer[i] = (ordinal * 17 + i * 13) & 0xff; + } + return slice_create(length, buffer); +} + +static key +prefix_variable_check_current(iterator *itor, uint64 ordinal) +{ + char expected[512]; + key found; + message value; + ASSERT_TRUE(iterator_can_curr(itor)); + iterator_curr(itor, &found, &value); + ASSERT_EQUAL(0, + slice_lex_cmp(key_slice(found), + prefix_variable_test_key(expected, ordinal))); + ASSERT_EQUAL(sizeof(ordinal), message_length(value)); + ASSERT_EQUAL(0, memcmp(message_data(value), &ordinal, sizeof(ordinal))); + return found; +} + +#if PLATFORM_MEMORY_FAULT_INJECTION +static void +prefix_variable_test_growth_failure(core_handle *core, + trunk_branch_info *branch, + uint64 ordinal) +{ + char keybuf[512]; + btree_iterator itor; + ASSERT_TRUE(SUCCESS(btree_iterator_init( + core->cc, + core->cfg.btree_cfg, + &itor, + branch->addr, + branch->format_version, + PAGE_TYPE_BRANCH, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + key_create_from_slice(TRUE, prefix_variable_test_key(keybuf, ordinal)), + FALSE, + 0, + 0))); + prefix_variable_check_current(&itor.super, ordinal); + ASSERT_TRUE(itor.curr.hdr->prefix_length != 0); + ASSERT_TRUE(itor.idx + 1 < itor.curr.hdr->num_entries); + + platform_memory_fault_config saved; + platform_memory_fault_config_get(&saved); + platform_memory_fault_config fault = saved; + fault.mode = PLATFORM_MEMORY_FAULT_RANGE; + fault.range_start = 1; + fault.range_count = 1; + fault.max_failures = 1; + platform_memory_fault_config_set(&fault); + platform_memory_fault_reset_counters(); + platform_memory_fault_enable(); + platform_status rc = iterator_next(&itor.super); + platform_memory_fault_counters counters = + platform_memory_fault_get_counters(); + platform_memory_fault_disable(); + platform_memory_fault_config_set(&saved); + + ASSERT_EQUAL(1, counters.failure_count); + ASSERT_TRUE(STATUS_IS_EQ(rc, STATUS_NO_MEMORY)); + ASSERT_FALSE(iterator_can_curr(&itor.super)); + ASSERT_TRUE(itor.validated_entry == NULL); + btree_iterator_deinit(&itor); +} +#endif + +CTEST2(splinterdb_quick, test_branch_prefix_variable_iterator) +{ + const uint64 count = 512; + char keybuf[512]; + for (uint64 i = 0; i < count; i++) { + ASSERT_EQUAL(0, + splinterdb_insert(data->kvsb, + prefix_variable_test_key(keybuf, i), + slice_create(sizeof(i), &i), + NULL)); + } + core_handle *core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + ASSERT_TRUE(SUCCESS(core_checkpoint(core, 0))); + core_range_iterator probe; + ASSERT_TRUE(SUCCESS(core_range_iterator_init(core, + &probe, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY))); + + uint64 total = 0, grows = 0, shrinks = 0, leaf_changes = 0; + uint64 compressed_lengths = 0; + for (uint64 b = 0; b < probe.num_branches; b++) { + btree_iterator *child = &probe.btree_itor[b]; + if (!probe.btree_itor_initialized[b] + || child->page_type != PAGE_TYPE_BRANCH + || !iterator_can_curr(&child->super)) + { + continue; + } + iterator *itor = &child->super; + key first_key; + message first_value; + iterator_curr(itor, &first_key, &first_value); + ASSERT_EQUAL(sizeof(uint64), message_length(first_value)); + uint64 first; + memcpy(&first, message_data(first_value), sizeof(first)); + + /* Do this before the full traversal grows the decode buffer: strict + * seeks using its own current key exercise aliased targets during growth. + */ + uint64 first_leaf_addr = child->curr.addr; + for (uint64 i = first; i < first + ARRAY_SIZE(prefix_variable_lengths); + i++) + { + if (i < first + 6) { + ASSERT_EQUAL(first_leaf_addr, child->curr.addr); + ASSERT_TRUE(child->curr.hdr->prefix_length != 0); + } + key current = prefix_variable_check_current(itor, i); + ASSERT_TRUE( + SUCCESS(iterator_seek(itor, greater_than_or_equal, current))); + current = prefix_variable_check_current(itor, i); + ASSERT_TRUE(SUCCESS(iterator_seek(itor, greater_than, current))); + } + ASSERT_TRUE(SUCCESS( + iterator_seek(itor, + greater_than_or_equal, + key_create_from_slice( + TRUE, prefix_variable_test_key(keybuf, first))))); + + uint64 rows = 0, previous_addr = 0, previous_length = 0; + bool32 previous_compressed = FALSE; + while (iterator_can_curr(itor)) { + uint64 ordinal = first + rows; + ASSERT_TRUE(ordinal < count); + key found = prefix_variable_check_current(itor, ordinal); + uint64 length = key_length(found); + bool32 compressed = child->curr.hdr->prefix_length != 0; + if (compressed) { + ASSERT_TRUE(child->prefix_state != NULL); + compressed_lengths |= + 1ULL << (ordinal % ARRAY_SIZE(prefix_variable_lengths)); + if (previous_compressed) { + if (child->curr.addr == previous_addr) { + grows += length > previous_length; + shrinks += length < previous_length; + } else { + leaf_changes++; + } + } + } + previous_addr = child->curr.addr; + previous_length = length; + previous_compressed = compressed; + rows++; + ASSERT_TRUE(SUCCESS(iterator_next(itor))); + } + + ASSERT_TRUE(SUCCESS(iterator_seek( + itor, + less_than_or_equal, + key_create_from_slice( + TRUE, prefix_variable_test_key(keybuf, first + rows - 1))))); + for (uint64 i = rows; i-- > 0;) { + key current = prefix_variable_check_current(itor, first + i); + ASSERT_TRUE(SUCCESS(iterator_seek(itor, less_than_or_equal, current))); + prefix_variable_check_current(itor, first + i); + ASSERT_TRUE(SUCCESS(iterator_prev(itor))); + } + ASSERT_FALSE(iterator_can_curr(itor)); + total += rows; +#if PLATFORM_MEMORY_FAULT_INJECTION + if (first == 0) { + // Fresh decode buffers: builtin 48 -> allocated 49, and 96 -> 97. + prefix_variable_test_growth_failure(core, &probe.branch[b], 1); + prefix_variable_test_growth_failure(core, &probe.branch[b], 4); + } +#endif + } + core_range_iterator_deinit(&probe); + ASSERT_EQUAL(count, total); + ASSERT_EQUAL((1ULL << ARRAY_SIZE(prefix_variable_lengths)) - 1, + compressed_lengths); + ASSERT_TRUE(grows != 0); + ASSERT_TRUE(shrinks != 0); + ASSERT_TRUE(leaf_changes != 0); +} + +static void +prefix_test_malformed_leaf_entries(core_handle *core, trunk_branch_info *branch) +{ + enum { + BELOW_NEXT_ENTRY, + AT_PHYSICAL_PAGE_END, + AT_PREFIX_RESERVATION, + TRUNCATED_HEADER, + INVALID_KEY_FLAGS, + INVALID_MESSAGE_TYPE, + INVALID_MESSAGE_FLAGS, + EXCESSIVE_FULL_KEY, + NEGATIVE_INFINITY_LENGTH, + POSITIVE_INFINITY_LENGTH, + MESSAGE_PAST_PAGE_END, + KEY_MESSAGE_SUM_EXCEEDS_UINT16, + KEY_PAST_PAGE_END, + NUM_FAULTS, + }; + uint64 page_size = btree_page_size(core->cfg.btree_cfg); + char saved_page[IO_DEFAULT_PAGE_SIZE]; + ASSERT_EQUAL(sizeof(saved_page), page_size); + for (uint64 fault = 0; fault < NUM_FAULTS; fault++) { + btree_iterator itor; + ASSERT_TRUE(SUCCESS(btree_iterator_init(core->cc, + core->cfg.btree_cfg, + &itor, + branch->addr, + branch->format_version, + PAGE_TYPE_BRANCH, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + FALSE, + 0, + 0))); + btree_hdr *hdr = itor.curr.hdr; + uint64 next = itor.idx + 1; + ASSERT_TRUE(next < hdr->num_entries); + ASSERT_TRUE(hdr->prefix_length != 0); + uint64 payload_end = page_size - hdr->prefix_length; + leaf_entry *entry = btree_get_leaf_entry(itor.cfg, hdr, next); + memcpy(saved_page, hdr, page_size); + + /* Checkpointing has quiesced the single-threaded fixture. Keep the leaf + * pinned throughout this deliberate corruption, and restore every byte + * before releasing it or allowing any other operation to inspect it. */ + switch (fault) { + case BELOW_NEXT_ENTRY: + hdr->offsets[next] = hdr->next_entry - 1; + break; + case AT_PHYSICAL_PAGE_END: + hdr->offsets[next] = page_size; + break; + case AT_PREFIX_RESERVATION: + hdr->offsets[next] = payload_end; + break; + case TRUNCATED_HEADER: + hdr->offsets[next] = payload_end - sizeof(*entry) + 1; + break; + case INVALID_KEY_FLAGS: + entry->key_flags = ONDISK_KEY_DEFAULT_FLAGS ^ 0x80; + break; + case INVALID_MESSAGE_TYPE: + entry->flags &= ~ONDISK_MESSAGE_TYPE_MASK; + break; + case INVALID_MESSAGE_FLAGS: + entry->flags |= 0x80; + break; + case EXCESSIVE_FULL_KEY: + entry->key_length = + MAX_INLINE_KEY_SIZE(page_size) - hdr->prefix_length + 1; + break; + case NEGATIVE_INFINITY_LENGTH: + entry->key_length = ONDISK_KEY_NEGATIVE_INFINITY; + break; + case POSITIVE_INFINITY_LENGTH: + entry->key_length = ONDISK_KEY_POSITIVE_INFINITY; + break; + case MESSAGE_PAST_PAGE_END: + entry->message_length = payload_end - hdr->offsets[next] + - sizeof(*entry) - entry->key_length + 1; + break; + case KEY_MESSAGE_SUM_EXCEEDS_UINT16: + entry->key_length = 16; + entry->message_length = UINT16_MAX - entry->key_length + 2; + break; + case KEY_PAST_PAGE_END: + { + leaf_entry saved_entry = *entry; + hdr->offsets[next] = payload_end - sizeof(*entry); + entry = (leaf_entry *)((char *)hdr + hdr->offsets[next]); + *entry = saved_entry; + entry->key_length = 1; + entry->message_length = 0; + break; + } + default: + platform_assert(FALSE); + } + platform_status rc = iterator_next(&itor.super); + bool32 exposed = iterator_can_curr(&itor.super); + bool32 retained_entry = itor.validated_entry != NULL; + memcpy(hdr, saved_page, page_size); + btree_iterator_deinit(&itor); + ASSERT_TRUE(STATUS_IS_EQ(rc, STATUS_INVALID_STATE), + "malformed leaf case %lu returned %s", + fault, + platform_status_to_string(rc)); + ASSERT_FALSE(exposed); + ASSERT_FALSE(retained_entry); + } +} + +CTEST2(splinterdb_quick, test_branch_prefix_malformed_leaf_entries) +{ + char keybuf[64]; + for (uint64 i = 0; i < 128; i++) { + ASSERT_EQUAL(0, + splinterdb_insert(data->kvsb, + prefix_test_key(keybuf, i), + slice_create(sizeof(i), &i), + NULL)); + } + core_handle *core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + ASSERT_TRUE(SUCCESS(core_checkpoint(core, 0))); + core_range_iterator probe; + ASSERT_TRUE(SUCCESS(core_range_iterator_init(core, + &probe, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY))); + bool32 tested = FALSE; + for (uint64 b = 0; b < probe.num_branches; b++) { + if (probe.btree_itor_initialized[b] + && probe.btree_itor[b].page_type == PAGE_TYPE_BRANCH + && iterator_can_curr(&probe.btree_itor[b].super)) + { + prefix_test_malformed_leaf_entries(core, &probe.branch[b]); + tested = TRUE; + break; + } + } + ASSERT_TRUE(tested); + /* Restoring the pinned page must leave the ordinary merged scan intact. */ + for (uint64 i = 0; i < 128; i++) { + key found; + message value; + ASSERT_TRUE(iterator_can_curr(&probe.super)); + iterator_curr(&probe.super, &found, &value); + ASSERT_EQUAL(0, + slice_lex_cmp(key_slice(found), prefix_test_key(keybuf, i))); + ASSERT_EQUAL(sizeof(i), message_length(value)); + ASSERT_EQUAL(0, memcmp(message_data(value), &i, sizeof(i))); + ASSERT_TRUE(SUCCESS(iterator_next(&probe.super))); + } + ASSERT_FALSE(iterator_can_curr(&probe.super)); + core_range_iterator_deinit(&probe); +} + +CTEST2(splinterdb_quick, test_branch_prefix_roundtrip) +{ + const uint64 count = 4096; + for (uint64 enabled = 0; enabled < 2; enabled++) { + ASSERT_EQUAL(0, splinterdb_close(&data->kvsb, FALSE)); + data->default_data_cfg.super.key_compare_is_lexical = enabled; + data->default_data_cfg.super.key_compare = prefix_test_compare; + ASSERT_EQUAL(0, splinterdb_create(&data->cfg, &data->kvsb)); + char keybuf[64]; + for (uint64 i = 0; i < count; i++) { + slice k = prefix_test_key(keybuf, i * 2); + ASSERT_EQUAL(0, + splinterdb_insert( + data->kvsb, k, slice_create(sizeof(i), &i), NULL)); + } + /* A key equal to a leaf's prefix exercises zero-length suffixes. */ + memset(keybuf, 'm', 48); + uint64 sentinel = UINT64_MAX; + ASSERT_EQUAL(0, + splinterdb_insert(data->kvsb, + slice_create(48, keybuf), + slice_create(sizeof(sentinel), &sentinel), + NULL)); + core_handle *core = + (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + ASSERT_TRUE(SUCCESS(core_checkpoint(core, 0))); + + core_range_iterator probe; + ASSERT_TRUE(SUCCESS(core_range_iterator_init(core, + &probe, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY))); + bool32 compressed = FALSE; + for (uint64 i = 0; i < probe.num_branches; i++) { + if (probe.btree_itor_initialized[i] + && probe.btree_itor[i].curr.hdr != NULL) + { + compressed |= probe.btree_itor[i].curr.hdr->prefix_length != 0; + if (!enabled) { + ASSERT_TRUE(probe.btree_itor[i].prefix_state == NULL); + } else if (probe.btree_itor[i].curr.hdr->prefix_length != 0) { + ASSERT_TRUE(probe.btree_itor[i].prefix_state != NULL); + } + } + } + ASSERT_EQUAL(enabled, compressed); + /* Exercise boundary comparisons for nearby and cross-leaf seeks. */ + for (uint64 branch = 0; branch < probe.num_branches; branch++) { + if (!probe.btree_itor_initialized[branch] + || probe.btree_itor[branch].curr.hdr == NULL + || probe.btree_itor[branch].page_type != PAGE_TYPE_BRANCH) + { + continue; + } + ASSERT_TRUE(btree_verify_tree(core->cc, + core->cfg.btree_cfg, + probe.btree_itor[branch].root_addr, + PAGE_TYPE_BRANCH)); + iterator *branch_it = (iterator *)&probe.btree_itor[branch]; + void *prefix_state = probe.btree_itor[branch].prefix_state; + for (uint64 i = 0; i < 128; i++) { + uint64 logical = (i * 7919) % (i < 64 ? 64 : count - 1); + slice target = prefix_test_key(keybuf, logical * 2 + 1); + ASSERT_TRUE( + SUCCESS(iterator_seek(branch_it, + greater_than_or_equal, + key_create_from_slice(TRUE, target)))); + key found; + message value; + iterator_curr(branch_it, &found, &value); + ASSERT_EQUAL( + 0, + slice_lex_cmp(key_slice(found), + prefix_test_key(keybuf, (logical + 1) * 2))); + /* Boundary probes must not overwrite an aliased seek target. */ + ASSERT_TRUE( + SUCCESS(iterator_seek(branch_it, greater_than_or_equal, found))); + iterator_curr(branch_it, &found, &value); + ASSERT_EQUAL( + 0, + slice_lex_cmp(key_slice(found), + prefix_test_key(keybuf, (logical + 1) * 2))); + if (prefix_state != NULL) { + ASSERT_TRUE(prefix_state + == probe.btree_itor[branch].prefix_state); + } + prefix_state = probe.btree_itor[branch].prefix_state; + if (!enabled) { + ASSERT_TRUE(prefix_state == NULL); + } + } + for (uint64 side = 0; side < 2; side++) { + memset(keybuf, side ? 'z' : 'a', sizeof(keybuf)); + ASSERT_TRUE(SUCCESS( + iterator_seek(branch_it, + side ? less_than_or_equal : greater_than_or_equal, + key_create_from_slice( + TRUE, slice_create(sizeof(keybuf), keybuf))))); + key found; + message value; + iterator_curr(branch_it, &found, &value); + if (side) { + ASSERT_EQUAL( + 0, + slice_lex_cmp(key_slice(found), + prefix_test_key(keybuf, (count - 1) * 2))); + } else { + ASSERT_EQUAL(48, key_length(found)); + } + } +#if PLATFORM_MEMORY_FAULT_INJECTION + if (enabled && prefix_state != NULL) { + prefix_test_init_failure( + core, + &probe.branch[branch], + key_create_from_slice(TRUE, prefix_test_key(keybuf, 0))); + } +#endif + } + core_range_iterator_deinit(&probe); + + ASSERT_EQUAL(0, splinterdb_close(&data->kvsb, FALSE)); + /* Creation policy must not change interpretation of existing leaves. */ + data->default_data_cfg.super.key_compare_is_lexical = !enabled; + ASSERT_EQUAL(0, splinterdb_open(&data->cfg, &data->kvsb)); + core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + splinterdb_lookup_result result; + splinterdb_lookup_result_init( + data->kvsb, &result, SPLINTERDB_LOOKUP_VALUE, 0, NULL); + for (uint64 i = 0; i < count; i++) { + slice k = prefix_test_key(keybuf, i * 2); + ASSERT_EQUAL(0, splinterdb_lookup(data->kvsb, k, &result)); + ASSERT_TRUE(splinterdb_lookup_found(&result)); + slice value; + ASSERT_EQUAL(0, splinterdb_lookup_result_value(&result, &value)); + ASSERT_EQUAL(sizeof(i), slice_length(value)); + ASSERT_EQUAL(0, memcmp(slice_data(value), &i, sizeof(i))); + if (i % 127 == 0) { + lookup_result async_result; + lookup_result_init(&async_result, + core->cfg.data_cfg, + SPLINTERDB_LOOKUP_VALUE, + 0, + NULL); + ASSERT_TRUE( + SUCCESS(async_call_sync_callback(cache_cleanup(core->cc), + core_lookup_async, + core, + key_create_from_slice(TRUE, k), + &async_result))); + ASSERT_TRUE(lookup_result_found(&async_result)); + lookup_result_deinit(&async_result); + } + /* Missing keys between existing suffixes stay absent. */ + k = prefix_test_key(keybuf, i * 2 + 1); + ASSERT_EQUAL(0, splinterdb_lookup(data->kvsb, k, &result)); + ASSERT_FALSE(splinterdb_lookup_found(&result)); + } + splinterdb_lookup_result_deinit(&result); + + splinterdb_iterator *it; + ASSERT_EQUAL(0, + splinterdb_iterator_init( + data->kvsb, &it, greater_than_or_equal, NULL_SLICE)); + slice k, v; + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL(48, slice_length(k)); + splinterdb_iterator_next(it); + for (uint64 i = 0; i < count; i++) { + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + slice expected = prefix_test_key(keybuf, i * 2); + ASSERT_EQUAL(0, slice_lex_cmp(k, expected)); + ASSERT_EQUAL(0, memcmp(slice_data(v), &i, sizeof(i))); + if (i + 1 < count) { + splinterdb_iterator_next(it); + } + } + for (uint64 i = count; i-- > 0;) { + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL(0, slice_lex_cmp(k, prefix_test_key(keybuf, i * 2))); + splinterdb_iterator_prev(it); + } + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL(48, slice_length(k)); + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + splinterdb_iterator_deinit(it); + + /* Finite bounds cross compressed leaves, including absent endpoints and + * all inclusive/exclusive combinations after changing the create policy. + */ + for (uint64 missing = 0; missing < 2; missing++) { + for (uint64 bounds = 0; bounds < 4; bounds++) { + bool32 min_inclusive = (bounds & 1) != 0; + bool32 max_inclusive = (bounds & 2) != 0; + char minbuf[64]; + char maxbuf[64]; + slice min = prefix_test_key(minbuf, 2 * (count / 3) + missing); + slice max = prefix_test_key(maxbuf, 2 * (2 * count / 3) + missing); + uint64 first = count / 3 + (missing || !min_inclusive); + uint64 last = 2 * count / 3 - (!missing && !max_inclusive); + for (uint64 reverse = 0; reverse < 2; reverse++) { + ASSERT_EQUAL( + 0, + splinterdb_iterator_init_with_bounds( + data->kvsb, + &it, + min_inclusive ? greater_than_or_equal : greater_than, + min, + max_inclusive ? less_than_or_equal : less_than, + max, + reverse ? less_than_or_equal : greater_than_or_equal, + NULL_SLICE)); + for (uint64 i = first; i <= last; i++) { + uint64 logical = reverse ? last - (i - first) : i; + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL( + 0, slice_lex_cmp(k, prefix_test_key(keybuf, logical * 2))); + if (reverse) { + splinterdb_iterator_prev(it); + } else { + splinterdb_iterator_next(it); + } + } + ASSERT_FALSE(splinterdb_iterator_valid(it)); + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + splinterdb_iterator_deinit(it); + } + } + } + + /* Exercise both predicate-only and routing-pruned scans over compressed + * leaves, in either direction, after reopening with a different policy. + */ + for (uint64 prune = 0; prune < 2; prune++) { + for (uint64 reverse = 0; reverse < 2; reverse++) { + prefix_predicate_context predicate = { + .expected = prefix_test_key(keybuf, count), + }; + ASSERT_EQUAL( + 0, + splinterdb_iterator_init_with_filter( + data->kvsb, + &it, + reverse ? less_than_or_equal : greater_than_or_equal, + NULL_SLICE, + prefix_test_predicate, + &predicate, + prune ? predicate.expected : NULL_SLICE)); + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL(0, slice_lex_cmp(k, predicate.expected)); + if (reverse) { + splinterdb_iterator_prev(it); + } else { + splinterdb_iterator_next(it); + } + ASSERT_FALSE(splinterdb_iterator_valid(it)); + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + ASSERT_TRUE(predicate.calls != 0); + splinterdb_iterator_deinit(it); + } + } + + /* Prefix mismatch can lie below or above every tuple. */ + for (uint64 side = 0; side < 2; side++) { + memset(keybuf, side ? 'z' : 'a', sizeof(keybuf)); + ASSERT_EQUAL(0, + splinterdb_iterator_init( + data->kvsb, + &it, + side ? less_than_or_equal : greater_than_or_equal, + slice_create(sizeof(keybuf), keybuf))); + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + if (side) { + ASSERT_EQUAL( + 0, slice_lex_cmp(k, prefix_test_key(keybuf, (count - 1) * 2))); + } else { + ASSERT_EQUAL(48, slice_length(k)); + } + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + splinterdb_iterator_deinit(it); + } + } +} + CTEST2(splinterdb_quick, test_basic_iterator) { const int num_inserts = 50; @@ -2435,14 +3405,276 @@ CTEST2(splinterdb_quick, test_write_api_old_result_respects_trunk_delete_shadow) splinterdb_lookup_result_deinit(&old_result); } +static slice +nonlexical_branch_test_key(char buffer[16], uint64 ordinal) +{ + memset(buffer, 0, 16); + buffer[0] = (uint8)(255 - (ordinal & 255)); + for (uint64 i = 0; i < 8; i++) { + buffer[8 + i] = (uint8)(ordinal >> (56 - 8 * i)); + } + return slice_create(16, buffer); +} + +static int +nonlexical_branch_test_compare(const data_config *cfg, + user_key first, + user_key second) +{ + platform_assert(slice_length(first.key) == 16); + platform_assert(slice_length(second.key) == 16); + /* Ignore the reversed leading byte and order by the encoded ordinal. */ + return slice_lex_cmp( + slice_create(8, (const char *)slice_data(first.key) + 8), + slice_create(8, (const char *)slice_data(second.key) + 8)); +} + +static void +nonlexical_branch_check_result(lookup_result *result, uint64 expected) +{ + ASSERT_TRUE(lookup_result_found(result)); + message value = + merge_accumulator_to_message(lookup_result_accumulator(result)); + ASSERT_EQUAL(sizeof(expected), message_length(value)); + ASSERT_EQUAL(0, memcmp(message_data(value), &expected, sizeof(expected))); +} + +static uint32 +nonlexical_branch_test_hash(const data_config *cfg, user_key k, uint32 seed) +{ + platform_assert(slice_length(k.key) == 16); + return platform_hash32((const char *)slice_data(k.key) + 8, 8, seed); +} + +/* Check real packed branches with a comparator whose order differs from byte + * order. Direct B-tree misses deliberately bypass core routing filters, so + * both lookup APIs must actually search and reject an absent leaf key. */ +CTEST2(splinterdb_quick, test_immutable_branch_custom_comparator) +{ + enum { COUNT = 1024 }; + ASSERT_EQUAL(0, splinterdb_close(&data->kvsb, FALSE)); + data->default_data_cfg.super.key_compare = nonlexical_branch_test_compare; + data->default_data_cfg.super.key_hash = nonlexical_branch_test_hash; + data->default_data_cfg.super.key_compare_is_lexical = FALSE; + ASSERT_EQUAL(0, splinterdb_create(&data->cfg, &data->kvsb)); + + char keybuf[16], otherbuf[16]; + slice first = nonlexical_branch_test_key(keybuf, 0); + slice second = nonlexical_branch_test_key(otherbuf, 2); + ASSERT_TRUE(slice_lex_cmp(first, second) > 0); + ASSERT_TRUE(nonlexical_branch_test_compare(&data->default_data_cfg.super, + (user_key){.key = first}, + (user_key){.key = second}) + < 0); + for (uint64 i = 0; i < COUNT; i++) { + uint64 ordinal = (i * 419) % COUNT; + ASSERT_EQUAL( + 0, + splinterdb_insert(data->kvsb, + nonlexical_branch_test_key(keybuf, 2 * ordinal), + slice_create(sizeof(ordinal), &ordinal), + NULL)); + } + core_handle *core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + ASSERT_TRUE(SUCCESS(core_checkpoint(core, 0))); + ASSERT_EQUAL(0, splinterdb_close(&data->kvsb, FALSE)); + ASSERT_EQUAL(0, splinterdb_open(&data->cfg, &data->kvsb)); + core = (core_handle *)splinterdb_get_trunk_handle(data->kvsb); + + core_range_iterator probe; + ASSERT_TRUE(SUCCESS(core_range_iterator_init(core, + &probe, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY, + less_than, + POSITIVE_INFINITY_KEY, + greater_than_or_equal, + NEGATIVE_INFINITY_KEY))); + bool32 visited[COUNT] = {0}; + lookup_result result; + lookup_result_init( + &result, core->cfg.data_cfg, SPLINTERDB_LOOKUP_VALUE, 0, NULL); + for (uint64 branch = 0; branch < probe.num_branches; branch++) { + if (!probe.btree_itor_initialized[branch] + || probe.btree_itor[branch].page_type != PAGE_TYPE_BRANCH) + { + continue; + } + btree_iterator *bt = &probe.btree_itor[branch]; + iterator *it = &bt->super; + ASSERT_TRUE(SUCCESS( + iterator_seek(it, greater_than_or_equal, NEGATIVE_INFINITY_KEY))); + uint64 previous = 0; + bool32 initial = TRUE; + while (iterator_can_curr(it)) { + key stored; + message value; + iterator_curr(it, &stored, &value); + ASSERT_EQUAL(16, key_length(stored)); + uint64 ordinal = 0; + for (uint64 i = 8; i < 16; i++) { + ordinal = (ordinal << 8) | ((const uint8 *)key_data(stored))[i]; + } + ASSERT_EQUAL(0, ordinal % 2); + ASSERT_TRUE(ordinal / 2 < COUNT); + ASSERT_TRUE(initial || previous < ordinal); + initial = FALSE; + previous = ordinal; + visited[ordinal / 2] = TRUE; + slice target = nonlexical_branch_test_key(keybuf, ordinal); + ASSERT_EQUAL(0, slice_lex_cmp(key_slice(stored), target)); + ASSERT_TRUE(SUCCESS(btree_lookup(core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + key_create_from_slice(TRUE, target), + &result))); + nonlexical_branch_check_result(&result, ordinal / 2); + ASSERT_TRUE(SUCCESS( + async_call_sync_callback(cache_cleanup(core->cc), + btree_lookup_async, + core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + key_create_from_slice(TRUE, target), + &result))); + nonlexical_branch_check_result(&result, ordinal / 2); + + target = nonlexical_branch_test_key(keybuf, ordinal + 1); + ASSERT_TRUE(SUCCESS(btree_lookup(core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + key_create_from_slice(TRUE, target), + &result))); + ASSERT_FALSE(lookup_result_found(&result)); + ASSERT_TRUE(SUCCESS( + async_call_sync_callback(cache_cleanup(core->cc), + btree_lookup_async, + core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + key_create_from_slice(TRUE, target), + &result))); + ASSERT_FALSE(lookup_result_found(&result)); + ASSERT_TRUE(SUCCESS(iterator_next(it))); + } + + /* A corrupt first-probe key extent must be rejected before passing its + * invalid length to the custom comparator. Restore before assertions + * and normal tree destruction. The fixture is single-threaded. */ + ASSERT_TRUE(SUCCESS( + iterator_seek(it, greater_than_or_equal, NEGATIVE_INFINITY_KEY))); + ASSERT_TRUE(iterator_can_curr(it)); + leaf_entry *entry = btree_get_leaf_entry( + core->cfg.btree_cfg, bt->curr.hdr, bt->curr.hdr->num_entries / 2); + ASSERT_EQUAL(sizeof(keybuf), entry->key_length); + memcpy(keybuf, entry->key_and_message, sizeof(keybuf)); + key query = + key_create_from_slice(TRUE, slice_create(sizeof(keybuf), keybuf)); + uint16 saved_length = entry->key_length; + entry->key_length = UINT16_MAX; + platform_status sync_rc = + btree_lookup(core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + query, + &result); + bool32 sync_found = lookup_result_found(&result); + platform_status async_rc = + async_call_sync_callback(cache_cleanup(core->cc), + btree_lookup_async, + core->cc, + core->cfg.btree_cfg, + bt->root_addr, + probe.branch[branch].format_version, + PAGE_TYPE_BRANCH, + query, + &result); + bool32 async_found = lookup_result_found(&result); + entry->key_length = saved_length; + ASSERT_TRUE(STATUS_IS_EQ(sync_rc, STATUS_INVALID_STATE)); + ASSERT_TRUE(STATUS_IS_EQ(async_rc, STATUS_INVALID_STATE)); + ASSERT_FALSE(sync_found); + ASSERT_FALSE(async_found); + } + lookup_result_deinit(&result); + core_range_iterator_deinit(&probe); + for (uint64 i = 0; i < COUNT; i++) { + ASSERT_TRUE( + visited[i], "key %lu was not checked in an immutable branch", i); + } + + for (bool32 reverse = FALSE; reverse <= TRUE; reverse++) { + splinterdb_iterator *it; + ASSERT_EQUAL(0, + splinterdb_iterator_init(data->kvsb, + &it, + reverse ? less_than_or_equal + : greater_than_or_equal, + NULL_SLICE)); + for (uint64 i = 0; i < COUNT; i++) { + uint64 expected = reverse ? COUNT - 1 - i : i; + slice k, v; + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL( + 0, + slice_lex_cmp(k, nonlexical_branch_test_key(keybuf, 2 * expected))); + ASSERT_EQUAL(sizeof(expected), slice_length(v)); + ASSERT_EQUAL(0, memcmp(slice_data(v), &expected, sizeof(expected))); + if (reverse) { + splinterdb_iterator_prev(it); + } else { + splinterdb_iterator_next(it); + } + } + ASSERT_FALSE(splinterdb_iterator_valid(it)); + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + splinterdb_iterator_deinit(it); + + for (uint64 i = 0; i < COUNT; i += 31) { + uint64 expected = i + !reverse; + ASSERT_EQUAL(0, + splinterdb_iterator_init( + data->kvsb, + &it, + reverse ? less_than_or_equal : greater_than_or_equal, + nonlexical_branch_test_key(keybuf, 2 * i + 1))); + if (expected < COUNT) { + slice k, v; + ASSERT_TRUE(splinterdb_iterator_valid(it)); + splinterdb_iterator_get_current(it, &k, &v); + ASSERT_EQUAL( + 0, + slice_lex_cmp(k, + nonlexical_branch_test_key(keybuf, 2 * expected))); + } else { + ASSERT_FALSE(splinterdb_iterator_valid(it)); + } + ASSERT_EQUAL(0, splinterdb_iterator_status(it)); + splinterdb_iterator_deinit(it); + } + } +} + CTEST2(splinterdb_quick, test_iterator_custom_comparator) { // We need to reconfigure Splinter with user-specified key comparator fn. // Tear down default instance, and create a new one. splinterdb_close(&data->kvsb, FALSE); - data->default_data_cfg.super.key_compare = custom_key_comparator; - data->default_data_cfg.num_comparisons = 0; + data->default_data_cfg.super.key_compare = custom_key_comparator; + data->default_data_cfg.super.key_compare_is_lexical = FALSE; + data->default_data_cfg.num_comparisons = 0; int rc = splinterdb_create(&data->cfg, &data->kvsb); ASSERT_EQUAL(0, rc); diff --git a/tests/unit/superblock_test.c b/tests/unit/superblock_test.c index 8f55e86da..1714be944 100644 --- a/tests/unit/superblock_test.c +++ b/tests/unit/superblock_test.c @@ -169,6 +169,36 @@ CTEST2(superblock, test_format_sets_fresh_state) superblock_context_deinit(&ctx); } +CTEST2(superblock, test_rejects_other_experiment_formats) +{ + const uint64 versions[] = {7, 0x8006, 0x8007}; + superblock_context ctx; + platform_status rc = + superblock_context_init(&ctx, data->ioh, &data->allocator_cfg, data->hid); + ASSERT_TRUE(SUCCESS(rc)); + for (uint64 i = 0; i < ARRAY_SIZE(versions); i++) { + rc = superblock_format(&ctx, &data->allocator_cfg); + ASSERT_TRUE(SUCCESS(rc)); + ASSERT_EQUAL(SUPERBLOCK_FORMAT_VERSION, ctx.image->format_version); + ctx.image->format_version = versions[i]; + // Publish both slots with a valid checksum for the incompatible format. + rc = superblock_make_durable(&ctx); + ASSERT_TRUE(SUCCESS(rc)); + rc = superblock_make_durable(&ctx); + ASSERT_TRUE(SUCCESS(rc)); + rc = superblock_mount(&ctx, &data->allocator_cfg); + ASSERT_TRUE(STATUS_IS_EQ(rc, STATUS_INVALID_STATE)); + superblock image; + rc = superblock_read_bootstrap(data->io_cfg.filename, &image); + ASSERT_TRUE(STATUS_IS_EQ(rc, STATUS_INVALID_STATE)); + } + rc = superblock_format(&ctx, &data->allocator_cfg); + ASSERT_TRUE(SUCCESS(rc)); + rc = superblock_mount(&ctx, &data->allocator_cfg); + ASSERT_TRUE(SUCCESS(rc)); + superblock_context_deinit(&ctx); +} + /* * A durable tree snapshot and a subsequent durable allocator snapshot (the * clean-unmount Part A / Part B sequence) survive a deinit + re-mount: the