hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18555) Remove redundant familyMap.put() from addxxx() of sub-classes of Mutation and Query
Date Sat, 12 Aug 2017 09:00:03 GMT

    [ https://issues.apache.org/jira/browse/HBASE-18555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16124526#comment-16124526
] 

Hudson commented on HBASE-18555:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-1.4 #851 (See [https://builds.apache.org/job/HBase-1.4/851/])
HBASE-18555: Remove redundant familyMap.put() from addxxx() of (jerryjch: rev 7bd2795ee927df841a8c0ce3574598e9a6811739)
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Delete.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Put.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java


> Remove redundant familyMap.put() from addxxx() of sub-classes of Mutation and Query
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-18555
>                 URL: https://issues.apache.org/jira/browse/HBASE-18555
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>            Reporter: Xiang Li
>            Assignee: Xiang Li
>            Priority: Minor
>             Fix For: 3.0.0, 1.5.0, 2.0.0-alpha-2
>
>         Attachments: HBASE-18555.master.000.patch, HBASE-18555.master.001.patch, HBASE-18555.master.002.patch
>
>
> In addxxx() functions of Mutation(Append, Delete, Increment and Put) and Query(Get and
Scan), there are redundant Map#put() calls which could be removed to improve the performance.
> For example, in Put#addColumn() and addImmutable(), after getting the cell list of the
given family and add the cell into the list, the code puts (key=family, value=list) into familyMap.
> In addColumn(), it is like
> {code}
>     List<Cell> list = getCellList(family);
>     KeyValue kv = createPutKeyValue(family, qualifier, ts, value);
>     list.add(kv);
>     familyMap.put(CellUtil.cloneFamily(kv), list); // <-- here
>     return this;
> {code}
> In addImmutable(), it is like
> {code}
>     List<Cell> list = getCellList(family);
>     KeyValue kv = createPutKeyValue(family, qualifier, ts, value, tag);
>     list.add(kv);
>     familyMap.put(family, list); // <-- here
>     return this;
> {code}
> I think those put() for Map only take effect when getCellList(family) returns a new allocated
ArrayList. When the list for a family already exist, put() for Map will update the value to
the reference of the list, but actually, the reference of the list is not changed.
> Those put() do not do any harm in terms of the correctness when they are here. But it
could be removed to improve the performance. familyMap searches for key and set the new value
and return the old value. Those operation take some time but actually are not needed. 
> The put() could be moved into Mutation#getCellList(family)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message