Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3BDDE177B1 for ; Thu, 1 Oct 2015 14:05:43 +0000 (UTC) Received: (qmail 95730 invoked by uid 500); 1 Oct 2015 14:05:30 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 95681 invoked by uid 500); 1 Oct 2015 14:05:30 -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 95558 invoked by uid 99); 1 Oct 2015 14:05:30 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Oct 2015 14:05:30 +0000 Date: Thu, 1 Oct 2015 14:05:30 +0000 (UTC) From: "Zephyr Guo (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HBASE-14490) [RpcServer] reuse request read buffer 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-14490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Zephyr Guo updated HBASE-14490: ------------------------------- Attachment: HBASE-14490-v10.patch patch-v10 modification: 1.processRequest Just create {{CodedInputStream}} once. Maintaining ByteBuffer.position instead of {{offset}}. 2.set READ_REQ_REUSED_BUF_SIZE = 2K > [RpcServer] reuse request read buffer > ------------------------------------- > > Key: HBASE-14490 > URL: https://issues.apache.org/jira/browse/HBASE-14490 > Project: HBase > Issue Type: Improvement > Components: IPC/RPC > Affects Versions: 2.0.0, 1.0.2 > Reporter: Zephyr Guo > Assignee: Zephyr Guo > Labels: performance > Fix For: 2.0.0, 1.0.2 > > Attachments: HBASE-14490-v1.patch, HBASE-14490-v10.patch, HBASE-14490-v2.patch, HBASE-14490-v3.patch, HBASE-14490-v4.patch, HBASE-14490-v5.patch, HBASE-14490-v6.patch, HBASE-14490-v7.patch, HBASE-14490-v8.patch, HBASE-14490-v9.patch > > > Reuse buffer to read request.It's not necessary free data's buffer for each request.Optimization is to reduce the times that allocate ByteBuffer. > *patch modification* > * {{saslReadAndProcess}} and {{processOneRpc}} accept a ByteBuffer instead of byte[]. > * {{processUnwrappedData}} can reuse the same ByteBuffer that {{saslReadAndProcess}} used. > * Maintaining a reused ByteBuffer each {{Reader}} for most request. > ** Buffer size is fixed. > ** Using a SoftReference to reference the buffer. > ** If request is too large, we allocate a temporary ByteBuffer.Freeing it when {{process()}} will have been finished. -- This message was sent by Atlassian JIRA (v6.3.4#6332)