[pull] memtable_as_log_index from topling:memtable_as_log_index - #24
Merged
pull[bot] merged 2 commits intoAug 15, 2026
Merged
Conversation
* Rewrite refit files when IsTrivialMove fails after ReFitLevel Use the same trivial-move predicate as BackgroundCompaction and set ReFitLevel synthetic Compaction output compression from the target level. * Drop redundant refit_file_numbers set in ReFitLevel Build CompactFilesImpl input names directly from input[0].files. * Batch ReFitLevel post-refit compactions by max_compaction_bytes. Avoid feeding CompactFilesImpl with every refitted SST at once, which blew /dev/shm on 100M manual compacts. * Reuse RunManualCompaction for post-refit rewrite when IsTrivialMove fails. Drop the hand-rolled CompactFilesImpl batching in ReFitLevel and rewrite at the refit target level after EnableManualCompaction, keeping the original CompactRange begin/end and picker max_compaction_bytes batching. * Restore CompactFiles paused check to CompactFilesImpl. ReFitLevel no longer calls CompactFilesImpl under DisableManualCompaction, so the early return belongs back in CompactFilesImpl rather than CompactFiles. * Clear change_level on post-refit RunManualCompaction options.
* Rewrite refit files when IsTrivialMove fails after ReFitLevel Use the same trivial-move predicate as BackgroundCompaction and set ReFitLevel synthetic Compaction output compression from the target level. * Drop redundant refit_file_numbers set in ReFitLevel Build CompactFilesImpl input names directly from input[0].files. * Batch ReFitLevel post-refit compactions by max_compaction_bytes. Avoid feeding CompactFilesImpl with every refitted SST at once, which blew /dev/shm on 100M manual compacts. * Reuse RunManualCompaction for post-refit rewrite when IsTrivialMove fails. Drop the hand-rolled CompactFilesImpl batching in ReFitLevel and rewrite at the refit target level after EnableManualCompaction, keeping the original CompactRange begin/end and picker max_compaction_bytes batching. * Restore CompactFiles paused check to CompactFilesImpl. ReFitLevel no longer calls CompactFilesImpl under DisableManualCompaction, so the early return belongs back in CompactFilesImpl rather than CompactFiles. * Clear change_level on post-refit RunManualCompaction options. * Reduce db_bench-run workload to 50M keys 100M fillrandom aborts on CI runners before compact; halve -num to fit. * Expose db_bench-run num as a workflow input Default to 50M keys so CI fits runner limits; manual runs can override -num. * Set plain-ci db CPU quota to half of runner nproc Derive graft_bench_yaml --cpu-quota from nproc/2 instead of a fixed 50%. * Add plain-ci max_background_compactions workflow input Map the input to graft --cpu-quota, clamp mbc to [1,13], fix max_level1_subcompactions at 2, and floor max_background_compactions at 1. * Align local simple-top repro with plain-ci graft and crash detection. Keep shm cleanup and graft flags in run_local_simple_top_pages.sh in line with the 100M ReFitLevel compact repro. * ci(graft): use light_zip for L2 in CI level_writers ladder Move L2 from simple to light_zip so grafted bench configs match the intended compression progression for deeper levels. * Allow sample_statm_fdcache to use system Cached via SYS_CACHED_OF_EMPTY. When the env baseline is set, report /proc/meminfo Cached growth in pages instead of per-fd cachestat, for faster whole-system pagecache sampling. * Wire cached_pages_use_sys to drop caches and document meminfo pagecache. Add a sampler wrapper controlled by the workflow input, and switch Pages pagecache copy from series pagecache_src so meminfo vs cachestat runs match. * Use light_zip for all simple level_writers on fillseq benches. Keep fillrandom on the existing CI ladder; derive a fillseq yaml copy with simple rewritten to light_zip before that suite runs. * Prebake zipkeyonly/zipkeyvalue bench yaml and slim CI graft. Stop runtime full-profile grafts from rockside: ship renamed TableFactory configs, fixed 7-slot level_writers, and shell-computed MBC via set-mbc plus prefix3/prefix6; drop L1_WRITER and rename eng_ids for pages. * Reuse plain zipkey yaml for avx512 CI benches. avx512 only changes CPU flags; stage and run the same prebaked zipkeyonly/zipkeyvalue configs as plain CI. * Drop legacy dictzip10 naming from local bench prepare paths. * Set fillseq target_file_size_base 128M and multiplier 1. * Apply fillseq file-size graft in dcompact bench too. * Show num/key_size/value_size on bench Pages before cache note. Write required bench_settings in CI/local and fail emit if missing. * Clarify cache-fit note: CPU/memory focus and dcompact offload. * Enlarge RSS suite charts 1.5x and thin non-anony series strokes. Scale the SVG canvas and fonts so suite RAM time series are easier to read on Pages. Keep anony at stroke-width 3 and draw the other series at 1 so the costly anonymous RSS line stays the visual primary. Update the legend spacing assertions to the 1.5x font metrics so the unit test matches the enlarged SVG markup. * Extract shared RSS chart module and finish suite chart polish. Move parse/build/crosshair JS into bench_rss_chart.py so plain and dcompact Pages stop drifting on every visual tweak. Also land the remaining product pass on that shared builder: - matplotlib tab10 series colors, synced into the glossary list - title left + legend right on one header row above the plot - legend flushed to the plot frame (not the SVG edge), with packing widths that absorb ~1ch system-ui slack - tighter header-to-frame gap (margin_t=44) - colored tip frames with intentional non-concentric outer/inner radii - chart titles use "suite RAM" Tests cover layout constants, legend packing, and that both emitters import the shared module. * Rename ambiguous Topling ratio labels to zipkeyonly. Column headers and meta copy that meant the zipkeyonly engine were shortened as "Topling", which collided with the product name and the parallel zipkeyvalue columns. Spell zipkeyonly / zipkey* explicitly. * Clarify bench Pages RAM/RSS copy and restore dcompact helpers. Keep Peak RSS tables distinct from multi-series RAM charts, treat equal ratios as neutral black, and restore helpers dropped during the chart extract so dcompact emit works again. * Keep only per-pass bench yamls in logs and Pages. Stop copying baseline db_bench.yaml; emit and link the grafted fillrandom/fillseq configs that actually ran. * Set ToplingZipTable worker env for dcompact CI. Enable MULTI_PROCESS with ZipServer options, put worker temp and localTempDir on /dev/shm so ZipTable compact matches README practice. * Merge dcompact worker env into export-at-assign form. * Disable MULTI_PROCESS for dcompact CI on GHA/WSL. ZipServer process_vm_readv on forked compact children hits EPERM under Yama/ptrace_scope, aborting the hoster after MaxRetry. * Show per-stage duration on the RSS bench chart strip. * Split bench Pages into home summary and per-run result table. Keep comparison tables and RSS charts on the latest home page; the run page keeps hardware, bench params, raw rows, and log links. * Extract shared bench Pages chrome and lock the page contract. Plain and dcompact emitters copied the same HTML helpers; sharing them keeps result-table hrefs encoded and the home vs run-page split testable.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )