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

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: https://issues.apache.org/jira/browse/CASSANDRA-3618
>             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: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to