phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-4601) Perform server-side retries if client version < 4.14
Date Thu, 15 Feb 2018 23:21:00 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-4601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

James Taylor updated PHOENIX-4601:
----------------------------------
    Description: 
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). 

With  PHOENIX-4613, the client version has been threaded through to the IndexCommitter.write()
method. All that's left to do is:
- Always set the config on the server side to have no HBase retries.
- Add catch of IOException and conditionally call the retrying exception handler code based
on clientVersion < 4.14.0 in TrackingParallelWriterIndexCommitter and ParallelWriterIndexCommitter.

  was:
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.


> 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). 
> With  PHOENIX-4613, the client version has been threaded through to the IndexCommitter.write()
method. All that's left to do is:
> - Always set the config on the server side to have no HBase retries.
> - Add catch of IOException and conditionally call the retrying exception handler code
based on clientVersion < 4.14.0 in TrackingParallelWriterIndexCommitter and ParallelWriterIndexCommitter.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message