<?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: Abusing Solaris attempt #2: stressing out ZFS, PART2</title>
	<atom:link href="http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/</link>
	<description>Faith, Solaris, and Chicken Korma, by Anton Parol</description>
	<lastBuildDate>Mon, 20 Jun 2011 20:37:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: parolski.com &#187; Blog Archive &#187; Abusing Solaris with style</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-67</link>
		<dc:creator>parolski.com &#187; Blog Archive &#187; Abusing Solaris with style</dc:creator>
		<pubDate>Sat, 19 Apr 2008 01:20:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-67</guid>
		<description>[...] Solaris to goo with destructive commands is something I&#8217;ve been enjoying for a while now, so its great to see someone add cash to the equation and take the next step in [...]</description>
		<content:encoded><![CDATA[<p>[...] Solaris to goo with destructive commands is something I&#8217;ve been enjoying for a while now, so its great to see someone add cash to the equation and take the next step in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anton Parol</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-41</link>
		<dc:creator>Anton Parol</dc:creator>
		<pubDate>Mon, 24 Mar 2008 21:32:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-41</guid>
		<description>Mark, is that a minimum overhead? i.e. is that the least that ZFS has to take in order to work?
Something that gets me interested is how much space do null block pointers take up, i.e. the pointer itself!</description>
		<content:encoded><![CDATA[<p>Mark, is that a minimum overhead? i.e. is that the least that ZFS has to take in order to work?<br />
Something that gets me interested is how much space do null block pointers take up, i.e. the pointer itself!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark J Musante</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-40</link>
		<dc:creator>Mark J Musante</dc:creator>
		<pubDate>Mon, 24 Mar 2008 02:46:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-40</guid>
		<description>Of course you&#039;ll get a better ratio compressing 1&#039;s than compressing 0&#039;s, because obviously 1&#039;s are bigger than 0&#039;s!

Seriously, though, the reason you only got around 64mb in your mirror pool of 100mb files is that ZFS uses around 32mb of overhead.  In proper pools, you won&#039;t miss it.  But in such a tiny pool as crazedPool, it&#039;s a bit more obvious.</description>
		<content:encoded><![CDATA[<p>Of course you&#8217;ll get a better ratio compressing 1&#8242;s than compressing 0&#8242;s, because obviously 1&#8242;s are bigger than 0&#8242;s!</p>
<p>Seriously, though, the reason you only got around 64mb in your mirror pool of 100mb files is that ZFS uses around 32mb of overhead.  In proper pools, you won&#8217;t miss it.  But in such a tiny pool as crazedPool, it&#8217;s a bit more obvious.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Bonwick</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-33</link>
		<dc:creator>Jeff Bonwick</dc:creator>
		<pubDate>Tue, 18 Mar 2008 10:19:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-33</guid>
		<description>Simple: when you ask to read some block of a file, if the pointer to that block is a null pointer, that means it&#039;s a hole, so we just return a buffer full of zeroes.  Any filesystem that supports holey files does more or less the same thing; the only thing that&#039;s different about ZFS is that when compression is enabled, we deliberately convert runs of zeroes into holes.</description>
		<content:encoded><![CDATA[<p>Simple: when you ask to read some block of a file, if the pointer to that block is a null pointer, that means it&#8217;s a hole, so we just return a buffer full of zeroes.  Any filesystem that supports holey files does more or less the same thing; the only thing that&#8217;s different about ZFS is that when compression is enabled, we deliberately convert runs of zeroes into holes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anton Parol</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-29</link>
		<dc:creator>Anton Parol</dc:creator>
		<pubDate>Mon, 17 Mar 2008 21:37:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-29</guid>
		<description>Ah ha! So the next test should fill the files with all 1&#039;s instead, and the compression ratio will go up!! Makes alot of sense. But Jeff, when going from a ZFS filesystem to UFS (i.e. not compressed), how does it know to make a block pointer to re-create all those zeros?

/me open up opensolaris.org and tries to make sense of c code!
Ant</description>
		<content:encoded><![CDATA[<p>Ah ha! So the next test should fill the files with all 1&#8242;s instead, and the compression ratio will go up!! Makes alot of sense. But Jeff, when going from a ZFS filesystem to UFS (i.e. not compressed), how does it know to make a block pointer to re-create all those zeros?</p>
<p>/me open up opensolaris.org and tries to make sense of c code!<br />
Ant</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rishi</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-28</link>
		<dc:creator>Rishi</dc:creator>
		<pubDate>Sun, 16 Mar 2008 12:03:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-28</guid>
		<description>Keep on going, and the chances are that you will stumble on something, perhaps when you are least expecting it.  I never heard of anyone ever stumbling on something sitting down ;-)</description>
		<content:encoded><![CDATA[<p>Keep on going, and the chances are that you will stumble on something, perhaps when you are least expecting it.  I never heard of anyone ever stumbling on something sitting down <img src='http://www.parolski.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Bonwick</title>
		<link>http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/comment-page-1/#comment-27</link>
		<dc:creator>Jeff Bonwick</dc:creator>
		<pubDate>Sun, 16 Mar 2008 08:06:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.parolski.com/2008/03/15/abusing-solaris-attempt-2-stressing-out-zfs-part2/#comment-27</guid>
		<description>Yep, this is an artifact of the implementation.  When you enable compression, the first thing we do is scan the block to see if it&#039;s all zeroes.  If so, we simply discard the block and mark it as a hole in the block tree.  So a compressed block of zeroes consumes no space.  However, because it has no associated block pointer, it doesn&#039;t enter either the numerator or the denominator of the compression ratio.  You will see, however, if you run du -sh on the file, that it consumes zero bytes.

We considered addressing this by distinguishing between a true hole and a block of zeroes by using a special block pointer value, but doing so would just complicate the code without solving any real problem... so we erred on the side of simplicity.</description>
		<content:encoded><![CDATA[<p>Yep, this is an artifact of the implementation.  When you enable compression, the first thing we do is scan the block to see if it&#8217;s all zeroes.  If so, we simply discard the block and mark it as a hole in the block tree.  So a compressed block of zeroes consumes no space.  However, because it has no associated block pointer, it doesn&#8217;t enter either the numerator or the denominator of the compression ratio.  You will see, however, if you run du -sh on the file, that it consumes zero bytes.</p>
<p>We considered addressing this by distinguishing between a true hole and a block of zeroes by using a special block pointer value, but doing so would just complicate the code without solving any real problem&#8230; so we erred on the side of simplicity.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

