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

Caleb Rackliffe commented on CASSANDRA-19497:
---------------------------------------------

For a bit more on why we see the above result, this is trunk:

!cpu-trunk-19497.png!

...while this is the patch with a batch size of 100:

!cpu-batch-100-19497.png!

Without the patch, we waste a lot of time in useless \{{isEmpty}} calls in 
\{{queryMemtableAndDisk}}.

> ResultRetriever should batch clusterings/rows during SAI post-filtering reads
> -----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19497
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19497
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Feature/SAI
>            Reporter: Caleb Rackliffe
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 5.0.x, 5.x
>
>         Attachments: alloc-trunk.html, cpu-batch-100-19497.png, 
> cpu-trunk-19497.png, cpu-trunk.html, heap-flamegraph.html, 
> wall-no-parked-threads.html
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> SAI currently creates and executes a {{SinglePartitionReadCommand}} for every 
> {{PrimaryKey}} the index produces to read the corresponding row for 
> post-filtering. Informed by the limits present in the read command itself, it 
> should be possible to batch those reads w/ a {{ClusteringIndexNamesFilter}} 
> in many fewer {{SinglePartitionReadCommands}}. When we have a handful of 
> matches in a large partition, this seems like would involve many fewer seeks, 
> less unnecessary object creation, etc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to