-
Notifications
You must be signed in to change notification settings - Fork 25.7k
First step towards separating individual search phases #22802
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
Conversation
|
@elasticmachine test this please |
jpountz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 to detaching phases to make them easier to test/reason about. It is hard to dig into such a change but I got the idea and did not see anything bad, so if tests are passing I'm confident this is good. 👍
At this point AbstractSearchAsyncAction is just a base-class for the first phase of a search where we have multiple replicas for each shardID. If one of them is not available we move to the next one. Yet, once we passed that first stage we have to work with the shards we succeeded on the initial phase. Unfortunately, subsequent phases are not fully detached from the initial phase since they are all non-static inner classes. In future changes this will be changed to detach the inner classes to test them in isolation and to simplify their creation. The AbstractSearchAsyncAction should be final and it should just get a factory for the next phase instead of requiring subclasses etc.
… an exception we handle it correctly in a streamlined fashion
1628d7c to
b7e53e5
Compare
|
@elasticmachine test this please |
1 similar comment
|
@elasticmachine test this please |
|
@elasticmachine would you mind to f***ing test this at least once? |
At this point AbstractSearchAsyncAction is just a base-class for the first phase of a search where we have multiple replicas for each shardID. If one of them is not available we move to the next one. Yet, once we passed that first stage we have to work with the shards we succeeded on the initial phase. Unfortunately, subsequent phases are not fully detached from the initial phase since they are all non-static inner classes. In future changes this will be changed to detach the inner classes to test them in isolation and to simplify their creation. The AbstractSearchAsyncAction should be final and it should just get a factory for the next phase instead of requiring subclasses etc.
At this point AbstractSearchAsyncAction is just a base-class for the first phase of a search where we have multiple replicas
for each shardID. If one of them is not available we move to the next one. Yet, once we passed that first stage we have to work with
the shards we succeeded on the initial phase.
Unfortunately, subsequent phases are not fully detached from the initial phase since they are all non-static inner classes.
In future changes this will be changed to detach the inner classes to test them in isolation and to simplify their creation.
The AbstractSearchAsyncAction should be final and it should just get a factory for the next phase instead of requiring subclasses
etc.