-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix queries for updated segments on SinkQuerySegmentWalker (#17157)
Fix the logic for usage of segment descriptors from queries in SinkQuerySegmentWalker when there are upgraded segments as a result of concurrent replace. Concurrent append and replace: With the introduction of concurrent append and replace, for a given interval: The same sink can correspond to a base segment V0_x0, and have multiple mappings to higher versions with distinct partition numbers such as V1_x1.... Vn_xn. The initial segment allocation can happen on version V0, but there can be several allocations during the lifecycle of a task which can have different versions spanning from V0 to Vn. Changes: Maintain a new timeline of (An overshadowable holding a SegmentDescriptor) Every segment allocation of version upgrade adds the latest segment descriptor to this timeline. Iterate this timeline instead of the sinkTimeline to get the segment descriptors in getQueryRunnerForIntervals Also maintain a mapping of the upgraded segment to its base segment. When a sink is needed to process the query, find the base segment corresponding to a given descriptor, and then use the sinkTimeline to find its chunk.
- Loading branch information
1 parent
a395368
commit 88d26e4
Showing
4 changed files
with
863 additions
and
77 deletions.
There are no files selected for viewing
This file contains 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
Oops, something went wrong.