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