Dear Stratis Mailing List Team,
Hello! I am interested in learning about Stratis's Incremental Approach Technology and how it further advances incremental backup approaches in previous filesystems like Btrfs. According to the Reddit AMA, the Stratis Lead Developer said the following:
Stratis takes a more incremental approach on how to provide new features like CoW, snapshots, integrity, etc. These capabilities already exist in a "bag of parts" sort of way on Linux via its device-mapper (DM) subsystem. Linux already has existing great (traditional-style) filesystems like XFS. Stratis configures these existing components in a layered fashion. This makes its development easier: we already have a filesystem layer, a CoW layer, an integrity layer, a RAID layer. Instead of creating this functionality, the work becomes managing these layers on behalf of the user, so that they function as a unified whole. The downside is that Stratis misses some opportunities made possible by an integrated approach https://blogs.oracle.com/bonwick/rampant-layering-violation.
Since I am new to filesystems and incremental backup approaches, what resources (e.g. books; websites; tutorial blogs) would the Stratis Development Team recommend to young developers that intend to learn how to update and improve such filesystem and backup techniques?
I am especially interested in learning about the data structures and algorithms Stratis uses.
For instance, the Stratis whitepaper says the following:
"...The thinpool device implements a copy-on-write (CoW) algorithm, so that blocks in thedata device are only allocated as needed to back the thin volumes created from the thinpool..."
What data structure is used while executing Stratis's implementation of its CoW algorithm? I thank the Stratis development team for sending any responses back to me.
Sincerely,
Tanveer Salim