You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Chinmay Kulkarni (Jira)" <ji...@apache.org> on 2019/12/21 00:57:08 UTC

[jira] [Closed] (PHOENIX-5556) Avoid repeatedly loading IndexMetaData For IndexRegionObserver

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

Chinmay Kulkarni closed PHOENIX-5556.
-------------------------------------

Bulk closing Jiras for the 4.15.0 release.

> 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
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: PHOENIX-5556_v3-4.x-HBase-1.4.patch
>
>
> Loading {{IndexMetaData}} is a somewhat expensive operation because it may deserialize from scan attribute. In following  {{IndexRegionObserver.preBatchMutateWithExceptions}} method, {{IndexMetaData}} is loaded already for line 613, but in {{IndexRegionObserver.prepareIndexMutations}} method which is invoked by line 639,  {{IndexMetaData}}  is loaded again, which is unnecessary.
> {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)