James Taylor commented on PHOENIX-4530:

Thanks for the quick turnaround, [~vincentpoon]. Here's some feedback:
- Prior to your patch, we disabled the index if it was major compacted or if 
its data table was major compacted. Unless I'm missing something, it looks like 
you're not covering the first case.
- I think you'll need to adjust 
PartialIndexRebuilderIT.testCompactionDuringRebuild() based on the new behavior.
- Not sure if it's frowned on to refer directly to HStore in your test, but 
FYI, there's also TestUtil.doMajorCompaction() you can use.
- Minor nit: instead of using TestUtil.dumpTable() which will print out a bunch 
of stuff to stdout, maybe better to have a new TestUtil.getRawRowCount() or 
something like that.

> Do not collect delete markers during major compaction of table with disabled 
> mutable indexes
> --------------------------------------------------------------------------------------------
>                 Key: PHOENIX-4530
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4530
>             Project: Phoenix
>          Issue Type: Improvement
>         Environment:  
>            Reporter: James Taylor
>            Assignee: Vincent Poon
>            Priority: Major
>         Attachments: PHOENIX-4530.master.v1.patch
> If major compaction occurs on a table with mutable indexes that have the 
> INDEX_DISABLE_TIMESTAMP set, we currently permanently disable the index, 
> forcing it to be manually rebuilt from scratch. This is to prevent it from 
> potentially being corrupted as we need the delete markers to remain in order 
> to guarantee the data table and index table remain in sync.
> An alternate approach (mentioned by [~an...@apache.org] during review) is to 
> detect this case in a pre-compaction hook and set the compaction up so that 
> delete markers are not removed. This would have the advantage that we 
> wouldn't have to permanently disable the index and rebuild it from scratch.

This message was sent by Atlassian JIRA

Reply via email to