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

Caleb Rackliffe commented on CASSANDRA-16078:
---------------------------------------------

I took the scenario [~dcapwell] ran and made a couple small adjustments:

1.) The {{disk_access_mode}} in the original test was {{mmap}}, and that 
probably doesn't make sense with a 64 KB chunk size. That was changed to 
{{mmap_index_only}}.
2.) The original test flushed the Memtable every 500 milliseconds, and I've 
removed that behavior.

Also, for clarity, the {{tlp-stress}} run does pre-populate 500 (1000-row) 
partitions before starting its warmup. Finally, the test outlined above was 
running with the stress argument {{--rate 800}}, which I've either continued to 
use or scaled down to 400 for single-node tests.

I was not able to find any meaningful regression around select latency between 
3.0/3.11 and 4.0/trunk. For both single-node and six-node tests (w/ RF=3), 
4.0/trunk actually produces a better mean latency and latencies up to at least 
the 99.9th percentile. In the example below, {{cie-pushbutton-123}} is a 3.0 
cluster (w/ CASSANDRA-8180 back-ported from 3.x) and {{cie-pushbutton-122}} is 
a 4.0/trunk cluster:

 !latency_selects_3_4.png! 

This chart corresponds to the 6-node cluster comparison, but the single-node 
case looks almost exactly the same, so I've omitted it for now. Flamegraphs 
sampled from individual nodes are very similar between the versions.

 [^async-profile-3.0.19-3.svg] 
 [^async-profile-4.0.0-3.svg] 

The only minor oddity is 4.0/trunk spending a bit more time in {{SEPWorker}} 
wait spins. Looking at the CPU usage, things are mostly idle, so before I move 
to close this, a test with more realistic load might be appropriate...

> Performance regression for queries accessing multiple rows
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-16078
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16078
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Consistency/Coordination
>            Reporter: David Capwell
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 4.0-beta
>
>         Attachments: ClusteringSlicing.kt, async-profile-3.0.19-3.svg, 
> async-profile-4.0.0-3.svg, image.png, latency_selects_3_4.png
>
>
> This is spin off from CASSANDRA-16036.
> In testing 4.0 relative to 3.0* I found that queries which accessed multiple 
> rows to have a noticeable performance decrease; two queries were used in the 
> test (more may be impacted, others might not): query partition (table has 
> clustering keys) with LIMIT, and query clustering keys using IN clause.
> In the below graphs the green line is 3.0 and the other lines are 4.0 (with 
> and without chunk cache)
> Partition with LIMIT
> !https://issues.apache.org/jira/secure/attachment/13009751/clustering-slice_latency_selects_baseline.png!
> !https://issues.apache.org/jira/secure/attachment/13009750/clustering-slice_latency_under90_selects_baseline.png!
> Cluster with IN clause
> !https://issues.apache.org/jira/secure/attachment/13009749/clustering-in-clause_latency_selects_baseline.png!
> !https://issues.apache.org/jira/secure/attachment/13009748/clustering-in-clause_latency_under90_selects_baseline.png!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to