cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (Updated) (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-3618) OpenBitSet can allocate more bytes than it needs
Date Tue, 13 Dec 2011 00:57:30 GMT


Sylvain Lebresne updated CASSANDRA-3618:

    Attachment: 0001-Fix-openBitSet.patch

Attached patch to avoid the over-allocation.

Note that it would probably be cleaner to reuse BigLongArray in OpenBitSet to deal with the
"paging" in only one place, but that would involve far more changes in OpenBitSet than I'm
confortable doing in 1.0.
> OpenBitSet can allocate more bytes than it needs
> ------------------------------------------------
>                 Key: CASSANDRA-3618
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>             Fix For: 1.0.7
>         Attachments: 0001-Fix-openBitSet.patch
> CASSANDRA-2466 changed OpenBitSet to break big long arrays into pages. However, it always
allocate full pages, each page being of size 4096 * 8 bytes. This means that we almost always
allocate too much bytes, and for a row that has 1 column, the associated row bloom filter
allocates 32760 more bytes than it should.
> This has a significant impact on performance. In a small test using the SSTableSimpleUnsortedWriter
to generate rows with 1 column, 0.8 is about twice as fast as 1.0 because of that (the difference
shrink when there is more columns obviously).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message