build: bump kwil-db to pick up the block sync fixes - #1437
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughBoth Changeskwil-db dependency update
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to Both kwil-db dependencies are aligned to the same upstream revision, and no concrete user-facing or operational regression is established. The change is mergeable with normal checks. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 |
Time Submission Status
Submit or update total time with: Add time on top of previous submission with: See available commands to help comply with our Guidelines. |
|
@holdex pr submit-time 2h |
Part of:
The node has pinned
kwil-dbatcf061288since 17-Sep. Twelve commits have landed on kwil-db main since then: the block sync work under the Goal above, and two fixes found along the way. None of them is in a node binary yet. This moves the pin toeb765df9.What it carries
block_syncsettings an operator configured now apply to catch-up, where every key used to be ignoredWorth knowing before the release
Edited
block_syncvalues start to apply. Every shipped default equals the hardcoded value it replaces, so a node on stock values behaves as before. A node whose operator edited one of the nine keys is now obeyed on catch-up. The Truflation mainnet sentry was checked on 17-Sep and runs stock values. Other operators' configs have not been checked.Prefetch is off.
block_sync.prefetch_bytesdefaults to 0, which fetches one block at a time as before, and a generated config writes the key commented out. To try it, setprefetch_bytes = 33554432(32 MB) under[block_sync]. A later release is meant to make that the default.Two of these ship together, and do here. The first byte budget raised what a peer that hangs costs a catching-up node from 0.5 s to 20 s per request. Asking the fastest peer first, and holding back a peer that fails, is what stops that repeating on every block. Both are in this bump.
A very large block now waits on disk. Postgres used to stream a transaction larger than
logical_decoding_work_mem(64 MB) while it ran. It now sends it whole once prepared, and holds it inpg_replslotuntil then: about 820 MB for a block that changes 3 million rows. Only a heavy migration reaches that size. The node waits for such a block's commit hash while the replication stream keeps delivering data, up to 30 minutes.The catch-up log lines changed.
Block sync completedandProcessed blocksnow carrynetworkandapplyfields. Anything that parses those lines should be checked.Consensus
A block executes and hashes as before. The two changes that sit next to consensus:
pg_stat_replication_slots, checked 24-Sep).No protocol is added to those a peer must speak, so upgraded and older nodes keep talking to each other.
kwil-db/corehas no changes in this range; its pin moves with the module.Verification
go build ./...andgo vet -tags kwiltest ./...are clean.tests/streams/auth(438 s),tests/streams/aggregation(309 s) andtests/streams/query(922 s). Each opens its database throughpg.NewDB, so each also starts the replication monitor that changed in this range.go.moddiff is the twokwil-dblines and nothing else;go mod tidypulled in no other changes.There is no Problem issue for this in node. It delivers work merged under the kwil-db Goal above, so it carries no closing keyword.
Summary by CodeRabbit