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 5CF97E3AF for ; Mon, 26 Nov 2012 05:27:02 +0000 (UTC) Received: (qmail 95911 invoked by uid 500); 26 Nov 2012 05:27:01 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 95746 invoked by uid 500); 26 Nov 2012 05:27:01 -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 95704 invoked by uid 99); 26 Nov 2012 05:26:59 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 26 Nov 2012 05:26:59 +0000 Date: Mon, 26 Nov 2012 05:26:59 +0000 (UTC) From: "Lars Hofhansl (JIRA)" To: issues@hbase.apache.org Message-ID: <1060972506.22033.1353907619529.JavaMail.jiratomcat@arcas> In-Reply-To: <554180255.21853.1353897298625.JavaMail.jiratomcat@arcas> Subject: [jira] [Commented] (HBASE-7215) Put, Delete, and Increment still implement Writable 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-7215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503624#comment-13503624 ] Lars Hofhansl commented on HBASE-7215: -------------------------------------- After some looking... If we want continue to support Put/Delete/Result in M/R, using protobufs to implement readFields and write is the only way out. In Writable.write(DataOutput) we'd create the write Mutate protobuf object, write that to a bytearray and then write that byte array into the DataOutput. It's too bad we only have a DataOutut here and not an OutputStream, othewise we could just stream the protobuf object through that stream, saving one copy of all the data. In Writable.readFields we do something akin to ProtoBufutil.toDelete after we read the Mutate object from the stream. That means the data is not streamed, but instead materialized in memory three(!) times in these cases (the object itself, its protobuf representation, and the byte array to be sent across the wire). I'd welcome any better ideas! > Put, Delete, and Increment still implement Writable > --------------------------------------------------- > > Key: HBASE-7215 > URL: https://issues.apache.org/jira/browse/HBASE-7215 > Project: HBase > Issue Type: Bug > Reporter: Lars Hofhansl > Priority: Blocker > Fix For: 0.96.0 > > > Making blocker as suggested by Stack. > At least the following still use Put/Delete as writables. > * IdentityTableReduce.java > * MultiPut.java > * HRegionServer.checkAndMutate -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira