hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-3484) Replace memstore's ConcurrentSkipListMap with our own implementation
Date Mon, 04 Jan 2016 04:59:39 GMT

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

Lars Hofhansl commented on HBASE-3484:
--------------------------------------

bq. CSLM optimizes for Comparable keys, so if you specify a custom comparator, then it has
to wrap every key you insert with a wrapper object. Specializing CSLM for our purposes would
easily save 64 bytes per entry on this.

At least with JDK 8 this is not the case. CSLM works without extra objects with or without
a custom comparator.
(The Harmony class linked above has that problem, though.)


> Replace memstore's ConcurrentSkipListMap with our own implementation
> --------------------------------------------------------------------
>
>                 Key: HBASE-3484
>                 URL: https://issues.apache.org/jira/browse/HBASE-3484
>             Project: HBase
>          Issue Type: Improvement
>          Components: Performance
>    Affects Versions: 0.92.0
>            Reporter: Todd Lipcon
>            Priority: Critical
>         Attachments: WIP_HBASE-3484.patch, hierarchical-map.txt, memstore_drag.png
>
>
> By copy-pasting ConcurrentSkipListMap into HBase we can make two improvements to it for
our use case in MemStore:
> - add an iterator.replace() method which should allow us to do upsert much more cheaply
> - implement a Set directly without having to do Map<KeyValue,KeyValue> to save
one reference per entry
> It turns out CSLM is in public domain from its development as part of JSR 166, so we
should be OK with licenses.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message