Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6C3EA9ADB for ; Tue, 17 Jan 2012 21:27:44 +0000 (UTC) Received: (qmail 40254 invoked by uid 500); 17 Jan 2012 21:27:43 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 40206 invoked by uid 500); 17 Jan 2012 21:27:43 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 40198 invoked by uid 99); 17 Jan 2012 21:27:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Jan 2012 21:27:42 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=FREEMAIL_FORGED_REPLYTO,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [98.138.90.251] (HELO nm5-vm0.bullet.mail.ne1.yahoo.com) (98.138.90.251) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 17 Jan 2012 21:27:33 +0000 Received: from [98.138.90.54] by nm5.bullet.mail.ne1.yahoo.com with NNFMP; 17 Jan 2012 21:27:12 -0000 Received: from [98.138.89.254] by tm7.bullet.mail.ne1.yahoo.com with NNFMP; 17 Jan 2012 21:27:12 -0000 Received: from [127.0.0.1] by omp1046.mail.ne1.yahoo.com with NNFMP; 17 Jan 2012 21:27:12 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 320887.84889.bm@omp1046.mail.ne1.yahoo.com Received: (qmail 77472 invoked by uid 60001); 17 Jan 2012 21:27:12 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1326835632; bh=1CEuw5rCPhP6Tb7r8dPRFjbkUyHa7f6odOhbTVLWc3Q=; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=vineVYhYYv2FDEevwUd0ZtXvWb5On5l4KUkjc7L5pIn2Wph6ZPGcF6ZftRi6RVtXDiSXggRtqnmZdOqOxwE3BZIkCVT00gmFrNUK5ei2iqbX4nS8E9F570dEtbz7g2oFEg8DBuPdpBGfqRB2Avt3z9Q6F8ch+aGY25DN45jHo+8= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=dyje6e3yI4aIpqZMQzmyY/XhhW9DmbGZ3k2hCVp/zmVjOF3aiOjSwh1eGJ9ih2jNgkW5MugzJR0V45NcV0IV8VzHmHSgT6cwBplFDQ7JHjcF5QC8Nu/DkfQDFQ9m/KIQcy+XKGw5s0EUd6j6GGANvAaJeTMQuCJ07yxZvtPe2KU=; X-YMail-OSG: nGPpzCYVM1l9D2M8Y4dj5OQsRlG7By4aXOiklWZ.vK1.cS7 TgqFGICJaYODT4GP9RV1AlpAYr_LER3Tqp9bfga8cxhmVjF.N0kS7i1KRDvP 6hrQkUPJ.4kytaaIcMeC.lOqOv2vALHjQSbeDTDg.Sx91VnejHC9asvc7v59 1uRpwnmyWbUKoKFV9tebDxba1Eq_PI7ftj64JRQFZHRyfv6hjkZQ3OqLCiu6 8cDo74XvlCr5Wo7HPEsiWnPsU04wvbgcPgsNiSth3YsdqrQ2Jiqn8SgbW2EY UVAqWF8QqaW_RM2oIXQpULMHgWZ4mAH9cFwsAcdzlEbjf2OTVy.Z9v9Sytd1 WbUjW4vy0PpwjBoWrEPSU07isDNnbAdWY6NkJes9Ci7RcWq6RaA5fWUOsmiU x0YBQpyuos63CYvTWC9MU_zAIMOIaXTTA0YXP6aWrbVPG Received: from [204.14.239.222] by web121703.mail.ne1.yahoo.com via HTTP; Tue, 17 Jan 2012 13:27:12 PST X-Mailer: YahooMailWebService/0.8.115.331698 Message-ID: <1326835632.53005.YahooMailNeo@web121703.mail.ne1.yahoo.com> Date: Tue, 17 Jan 2012 13:27:12 -0800 (PST) From: lars hofhansl Reply-To: lars hofhansl Subject: Limited cross row transactions To: hbase-dev MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I just committed HBASE-5203 (together with HBASE-3584 this implements atomic row operations). Although a relatively small patch it lays the groundwork for heterogeneous operations in a single WALEdit. The interesting part is that even though the code enforced the atomic operation to be a for single row, this is not required. It is enough if all involved KVs reside in the same region. I am not saying that we should add any high level concept to HBase (such as the EntityGroups of Megastore). But, with a slight addition to the API (allowing a grouping of multiple row operations) client applications have all the building blocks to do limited cross row atomic operations. The client application would be responsible for either correctly pre-splitting the table, or a custom balancer has to be provided. The operation would fail if the regionserver determines that it would need data from multiple region servers. I think this needs at least minimal support from HBase and cannot (efficiently or without adding more moving parts) by a client API only. Comments? Is this worth pursuing? If so, I'll file a jira and provide a patch. Thanks. -- Lars