<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.kerneltrap.org"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>KernelTrap - DragonFlyBSD</title>
 <link>http://www.kerneltrap.org/taxonomy/term/383/0</link>
 <description></description>
 <language>en-local</language>
<item>
 <title>Quote: No Known Bugs</title>
 <link>http://www.kerneltrap.org/Quote/No_Known_Bugs</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;As of now there are no known bugs, though I&#039;m sure that will change as more DragonFly users start using the filesystem :-)&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;</description>
 <comments>http://www.kerneltrap.org/Quote/No_Known_Bugs#comments</comments>
 <category domain="http://www.kerneltrap.org/bugs">bugs</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/quote">quote</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1251">dragonflybsd-kernel</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1185">Matthew Dillon</category>
 <pubDate>Sat, 09 Aug 2008 17:37:17 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16480 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Comparing HAMMER And Tux3</title>
 <link>http://www.kerneltrap.org/Linux/Comparing_HAMMER_And_Tux3</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;The big advantage Hammer has over Tux3 is, it is up and running and released in the Dragonfly distro,&lt;/i&gt;&quot; began Daniel Phillips, offering a comparison between the two filesystem.  He continued, &quot;&lt;i&gt;the biggest disadvantage is, it runs on BSD, not Linux, and it so heavily implements functionality that is provided by the VFS and block layer in Linux that a port would be far from trivial.  It will likely happen eventually, but probably in about the same timeframe that we can get Tux3 up and stable.&lt;/i&gt;&quot;  This led into a lengthy and interesting technical discussion between Daniel and HAMMER author Matthew Dillon, comparing the design of the two filesystems.  &lt;/p&gt;
