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 3740E4952 for ; Thu, 19 May 2011 22:06:59 +0000 (UTC) Received: (qmail 43927 invoked by uid 500); 19 May 2011 22:06:58 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 43891 invoked by uid 500); 19 May 2011 22:06:58 -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 43882 invoked by uid 99); 19 May 2011 22:06:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 May 2011 22:06:58 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of saint.ack@gmail.com designates 209.85.216.176 as permitted sender) Received: from [209.85.216.176] (HELO mail-qy0-f176.google.com) (209.85.216.176) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 May 2011 22:06:52 +0000 Received: by qyk30 with SMTP id 30so2285361qyk.14 for ; Thu, 19 May 2011 15:06:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=eCFE3eRquZ8WzKlaUCmVjAHVIDbFYd4HxNWjNHrYvlU=; b=Q1xh84m0s2iTrqyGkXpBLUFiRhF3AV7zWNMBgGIaF46Hr3WUMAb2x2oJAklBRKyXpU dN2ZKmerPSWlXoJaGFnPfz2z8G9aV3W6DXaeqv8lQz5pvWJ3aDEEi62IoS0MvT5MDWbI gEWgtRcKNr6TVwmcyRzZHXXdFPNu0YyqF4rd0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=NtbsQ5G/St56/zfzTyzB6ExsIMqRZAsA5rMN7rDHcKybIizsqWUUCHrXoQ4fSMctas Jd2288ZXKU9opnlxOA93V6XgoUwD34oIkmecJMpYFmBBHOS9l9yWQaqpJNpCuVF6EPTz efH0k4i/lwt1YTN5ZYGcIUi9zSbdDXesjnVMY= MIME-Version: 1.0 Received: by 10.224.27.145 with SMTP id i17mr2954953qac.286.1305842791004; Thu, 19 May 2011 15:06:31 -0700 (PDT) Sender: saint.ack@gmail.com Received: by 10.224.19.208 with HTTP; Thu, 19 May 2011 15:06:30 -0700 (PDT) In-Reply-To: References: Date: Thu, 19 May 2011 15:06:30 -0700 X-Google-Sender-Auth: gSsf4KAL__YVloC-5gQxNGowYkE Message-ID: Subject: Re: Reading from client buffer From: Stack To: dev@hbase.apache.org, fazoolmein@gmail.com Cc: Jean-Daniel Cryans Content-Type: text/plain; charset=ISO-8859-1 Mind filing an issue referring to this conversation Fazool? Thanks. St.Ack On Thu, May 19, 2011 at 2:49 PM, Fazool wrote: > Agreed. > > On Thu, May 19, 2011 at 11:15 PM, Jean-Daniel Cryans wrote: > >> You would still have "confirmed" writes that may never get to the >> server, which comes back to my point that the buffer shouldn't be used >> in this case. >> >> J-D >> >> On Thu, May 19, 2011 at 1:56 PM, Fazool wrote: >> > Another way would be that when you read, check the write buffer. If it is >> a >> > hit, flush the buffer, and then return the read. >> > >> > This way, bulk loads will still work, and occasionally, we might have a >> > slower read. >> > >> > >> > On Thu, May 19, 2011 at 9:14 PM, Jean-Daniel Cryans > >wrote: >> > >> >> The write buffer is a hack for faster write performance during bulk >> >> loads, no one should use it in a situation like you described. >> >> >> >> Even if the client was able to read from it's own buffer, the edits >> >> didn't make it to the region server so the other clients wouldn't be >> >> able to see that new data either. Now let's suppose the client died >> >> before flushing, well you would be serving data that actually never >> >> existed! >> >> >> >> I think we should just fix the documentation. >> >> >> >> J-D >> >> >> >> On Thu, May 19, 2011 at 8:02 AM, fazool mein >> wrote: >> >> > Hi, >> >> > >> >> > I am going through the Hbase code to understand its properties better. >> >> > >> >> > There is something called 'write buffer' on the client side. Say it is >> >> > enabled. Now, assume a client puts value v under key k, and >> immediately >> >> > reads k. >> >> > >> >> > As I understand from the code, the put will be stored in the client >> side >> >> > write buffer, while the read will go to the region server, returing an >> >> older >> >> > value, instead of v. >> >> > >> >> > Doesn't this violate the ACID semantics (visibility in particular ) of >> >> Hbase >> >> > given at: http://hbase.apache.org/acid-semantics.html >> >> > >> >> > >> >> > >> >> > When a client receives a "success" response for any mutation, that >> >> mutation >> >> > is immediately visible to both that client and any client with whom it >> >> later >> >> > communicates through side channels. >> >> > >> >> > >> >> > >> >> > Thanks. >> >> > >> >> > Regards >> >> > >> >> >> > >> >