Skip to content
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

Search on a shard group while relocation final flip happens might fail #3427

Closed
kimchy opened this Issue Aug 1, 2013 · 0 comments

Comments

Projects
None yet
1 participant
@kimchy
Copy link
Member

kimchy commented Aug 1, 2013

At the final stage of a relocation, during the final flip of the states, a search request might hit a node that would then execute it on a shard that has already relocated.

For this, we need to execute broadcast and search operations against initializing shards as well, but only as a last resort. The operation will be rejected if not applicable (i.e. IndexShard#searcher() checked for read allowed).

Note, this requires careful though about which failures we send back. If we try and initializing shard and it fails, its failure should not override an actual failure of an active shard.

Also, removed an atomic integer used in broadcast request and use a similar shard index trick we now have in our search execution.

@kimchy kimchy closed this in f3d3a8b Aug 1, 2013

kimchy added a commit that referenced this issue Aug 1, 2013

Search on a shard group while relocation final flip happens might fail
At the final stage of a relocation, during the final flip of the states, a search request might hit a node that would then execute it on a shard that has already relocated.

For this, we need to execute broadcast and search operations against initializing shards as well, but only as a last resort. The operation will be rejected if not applicable (i.e. IndexShard#searcher() checked for read allowed).

Note, this requires careful though about which failures we send back. If we try and initializing shard and it fails, its failure should not override an actual failure of an active shard.

Also, removed an atomic integer used in broadcast request and use a similar shard index trick we now have in our search execution.

closes #3427

kimchy added a commit that referenced this issue Aug 1, 2013

Search on a shard group while relocation final flip happens might fail
make sure relocation shards add their corresponding initializing shard routing when search across initializing shards

also, make shardFailures lazy again

closes #3427

kimchy added a commit that referenced this issue Aug 1, 2013

Search on a shard group while relocation final flip happens might fail
make sure relocation shards add their corresponding initializing shard routing when search across initializing shards

also, make shardFailures lazy again

closes #3427

kimchy added a commit that referenced this issue Aug 1, 2013

Search on a shard group while relocation final flip happens might fail
make sure relocation shards add their corresponding initializing shard routing when search across initializing shards

also, make shardFailures lazy again

closes #3427

kimchy added a commit that referenced this issue Aug 2, 2013

Search on a shard group while relocation final flip happens might fail
single shard read operations should have the same override exception logic as search and broadcast

relates to #3427

kimchy added a commit that referenced this issue Aug 2, 2013

Search on a shard group while relocation final flip happens might fail
single shard read operations should have the same override exception logic as search and broadcast

relates to #3427

mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015

Search on a shard group while relocation final flip happens might fail
At the final stage of a relocation, during the final flip of the states, a search request might hit a node that would then execute it on a shard that has already relocated.

For this, we need to execute broadcast and search operations against initializing shards as well, but only as a last resort. The operation will be rejected if not applicable (i.e. IndexShard#searcher() checked for read allowed).

Note, this requires careful though about which failures we send back. If we try and initializing shard and it fails, its failure should not override an actual failure of an active shard.

Also, removed an atomic integer used in broadcast request and use a similar shard index trick we now have in our search execution.

closes elastic#3427

mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015

Search on a shard group while relocation final flip happens might fail
make sure relocation shards add their corresponding initializing shard routing when search across initializing shards

also, make shardFailures lazy again

closes elastic#3427

mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015

Search on a shard group while relocation final flip happens might fail
make sure relocation shards add their corresponding initializing shard routing when search across initializing shards

also, make shardFailures lazy again

closes elastic#3427

mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015

Search on a shard group while relocation final flip happens might fail
single shard read operations should have the same override exception logic as search and broadcast

relates to elastic#3427
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.