-
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
[RW Separation] Change search replica recovery flow #15952
Comments
Hey @mch2 from my understanding I have summarized the following on how we can remove the Peer recovery for the search replicas, please check Filtering Allocation IDs in Cluster Updates:In OpenSearch, the cluster manager tracks which shards are in-sync with the primary shard (we can check using We can create a seperate child issue to track this? Search Replica RecoveryCheck Local Storage and Recover from Local DiskThe replica checks its own disk to see if it already has the necessary segment files from previous operations or previous shard instantiations. If the required data is on the search replica’s local disk, it uses that to recover the shard, skipping any communication with the primary node. Recover from Remote Storage (if configured):If the data is not available on the local disk, the replica can pull the data from remote-backed storage to recover the shard. We can even consider skipping the local disk check if Remote Storage is configured. Replication Process (optional): Can be triggered after the recovery or can wait for next refresh intervalAfter initializing the replica via store recovery (local or remote), the process can start to ensure the shard is synchronized with the latest segments. Thank you |
So in example API
|
No, the shards should still be included of the routing table, just not tracked at the primary. @prudhvigodithi pls see the linked draft for what i'm thinking here. To simplify i've reduced the scope of separation to only remote store enabled domains at least for now. |
Search replicas are currently configured to recover with the Peer recovery flow. To ensure these shards have reduced (node-node replication) and zero (remote backed) communication with primary shards during recovery we need to change this.
In both cases, I think we can initialize the shards with store recovery steps and then run a round of replication before marking the shards as active. I think we may also need to filter out these allocation Ids from cluster manager updates to the primary, as they should not care about tracking them as in-sync copies.
The text was updated successfully, but these errors were encountered: