columnar hub: share process-global ColumnarMetaCache across snaps (#11022) - #11024
Conversation
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (3)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: JaySon-Huang, JinheLin The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
[LGTM Timeline notifier]Timeline:
|
2fef41b
into
pingcap:release-nextgen-202603
This is an automated cherry-pick of #11022
What problem does this PR solve?
Issue Number: close #11021
Problem Summary:
On disagg columnar CN Hub, each snap historically constructed its own
ColumnarMetaCacheviaColumnarMetaCache::default()(mem_limit/500per snap). Concurrent region snaps therefore held independent meta caches, amplifyingTableMetamemory even when keys(file_id, table_id)overlap. This diverges from WN's process-global meta cache.What is changed and how it works?
ColumnarMetaCacheonCloudHelperandclone()it into eachSnapCtx(same pattern ascolumnar_file_cache/ other process-global caches).SysQuota::memory_limit_in_bytes() / 500(~0.2% of process memory). Per-snapdefault()usedmem/500each.contrib/cloud-storage-engineweight/metrics changes; those can land separately.Check List
Tests
Manual test (lab CN
tiflash-5035/5036, tablewidecol.widecol_test_wide_500gb):reported_size_bytes≈ 1.2GB for ~5070 parses while last-instanceweighted_size/entriesonly reflected one snap (~7MiB / ~30).weighted≈cap, sameentrieson both CNs) and thrash (parse≫ unique files).Side effects
Documentation
Release note
Summary by CodeRabbit
Performance Improvements
Observability