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

James Taylor updated PHOENIX-2635:
----------------------------------
    Description: 
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.

  was:
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.


> Partial index rebuild doesn't delete prior index row
> ----------------------------------------------------
>
>                 Key: PHOENIX-2635
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2635
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>
> 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)

Reply via email to