[
https://issues.apache.org/jira/browse/PHOENIX-4060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Taylor updated PHOENIX-4060:
----------------------------------
Description:
To correctly handle out of order updates during mutable secondary index
maintenance, revert PHOENIX-4057 and ensure that the tests in
OutOfOrderMutationsIT pass. It'd be important to add tests that do do
multi-version scans and verify correctness.
This will be necessary to support point-in-time queries against an index to
always work correctly.
Barring any bugs in the bowels of mutable secondary indexing, the main area to
focus on would be to correctly put and delete the Phoenix empty key value row.
This is currently done in IndexMaintainer.buildDeleteMutation() and
IndexMaintainer.buildUpdateMutation() which are called through the
IndexCodec.getIndexDeletes() and getIndexUpserts() calls. It seems that the
NonTxIndexBuilder.addMutationsForBatch() and addCurrentStateMutationsForBatch()
do not always go through this abstraction. Fixing this might solve the issue,
but understanding the mutable secondary index code is no small feat.
was:
To correctly handle out of order updates during mutable secondary index
maintenance, revert PHOENIX-4057 and ensure that the tests in
OutOfOrderMutationsIT pass. It'd be important to add tests that do do
multi-version scans and verify correctness.
This will be necessary to support point-in-time queries against an index to
always work correctly.
> Handle out of order updates during mutable secondary index maintenance
> ----------------------------------------------------------------------
>
> Key: PHOENIX-4060
> URL: https://issues.apache.org/jira/browse/PHOENIX-4060
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
>
> To correctly handle out of order updates during mutable secondary index
> maintenance, revert PHOENIX-4057 and ensure that the tests in
> OutOfOrderMutationsIT pass. It'd be important to add tests that do do
> multi-version scans and verify correctness.
> This will be necessary to support point-in-time queries against an index to
> always work correctly.
> Barring any bugs in the bowels of mutable secondary indexing, the main area
> to focus on would be to correctly put and delete the Phoenix empty key value
> row. This is currently done in IndexMaintainer.buildDeleteMutation() and
> IndexMaintainer.buildUpdateMutation() which are called through the
> IndexCodec.getIndexDeletes() and getIndexUpserts() calls. It seems that the
> NonTxIndexBuilder.addMutationsForBatch() and
> addCurrentStateMutationsForBatch() do not always go through this abstraction.
> Fixing this might solve the issue, but understanding the mutable secondary
> index code is no small feat.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)