jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jackrabbit Wiki] Update of "Composite Blob Store" by MattRyan
Date Tue, 25 Jul 2017 00:26:36 GMT
Dear Wiki user,

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

The "Composite Blob Store" page has been changed by MattRyan:

New page:
= Composite Blob Store =

NOTE:  The current status of this component is a '''proposed feature'''.

== Overview ==
The composite 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 composite blob store, every item stored
has exactly one correct delegate where it can be stored.  Configuration specifies which delegate
blob stores comprise the composite blob store.  Configuration also indicates the criteria
that are evaluated by the composite blob store to determine the proper location for a blob.
 These rules are always applied in a consistent order.  In the case of conflicting rules where
there are multiple matches, the first matching rule is the one applied.

Thus by applying the rules consistently every time, the composite blob store always knows
the correct delegate to choose for reads or writes.  Since there is always exactly one correct
location for a blob, it should not be the case that the same blob is located in more than
one delegate blob store.

A correctly configured composite blob store must have exactly one delegate blob store that
is configured as the default blob store.  Any blobs that do not match any of the rules will
map to the default blob store.

Rules operate on any combination of the following:
 * JCR path
 * JCR node type
 * Existence of JCR property
 * JCR property value

== Comparison to Overlay Blob Store ==
The composite data store is similar in concept to [[Overlay Blob Store]].  Like the overlay
blob store, it presents a single, unified logical view that combines all of the data represented
by the delegate blob stores.  The composite is different in that every delegate contains distinct
data.  In other words, for any two delegate blob stores ''A'' and ''B'' that are both delegates
of the same composite blob store, the intersection of ''A'' and ''B'' must be the empty set
{}, whereas for an overlay data store such an intersection may or may not be the empty set

=== Reads ===
The composite blob store fulfills read requests by evaluating the blob and its associated
information (JCR path, JCR node type, JCR properties, JCR property values) with the configuration
rules, and thereby determining the correct delegate blob store for the blob.  The read is
issued to the delegate and the result of the read is returned as the result of the composite
blob store read and no subsequent reads are attempted for that request.

=== Writes ===
The composite blob store fulfills write requests by evaluating the blob the same way as is
done for reads.  And the same as is done for reads, writes are issued to the selected delegate
and the result of the write is returned as the result of the composite blob store write and
no subsequent writes are attempted for that request.

View raw message