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

stack commented on HBASE-4583:
------------------------------

bq. There are various ways to produce serializable schedules (pessimistic 
locking, optimistic locking with rechecking of pre conditions, snapshot 
isolation, etc), all which will probably mean worse performance for both append 
and increment.

Shouldn't we do it anyways (though big yuck on your list above -- it makes my 
brain hurt just thinking on it.  Can you imagine rechecking pre-conditions and 
then replaying the failed transaction.. how much fun that'll be to code up!)?

Shouldn't we be correct first and then performant?

bq. As said above the current implementation sync's the WAL after the memstore 
is updated and the new values are visible to other threads, and after the locks 
are released. 

Sounds broke to me; sounds like big compromise for sake of better perf.  Should 
we open new issue on this?

bq. (1) and (2) together mean that the WAL needs to be sync'ed with the row 
lock held (which would be quite a performance degradation).

Shouldn't we ship with this config. with options to run hbase otherwise 
(memstore put then sync, etc.)

bq. Now, what we could do is use rwcc to make the changes to the CFs atomic, 
and still sync the WAL after all the locks are released (as we do now). With 
this compromise everything would be correct unless the sync'ing of WAL fails

Sounds broke still?

Thanks for the write up and for digging in here fellas.


                
> Integrate RWCC with Append and Increment operations
> ---------------------------------------------------
>
>                 Key: HBASE-4583
>                 URL: https://issues.apache.org/jira/browse/HBASE-4583
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.94.0
>
>         Attachments: 4583-v2.txt, 4583-v3.txt, 4583-v4.txt, 4583.txt
>
>
> Currently Increment and Append operations do not work with RWCC and hence a 
> client could see the results of multiple such operation mixed in the same 
> Get/Scan.
> The semantics might be a bit more interesting here as upsert adds and removes 
> to and from the memstore.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to