Thanks J-D. I'm interested in learning how HBase handles MVCC - do you know of any resources explaining? I have data streaming into hbase around 6 million records a day, and I'm scanning the tables pretty much constantly with mapreduce jobs that rollup and store the data elsewhere. So I want to understand better exactly which rows are present in a given scan.
If I create a scan that reads an entire region, I would expect a "read committed" level to lock that region during the read (which might take a few minutes). So what happens to the rows that are inserted during the scan? AZ On Apr 25, 2013, at 4:34 PM, Jean-Daniel Cryans <[email protected]> wrote: > Inline. > > J-D > > > On Thu, Apr 25, 2013 at 1:09 PM, Aaron Zimmerman < > [email protected]> wrote: > >> Hi, >> >> If a region is being written to, and a scanner takes a lease out on the >> region, what will happen to the writes? Is there a concept of "Transaction >> Isolation Levels"? >> > > There's MVCC, so reads can happen while someone else is writing. What you > should expect from HBase is "read committed". > > >> >> I don't see errors in Puts while the tables are being scanned? But it >> seems that I'm losing writes somewhere, is it possible the writes could >> fail silently? >> > > Is it temporary while you're scanning or there's really data missing at > the end of the day? The former might happen on some older HBase versions > while the latter should never happen unless you lower the durability level > yourself and have machine failures. > > J-D
