
The servers communicate via internal RPCs when necessary.
Metadata server: Maintains database of users, namespaces, and of course SFJ. No knowledge of users/files/how those blocks fit together. Block data server: Maintains a key-value store of hash to encrypted contents. There are two types of servers relevant to this discussion: Journal ID (JID): Monotonically increasing within a namespace.
It is an append-only record where each row represents a particular version of a file.
This is our big metadata database which represents our file system! Note that it doesn’t contain file contents, just blocklists.