You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 22, 2020. It is now read-only.
Right now, there's a separate INode store. I did that early on so that I could think about other abstractions, but it's time to centralize the storage.
My proposal is this: INodes consist of blocks, with special BlockRefs.
What's special about them? Well, BlockRefs would have a type now. We can steal a few bits (I'm thinking 16 from volume, meaning 64k potential blocktypes and 2^48 or 2.8e14 different volumes -- which is still plenty). The INode abstraction translates *model.INodes into blockns and back again.
This simplifies all the steps greatly (no second store) and has another advantage: The ring becomes even more the source of truth. If you want to modify how INodes are replicated, that's a change to the ring.
This has an added advantage: new and different blocktypes can now be known to the ring. For instance, it's probably unwise to keep Reed-Solomon blocks on all the same hosts as their original blocks (or probabalistically so). Or maybe you want to keep them on the same rack or whatever.
Let's simplify:
Right now, there's a separate INode store. I did that early on so that I could think about other abstractions, but it's time to centralize the storage.
My proposal is this: INodes consist of blocks, with special BlockRefs.
What's special about them? Well, BlockRefs would have a type now. We can steal a few bits (I'm thinking 16 from volume, meaning 64k potential blocktypes and 2^48 or 2.8e14 different volumes -- which is still plenty). The INode abstraction translates *model.INodes into blockns and back again.
This simplifies all the steps greatly (no second store) and has another advantage: The ring becomes even more the source of truth. If you want to modify how INodes are replicated, that's a change to the ring.
This has an added advantage: new and different blocktypes can now be known to the ring. For instance, it's probably unwise to keep Reed-Solomon blocks on all the same hosts as their original blocks (or probabalistically so). Or maybe you want to keep them on the same rack or whatever.
So too with alternate replication strategies.
And this simplifies RPCs; it's just blocks.
This also obviates #63.
The text was updated successfully, but these errors were encountered: