Re: Questions on HAMMER2 current details and implementation

Justin Sherrill <[email protected]> Mon, 19 Sep 2022 21:39:21 -0400
Newsgroups gmane.os.dragonfly-bsd.kernel
Message-ID <CA+YR8=2a82YaVXtQkEcrdPL5=o7pF84dk4++azbkzqZMk6Uw9w@mail.gmail.com>
--000000000000e64cc705e911e799
Content-Type: text/plain; charset="UTF-8"

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:

http://apollo.backplane.com/DFlyMisc/hammer2.txt

Or the man page:

https://man.dragonflybsd.org/?command=hammer2&section=ANY


On Mon, Sep 19, 2022 at 8:00 PM HolyTaint <[email protected]> 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
> https://en.wikipedia.org/wiki/Professional_File_System
> 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?
>

--000000000000e64cc705e911e799
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">That PFS you have linked is not the PFS you think it is.=
=C2=A0 PFS in this case stands for pseudo file system, if I remember correc=
tly.=C2=A0 The design document may help you:<div><br></div><div><a href=3D"=
http://apollo.backplane.com/DFlyMisc/hammer2.txt">http://apollo.backplane.c=
om/DFlyMisc/hammer2.txt</a><br></div><div><br></div><div>Or the man page:=
=C2=A0</div><div><br></div><div><a href=3D"https://man.dragonflybsd.org/?co=
mmand=3Dhammer2&amp;section=3DANY">https://man.dragonflybsd.org/?command=3D=
hammer2&amp;section=3DANY</a><br></div><div><br></div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Sep 19, 2022=
 at 8:00 PM HolyTaint &lt;<a href=3D"mailto:[email protected]">holytain=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi=
ng-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 th=
e original implementation described in <a href=3D"https://en.wikipedia.org/=
wiki/Professional_File_System" rel=3D"noreferrer" target=3D"_blank">https:/=
/en.wikipedia.org/wiki/Professional_File_System</a><br>
The only modification I grasped is the inode tree being modified for accomo=
dating 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&#39;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 t=
he multiple PFS volumes present while ALSO mantaining the premise of separa=
ting them and allowing async operations on them? How much are the PFS volum=
es isolated between themselves? Do they have an individual freemap or do th=
ey share a collective freemap for every storage device?<br>
</blockquote></div>

--000000000000e64cc705e911e799--