[
https://issues.apache.org/jira/browse/PHOENIX-1170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14185594#comment-14185594
]
James Taylor commented on PHOENIX-1170:
---------------------------------------
Thanks for the patch, [~rajesh23]. Here's some feedback:
- Instead of creating a new LocalIndexCompactionObserver coprocessor, override
the preCompactScannerOpen and postCompact methods in the existing
LocalIndexSplitter coprocessor (don't worry about the name of the coprocessor -
we can doc it). The reason is that otherwise we'd need an upgrade script to
install that new coprocessor on all existing tables (which is painful).
- Instead of creating a new PIndexState enum, just use INACTIVE instead of
SPLIT. We have special logic around that validates transitions to/from states,
and adding a new one may throw this off. I also don't think we really need a
new state.
- Does the preSplitBeforePONR method get called in both cases (i.e. after
preCompactScannerOpen and postCompact) so that the index will be marked ACTIVE
again in all cases?
> Change status of local index during splitting to prevent usage when slower
> than query through data table
> --------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-1170
> URL: https://issues.apache.org/jira/browse/PHOENIX-1170
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: James Taylor
> Assignee: rajeshbabu
> Fix For: 5.0.0, 4.2
>
> Attachments: PHOENIX-1170.patch
>
>
> Without pre-split, queries to the table take 9x more time (i.e. 1 sec versus
> 9sec) for a count(*). If we can't bring the time down to be less than a full
> scan over the data table, we should update the local index status as INACTIVE
> while it's splitting, then it wouldn't be used for queries, but it would
> continue to be maintained. Then when the split is done, we could move it back
> to ACTIVE. Alternatively, we could invent a new status, like SPLITTING, and
> only use the local index for point lookups until the status is back to ACTIVE.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)