phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "chenglei (Jira)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-5556) Avoid repeatedly loading IndexMetaData For IndexRegionObserver
Date Sun, 03 Nov 2019 15:59:00 GMT

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

chenglei updated PHOENIX-5556:
------------------------------
    Attachment: PHOENIX-5556_v2-4.x-HBase-1.4.patch

> 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
>         Attachments: PHOENIX-5556_v2-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)

Mime
View raw message