HoustonPutman opened a new pull request, #3434:
URL: https://github.com/apache/solr/pull/3434

   https://issues.apache.org/jira/browse/SOLR-17821
   
   The scenario:
   - A restore or shard install is called on a shard
   - A non-leader replica succeeds, all else fail
   
   Currently, the following happens:
   - The ZK Shard terms are updated to ensure that all terms are non-zero
   - A failure is returned
   - But the cluster state is unchanged, and all shards are still in the state 
the started at. Even though not all have the same index
   
   What we want to happen:
   - The ZK Shard terms are updated such that the successful replica(s) are the 
highest terms
   - Since the leader is no longer the highest term, it should give up 
leadership
   - All failing replicas should go into Leader-Initiated-Recovery
   - Once recovery has started, our InstallShard/Recovery command can succeed 
since the results will be what the user expects
     - We can add a `waitForAllReplicasToBeHealthy` option to wait for the 
recoveries to finish
   
   This requires a few changes:
   
   - [ ]  Obviously we want to fix the Restore and InstallShard commands to 
update shard terms correctly
   - [x] Leadership should be given up when the shard term is lower than the 
highest shard term
   - [x] Recovery should succeed even though the collection is in read-only mode
   - [ ] The tests should be able to test that the leader fails, and all other 
replicas succeed
   - [ ] Recover and InstallShard should manipulate the responses, so that the 
AsyncTracker does not think we are unsuccessful when replicas are put into 
recovery
   - [ ] We should add flags so that the user can control which replicas to 
download to, and when the response should be sent back (after recovery or not).
   - [x] The `CollectionHandlingUtils` need to encode and save coreName with 
requests/responses, in order to distinguish multiple core requests sent to the 
same node.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to