[ 
https://issues.apache.org/jira/browse/HBASE-2294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846206#action_12846206
 ] 

Todd Lipcon commented on HBASE-2294:
------------------------------------

Ryan and I just discussed the snapshot vs up-to-date question on IRC. Brief 
summary:

- We cannot provide snapshot isolation as a guarantee, since doing so across 
regions is really impossible. Users can make use of timestamp range filters to 
get snapshot-like behavior.
- People don't seem to have concrete use cases for exactly-up-to-date 
semantics. Thus we shouldn't provide that either.
- The "spec" above describes the semantics as "at least as new as the start of 
the scan and possibly newer". This permits anything from snapshot isolation all 
the way up to "up to date" semantics, but leaves us wide open for 
implementation paths. If we decide to go with up-to-date now, we'll have 
explicit documentation to say this is *not* a feature, and anyone relying on it 
may be broken by implementation changes down the road.

Does that sound reasonable to you, Yoram?

> 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.

Reply via email to