-
Notifications
You must be signed in to change notification settings - Fork 2k
[ENH]: garbage collector v2 orchestrator (supports forking) #4468
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
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
c17c75a to
19f703c
Compare
0c85b47 to
b989fec
Compare
0e2236f to
c6812d0
Compare
b989fec to
b793a23
Compare
c6812d0 to
650042e
Compare
b793a23 to
282d440
Compare
650042e to
7394835
Compare
282d440 to
c0389ea
Compare
7394835 to
fc6e27b
Compare
c0389ea to
8b8f1bf
Compare
4694a76 to
8b4d891
Compare
8b8f1bf to
9853786
Compare
8b4d891 to
069241e
Compare
9853786 to
fc1cd49
Compare
069241e to
e33a3c4
Compare
98433a2 to
1d4c6d1
Compare
2191cf0 to
1451c71
Compare
| self.dispatcher.clone() | ||
| } | ||
|
|
||
| async fn on_start(&mut self, ctx: &ComponentContext<Self>) { |
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.
Not sure what the right abstraction is - when do you override on_start() v/s set initial_tasks() and the default impl of on_start() takes care of creating the tasks
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.
I have to override on_start() here because ConstructVersionGraphRequest is not a task. I would be in favor of removing initial_tasks() from the interface.
1d4c6d1 to
7d21e46
Compare
1451c71 to
53e1a29
Compare
|
Garbage Collector V2 Orchestrator with Fork Tree Support and Proptest-Based Validation This PR introduces a new, extensive, and modularized garbage collector orchestrator (garbage_collector_orchestrator_v2) in Rust that can handle collection version fork trees. Accompanied by a comprehensive property-based testing framework (proptest), the design validates correctness under a wide variety of complex version/fork scenarios. The orchestrator collaborates with modular operator components, and is currently only utilized by the test suite (not active production code), enabling rigorous validation before production rollout. Key Changes: Affected Areas: Potential Impact: Functionality: No production functionality is changed, as GC v2 is not yet wired in; introduces rigorous GC/retention logic for potential future use. Performance: No impact on runtime; test code is more thorough and possibly slower, but relegated to CI/testing. Security: No changes. Scalability: New test harness can validate GC correctness over arbitrarily large and complex version trees, improving confidence in future scalability. Review Focus: Testing Needed• Run the property-based tests ( Code Quality Assessmentrust/garbage_collector/tests/proptest_helpers/garbage_collector_under_test.rs: Complex but logically sound; follows proptest and state machine testing best practices. rust/garbage_collector/src/operators/delete_unused_files.rs: Interface clarified; parameter types improved; explicit about tenant and input types. rust/garbage_collector/tests/proptest_helpers/*: High-quality, readable proptest/test harness code. system/src/execution/orchestrator.rs: Default trait implementations clarified and made safer. rust/garbage_collector/src/garbage_collector_orchestrator_v2.rs: Well-structured, modular, focused on correctness/lint, clear error boundaries; documentation is robust. Best PracticesTest Coverage: Testing: Modularity: Documentation: Potential Issues• Large test-generated graphs may expose subtle, unanticipated invariants or performance bottlenecks in end-to-end testing. This summary was automatically generated by @propel-code-bot |
7d21e46 to
3cbfa34
Compare
53e1a29 to
8e08e2f
Compare
3cbfa34 to
7d4d78b
Compare
8e08e2f to
de511ea
Compare
7d4d78b to
dbab3d2
Compare
de511ea to
c73fd49
Compare
68b21f3 to
8f416dd
Compare
c73fd49 to
3a3adda
Compare
3a3adda to
7969af3
Compare
8f416dd to
038dae8
Compare
7969af3 to
2ce9ae0
Compare
Merge activity
|
…ore#4468) ## Description of changes Adds a new garbage collector orchestrator that supports GC'ing fork trees. The new orchestrator is extensively tested with a proptest. It is not currently used outside of tests.

Description of changes
Adds a new garbage collector orchestrator that supports GC'ing fork trees. The new orchestrator is extensively tested with a proptest. It is not currently used outside of tests.