-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Introduce QueryPhaseSearcher extension point (SearchPlugin) #1931
Conversation
Can one of the admins verify this patch? |
✅ Gradle Check success 88a4aa49f99d69279067a1c4b4432490f5bd67a9 |
88a4aa4
to
0a8505b
Compare
❌ Gradle Check failure 0a8505b67781ea2965972a9b2ece6a654ef9ddde |
0a8505b
to
b27d0af
Compare
✅ Gradle Check success b27d0af9da908f5732f47264bb5d9739153d0037 |
b27d0af
to
3c366a7
Compare
❌ Gradle Check failure 3c366a7a0d9649b9e99f2552334ebbe4e0aaede2 |
3c366a7
to
f786b57
Compare
✅ Gradle Check success f786b579fccd732f8c78639abe8e4d449e23abcb |
f786b57
to
3ce92cd
Compare
❌ Gradle Check failure 3ce92cd1ef437398c0bcddfe42a71a445582582b |
3ce92cd
to
d031fbb
Compare
❌ Gradle Check failure d031fbb0ea173d60cf22a3cdd7eb1a4ead3dd427 |
@@ -178,6 +184,36 @@ | |||
return emptyList(); | |||
} | |||
|
|||
/** |
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.
@nknize @andrross guys would really appreciate the feedback if I am on the right track here, moving towards sandboxing concurrent search implementation (#1500) .
Basically, the idea is to provide the extension points to allow plugging in different searcher implementation(s) at QueryPhase
time (the default would be the current sequential scan). In this case the core would know nothing about concurrent / non-concurrent nature of the search over Apache Lucene segments. But the sandbox plugin, if installed, could tweak that (even on per index basis) and substitute the searcher with concurrent one.
Thank you.
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.
Long-term, is it possible for concurrent search to become the only implementation, even if there are some cases where it is configured to run with a single thread?
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.
I think so, yeah, there are two flows to address (aggregations and forced early termination) but I don't see the reasons why it couldn't become the only implementation in future.
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.
My initial thought is that it would be good to get towards a single implementation for something like this and so it might not be worth it to make it pluggable at this point. Would love to get Nick's @nknize opinion on this as well.
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.
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.
lol, then let's definitely get Nick's input on this!
Infra issues accessing Gradle plugin, response (HTTP/502):
|
d031fbb
to
50957f8
Compare
✅ Gradle Check success 50957f87d2d80a2f4b1d3962128382fda9fba576 |
Let's move this across the finish line? Rebase? @andrross any other concerns? |
50957f8
to
a675281
Compare
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.
The code looks good to me so I've approved. Just want to confirm with @nknize that this is the approach we want to take based on the above conversion in this PR.
✅ Gradle Check success a675281caf4d796164e784b39f04f1d51a0681a3 |
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.
nit: one minor change on the executeInternal
method.
Sorry for the delay on this; the lucene 9 changes and types removal have been taking priority. Let me dig in a little deeper on the API changes to ensure minimal impact to other plugins. We may need to backport this to the 2x and 2.0 branches once they're cut so it makes 2.0 GA but that's not a big issue.
mind re-basing @reta ? Thx! |
a675281
to
90b0271
Compare
❌ Gradle Check failure 90b027159482a361c87b92a028d6fbc7480469b0 |
90b0271
to
ba6db21
Compare
start gradle check |
❌ Gradle Check failure ba6db21f7979246ad4c543cfe711cea75cfc886d |
|
start gradle check |
✅ Gradle Check success ba6db21f7979246ad4c543cfe711cea75cfc886d |
❌ Gradle Check failure ba6db21f7979246ad4c543cfe711cea75cfc886d |
|
start gradle check |
❌ Gradle Check failure ba6db21f7979246ad4c543cfe711cea75cfc886d |
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
ba6db21
to
4f492fb
Compare
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.
This LGTM! Thx for adding this extension. Nice to have concurrent searching in sandbox!
I marked it to backport 1.x, but since we're branching 2.0 maybe it's time to stop piling things onto that? |
Signed-off-by: Andriy Redko <andriy.redko@aiven.io> (cherry picked from commit 82fb7ab)
Signed-off-by: Andriy Redko andriy.redko@aiven.io
Description
In scope of #1500 implementation, provides an extension point to allow plugging in own search implementation to be used at the
QueryPhase
time. With that, the concurrent search could be implemented using sandbox plugin, without touching the core.Issues Resolved
[List any issues this PR will resolve]
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.