[
https://issues.apache.org/jira/browse/PHOENIX-5556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16969023#comment-16969023
]
Hudson commented on PHOENIX-5556:
---------------------------------
SUCCESS: Integrated in Jenkins build Phoenix-4.x-HBase-1.4 #302 (See
[https://builds.apache.org/job/Phoenix-4.x-HBase-1.4/302/])
PHOENIX-5556 Avoid repeatedly loading IndexMetaData For (chenglei: rev
ab6b67a5f8fcd40f9cebe157e5423c977a21ba7c)
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/builder/IndexBuildManager.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/IndexRegionObserver.java
> 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)