Return-Path: Delivered-To: apmail-hadoop-hbase-issues-archive@minotaur.apache.org Received: (qmail 37294 invoked from network); 23 Mar 2010 00:49:48 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 23 Mar 2010 00:49:48 -0000 Received: (qmail 73461 invoked by uid 500); 23 Mar 2010 00:49:48 -0000 Delivered-To: apmail-hadoop-hbase-issues-archive@hadoop.apache.org Received: (qmail 73445 invoked by uid 500); 23 Mar 2010 00:49:48 -0000 Mailing-List: contact hbase-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-issues@hadoop.apache.org Delivered-To: mailing list hbase-issues@hadoop.apache.org Received: (qmail 73437 invoked by uid 99); 23 Mar 2010 00:49:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Mar 2010 00:49:48 +0000 X-ASF-Spam-Status: No, hits=-1101.0 required=10.0 tests=ALL_TRUSTED,AWL 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; Tue, 23 Mar 2010 00:49:47 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 969F9234C1F0 for ; Tue, 23 Mar 2010 00:49:27 +0000 (UTC) Message-ID: <1913094383.421641269305367616.JavaMail.jira@brutus.apache.org> Date: Tue, 23 Mar 2010 00:49:27 +0000 (UTC) From: "ryan rawson (JIRA)" To: hbase-issues@hadoop.apache.org Subject: [jira] Commented: (HBASE-2294) Enumerate ACID properties of HBase in a well defined spec 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-2294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848476#action_12848476 ] ryan rawson commented on HBASE-2294: ------------------------------------ right now the way we implement some of this stuff is via the JMM, we use locks and other things to essentially create an order of events that a client will see. For example in my 2248 patch, the ReadWriteConcurrencyControl uses an atomic incrementing long to move the state in one direction only. Users won't have time travel problems in this regime. In terms of crashes and log recovery, the sequential log recovery id solves this problem, no? > Enumerate ACID properties of HBase in a well defined spec > --------------------------------------------------------- > > Key: HBASE-2294 > URL: https://issues.apache.org/jira/browse/HBASE-2294 > Project: Hadoop HBase > Issue Type: Task > Components: documentation > Reporter: Todd Lipcon > Priority: Blocker > Fix For: 0.20.4, 0.21.0 > > > It's not written down anywhere what the guarantees are for each operation in HBase with regard to the various ACID properties. I think the developers know the answers to these questions, but we need a clear spec for people building systems on top of HBase. Here are a few sample questions we should endeavor to answer: > - For a multicell put within a CF, is the update made durable atomically? > - For a put across CFs, is the update made durable atomically? > - Can a read see a row that hasn't been sync()ed to the HLog? > - What isolation do scanners have? Somewhere between snapshot isolation and no isolation? > - After a client receives a "success" for a write operation, is that operation guaranteed to be visible to all other clients? > etc > I see this JIRA as having several points of discussion: > - Evaluation of what the current state of affairs is > - Evaluate whether we currently provide any guarantees that aren't useful to users of the system (perhaps we can drop in exchange for performance) > - Evaluate whether we are missing any guarantees that would be useful to users of the system -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.