[
https://issues.apache.org/jira/browse/HBASE-4583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13139468#comment-13139468
]
Lars Hofhansl commented on HBASE-4583:
--------------------------------------
Looking at the code. There are some other weird things:
1. HRegion.applyFamilyMapToMemstore calls Store.add for each KV, which in turns
calls Memstore.add. At each iteration both the Store and the Memstore take and
release the read lock. Should be more efficient to pass a set of only take the
locks once (at the expense of slightly reduce lock granularity).
2. Both HRegion.increment and HRegion.append (which is modeled after increment)
update the memstore first, and then write the WAL. If the WAL sync fails there
would be uncommitted state in the memstore. Fixing this should either incur a
performance penalty (need to sync the WAL with the update.readLock held, or
require memstore rollback (like we do for put now).
I think these two should have separate jiras.
> 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
>
>
> 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