[
https://issues.apache.org/jira/browse/HBASE-20411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16439828#comment-16439828
]
stack commented on HBASE-20411:
-------------------------------
.007 fix tests. The memstore accounting has good coverage to fixing the above
failing tests uncovered problems in my patch that I was unable to find via
inspection. The patch runs to completion on cluster doing ycsb now... Doesn't
get stuck any more. Ready for review.
{code}
Change the MemStore size accounting so we don't synchronize across three
volatiles applying deltas. Instead:
* Make MemStoreSize, a datastructure of our memstore size longs,
immutable.
Create a new instance on every increment.
* Undo MemStoreSizing being an instance of MemStoreSize; instead it
has-a.
* Make two MemStoreSizing implementations; one thread-safe, the other
not.
* Use an AtomicReference#checkAndPut (lockless) where concurrent
updates
* Otherwise, use unsynchronized accounting.
* Review all use of MemStoreSizing. Many are single-threaded and do
not need to be synchronized.
TODO: Use this technique accounting at the global level too.
M
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreSizing.java
Make this an Interface. Implementations are a thread-safe instance and
a non-thread-safe version.
{code}
> Ameliorate MutableSegment synchronize
> -------------------------------------
>
> Key: HBASE-20411
> URL: https://issues.apache.org/jira/browse/HBASE-20411
> Project: HBase
> Issue Type: Bug
> Reporter: stack
> Priority: Major
> Attachments: 2.load.patched.17704.lock.svg,
> 2.load.patched.2.17704.lock.svg, 2.more.patch.12010.lock.svg, 41901.lock.svg,
> HBASE-20411.branch-2.0.001.patch, HBASE-20411.branch-2.0.002.patch,
> HBASE-20411.branch-2.0.003.patch, HBASE-20411.branch-2.0.004.patch,
> HBASE-20411.branch-2.0.005.patch, HBASE-20411.branch-2.0.006.patch,
> HBASE-20411.branch-2.0.007.patch
>
>
> This item is migrated from HBASE-20236 so it gets dedicated issue.
> Let me upload evidence that has this synchronize as a stake in our write-time
> perf. I'll migrate the patch I posted with updates that come of comments
> posted by [~mdrob] on the HBASE-20236 issue.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)