cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-8707) Move SegmentedFile, IndexSummary and BloomFilter to utilising RefCounted
Date Tue, 03 Feb 2015 11:58:35 GMT

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

Benedict edited comment on CASSANDRA-8707 at 2/3/15 11:58 AM:
--------------------------------------------------------------

OK, I've force pushed a version with comments in a directly proceeding commit to the introduction
of that refactor. Let me know if it is still insufficient.

It is _possible_ we could simplify by not distinguishing between the global and per-descriptor-type
state. We could, for instance, only support getCurrentReplacement() for like-types, and only
persist read meter stats for FINAL files. The only thing that would be explicitly wrong would
be the dropping of the page cache, which might happen prematurely. The reason I like the separation,
however, is that it directly maps onto the actual lifecycles, so (excepting the initial acclimation)
there is a lower cognitive burden for understanding how and when cleanup occurs; and there
are no caveats to the other pieces of state and where you can use them. My current view is
there is too much special casing going on, and it's introducing bugs, so I want to move to
abstractions that map as closely to use as possible.


was (Author: benedict):
OK, I've force pushed a version with comments in a directly proceeding commit to the introduction
of that refactor. Let me know if it is still insufficient.

It is _possible_ we could simplify by not distinguishing between the global and per-descriptor-type
state. We could, for instance, only support getCurrentReplacement() for like-types, and only
persist read meter stats for FINAL files. The only thing that would not be explicitly wrong
would be the dropping of the page cache, which might happen prematurely. The reason I like
the separation, however, is that it directly maps onto the actual lifecycles, so (excepting
the initial acclimation) there is a lower cognitive burden for understanding how and when
cleanup occurs; and there are no caveats to the other pieces of state and where you can use
them. My current view is there is too much special casing going on, and it's introducing bugs,
so I want to move to abstractions that map as closely to use as possible.

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

Mime
View raw message