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

Lars Hofhansl commented on HBASE-4583:
--------------------------------------

[[email protected]] That's what the less radical patch does, it removed old 
versions of the KVs when they are no longer visible to concurrent scanners.
You cannot clean up the in memory KVs (without a lot of refactoring and 
repacking into new slabs) while still using mslab.
There was talk about in memory compactions that could something like this... If 
we consider this an issue then that would be the proper route.

Let me try to summarize:
# The "less radical" patch is correct w.r.t. to MVCC. It does not correct the 
Increment behavior when it comes to historical scans. For practical purposes 
there is only a single version of the Incremented column, which is changed - 
regardless of how the CF is configured.
# The "radical" removes upsert. Increments are just treated like Puts, all 
special code is removed.
Upon flush all excess versions are removed before they are flushed to disk 
(HBASE-4241). The flushed files will be small, compaction will be fast. No 
attempt is made to clean up KVs before that, so it works with mslab, but the 
memstore will fill up more quickly. This patch causes a 10-15% performance 
degradation for pure Increments.

As I stated before, in my mind only the "radical" version is true to HBase's 
design and upsert was a hack, which should be removed.
However, I'm fine committing the "less radical" version, which retains (mostly) 
the current performance and fixes the behavior w.r.t. MVCC.

                
> 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