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