You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by Apache Wiki <wi...@apache.org> on 2017/07/24 23:51:08 UTC

[Jackrabbit Wiki] Update of "Overlay Blob Store" by MattRyan

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jackrabbit Wiki" for change notification.

The "Overlay Blob Store" page has been changed by MattRyan:
https://wiki.apache.org/jackrabbit/Overlay%20Blob%20Store

New page:
= Overlay Blob Store =

== Overview ==
The overlay blob store is a multi-source blob store - a logical blob store consisting of at least two delegate blob stores.  In the case of the overlay blob store, the union of all the data in all the delegate blob stores is presented to a user of the overlay blob store as a single logical "view" of the data being stored.

Example:

'''Delegate Blob Store A'''
 * FileA
 * FileC
 * FileE

'''Delegate Blob Store B'''
 * FileB
 * FileE
 * FileF
 * FileG

'''Overlay Blob Store View'''
 * FileA
 * FileB
 * FileC
 * FileE
 * FileF
 * FileG

The delegates for the overlay blob store are specified in configuration.  Part of the configuration must include an indication of the priority of each delegate blob store.  Reads and writes will be attempted in the order specified by the priority.

=== Reads ===
The overlay blob store fulfills read requests by attempting to satisfy the read request from each delegate.  The read is issued to each delegate in priority order.  Once a read is successfully satisfied by a delegate, the result of the delegate read is returned as the result of the overlay blob store read and no subsequent reads are attempted for that request.  It is possible for a blob to exist in more than one delegate.

=== Writes ===
The overlay blob store fulfills write requests by attempting to write to each delegate in priority order.  Once a write is successfully satisfied by a delegate, the result of the delegate write is returned as the result of the overlay blob store write and no subsequent writes are attempted for that request.

=== Read-Only Delegates ===
The overlay blob store supports the notion of a read-only delegate blob store.  One or more of the delegate blob stores can be configured in read-only mode, meaning that it can be used to satisfy read requests but not write requests.  An example use case for this scenario is where two content repositories are used, one for a production environment and one for a staging environment.  The staging repository can be configured with an overlay blob store that accesses to the production storage location in read-only mode, so tests can execute in staging using production data without modifying production data or the production store.

Reads issued to a read-only delegate would be processed as normal.  Writes issued to a read-only delegate would fail, causing the overlay blob store to move on to the next delegate to attempt to fulfill the write request.

Note that configuring all delegates of an overlay blob store would make the blob store useless for storing blobs and thus should not be an allowed condition - at least one delegate blob store must not be a read-only delegate.