-
Notifications
You must be signed in to change notification settings - Fork 530
feat: use independent region manifest for MemWAL #5689
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thanks for pushing progress on this, I will take a look tomorrow morning! |
- Mark as experimental - Restructure sections (architecture first, then components) - Use bloom filter instead of btree for PK existence - Fix vector index: use same IVF type/centroids/codebook as base - Add region pruning, sync/async ops summary - Update query plans for multi-region (no cross-region dedup) - Rename _memwal to _mem_wal - Remove redundant sections Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
535ed44 to
5a7d379
Compare
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- Replace RegionId struct with Uuid type alias for consistency - Rename snapshot_timestamp to snapshot_ts_millis per spec - Add conflict resolution between UpdateMemWalState and CreateIndex of MemWalIndex - Implement generation comparison: committed >= to_commit is non-retryable, committed < to_commit is retryable - Add rebase logic to merge merged_generations when CreateIndex rebases against UpdateMemWalState - Add comprehensive unit and integration tests for conflict scenarios Co-Authored-By: Jack Ye <yezhaoqin@gmail.com> Co-Authored-By: Claude <noreply@anthropic.com>
- Propagate load_mem_wal_index_details errors instead of silently returning Ok - Consume conflicting_mem_wal_merged_gens directly to avoid clone Co-Authored-By: Jack Ye <yezhaoqin@gmail.com> Co-Authored-By: Claude <noreply@anthropic.com>
jackye1995
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for working with me for all the comments! Looks good to me now, pending CI
Update Operation::Update field from mem_wal_to_merge to merged_generations. Co-Authored-By: Jack Ye <yezhaoqin@gmail.com> Co-Authored-By: Claude <noreply@anthropic.com>
ee01f1b to
1c27110
Compare
- Add IndexCatchupProgress to track which merged generation each base table index has caught up to - Update MemWalIndexDetails proto and Rust implementation - Remove merged_generation from RegionManifest (single source of truth) - Add LSM Tree Merging section and Appendix 4 to spec - Improve Indexed Read documentation with better explanation Co-Authored-By: Jack Ye <yezhaoqin@gmail.com> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1c27110 to
27b6734
Compare
|
I updated the spec to also talk about indexed read and index builder, let me know if it looks good to you! |
|
Thanks for going through my tedious comments! Let me know when you get the next PRs up I will review asap! |
Based on discussion with @jackye1995 past few days, update the current MemWAL structure to introduce region specific manifest for independent update so that it can more efficiently run updates in streaming engines like Flink. This mostly comes from draft from @jackye1995, but separate out the MemWAL index part first with some my custom edits. --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Jack Ye <yezhaoqin@gmail.com>
Based on discussion with @jackye1995 past few days, update the current MemWAL structure to introduce region specific manifest for independent update so that it can more efficiently run updates in streaming engines like Flink. This mostly comes from draft from @jackye1995, but separate out the MemWAL index part first with some my custom edits.