Add RocksDBShutdownHook to CMake build configuration#31
Open
littleeleventhwolf wants to merge 1 commit into
Open
Add RocksDBShutdownHook to CMake build configuration#31littleeleventhwolf wants to merge 1 commit into
littleeleventhwolf wants to merge 1 commit into
Conversation
Added RocksDBShutdownHook.java to JAVA_MAIN_CLASSES list in CMakeLists.txt to resolve compilation errors related to missing symbol references in RocksDB.java.
jackylee-ch
added a commit
to jackylee-ch/ForSt
that referenced
this pull request
Jun 7, 2026
Closes the q4 3.3×-gap investigation and flips the KV data-block format (C) to the writer default, gated on a 5/5 scan-heavy perf pass. WHY no further q4 lever (the investigation's core output — falsification table in docs/superpowers/specs/2026-06-04-q4-decay-autopsy.md): every decay hypothesis was measured to ground — NOT memory/swap; SST read-amp FIXED by C; resident clone/lock ~1%; the 993ms resident stalls a <1% red herring (counterfactual); resident state flat (not 3a); resident scan O(matched) not O(total); active-cursor sort 16ns + unsorted-buffer eliminated. Root = the active-memtable BTreeMap O(log N) seek (~724ns), which is IRREDUCIBLE and the same class RocksDB's own memtable seek pays (so not the gap). Arena-skiplist spike REFUTED the only unsafe lever: BTreeMap 742ns < crossbeam SkipMap 2289 < contiguous arena skiplist 3397 ns/seek (cross-validates CURSOR_DIAG scan 724ns). Smaller-memtable (b) refuted (O(log N) size-insensitive: 256mb 740 ≈ 1024mb 724ns). PMC decision: no unsafe exception (docs/.../2026-06-04-PMC-q4-arena-skiplist-DECISION.md). FLIP: sst_write_kv_format() now defaults ON; FRS_SST_KV_BLOCK_FORMAT=0 is the instant opt-out to v1 Arrow blocks. Gated by the ververica#31 scan-heavy v1-vs-v2 run (5/5 neutral-or-better: q5/q8 finish faster, q7 +23%, q11 v2-finishes-v1-doesn't, q15 ≈) + q4 (v2 throughout) + correctness proven both modes (dual-version byte-identical, engine ground-truth, suites green default-v2 AND opt-out-v1). Coverage caveat: the scan/iter-heavy RISK set + q4, not the full q0–q22 (light queries are source-bound, block-format-agnostic); env=0 reverts instantly. Two v1-path tests pinned to v1 (force_kv_block_format(false)) since they assert the Arrow decoder. Diagnostics added (all env-gated, off by default, additive): FRS_DECAY_DIAG (per-flush LSM/state), FRS_BULK_SAMPLE (1/K per-tier ns breakdown + resident_total/examined/seeks), FRS_CURSOR_DIAG (scan-vs-sort split). Suites green: storage 352, engine 262, ffi 96 + integration, under default-v2 and the v1 opt-out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is the purpose of the change
Add RocksDBShutdownHook.java to JAVA_MAIN_CLASSES list in CMakeLists.txt to resolve compilation errors related to missing symbol references in RocksDB.java.

Brief change log
Verifying this change
This change is a code cleanup without any test coverage.