James Taylor created PHOENIX-4601:
-------------------------------------
Summary: 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
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)