You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2016/02/15 21:23:18 UTC

[jira] [Commented] (PHOENIX-2635) Partial index rebuild doesn't work for mutable data

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

Hudson commented on PHOENIX-2635:
---------------------------------

SUCCESS: Integrated in Phoenix-master #1137 (See [https://builds.apache.org/job/Phoenix-master/1137/])
PHOENIX-2635 Partial index rebuild doesn't work for mutable data (jtaylor: rev 046bda34771aaec3befd4ad17024afc5af9b83ed)
* phoenix-core/src/main/java/org/apache/phoenix/query/QueryServicesOptions.java
* phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/LocalTableState.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/TableState.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/data/LocalTable.java
* phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
* phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
* phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixTransactionalIndexer.java
* phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexCodec.java
* phoenix-core/src/test/java/org/apache/phoenix/hbase/index/covered/TestLocalTableState.java
* phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
* phoenix-core/src/it/java/org/apache/phoenix/end2end/index/ReadOnlyIndexFailureIT.java
* phoenix-core/src/test/java/org/apache/phoenix/hbase/index/covered/example/TestCoveredColumnIndexCodec.java
* phoenix-core/src/main/java/org/apache/phoenix/parse/NamedTableNode.java
* phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/example/CoveredColumnIndexCodec.java
* phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
* phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexMetaData.java
* phoenix-core/src/main/java/org/apache/phoenix/hbase/index/covered/data/LocalHBaseState.java
* phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
* phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java


> Partial index rebuild doesn't work for mutable data
> ---------------------------------------------------
>
>                 Key: PHOENIX-2635
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2635
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: James Taylor
>             Fix For: 4.7.0
>
>         Attachments: PHOENIX-2635.patch, PHOENIX-2635_v2.patch, PHOENIX-2635_v3.patch
>
>
> The partial rebuild index feature for mutable secondary indexes does not do the correct index maintenance. We currently only insert the new index rows based on the current data row values which would not correctly remove the previous index row (thus leading to an invalid index). Instead, we should replay the data row mutations so that the coprocessors generate the correct deletes and updates.
> Also, instead of *every* region running the partial index rebuild, we should have each region only replay their own data mutations so that we're not duplicating work.
> A third (and perhaps most serious) issue is that the partial index rebuild could trigger the upgrade code before a cluster is ready to be upgraded. We'll definitely want to prevent that.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)