[
https://issues.apache.org/jira/browse/CASSANDRA-9379?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benedict updated CASSANDRA-9379:
--------------------------------
Assignee: (was: Benedict)
> Use a collection supporting more efficient removal in Ref.GlobalState
> ---------------------------------------------------------------------
>
> Key: CASSANDRA-9379
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9379
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Benedict
> Priority: Minor
>
> Ref is intended only to be used in places where there are very few Ref
> instances against a given object extant at any moment, so this collection
> does not need to be performant. But to avoid performance regressions, such as
> accidentally introduced in CASSANDRA-8897 (but avoidable via the scaling back
> of Ref use, since no longer necessary), we could use a collection that
> supports more efficient removal.
> I would prefer, however, not to use either of CHM or NBHM, since both are
> heavyweight objects, wasting a lot of heap; the former is also blocking, and
> the latter could be problematic for this kind of workload, since it can leave
> references present in the map after a deletion. The most suitable structure
> is the one I blogged about
> [here|http://belliottsmith.com/eventual-consistency-concurrent-data-structures/]
> and have on github
> [here|https://github.com/belliottsmith/bes-utils/blob/master/src/bes/concurrent/collections/SimpleCollection.java],
> since it offers lock-free append and wait-free removal, and ensures space
> utilization is as low as possible.
> Thoughts/opinions?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)