[ 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)