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
FIX Assign shard logic #4184
Comments
Closed
fulmicoton
added a commit
that referenced
this issue
Dec 1, 2023
If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184
fulmicoton
added a commit
that referenced
this issue
Dec 1, 2023
If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184
fulmicoton
added a commit
that referenced
this issue
Dec 1, 2023
If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184
fulmicoton
added a commit
that referenced
this issue
Dec 2, 2023
If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184
fulmicoton
added a commit
that referenced
this issue
Dec 2, 2023
If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184
fulmicoton
added a commit
that referenced
this issue
Dec 4, 2023
Bugfix: IndexPipeline remembers list of shards and applies it after respawn Bugfix Assign shard logic. If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184 Closes #4174
fulmicoton
added a commit
that referenced
this issue
Dec 4, 2023
Bugfix: IndexPipeline remembers list of shards and applies it after respawn Bugfix Assign shard logic. If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184 Closes #4174
fulmicoton
added a commit
that referenced
this issue
Dec 4, 2023
Bugfix: IndexPipeline remembers list of shards and applies it after respawn Bugfix Assign shard logic. If no shard is removed, we just kill the pipeline. If shards are added we reinitiate the shards. The pipeline supervisor keeps track of the shard, and reassigns them if the pipeline is respawned. Closes #4184 Closes #4174
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We need a way for the indexer node (this is done in the IndexingService) to apply the indexing plan that is assigned to us by the control plane.
For the new ingest v2 indexing pipelines, we added a concept of shards.
One pipeline is now source_uid + set of shards.
The
MultiFetchStream
offers the flexibility of making it possible to add new shards dynamically (without restarting the pipeline).Shards that are removed, but have reached EOF can also be removed safely.
(ask Adrien: right now when a stream has reached EOF, do we need to do something in the multi fetch stream?).
A quick and dirty solution could be :
The point is that we want the list of shards to be remember if the pipeline has to be respawned due to regular supervision, and also we need a state to expose through chitchat.
If there was only shard additions and EOF shard deletion
If there is a removal of a shard that has not reached EOF. As a temporary fix, we respawn the entire pipeline.
With the current scheduling logic, this should be rare, but it can happen when the load associated to shards has increased. That temporary fix could still yield to a publish error if the race condition gods are against us:
Ideally we would like to make it entirely impossible and have the control plane close/reopen shard when that happens, but keep the shard assigned to the same pipeline until it reaches EOF.
Existing bug today
The text was updated successfully, but these errors were encountered: