<div dir="ltr">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:<div><br></div><div><a href="http://apollo.backplane.com/DFlyMisc/hammer2.txt">http://apollo.backplane.com/DFlyMisc/hammer2.txt</a><br></div><div><br></div><div>Or the man page: </div><div><br></div><div><a href="https://man.dragonflybsd.org/?command=hammer2&section=ANY">https://man.dragonflybsd.org/?command=hammer2&section=ANY</a><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 19, 2022 at 8:00 PM HolyTaint <<a href="mailto:holytaint@disroot.org">holytaint@disroot.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">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 <a href="https://en.wikipedia.org/wiki/Professional_File_System" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Professional_File_System</a><br>
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.<br>
I tried to infer some theories on these questions:<br>
<br>
* 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?<br>
* How does HAMMER2 avoid the need of a journal and support an undo feature? Does it use CoW on EVERYTHING?<br>
<br>
I totally have no clue on these questions instead:<br>
<br>
* 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?<br>
* 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?<br>
</blockquote></div>