perf(provider): lazily refresh static-file jar cache#23903
perf(provider): lazily refresh static-file jar cache#23903mediocregopher wants to merge 1 commit intomainfrom
Conversation
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
|
derek bench blocks=200 slack=never |
|
❌ Benchmark failed while building binaries. View logs |
Pass the live SegmentHeader into static-file index updates so append-side bookkeeping can reuse the writer's in-memory state instead of reopening the jar for every write. This keeps the steady-state save_blocks path from doing redundant jar loads and mmaps when only the provider indexes need to advance. Only rebuild the cached LoadedJar when that segment range is already resident in the reader cache, and leave uncached ranges to be loaded lazily on demand. Update the static-file producer call site for the new API and cover the lazy-refresh behavior with a provider test. Amp-Thread-ID: https://ampcode.com/threads/T-019df23e-aac0-71af-8498-f77b1613ea22 Co-authored-by: Amp <[email protected]>
d143ab7 to
64a5a9c
Compare
|
derek bench blocks=200 slack=never |
|
✅ Benchmark complete! View job Benchmark Results
200 blocks, 200 warmup Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ChartsGrafana Dashboard |
|
derek bench big-blocks blocks=50 slack=never |
|
✅ Benchmark complete! View job Benchmark Results
50 big blocks, 20 warmup Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ChartsGrafana Dashboard |
|
Closing: benchmark verdict is NO_WIN. |






Pass the live SegmentHeader into static-file index updates so append-side bookkeeping can reuse the writer's in-memory state instead of reopening the jar for every write. This keeps the steady-state save_blocks path from doing redundant jar loads and mmaps when only the provider indexes need to advance.
Only rebuild the cached LoadedJar when that segment range is already resident in the reader cache, and leave uncached ranges to be loaded lazily on demand. Update the static-file producer call site for the new API and cover the lazy-refresh behavior with a provider test.