Questions on HAMMER2 current details and implementation

Justin Sherrill justin at
Mon Sep 19 18:39:21 PDT 2022

That PFS you have linked is not the PFS you think it is.  PFS in this case
stands for pseudo file system, if I remember correctly.  The design
document may help you:

Or the man page:

On Mon, Sep 19, 2022 at 8:00 PM HolyTaint <holytaint at> wrote:

> As far as I understood, HAMMER2 is a composite filesystem and files are
> organized in separated PFS filesystems which differ a bit from the original
> implementation described in
> The only modification I grasped is the inode tree being modified for
> accomodating segments of the main radix tree, but I still miss some
> informations.
> I tried to infer some theories on these questions:
> * How are snapshots made? Is it safe to assume that snapshots are actually
> a collection of links to PFS filesystems and that's the reason why they are
> modifiable?
> * How does HAMMER2 avoid the need of a journal and support an undo
> feature? Does it use CoW on EVERYTHING?
> I totally have no clue on these questions instead:
> * Do the individual PFS file systems have fixed spaces or do they increase
> according to the load? Does their fixed/maximum space occupied on the disk
> coincide with the original implementation referred in the wikipedia article?
> * How does HAMMER2 achieve deduplication and compression across chunks on
> the multiple PFS volumes present while ALSO mantaining the premise of
> separating them and allowing async operations on them? How much are the PFS
> volumes isolated between themselves? Do they have an individual freemap or
> do they share a collective freemap for every storage device?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Hammer mailing list