Skip to content
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

[controller] log compaction #1282

Merged
merged 102 commits into from
Feb 18, 2025
Merged

Conversation

WhitneyDeng
Copy link
Contributor

Summary

  • purpose: to get stores ready for compaction based on programmatically defined criteria
  • added API endpoints to get compaction-ready stores

How was this PR tested?

unit test: filter all stores on a cluster for compaction-ready stores

Does this PR introduce any user-facing changes?

  • No. You can skip the rest of this section.
  • Yes. Make sure to explain your proposed changes and call out the behavior change.

Whitney Deng added 10 commits October 29, 2024 11:52
…er methods VeniceParentHelixAdmin::isCompactionReady VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours
…ForCompaction & VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours JavaDocs description

- complete description of VeniceParentHelixAdmin::getStoresForCompaction
- future tense to present tense for VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours
…:filterStoresForCompaction

- extract filterStoresForCompaction() logic for testing
- write VeniceParentHelixAdminTest::testFilterStoresForCompaction
… TestVeniceParentHelixAdmin

- migrate from integration test files to unit test files
Copy link
Contributor

@mynameborat mynameborat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job on putting up the first PR quickly. Looks very good. I have put in some comments.

Let me know if you have questions.

Whitney Deng added 5 commits November 6, 2024 11:38
- remodularise VeniceParentHelixAdmin::isHybridStore to function var in VeniceParentHelixAdmin::isCompactionReady
- make VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours hardcoded int to class constant
Whitney Deng added 13 commits November 21, 2024 09:10
- change exception message in child controller
interface for repush: Azkaban/Airflow implementation for Linkedin internal. (potentially) Spark implementation for OSS.
- empty implementation for now
reason: since repush will be used for diff use cases (other than compaction), the term repush should be reserved for the abstracted repush action.
- instantiate in VeniceController
- this config determines the number of threads for LogCompactionService::executor
…into CompactionManager

- create CompactionManager & TestCompactionManager
- move TestCompactionManager::testFilterStoresForCompaction from TestVeniceParentHelixAdmin
…utor setup in LogCompactionService::startInner
Copy link

@lusong64 lusong64 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whitney had an offline conversation about the latch thing and we resolved it.

@WhitneyDeng WhitneyDeng merged commit b0babcf into linkedin:main Feb 18, 2025
58 checks passed
@WhitneyDeng WhitneyDeng deleted the log-compaction branch February 18, 2025 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants