James Taylor commented on PHOENIX-4601:

[~vincentpoon] - would you have some spare cycles to take this one?

> Perform server-side retries if client version < 4.14
> ----------------------------------------------------
>                 Key: PHOENIX-4601
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4601
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Priority: Major
> The client version is now available on the server side when index maintenance 
> is being performed. Given that this information is available, we should 
> conditionally retry on the server depending on the client version (instead of 
> relying on the operator to manually update the config after clients have been 
> upgraded). 
> Here's what I believe needs to be done:
> - Always set the config on the server side to have no retries.
> - Move getClientVersion method declaration from PhoenixIndexMetaData to 
> IndexMetaData
> - Add getIndexMetaData() method in IndexBuilder and retrieve clientVersion in 
> preBatchMutateWithExceptions like this:
> {code}
> builder.getIndexMetaData(miniBatchOp).getClientVersion();
> {code}
> - Set clientVersion on BatchMutateContext so it can be accessed later in 
> postBatchMutateIndispensably.
> - In postBatchMutateIndispensably, access clientVersion through 
> BatchMutateContext and pass through 
> IndexWriter.writeAndKillYourselfOnFailure() and into the writer.write() 
> method. 
> - Add catch of IOException and call to handle the retries in the table.batch 
> call in TrackingParallelWriterIndexCommitter.

This message was sent by Atlassian JIRA

Reply via email to