<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: BloomFilter</title>
	<atom:link href="http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/</link>
	<description>For engineers, by engineers.</description>
	<lastBuildDate>Thu, 09 Feb 2012 03:22:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: Bloom filters demystified :P &#124; padlobatch</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-12643</link>
		<dc:creator>Bloom filters demystified :P &#124; padlobatch</dc:creator>
		<pubDate>Thu, 08 Dec 2011 21:45:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-12643</guid>
		<description>[...] http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/ Some random guy used it. It has pretty good benefits in real life scenarios. It just makes things easy-peasy. [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/ Some" rel="nofollow">http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/ Some</a> random guy used it. It has pretty good benefits in real life scenarios. It just makes things easy-peasy. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Filters for fridges</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-9093</link>
		<dc:creator>Filters for fridges</dc:creator>
		<pubDate>Sun, 06 Nov 2011 16:02:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-9093</guid>
		<description>Would making the filter as big as possible have any effect on the speed and performance?</description>
		<content:encoded><![CDATA[<p>Would making the filter as big as possible have any effect on the speed and performance?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tripzilch</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-382</link>
		<dc:creator>tripzilch</dc:creator>
		<pubDate>Mon, 08 Nov 2010 10:05:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-382</guid>
		<description>You shouldn&#039;t have used SHA1. 

The only hashing criterion you need for a Bloom Filter is a uniform distribution over the hash output space.

While a cryptographic hash function most certainly satisfies this [it has to, otherwise it would be terribly insecure], it&#039;s also a littlebit like killing a fly with a bazooka. Next time try it with the FNV hash, which only uses one XOR and one MUL per byte of hashed data, making it a few orders of magnitude faster than SHA1.

(The FNV hash is not cryptographically secure, and has slightly imperfect avalanche behaviour, but will give you a uniform distribution over output space. If you think &quot;naw this seems too easy it can&#039;t possibly work&quot;, then apply it twice just to be safe, and I guarantee it will be just fine for a Bloom Filter)</description>
		<content:encoded><![CDATA[<p>You shouldn&#8217;t have used SHA1. </p>
<p>The only hashing criterion you need for a Bloom Filter is a uniform distribution over the hash output space.</p>
<p>While a cryptographic hash function most certainly satisfies this [it has to, otherwise it would be terribly insecure], it&#8217;s also a littlebit like killing a fly with a bazooka. Next time try it with the FNV hash, which only uses one XOR and one MUL per byte of hashed data, making it a few orders of magnitude faster than SHA1.</p>
<p>(The FNV hash is not cryptographically secure, and has slightly imperfect avalanche behaviour, but will give you a uniform distribution over output space. If you think &#8220;naw this seems too easy it can&#8217;t possibly work&#8221;, then apply it twice just to be safe, and I guarantee it will be just fine for a Bloom Filter)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bloom Filter &#8211; It&#8217;s Variants- and their Applications &#171; Appolo85&#039;s Blog</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-372</link>
		<dc:creator>Bloom Filter &#8211; It&#8217;s Variants- and their Applications &#171; Appolo85&#039;s Blog</dc:creator>
		<pubDate>Tue, 03 Aug 2010 11:01:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-372</guid>
		<description>[...] This post from Rapleaf  was an interesting read. [...] </description>
		<content:encoded><![CDATA[<p>[...] This post from Rapleaf  was an interesting read. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ehsanul</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-362</link>
		<dc:creator>ehsanul</dc:creator>
		<pubDate>Fri, 21 Aug 2009 19:36:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-362</guid>
		<description>Bryan, I think there&#039;s a way to fake growing an filter, by automating the processing of creating a new one. I&#039;m not actually quite sure how it works, but check out this Python &quot;scalable bloom filter&quot; library: http://github.com/jaybaird/python-bloomfilter/tree/master

Quote from the readme:


pybloom is a module that includes a Bloom Filter data structure along with
an implmentation of Scalable Bloom Filters as discussed in:

P. Almeida, C.Baquero, N. Preguiça, D. Hutchison, Scalable Bloom Filters,
(GLOBECOM 2007), IEEE, 2007.

Bloom filters are great if you understand what amount of bits you need to set
aside early to store your entire set. Scalable Bloom Filters allow your bloom
filter bits to grow as a function of false positive probability and size.</description>
		<content:encoded><![CDATA[<p>Bryan, I think there&#8217;s a way to fake growing an filter, by automating the processing of creating a new one. I&#8217;m not actually quite sure how it works, but check out this Python &#8220;scalable bloom filter&#8221; library: <a href="http://github.com/jaybaird/python-bloomfilter/tree/master" rel="nofollow">http://github.com/jaybaird/python-bloomfilter/tree/master</a></p>
<p>Quote from the readme:</p>
<p>pybloom is a module that includes a Bloom Filter data structure along with<br />
an implmentation of Scalable Bloom Filters as discussed in:</p>
<p>P. Almeida, C.Baquero, N. Preguiça, D. Hutchison, Scalable Bloom Filters,<br />
(GLOBECOM 2007), IEEE, 2007.</p>
<p>Bloom filters are great if you understand what amount of bits you need to set<br />
aside early to store your entire set. Scalable Bloom Filters allow your bloom<br />
filter bits to grow as a function of false positive probability and size.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bryan</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-352</link>
		<dc:creator>bryan</dc:creator>
		<pubDate>Thu, 09 Jul 2009 15:16:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-352</guid>
		<description>@dkindlund: 
Sadly, there&#039;s no way of growing a bloom filter to a larger size, since you lose the original items and hash values. When your first filter gets too full, you have to make a whole new one. For this reason, I recommend making your filters big enough to accommodate as many items as you could possibly imagine being in the set. This usually doesn&#039;t lead to impossibly large filters and it will save you a real headache down the road.</description>
		<content:encoded><![CDATA[<p>@dkindlund:<br />
Sadly, there&#8217;s no way of growing a bloom filter to a larger size, since you lose the original items and hash values. When your first filter gets too full, you have to make a whole new one. For this reason, I recommend making your filters big enough to accommodate as many items as you could possibly imagine being in the set. This usually doesn&#8217;t lead to impossibly large filters and it will save you a real headache down the road.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dkindlund</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-342</link>
		<dc:creator>dkindlund</dc:creator>
		<pubDate>Thu, 09 Jul 2009 15:03:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-342</guid>
		<description>Hi Bryan,
Since there&#039;s an upper-limit to how many items you can store in an initial BloomFilter, how would you recommend growing the BloomFilter once you&#039;ve exceeded the original size?

Could you create new, larger BloomFilter and then somehow UNION the two so that you don&#039;t lose your history from the first BloomFilter?  Any examples would be helpful.</description>
		<content:encoded><![CDATA[<p>Hi Bryan,<br />
Since there&#8217;s an upper-limit to how many items you can store in an initial BloomFilter, how would you recommend growing the BloomFilter once you&#8217;ve exceeded the original size?</p>
<p>Could you create new, larger BloomFilter and then somehow UNION the two so that you don&#8217;t lose your history from the first BloomFilter?  Any examples would be helpful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bryan</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-332</link>
		<dc:creator>bryan</dc:creator>
		<pubDate>Tue, 08 Jan 2008 17:55:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-332</guid>
		<description>@Dan: Right now I have no plans to make &quot;Internet-serializable&quot; filters, but it would really be a trivial thing to do. My implementation uses a byte array under the hood, so all you&#039;d have to do is base64 each byte in the array. You&#039;re welcome to submit a patch :)</description>
		<content:encoded><![CDATA[<p>@Dan: Right now I have no plans to make &#8220;Internet-serializable&#8221; filters, but it would really be a trivial thing to do. My implementation uses a byte array under the hood, so all you&#8217;d have to do is base64 each byte in the array. You&#8217;re welcome to submit a patch <img src='http://blog.rapleaf.com/dev/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Brickley</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-322</link>
		<dc:creator>Dan Brickley</dc:creator>
		<pubDate>Tue, 08 Jan 2008 16:34:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-322</guid>
		<description>This is great :) I was using the old BloominSimple thing last year. Glad to see something packaged now.

Do you have any plans to make these blooms serializable in an Internet-transport-friendly form, eg. base64? The old LOAF project had something in that vein, see http://loaf.cantbedone.org/download.htm and I&#039;m wondering about including &quot;who my buddies are&quot; blooms in FOAF files if we can figure an encoding, per http://www.perl.com/pub/a/2004/04/08/bloom_filters.html?page=2

Unfortunately bit-level stuff makes my head hurt! I&#039;ll get there eventually but wondered what your plans are...</description>
		<content:encoded><![CDATA[<p>This is great <img src='http://blog.rapleaf.com/dev/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I was using the old BloominSimple thing last year. Glad to see something packaged now.</p>
<p>Do you have any plans to make these blooms serializable in an Internet-transport-friendly form, eg. base64? The old LOAF project had something in that vein, see <a href="http://loaf.cantbedone.org/download.htm" rel="nofollow">http://loaf.cantbedone.org/download.htm</a> and I&#8217;m wondering about including &#8220;who my buddies are&#8221; blooms in FOAF files if we can figure an encoding, per <a href="http://www.perl.com/pub/a/2004/04/08/bloom_filters.html?page=2" rel="nofollow">http://www.perl.com/pub/a/2004/04/08/bloom_filters.html?page=2</a></p>
<p>Unfortunately bit-level stuff makes my head hurt! I&#8217;ll get there eventually but wondered what your plans are&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitter Updates for 2007-11-17 at blogwi.se</title>
		<link>http://blog.rapleaf.com/dev/2007/09/05/bloomfilter/#comment-312</link>
		<dc:creator>Twitter Updates for 2007-11-17 at blogwi.se</dc:creator>
		<pubDate>Sun, 18 Nov 2007 06:44:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.rapleaf.com/dev/?p=6#comment-312</guid>
		<description>[...] Filter for ruby (a gem that is): http://blog.rapleaf.com/dev/?p=6 [...] </description>
		<content:encoded><![CDATA[<p>[...] Filter for ruby (a gem that is): <a href="http://blog.rapleaf.com/dev/?p=6" rel="nofollow">http://blog.rapleaf.com/dev/?p=6</a> [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

