[
https://issues.apache.org/jira/browse/PHOENIX-4601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16361614#comment-16361614
]
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
(v7.6.3#76005)