&lt;p&gt;Matthew reviewed the Tux3 notes and replied, &quot;&lt;i&gt;it sounds like Tux3 is using many similar ideas [as HAMMER].  I think you are on the right track.  I will add one big note of caution, drawing from my experience implementing HAMMER, because I think you are going to hit a lot of the same issues. I spent 9 months designing HAMMER and 9 months implementing it.  During the course of implementing it I wound up throwing away probably 80% of the original design outright.&lt;/i&gt;&quot;  Daniel noted that he&#039;s been working on the Tux3 design for around ten years, &quot;&lt;i&gt;and working seriously on the simplifying elements for the last three years or so, either entirely on paper or in related work like ddsnap and LVM3.&lt;/i&gt;&quot;  Matthew cautioned, &quot;&lt;i&gt;I can tell you&#039;ve been thinking about Tux for a long time.  If I had one worry about your proposed implementation it would be in the area of algorithmic complexity.  You have to deal with the in-memory cache, the log, the B-Tree, plus secondary indexing for snapshotted elements and a ton of special cases all over the place.  Your general lookup code is going to be very, very complex.  My original design for HAMMER was a lot more complex (if you can believe it!) then the end result.  A good chunk of what I had to do going from concept to reality was deflate a lot of that complexity.&lt;/i&gt;&quot;  The friendly conversation offers a very detailed look at the design choices made in each of these file systems.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/Comparing_HAMMER_And_Tux3&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/Comparing_HAMMER_And_Tux3#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/930">Daniel Phillips</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1303">Tux3</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Thu, 07 Aug 2008 15:25:34 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16477 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>DragonFly BSD 2.0, HAMMER Filesystem</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/2.0_HAMMER_Filesystem</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;Hurrah!  2.0 has been released!&lt;/i&gt;&quot; said Matthew Dillon, &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/7/21/2612824&quot;&gt;announcing the eighth major release of DragonFly BSD&lt;/a&gt;.  This release is the first to include &lt;a href=&quot;http://kerneltrap.org/hammer&quot;&gt;HAMMER&lt;/a&gt;, a new clustering filesystem that already boasts an impressive list of features, including: &quot;&lt;i&gt;crash recovery on-mount, no fsck; fine-grained snapshots, snapshot management, snapshot-support for filesystem-wide data integrity checks; historically accessible by default; mirroring: queueless incremental mirroring, master to multi-slave; undo and rollback; reblocking; multi-volume, maximum storage capacity of 1-Exabyte.&lt;/i&gt;&quot;  Other highlighted changes in this release include, &quot;&lt;i&gt;native fairq-queue implementation using ALTQ, for PF&lt;/i&gt;&quot;, and &quot;&lt;i&gt;native connection state recovery to PF, so router reboots do not drop active TCP connections.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;The latest version of DragonFly BSD can be downloaded from &lt;a href=&quot;http://www.dragonflybsd.org/community/download.shtml&quot;&gt;a mirror&lt;/a&gt;. The download page explains:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;DragonFly CDs are &#039;live&#039;, which means that the CD will boot your system and let you log in as root (no password). You can use this feature to check for hardware compatibility and play with DragonFly a little before actually installing it on your hard drive.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/2.0_HAMMER_Filesystem&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/2.0_HAMMER_Filesystem#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/476">2.0</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/release">release</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Tue, 22 Jul 2008 01:48:18 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16415 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Quote: Haphazard Mathematical Algorithms</title>
 <link>http://www.kerneltrap.org/Quote/Haphazard_Mathematical_Algorithms</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;I wasn&#039;t even trying to invent a new protocol or anything, I was simply fixing the haphazard mathematical algorithms the clearly non-mathematically-oriented programmers built into those crufty clients.&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;</description>
 <comments>http://www.kerneltrap.org/Quote/Haphazard_Mathematical_Algorithms#comments</comments>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/quote">quote</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1251">dragonflybsd-kernel</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1185">Matthew Dillon</category>
 <pubDate>Tue, 22 Jul 2008 01:29:44 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16414 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>HAMMER Performance and Mirroring</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Matthew Dillon continues to make significant progress on his HAMMER clustering filesystem for DragonFly BSD.  He labeled the latest release 56c, noting that it, &quot;&lt;i&gt;represents an additional significant improvement in performance, [also including] bug fixes and most of the final media changes.&lt;/i&gt;&quot;  A significant improvement in write performance was obtained by making the filesystem block size automatically increase from 16K to 64K when a file grows to larger than 1 MB.  One remaining media change is required to optimize mtime and atime storage, at which point HAMMER will go into testing and bug fixing mode.  Matt noted, &quot;&lt;i&gt;HAMMER&#039;s performance is extremely good now, and its system cpu overhead has dropped to roughly the same that we get from UFS&lt;/i&gt;&quot;, adding, &quot;&lt;i&gt;HAMMER is now able to sustain full disk bandwidth for bulk reads and writes.  HAMMER continues to have far superior random-write performance, whether the system caches are blown out or not.&lt;/i&gt;&quot;  Discussing future plans for the filesystem, Matt noted, &quot;&lt;i&gt;I could go on and on, there&#039;s so much that can be done with this filesytem :-)&lt;/i&gt;&quot;  Regarding one of these plans, he offered:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I am not going to promise it, but there is a slight chance I will be able to get mirroring working by the release.  I figured out how to do it, finally.  Basically the solution is to add another field to the B-Tree&#039;s internal elements... the &#039;most recent&#039; transaction id, and to propogate it up all the way to the root of the tree.  The mirroring code can then optimally scan the B-Tree and pick out all records that have changed relative to some transaction id, allowing it to quickly &#039;pick up&#039; where it left off and construct a record-level mirror over a fully asynchronous link, without any queueing.  You can&#039;t get much better then that, frankly. &quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1131">b-tree</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Fri, 20 Jun 2008 15:28:11 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16325 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>HAMMER&#039;s B+Tree Implementation</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/HAMMERs_BTree_Implementation</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;HAMMER makes no modifications to the B-Tree whatsoever on the front-end.  When you create, delete, rename, write, etc...  when you do those operations HAMMER caches them in a virtualization layer in memory and doesn&#039;t make any modifications to its on-media data structures (or their in-memory representations) at all until the meta-data is synced to disk,&lt;/i&gt;&quot; DragonFly BSD creator Matthew Dillon explained, comparing HAMMER, his clustering filesystem, to a wiki summary of Reiser4&#039;s implementations.  He continued:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;HAMMER uses a modified B+Tree for its on-disk representation, which is a B-Tree with only keys at internal nodes and only records at the leafs. This was done to reduce structural bloat, allow for a leaf-&amp;gt;leaf linking optimization in the future, and for other reasons.  [...] HAMMER&#039;s internal nodes have a left and right bounding element.  A standard B+Tree only has a left bounding element.  By adding a right bounding element HAMMER can cache pointers into its B+Tree and &#039;pick up&#039; searches, insertions, and deletions relative to the cached pointers instead of having to start at the root of the tree.  More importantly, it can pickup searches, insertions, and deletions at internal nodes, not just leaf nodes.  So I can cache a proximity pointer and if I do a good job I never have to traverse the B+Tree above that point.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/HAMMERs_BTree_Implementation&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/HAMMERs_BTree_Implementation#comments</comments>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/reiser4">reiser4</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Wed, 18 Jun 2008 02:52:03 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16307 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Improving HAMMER Performance</title>
 <link>http://www.kerneltrap.org/DragonFylBSD/Improving_HAMMER_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;After another round of performance tuning HAMMER all my benchmarks show HAMMER within 10% of UFS&#039;s performance, and it beats the shit out of UFS in certain tests such as file creation and random write performance,&lt;/i&gt;&quot; noted DragonFly BSD creator Matthew Dillon, &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/6/12/2100484&quot;&gt;providing an update on his new clustering filesystem&lt;/a&gt;.  He continued, &quot;&lt;i&gt;read performance is good but drops more then UFS under heavy write loads (but write performance is much better at the same time).&lt;/i&gt;&quot;  He then referred to the &lt;a href=&quot;http://www.pureftpd.org/project/blogbench&quot;&gt;blogbench&lt;/a&gt; benchmark noting, &quot;&lt;i&gt;now when UFS gets past blog #300 and blows out the system caches, UFS&#039;s write performance goes completely to hell but it is able to maintain good read performance.&lt;/i&gt;&quot;  Matthew then compared this to HAMMER:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;HAMMER is the opposite.  It can maintain fairly good write performance long after the system caches have been blown out, but read performance drops to about the same as its write performance (remember, this is blogbench doing reads from random files).  Here HAMMER&#039;s read performance drops significantly but it is able to maintain write performance. UFS&#039;s write performance basically comes to a dead halt.  However, HAMMER&#039;s performance numbers become &#039;unstable&#039; once the system caches are blown out.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- googl