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

Joshua McKenzie commented on CASSANDRA-8833:
--------------------------------------------

bq. Make your mind up
Touché.  :)  I have numbers on another ticket and Branimir's been seeing 
similar effects on the read path on Windows, so this is more a symptom of me 
being lazy on bringing them into this discussion (combined with a lack of rigor 
on producing those #'s thus far).

bq. the two aren't mutually exclusive
Absolutely true, but the headache associated with renaming or deleting files on 
Windows is compounded with hard-links and memory-mapping. Delaying the mapping 
until finalization of the sstable would be a simple solution however that's 
adding more complexity on top of an already complex situation.  Thus far we've 
avoided platform-specific code-paths as much as possible, but that seems a 
simple enough solution that it would be worth looking into.

Regarding the flurry of recent fixes - as you're well aware, little in this 
code-base is as simple as it may appear at first glance.  I suspect we're going 
to have other things we need to tidy up with these recent commits and there may 
be unintended side-effects to some of those changes.  A lot of hand-waving 
here, certainly, but past experience indicates that changes that touch that 
many places in the code-base almost always have some surprises in store for us.

bq. I'm not certain what you're referring to here
Ah - so the 9% w/populate_io_cache_on_flush was the pathological case and the 
crazy cliff drop-off was the normal use-case then?  A bit of clarification 
there goes a long way.

> Stop opening compaction results early
> -------------------------------------
>
>                 Key: CASSANDRA-8833
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8833
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Marcus Eriksson
>             Fix For: 2.1.4
>
>
> We should simplify the code base by not doing early opening of compaction 
> results. It makes it very hard to reason about sstable life cycles since they 
> can be in many different states, "opened early", "starts moved", "shadowed", 
> "final", instead of as before, basically just one (tmp files are not really 
> 'live' yet so I don't count those). The ref counting of shared resources 
> between sstables in these different states is also hard to reason about. This 
> has caused quite a few issues since we released 2.1
> I think it all boils down to a performance vs code complexity issue, is 
> opening compaction results early really 'worth it' wrt the performance gain? 
> The results in CASSANDRA-6916 sure look like the benefits are big enough, but 
> the difference should not be as big for people on SSDs (which most people who 
> care about latencies are)
> WDYT [~benedict] [~jbellis] [~iamaleksey] [~JoshuaMcKenzie]?



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

Reply via email to