[ 
https://issues.apache.org/jira/browse/PHOENIX-4028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16092418#comment-16092418
 ] 

James Taylor commented on PHOENIX-4028:
---------------------------------------

No need to add a new attribute to mutations. Just pass through IndexMetaData to 
IndexFailurePolicy.handleFailure method and check ignoreNewerMutations (which 
means isPartialRebuild - feel free to rename it) here:
{code}
       } finally {
           if (!throwing) {
                IOException ioException = 
ServerUtil.wrapInDoNotRetryIOException("Unable to update the following indexes: 
" + attempted.keySet(), cause, timestamp);
                if (throwIndexWriteFailure || 
indexMetaData.ignoreNewerMutations()) { // Always throw write failure if 
rebuilding index
{code}

> Provide option to not throw index write failure back to client
> --------------------------------------------------------------
>
>                 Key: PHOENIX-4028
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4028
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: James Taylor
>             Fix For: 4.12.0
>
>         Attachments: PHOENIX-4028.patch, PHOENIX-4028_v2.patch, 
> PHOENIX-4028_v3.patch, PHOENIX-4028_v4.patch, PHOENIX-4028_v5_wip.patch, 
> PHOENIX-4028_wip.patch
>
>
> Much like our DISABLE_INDEX_ON_WRITE_FAILURE and 
> REBUILD_INDEX_ON_WRITE_FAILURE table properties, we need a 
> THROW_INDEX_WRITE_FAILURE boolean option that can be used to prevent the 
> index write from being thrown back to the client. In this case, the index 
> failure policy would still be executed (i.e. disabling the index on a write 
> failure), but any retry logic for the client would be avoided. The index 
> would be eventually consistent based on the background partial index rebuild 
> thread.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to