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

Jonathan Gray commented on HBASE-4583:
--------------------------------------

My vote (if only for one implementation) would be for the less radical patch 
that removes in-memory versions that are not visible rather than doing this 
cleanup on flush which has a number of performance implications.  I can see 
some reasons for wanting to keep versions around (providing support to an 
Omid-like transaction engine requires retaining old versions for at least some 
time), but it would be cool to have an option to prevent the deletion of the 
old versions rather than require that these exist in cases I won't ever use 
them.  In all my increment performance tests, of which there have been many, 
the upsert/removal of old versions is one of the biggest gains, especially if 
you have particularly hot columns.

I'm not sure which design you are referring to when you talk about being true 
to HBase's design ;) Or maybe you're referring to the general principles of 
HBase (append-only), but the increment operation itself was not part of any 
original design or implementation of HBase and has been a hack in one way or 
another from the very first implementation.  For the reason that the 
implementation has been targeted at performance over purity.  I've always seen 
it as an atomic operation that would have any notion of versioning as opaque to 
the user of the atomic increment.  Again, I can see use cases for it, but I'd 
lean towards having it as an option rather than requirement.

Thanks for doing this work, good stuff.  +1
                
> 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.96.0
>
>         Attachments: 4583-trunk-less-radical.txt, 
> 4583-trunk-less-radical-v2.txt, 4583-trunk-less-radical-v3.txt, 
> 4583-trunk-less-radical-v4.txt, 4583-trunk-less-radical-v5.txt, 
> 4583-trunk-less-radical-v6.txt, 4583-trunk-radical.txt, 
> 4583-trunk-radical_v2.txt, 4583-trunk-v3.txt, 4583.txt, 4583-v2.txt, 
> 4583-v3.txt, 4583-v4.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
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to