[ 
https://issues.apache.org/jira/browse/CASSANDRA-6609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benedict updated CASSANDRA-6609:
--------------------------------

    Attachment: tmp.diff

I've attached a quick and simple patch that reduces garbage by a factor of 6, 
but also slightly increases a bloom filter lookup cost (600ns to 750ns, 
approximately). This is suboptimal, and I'm not necessarily suggesting we use 
this patch as it stands. I attempted to coax the VM to allocate the arrays on 
heap so we can still benefit from whatever loop unrolling optimisations are 
kicking in with the original code, but I failed in my initial attempt. I will 
have another look at it again soon to see if we can get the best of both worlds.

> Reduce Bloom Filter Garbage Allocation
> --------------------------------------
>
>                 Key: CASSANDRA-6609
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6609
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Benedict
>         Attachments: tmp.diff
>
>
> Just spotted that we allocate potentially large amounts of garbage on bloom 
> filter lookups, since we allocate a new long[] for each hash() and to store 
> the bucket indexes we visit, in a manner that guarantees they are allocated 
> on heap. With a lot of sstables and many requests, this could easily be 
> hundreds of megabytes of young gen churn per second.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to