Skip to content

[pull] memtable_as_log_index from topling:memtable_as_log_index - #24

Merged
pull[bot] merged 2 commits into
hugegraph:memtable_as_log_indexfrom
topling:memtable_as_log_index
Aug 15, 2026
Merged

[pull] memtable_as_log_index from topling:memtable_as_log_index#24
pull[bot] merged 2 commits into
hugegraph:memtable_as_log_indexfrom
topling:memtable_as_log_index

Conversation

@pull

@pull pull Bot commented Aug 15, 2026

Copy link
Copy Markdown

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 : )

* 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.
@pull pull Bot locked and limited conversation to collaborators Aug 15, 2026
@pull pull Bot added the ⤵️ pull label Aug 15, 2026
@pull
pull Bot merged commit 345333a into hugegraph:memtable_as_log_index Aug 15, 2026
1 check failed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant