[
https://issues.apache.org/jira/browse/PHOENIX-4530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16371844#comment-16371844
]
Vincent Poon commented on PHOENIX-4530:
---------------------------------------
[~jamestaylor] In the code, preCompactScannerOpen() is called before
preCompact(). Both return a scanner. As long as preCompact() does not replace
the scanner entirely with a new one, then it'll still have the settings from
preCompactScannerOpen(). Our code just wraps the scanner with a delegate
pattern, so it should be fine.
Just noticed with HBase 2.0+, things have changed where preCompactScannerOpen
does not return a scanner - only preCompact does, so there's less ambiguity
there. However, the javadoc for preCompactScannerOpen() does indicate that
changes to versions/TTL should be made there, so I think it's correct to put
our logic in preCompactScannerOpen().
> 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,
> PHOENIX-4530.master.v2.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 [[email protected]] 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
(v7.6.3#76005)