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

Michael Semb Wever commented on CASSANDRA-16201:
------------------------------------------------

Out of the ticket scope… why are the microbench classes all in the 
{{org.apache.cassandra.test.microbench}} ? They are already separate under 
{{src/testmicrobench/}}, and by re-packaging them like this it means accessed 
methods: eg {{bs.getMutations(..)}} ; have to be made public instead of 
package-protected. It would be nice to keep methods package-protected where 
possible.

AFAIK we also don't CI run the microbench classes anywhere, so there's no 
guarantee they remain runnable over time. I could add them to the ci-cassandra 
pipeline, though ideally a dedicated bare-metal server would be needed to make 
[use|https://plugins.jenkins.io/jmh-report/] of the runtime 
[reports|https://www.jenkins.io/blog/2019/06/21/performance-testing-jenkins/].

+1 on all branch patches (including [~yifanc] review comments above).

> Reduce amount of allocations during batch statement execution
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-16201
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16201
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Other
>            Reporter: Thomas Steinmaurer
>            Assignee: Marcus Eriksson
>            Priority: Normal
>             Fix For: 3.0.x, 3.11.x, 4.0-beta
>
>         Attachments: 16201_jfr_3023_alloc.png, 16201_jfr_3023_obj.png, 
> 16201_jfr_3118_alloc.png, 16201_jfr_3118_obj.png, 16201_jfr_40b3_alloc.png, 
> 16201_jfr_40b3_obj.png, screenshot-1.png, screenshot-2.png, screenshot-3.png, 
> screenshot-4.png
>
>
> In a Cas 2.1 / 3.0 / 3.11 / 4.0b2 comparison test with the same load profile, 
> we see 4.0b2 going OOM from time to time. According to a heap dump, we have 
> multiple NTR threads in a 3-digit MB range.
> This is likely related to object array pre-allocations at the size of 
> {{BatchUpdatesCollector.updatedRows}} per {{BTree}} although there is always 
> only 1 {{BTreeRow}} in the {{BTree}}.
>  !screenshot-1.png|width=100%! 
> So it seems we have many, many 20K elemnts pre-allocated object arrays 
> resulting in a shallow heap of 80K each, although there is only one element 
> in the array.
> This sort of pre-allocation is causing a lot of memory pressure.



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