refactor: [DSM-103] Refactor RoundSchedule#9569
Open
alin-at-dfinity wants to merge 1 commit intomasterfrom
Open
refactor: [DSM-103] Refactor RoundSchedule#9569alin-at-dfinity wants to merge 1 commit intomasterfrom
RoundSchedule#9569alin-at-dfinity wants to merge 1 commit intomasterfrom
Conversation
Cleaner separation between `SchedulerImpl` and `RoundSchedule`: * Encapsulate accounting (tracking of fully executed canisters, executed canisters, rate limited canisters, etc.) within `RoundSchedule`. * Encapsulate immutable round configuration (cores, rate limits) inside a `Config` struct. * Define an `IterationSchedule` type and return that instead of a filtered `RoundSchedule` for scheduling during inner loop iterations. * Move round metrics observations (canister age, executable canisters, executed canisters) into `RoundSchedule`. * Make all scheduling step duration metric observations in `scheduler.rs`. * Update `scheduler_bench` to be more realistic: 00k canisters, 5k active, 1k executed every round. Aldo add a `finish_round` benchmark. There should be no meaningful change in scheduler behavior from this change. There is one small optimization (don't recompute the subnet available memory at the top of the first iteration); and one additional metric (scheduling time as inner loop iteration step) that results in a minor change to a test case; but all other tests pass without modification.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cleaner separation between
SchedulerImplandRoundSchedule:RoundSchedule.Configstruct.IterationScheduletype and return that instead of a filteredRoundSchedulefor scheduling during inner loop iterations.RoundSchedule.scheduler.rs.scheduler_benchto be more realistic: 00k canisters, 5k active, 1k executed every round. Aldo add afinish_roundbenchmark.There should be no meaningful change in scheduler behavior from this change, it consists almost exclusively from code being moved around. There is one minor optimization (don't recompute the subnet available memory at the top of the first iteration); and one additional metric (scheduling duration as an inner loop iteration step) resulting in a mechanical change to one test case; but all other tests pass without modification.