Return-Path: Delivered-To: apmail-hadoop-mapreduce-issues-archive@minotaur.apache.org Received: (qmail 4716 invoked from network); 4 Feb 2010 21:43:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Feb 2010 21:43:49 -0000 Received: (qmail 92427 invoked by uid 500); 4 Feb 2010 21:43:49 -0000 Delivered-To: apmail-hadoop-mapreduce-issues-archive@hadoop.apache.org Received: (qmail 92388 invoked by uid 500); 4 Feb 2010 21:43:49 -0000 Mailing-List: contact mapreduce-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mapreduce-issues@hadoop.apache.org Delivered-To: mailing list mapreduce-issues@hadoop.apache.org Received: (qmail 92308 invoked by uid 99); 4 Feb 2010 21:43:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Feb 2010 21:43:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Feb 2010 21:43:48 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 72BA3234C4BF for ; Thu, 4 Feb 2010 13:43:28 -0800 (PST) Message-ID: <488819222.50891265319808468.JavaMail.jira@brutus.apache.org> Date: Thu, 4 Feb 2010 21:43:28 +0000 (UTC) From: "Owen O'Malley (JIRA)" To: mapreduce-issues@hadoop.apache.org Subject: [jira] Commented: (MAPREDUCE-326) The lowest level map-reduce APIs should be byte oriented 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/MAPREDUCE-326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12829801#action_12829801 ] Owen O'Malley commented on MAPREDUCE-326: ----------------------------------------- I agree with Todd. I don't think taking a performance hit in Java by adding memory copies is acceptable. I think that keeping keys and values separate is useful for a couple of reasons: 1. keys compress better separately than intermixed with values (not that we do that currently...) 2. combining the keys and values will effectively block using memcmp for the sort (and it is pretty ugly to consider serializing the "key" fields differently that the "value" fields) 3. We could support more flexible memory management if the values can be distinguished from the keys. 4. Since Sequence Files and T Files contain both Keys and Values, they would need to be wrapped together to present them as a single object. I don't see what this abstraction is buying you over using ByteBuffer and a Serializer that knows how to use it. You could define your Mapper and/or Reducer any way you want and deserialization would be completely in the application's hands. Very much like Google's MapReduce. > The lowest level map-reduce APIs should be byte oriented > -------------------------------------------------------- > > Key: MAPREDUCE-326 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-326 > Project: Hadoop Map/Reduce > Issue Type: Improvement > Reporter: eric baldeschwieler > > As discussed here: > https://issues.apache.org/jira/browse/HADOOP-1986#action_12551237 > The templates, serializers and other complexities that allow map-reduce to use arbitrary types complicate the design and lead to lots of object creates and other overhead that a byte oriented design would not suffer. I believe the lowest level implementation of hadoop map-reduce should have byte string oriented APIs (for keys and values). This API would be more performant, simpler and more easily cross language. > The existing API could be maintained as a thin layer on top of the leaner API. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.