You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2017/08/03 00:03:00 UTC

[jira] [Updated] (PHOENIX-4060) Handle out of order updates during mutable secondary index maintenance

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