From issues-return-339487-archive-asf-public=cust-asf.ponee.io@hbase.apache.org Wed Mar 21 23:09:38 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id BE591180787 for ; Wed, 21 Mar 2018 23:09:37 +0100 (CET) Received: (qmail 23844 invoked by uid 500); 21 Mar 2018 22:09:26 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 23621 invoked by uid 99); 21 Mar 2018 22:09:26 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Mar 2018 22:09:26 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 85A681A17F8 for ; Wed, 21 Mar 2018 22:09:25 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -101.511 X-Spam-Level: X-Spam-Status: No, score=-101.511 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id EFV4mWfgnQRB for ; Wed, 21 Mar 2018 22:09:24 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 656DB5FE39 for ; Wed, 21 Mar 2018 22:09:23 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 97CFAE106A for ; Wed, 21 Mar 2018 22:09:16 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 812BB2169A for ; Wed, 21 Mar 2018 22:09:13 +0000 (UTC) Date: Wed, 21 Mar 2018 22:09:13 +0000 (UTC) From: "stack (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HBASE-18555) Remove redundant familyMap.put() from addxxx() of sub-classes of Mutation and Query MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-18555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] stack updated HBASE-18555: -------------------------- Fix Version/s: (was: 3.0.0) > 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: 1.4.0, 2.0.0-alpha-2, 2.0.0 > > 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 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 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 (v7.6.3#76005)