You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2015/05/14 10:25:00 UTC

[jira] [Created] (CASSANDRA-9379) Use a collection supporting more efficient removal in Ref.GlobalState

Benedict created CASSANDRA-9379:
-----------------------------------

             Summary: 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)