[
https://issues.apache.org/jira/browse/HBASE-1577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723857#action_12723857
]
ryan rawson commented on HBASE-1577:
------------------------------------
ICV is the primary user of this tricky use case.
We won't actually be increasing memory usage of the memstore (our new name for
memcache, like it?), since the pointers already exist, we are just setting them
to something meaningful (KeyValue) than an object like Boolean.TRUE (what the
set does under the covers).
During ICV we could end up doubling the amount of memory we are using due to
the use of a different KeyValue in the 'value' position vs the 'key'
position... This is unfortunate, but it might not be as bad as it seems, so far
I find that values stored in ICV take up so little space, that doubling 2kb ->
4kb is really not much, considering the important race hole we are fixing.
> Move memcache to ConcurrentSkipListMap from ConcurrentSkipListSet
> -----------------------------------------------------------------
>
> Key: HBASE-1577
> URL: https://issues.apache.org/jira/browse/HBASE-1577
> Project: Hadoop HBase
> Issue Type: Improvement
> Reporter: stack
> Assignee: stack
> Fix For: 0.20.0
>
> Attachments: 1577-v2.patch, set2map.patch
>
>
> The CSLM will replace old entry with a new when you put. The CSLS will NOT
> replace if existent key making for a test, and if present, remove semantic
> which to be safe needs synchronizing (Replacement is a Ryan Rawson
> suggestion).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.