-
Notifications
You must be signed in to change notification settings - Fork 91
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
Conversation
…er methods VeniceParentHelixAdmin::isCompactionReady VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours
…or readability & maintainability
…ForCompaction & VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours JavaDocs description - complete description of VeniceParentHelixAdmin::getStoresForCompaction - future tense to present tense for VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours
…ionReady & helper methods
…ersion is not found
…:filterStoresForCompaction - extract filterStoresForCompaction() logic for testing - write VeniceParentHelixAdminTest::testFilterStoresForCompaction
… TestVeniceParentHelixAdmin - migrate from integration test files to unit test files
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.
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.
internal/venice-common/src/main/java/com/linkedin/venice/controllerapi/ControllerClient.java
Outdated
Show resolved
Hide resolved
...mmon/src/integrationTest/java/com/linkedin/venice/controller/VeniceParentHelixAdminTest.java
Outdated
Show resolved
Hide resolved
services/venice-controller/src/main/java/com/linkedin/venice/controller/Admin.java
Outdated
Show resolved
Hide resolved
...s/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
...s/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
...s/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
.../venice-controller/src/main/java/com/linkedin/venice/controller/server/AdminSparkServer.java
Outdated
Show resolved
Hide resolved
...s/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
...nice-controller/src/test/java/com/linkedin/venice/controller/TestVeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
…tionReady package private
…data type ArrayList -> List
- remodularise VeniceParentHelixAdmin::isHybridStore to function var in VeniceParentHelixAdmin::isCompactionReady - make VeniceParentHelixAdmin::isLastCompactionTimeOlderThanThresholdHours hardcoded int to class constant
...s/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceParentHelixAdmin.java
Outdated
Show resolved
Hide resolved
- change exception message in child controller
interface for repush: Azkaban/Airflow implementation for Linkedin internal. (potentially) Spark implementation for OSS.
…logic to VeniceHelixAdmin
- 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
…UNT annotations & comments
…into CompactionManager - create CompactionManager & TestCompactionManager - move TestCompactionManager::testFilterStoresForCompaction from TestVeniceParentHelixAdmin
…utor setup in LogCompactionService::startInner
…g time unit from hour to millisecond
internal/venice-common/src/main/java/com/linkedin/venice/ConfigKeys.java
Outdated
Show resolved
Hide resolved
...ntegrationTest/java/com/linkedin/venice/endToEnd/logcompaction/TestLogCompactionService.java
Outdated
Show resolved
Hide resolved
services/venice-controller/src/main/java/com/linkedin/venice/controller/Admin.java
Outdated
Show resolved
Hide resolved
services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java
Outdated
Show resolved
Hide resolved
...troller/src/main/java/com/linkedin/venice/controller/logcompaction/LogCompactionService.java
Show resolved
Hide resolved
...controller/src/main/java/com/linkedin/venice/controller/repush/RepushOrchestratorConfig.java
Outdated
Show resolved
Hide resolved
...roller/src/test/java/com/linkedin/venice/controller/logcompaction/TestCompactionManager.java
Outdated
Show resolved
Hide resolved
...ler/src/test/java/com/linkedin/venice/controller/logcompaction/TestLogCompactionService.java
Outdated
Show resolved
Hide resolved
...ler/src/test/java/com/linkedin/venice/controller/logcompaction/TestLogCompactionService.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/ConfigKeys.java
Outdated
Show resolved
Hide resolved
reason: not all repush orchestrators have execution UI url, but they all have execution ID
- RepushJobRequest data model for repush job params - move triggerSource logging from LogCompactionTask to RepushJobRequest. reason: LogCompactionService is upstream from manual & scheduled common path - add source region as optional repush job param
- delete RepushOrchestratorConfig, pass configs with VeniceProperties
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.
Whitney had an offline conversation about the latch thing and we resolved it.
Summary
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?