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 0BEC6105DD for ; Wed, 22 Jan 2014 18:11:44 +0000 (UTC) Received: (qmail 52485 invoked by uid 500); 22 Jan 2014 18:11:31 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 52336 invoked by uid 500); 22 Jan 2014 18:11: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 52315 invoked by uid 99); 22 Jan 2014 18:11:25 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Jan 2014 18:11:25 +0000 Date: Wed, 22 Jan 2014 18:11:25 +0000 (UTC) From: "Nick Dimiduk (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-7320) Replace calls to KeyValue.getBuffer with appropropriate calls to getRowArray, getFamilyArray(), getQualifierArray, and getValueArray 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-7320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13878927#comment-13878927 ] Nick Dimiduk commented on HBASE-7320: ------------------------------------- [~lhofhansl] if I follow your intentions, this means: # KeyValue#getBuffer goes away entirely -- there's API assumption that a KeyValue is backed by a single "buffer object" of any type (byte[], ByteBuffer, &c.). A KeyValue instance /could/ be backed by a single "buffer object", at the option of its creator, but this is an implementation detail. # KeyValue objects by API design is now backed by 5 "buffer objects" -- one for each rowkey, cf, qualifier, ts, and value. # previous point does not restrict some producer of KeyValue instances from using it's on encoding of multiple instances, but it does require that producer to generate instances that conform to this API. For example, say I wanted to store KeyValues in batches of 100 where all rowkeys are stored together, then all cf, then quals, then ts, then values and make optimizations therein. The requirement is I can produce a KeyValue instance from the block that implement getXXXArray methods AND I no longer must materialize a "buffer object" for support of getBuffer. Did I get that right? Do we have any thought on what an appropriate "buffer object" should be? Is that for another ticket? > Replace calls to KeyValue.getBuffer with appropropriate calls to getRowArray, getFamilyArray(), getQualifierArray, and getValueArray > ------------------------------------------------------------------------------------------------------------------------------------ > > Key: HBASE-7320 > URL: https://issues.apache.org/jira/browse/HBASE-7320 > Project: HBase > Issue Type: Bug > Reporter: Lars Hofhansl > Assignee: stack > Fix For: 0.98.0 > > > In many places this is simple task of just replacing the method name. > There, however, quite a few places where we assume that: > # the entire KV is backed by a single byte array > # the KVs key portion is backed by a single byte array > Some of those can easily be fixed, others will need their own jiras. -- This message was sent by Atlassian JIRA (v6.1.5#6160)