Hi oak-dev,

I’ve written up some proposals on the wiki for blob stores that can
reference multiple blob storage locations.

Both act as a single logical blob store to Oak and can be treated as a
single blob store.  Both have at least two “delegate” blob stores managed
by the primary blob store.

There are two concepts.  One I’m currently calling the Overlay blob store
(we haven’t voted on this name yet).  In this case, delegates are
configured with a preferred order of lookup.  When a read is issued, the
overlay blob store will attempt to satisfy the read by going through the
delegates in order until one can satisfy the read.  [0]

The second concept is the Composite blob store that was previously
discussed on-list.  In this case, delegates are configured with rules
specifying which blobs belong in which delegate, with exactly one delegate
being specified as the default.  There is only ever exactly one correct
location for a blob in a composite blob store.  When a read is issued, the
composite blob store will evaluate the rules to determine which delegate
should be able to satisfy the request, and then read from that delegate
only, or fail if it is not found in the delegate.  [1]

As I thought about all the use cases, these two concepts kind of stood out
in contrast to each other so I thought I would propose that we formalize
the two as separate but similar concepts.

I would appreciate feedback and discussion on how we can make these useful
for future Oak versions.  Thanks!


-MR


[0] - https://wiki.apache.org/jackrabbit/Overlay%20Blob%20Store
[1] - https://wiki.apache.org/jackrabbit/Composite%20Blob%20Store

Reply via email to