67d8d998076ee0a9c1c33ac8a3ee0eb4556c829b
[ikiwiki.git] / hammer / index.mdwn
1 # The HAMMER Filesystem
2
3 The HAMMER filesystem is a new addition to DragonFly.
4 Being a brand-new filesystem we consider HAMMER to be in an early Beta state
5 as of the 2.0 release, and expect it to become production-ready by the
6 end of 2008.  All major features except the mirroring are quite well tested
7 as-of the release.  The mirroring was the last big-ticket item to go in
8 prior to the 2.0 release and should be considered more in a late-alpha light.
9
10 Now that it has been released, HAMMER is going to be given some settling
11 time through the end of 2008.  We will be testing the waters on porting
12 interest and making adjustments to the source files to support that work,
13 mainly by wrapping the DragonFly-specific calls and globals used by the 
14 filesystem into more OS-specific files and leaving as much of the meat of
15 the filesystem as possible as machine-independent code.
16
17 If you are interesting in porting HAMMER to another OS, please drop me (Matthew Dillon)
18 a line at **dillon at backplane.com**.
19 I will be creating a new DragonFly
20 mailing list specifically for HAMMER porting as well as a git or
21 mercurial repository (I haven't decided which yet) separate from the
22 DragonFly repository.
23
24 I can't stress enough that HAMMER is designed for large storage media.
25 The minimum I would be comfortable with would be around a 40G partition,
26 though I often create smaller partitions for testing purposes.
27 HAMMER can address up to 1-Exabyte of space and the use target is really
28 designed for 500G and up.  What does this mean for people who want to
29 use HAMMER on a smaller partition?  Well, there are two issues.  First,
30 the filesystem needs to reserve several hundred megabytes of media space
31 to serve as buffer space for the reblocker.  If you create a small
32 filesystem the space efficiency is not going to be all that good.  More
33 importantly, HAMMER recovers space via pruning and reblocking cron jobs
34 which early adopters must set up manually and are intended to run a few
35 minutes every night to incrementally clean up the filesystem.  You don't
36 get instant gratification when you 'rm' something, so if the filesystem
37 is too small normal use may run you out of space before the pruning and
38 reblocking can catch up.
39
40 If you remember only two things about this filesystem, the first should
41 be the large-media nature of the filesystem's management functions, and
42 the second should be the historical data retention.  Most systems sync
43 their mounts every 30-60 seconds.  For HAMMER this means that you effectively
44 get a snapshot every 30-60 seconds.  The filesystem's fine-grained nature
45 shows up when you use the <strong>hammer</strong> or <strong>undo</strong>
46 commands to sift through the history, but the absolute best way to utilize
47 the fine-grained nature of the filesystem is to create a cron job 
48 which creates a snapshot softlink at the desired interval, for example
49 once an hour, using the <strong>hammer snapshot</strong> command.
50 Creating an actual softlink via this command guarantees you a consistent
51 view of the filesystem state.
52
53
54 ## Documentation:
55 <table width="100%" cellpadding="3" cellspacing="0" border="1"
56 style="border-style: flat; border-collapse: collapse; border-color: #BEBEBE;">
57 <tr bgcolor="#ffcc00">
58 <th>Document</th><th>Description</th>
59 </tr>
60
61 <tr>
62 <td valign="top"><a href="http://leaf.dragonflybsd.org/cgi/web-man?command=hammer&section=5">hammer(5)</a></td>
63 <td valign="top">Hammer starter manual page</td>
64
65 </tr>
66
67 <tr>
68 <td valign="top"><a href="http://leaf.dragonflybsd.org/cgi/web-man?command=hammer&section=8">hammer(8)</a></td>
69 <td valign="top">Hammer utility manual page</td>
70 </tr>
71
72 <tr>
73 <td valign="top"><a href="hammer.pdf">hammer.pdf</a></td>
74 <td valign="top">Hammer major feature document</td>
75 </tr>
76
77 <tr>
78
79 <td valign="top"><a href="/presentations/nycbsdcon08/index.html">NYCBSDCon</a></td>
80 <td valign="top">Slideshow from NYCBSDCon 11 Oct 2008</td>
81 </tr>
82
83 </table>
84