[
https://issues.apache.org/jira/browse/CASSANDRA-8707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14299930#comment-14299930
]
Benedict commented on CASSANDRA-8707:
-------------------------------------
I was playing with another small refactor to the ref counting code, and somehow
managed to butcher my git history so that I overrode my backup copy with the
new version as well (still not sure what I did), and uploaded it. The upshot is
there's an extra refactor in there. I can attempt to rollback the change if you
prefer, but it isn't too drastic and I think makes the API cleaner.
Essentially, I remerged RefCountedImpl with Ref, but in the opposite way. Now
you just create a Ref object, which sorts out creating all of the background
gubbins. The Ref object both manages a single reference and the creation of new
references. This simplifies some of the new helper classes I've created, and I
think creates a lower cognitive burden on the user of the API. The biggest
upshot is there is no concept of a sharedRef(); the first Ref you create you
can simply stash somewhere (which we do in SSTableReader). I think this is
cleaner, as it's not always necessary to have a "sharedRef".
Let me know what you think. I've done my best to keep all of the changes into
relatively small easily digested commits, so hopefully the review burden won't
be too problematic. But we can rework it if necessary.
> Move SegmentedFile, IndexSummary and BloomFilter to utilising RefCounted
> ------------------------------------------------------------------------
>
> Key: CASSANDRA-8707
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8707
> Project: Cassandra
> Issue Type: Bug
> Reporter: Benedict
> Assignee: Benedict
> Fix For: 2.1.3
>
>
> There are still a few bugs with resource management, especially around
> SSTableReader cleanup, esp. when intermixing with compaction. This migration
> should help. We can simultaneously "simplify" the logic in SSTableReader to
> not track the replacement chain, only to take a new reference to each of the
> underlying resources.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)