[ 
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)

Reply via email to