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.
This PR:
share/availability
package where it belongs and changes the names to be more clear --light.Window
->availability.RequestWindow
;full.Window
->availability.StorageWindow
.q4
files) as default behaviour for archival storage nodesarchival
--> regular pruning mode by tracking the pruner type in the pruner service's "state" (checkpoint)availability.Window
to the nodebuilder only as it's the only place where it's necessary (usestime.Duration
in other places)SamplingWindow
implicitly to determine whether pruning is enabled or not in:SamplingWindow
needs to be coupled with a parameterpruningEnabled
to actually skip sampling the block --> eventually, in a follow-up PR, this should be delegated to underlying availability implementation and removed entirely from DASer.RequestWindow
const as it's using the parameter for request routing onlyFor the above bullet point, please keep in mind that every component used the
SamplingWindow
previously in a different way to infer information about whether to perform some action given the header's timestamp or not given a certain SamplingWindow. Since all components that rely on SamplingWindow (listed above) use it slightly differently, it's not really simple to make a function that's generalisable over all of the use cases, so I left it up to the independent components to figure out what to do given theSamplingWindow
and whether pruning is enabled or not. CheckNext steps
section to see how to fix this situation later on.TODO:
Next steps (in follow-up PRs):
SamplingWindow
andpruningEnabled
--> that should be handled by the respectiveavailability
implementation (meaning whether to sample or short-circuit, and what exactly to store from the sampling process)