Return-Path: Delivered-To: apmail-hadoop-hbase-dev-archive@minotaur.apache.org Received: (qmail 35971 invoked from network); 6 Mar 2009 17:02:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Mar 2009 17:02:21 -0000 Received: (qmail 16705 invoked by uid 500); 6 Mar 2009 17:02:20 -0000 Delivered-To: apmail-hadoop-hbase-dev-archive@hadoop.apache.org Received: (qmail 16593 invoked by uid 500); 6 Mar 2009 17:02:20 -0000 Mailing-List: contact hbase-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-dev@hadoop.apache.org Delivered-To: mailing list hbase-dev@hadoop.apache.org Received: (qmail 16582 invoked by uid 99); 6 Mar 2009 17:02:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Mar 2009 09:02:20 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Mar 2009 17:02:19 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 40F32234C4AF for ; Fri, 6 Mar 2009 09:01:59 -0800 (PST) Message-ID: <284197487.1236358919264.JavaMail.jira@brutus> Date: Fri, 6 Mar 2009 09:01:59 -0800 (PST) From: "stack (JIRA)" To: hbase-dev@hadoop.apache.org Subject: [jira] Commented: (HBASE-1246) BloomFilter's use of BitSet is too inefficient In-Reply-To: <108811871.1236333957584.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HBASE-1246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12679650#action_12679650 ] stack commented on HBASE-1246: ------------------------------ I thought this had been fixed? See https://issues.apache.org/jira/browse/HBASE-427. Maybe we lost Ian's fix down the line? Also, up on IRC, Johano suggests: {code} 09:59 < dj_ryan> hmm 09:59 < dj_ryan> we are going to have to write our own BitSet 09:59 < dj_ryan> the java one is too inefficient 09:59 < dj_ryan> it doesnt seem to actually use bits 09:59 < dj_ryan> it uses 1000 bytes to store 1000 bits 09:59 < dj_ryan> :-( 09:59 < dj_ryan> serialized the bitset is 160 bytes, but in memory its 10x bigger. 10:57 < johano> http://code.google.com/p/compressedbitset/ 10:57 < johano> http://code.google.com/p/javaewah/ 10:57 < johano> might be of use {code} > BloomFilter's use of BitSet is too inefficient > ---------------------------------------------- > > Key: HBASE-1246 > URL: https://issues.apache.org/jira/browse/HBASE-1246 > Project: Hadoop HBase > Issue Type: Bug > Affects Versions: 0.20.0 > Environment: Java 1.6, OSX 64 bit > Reporter: ryan rawson > Assignee: ryan rawson > Fix For: 0.20.0 > > > From the logfile run of TestBloomFilter with special SizeOf agent jar: > Writing bloom filter for: hdfs://localhost:64003/user/ryan/testComputedParameters/1278366260/contents/6159869037185296839 for size: 100 > 2009-03-06 01:54:25,491 DEBUG [RegionServer:0.cacheFlusher] regionserver.StoreFile$StoreFileWriter(319): New bloom filter: vectorSize: 1175 hash_count: 5 numKeys: 100 > Serialized bloomfilter size: 160 > In memory bf size: 1248 > As we can see, the bit vector is 1175 bits, and the serialized size is fairly compact - 160 bytes. > But the in-memory size is nearly 10x bigger than it has to be. Looking in BloomFilter we see: > BitSet bits; > is the only field. > Clearly it seems the BitSet is using 1 byte = 1 bit. That is an 8 time expansion of where we should be. > Considering every HFile could potentially have a bloom filter, and bloom filters are more likely to have bit vector sizes of 10,000-100,000, we should do something about this. Aka: write our own bit-set that uses byte[] and bit ops. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.