-
Notifications
You must be signed in to change notification settings - Fork 25k
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
Support cross clusters query in ESQL #101640
Conversation
Relates #102954 |
f06d647
to
bf0a972
Compare
64b78ed
to
00f6d92
Compare
00f6d92
to
51ea3c3
Compare
@ChrisHegarty, I'm adding you as the reviewer since the new cluster-compute-action is similar to the data-node-compute action, which you are familiar with. |
Hi @dnhatn, I've created a changelog YAML for you. |
Pinging @elastic/es-ql (Team:QL) |
Pinging @elastic/elasticsearch-esql (:Query Languages/ES|QL) |
@mark-vieira Thanks for looking. I've switched to the new test framework. I think the new test framework doesn't support multi-clusters with different versions. I work around this limitation by starting two clusters with the old version, then performing a full cluster restart once before running tests. |
@nik9000 I've addressed your comments. Can you take another look please? Thank you! |
This shouldn't be necessary. Can you elaborate on what issue you encountered when you attempted to configure one cluster using the BWC version and the other using the current version? |
@mark-vieira I checked the nodes of both clusters, they work properly without the workaround. I have removed the workaround in e19bf39. We should be all good here. Thanks Mark. |
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.
LGTM. Feel free to merge when @mark-vieira is happy.
...ulti-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/MultiClusterSpecIT.java
Show resolved
Hide resolved
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/ClusterComputeRequest.java
Outdated
Show resolved
Hide resolved
...a/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java
Show resolved
Hide resolved
...a/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java
Show resolved
Hide resolved
@mark-vieira I think I have addressed your comments. Can you please take another look? Thank you! |
@nik9000 @mark-vieira Thank you for the reviews. |
This pull request introduces support for cross-clusters query (CCQ) in ESQL. The enrich in CCQ will be implemented in a separate pull request due to its complex semantic nature. The primary change occurs in the ComputeService class, where a cluster-compute-action is introduced.
The implementation in this PR is equivalent to CCS with
ccs_minimize_round_trips
enabled. Currently, our plan is to support a single mode in CCQ. At present, the coordinator on the remote cluster collects pages from data nodes in the same cluster and provides them to the coordinator of the main cluster. This is achieved using two exchange buffers, although a single exchange buffer could suffice. However, the use of two buffers allows for future execution of a plan on this coordinator to perform partial reduce operations, such as limit, topN, and partial-to-partial aggregation.Security and backward compatibility tests have been added in the multi-cluster-search-security and multi-clusters QA modules, respectively.