[
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