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

James Taylor updated PHOENIX-4028:
----------------------------------
    Attachment: PHOENIX-4028_v2.patch

Thanks for the review, [~samarthjain]. Added new negative test cases to 
AlterTableIT and CreateTableIT for setting HTableDescriptor property on view. 
These control properties end up as HTableDescriptor attributes, not Phoenix 
table properties so we can't add them to TableProperty as these purposely get 
stripped when a table is created or altered (so they don't end up on the table 
descriptor). I've filed PHOENIX-4031 for any followup work to improve things.

A new test case was already added to test the failure of the rebuild task with 
this set of parameters:
{code}
    @Parameters(name = "
        MutableIndexFailureIT_transactional={0},
        localIndex={1},
        isNamespaceMapped={2},
        disableIndexOnWriteFailure={3},
        rebuildIndexOnWriteFailure={4}, 
        failRebuildTask={5},
        throwIndexWriteFailure={6}")
                { false, false, false, true, true, true, null},
{code}
So the test to make sure an index rebuild stops will run for a non 
transactional table, with global indexes, no namespaces, disabling the index on 
write failure, rebuilding the index on write failure, and will throw the index 
write failure. Previously, by adding a new test, the new test would run for all 
17 permutations, running all the test logic 17 more times and then only for a 
couple of permutations would it test the failure of the rebuild. Now the test 
will run only one extra time. We can add further combinations if you think it's 
worthwhile.



> 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_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