I have some questions regarding the internals of LakeFS
1. I see that creating a branch does not perform data duplication but is a mutable pointer to the commit that the branch is based out of, and is a metadata operation. I have a general understanding of the
versioning internals but am confused as to how these changes are stored in the metadata. Is it similar to Git by doing delta compression. I have relatively basic understanding of how the git storage system works which may be the cause of my confusion for which I apologize in advance.
2. On my object store, I see that files names are a random string. I'm assuming this is a type of representation of my file and am confused as to what this represents and how it relates to the physical path as objects in the physical are never modified.
3. How are file differences stored and retrieved when switching between branches.
4. When committing, I can add a metadata key-value pair to the commit. How can this functionality help with tracking commit changes and/or grouping a certain subset of commits together?