cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-6609) Reduce Bloom Filter Garbage Allocation
Date Wed, 22 Jan 2014 06:25:19 GMT


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

View raw message