-
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
[Segment Replication] Handle failover in mixed cluster mode #9536
Conversation
Compatibility status:Checks if related components are compatible with change c93d086 Incompatible componentsIncompatible components: [https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/asynchronous-search.git] Skipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git] |
Gradle Check (Jenkins) Run Completed with:
|
Codecov Report
@@ Coverage Diff @@
## main #9536 +/- ##
============================================
+ Coverage 70.40% 71.21% +0.81%
- Complexity 56861 57582 +721
============================================
Files 4781 4781
Lines 271231 271247 +16
Branches 39599 39600 +1
============================================
+ Hits 190947 193166 +2219
+ Misses 63974 61934 -2040
+ Partials 16310 16147 -163
|
server/src/main/java/org/opensearch/cluster/routing/RoutingNodes.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/action/get/TransportGetAction.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/cluster/routing/RoutingNodes.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Poojita Raj <[email protected]>
Signed-off-by: Poojita Raj <[email protected]>
c93d086
to
dc41002
Compare
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/action/get/TransportMultiGetAction.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/cluster/routing/RoutingNodes.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Poojita Raj <[email protected]>
Compatibility status:Checks if related components are compatible with change 16c4751 Incompatible componentsIncompatible components: [https://github.com/opensearch-project/cross-cluster-replication.git] Skipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git] |
Gradle Check (Jenkins) Run Completed with:
|
Flaky test: #9580 |
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/cluster/routing/RoutingNodes.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Poojita Raj <[email protected]>
Gradle Check (Jenkins) Run Completed with:
|
Compatibility status:Checks if related components are compatible with change 6f31434 Incompatible componentsIncompatible components: [https://github.com/opensearch-project/cross-cluster-replication.git] Skipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git] |
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
* pick oldest OS version replica to promote as primary Signed-off-by: Poojita Raj <[email protected]> * add test Signed-off-by: Poojita Raj <[email protected]> * refactor Signed-off-by: Poojita Raj <[email protected]> * refactor to avoid coupling Signed-off-by: Poojita Raj <[email protected]> * add comments Signed-off-by: Poojita Raj <[email protected]> --------- Signed-off-by: Poojita Raj <[email protected]> (cherry picked from commit ff65403) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…9652) * pick oldest OS version replica to promote as primary * add test * refactor * refactor to avoid coupling * add comments --------- (cherry picked from commit ff65403) Signed-off-by: Poojita Raj <[email protected]> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ch-project#9536) * pick oldest OS version replica to promote as primary Signed-off-by: Poojita Raj <[email protected]> * add test Signed-off-by: Poojita Raj <[email protected]> * refactor Signed-off-by: Poojita Raj <[email protected]> * refactor to avoid coupling Signed-off-by: Poojita Raj <[email protected]> * add comments Signed-off-by: Poojita Raj <[email protected]> --------- Signed-off-by: Poojita Raj <[email protected]> Signed-off-by: Kaushal Kumar <[email protected]>
…ch-project#9536) * pick oldest OS version replica to promote as primary Signed-off-by: Poojita Raj <[email protected]> * add test Signed-off-by: Poojita Raj <[email protected]> * refactor Signed-off-by: Poojita Raj <[email protected]> * refactor to avoid coupling Signed-off-by: Poojita Raj <[email protected]> * add comments Signed-off-by: Poojita Raj <[email protected]> --------- Signed-off-by: Poojita Raj <[email protected]> Signed-off-by: Ivan Brusic <[email protected]>
…ch-project#9536) * pick oldest OS version replica to promote as primary Signed-off-by: Poojita Raj <[email protected]> * add test Signed-off-by: Poojita Raj <[email protected]> * refactor Signed-off-by: Poojita Raj <[email protected]> * refactor to avoid coupling Signed-off-by: Poojita Raj <[email protected]> * add comments Signed-off-by: Poojita Raj <[email protected]> --------- Signed-off-by: Poojita Raj <[email protected]> Signed-off-by: Shivansh Arora <[email protected]>
Description
This change will ensure that the replica that's on the oldest opensearch version is promoted to primary in the event of a failover in a segment replication enabled cluster. This would avoid the problem of replicas on older opensearch versions not being able to read the segments sent by newer opensearch version primaries.
Related Issues
Resolves #9027
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.