Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3E2A8200BE0 for ; Fri, 2 Dec 2016 08:47:01 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 3CFAC160B27; Fri, 2 Dec 2016 07:47:01 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 8C621160B24 for ; Fri, 2 Dec 2016 08:47:00 +0100 (CET) Received: (qmail 46537 invoked by uid 500); 2 Dec 2016 07:46:59 -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 46438 invoked by uid 99); 2 Dec 2016 07:46:59 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Dec 2016 07:46:59 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 8604B2C1F5A for ; Fri, 2 Dec 2016 07:46:59 +0000 (UTC) Date: Fri, 2 Dec 2016 07:46:59 +0000 (UTC) From: "Anoop Sam John (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-17235) Minor improvement in creation of CIS for onheap buffer cases MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 02 Dec 2016 07:47:01 -0000 [ https://issues.apache.org/jira/browse/HBASE-17235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15714354#comment-15714354 ] Anoop Sam John commented on HBASE-17235: ---------------------------------------- That looks better. ya.. I was wondering why the new boolean based static creator is not exposed as public. Ya all Unsafe way (unsafe if u r not sure whether ur backing data structure is immutable) done via Unsafe*** is better. Can do the fix in ByteInput via a new jira as that has to patch PB. On the patch u have to call cis.enableAliasing(true); also. Then only it will avoid copying. Now if and else block both need this enableAliasing call and so put it outside. Can fix that on commit. +1 > Minor improvement in creation of CIS for onheap buffer cases > ------------------------------------------------------------ > > Key: HBASE-17235 > URL: https://issues.apache.org/jira/browse/HBASE-17235 > Project: HBase > Issue Type: Improvement > Components: rpc > Affects Versions: 2.0.0 > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-17235.patch > > > {code} > if (buf.hasArray()) { > cis = CodedInputStream.newInstance(buf.array(), offset, buf.limit()); > } else { > {code} > Currently we do this for onheap buffers incase there is no reservoir or the size is less than the minSizeforReservoir. I could see that even if reservoir is there there are requests which goes with the above way of creating CIS. This could be made efficient to avoid underlying copies by just doing this > {code} > cis = UnsafeByteOperations.unsafeWrap(buf.array(), offset, buf.limit()).newCodedInput(); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)