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

chenglei updated PHOENIX-5556:
------------------------------
    Summary: Avoid repeatedly loading  IndexMetaData For IndexRegionObserver  
(was: Avoid repeatedly load IndexMetaData For IndexRegionObserver)

> Avoid repeatedly loading  IndexMetaData For IndexRegionObserver
> ---------------------------------------------------------------
>
>                 Key: PHOENIX-5556
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5556
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.15.0, 5.1.0
>            Reporter: Chenglei
>            Assignee: chenglei
>            Priority: Major
>
> Loading {{IndexMetaData}} is a somewhat expensive operation because it may 
> deserialize from scan attribute. In following  
> {{IndexRegionObserver.preBatchMutateWithExceptions}} method,loading 
> {{IndexMetaData}} for line 613, but in 
> {{IndexRegionObserver.prepareIndexMutations}} which is invoked by line 639, 
> {code:java}
> 610 public void 
> preBatchMutateWithExceptions(ObserverContext<RegionCoprocessorEnvironment> c,
> 611                    MiniBatchOperationInProgress<Mutation> miniBatchOp) 
> throws Throwable {
> 612         ignoreAtomicOperations(miniBatchOp);
> 613         BatchMutateContext context = new 
> BatchMutateContext(this.builder.getIndexMetaData(miniBatchOp).getClientVersion());
> 614        setBatchMutateContext(c, context);
> 615         Mutation firstMutation = miniBatchOp.getOperation(0);
>               ....
> 639        prepareIndexMutations(c, miniBatchOp, context, mutations, now);
> 640        
> metricSource.updateIndexPrepareTime(EnvironmentEdgeManager.currentTimeMillis()
>  - start);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to