Global data store for binaries
------------------------------
Key: JCR-926
URL: https://issues.apache.org/jira/browse/JCR-926
Project: Jackrabbit
Issue Type: New Feature
Components: core
Reporter: Jukka Zitting
There are three main problems with the way Jackrabbit currently handles large
binary values:
1) Persisting a large binary value blocks access to the persistence layer for
extended amounts of time (see JCR-314)
2) At least two copies of binary streams are made when saving them through the
JCR API: one in the transient space, and one when persisting the value
3) Versioining and copy operations on nodes or subtrees that contain large
binary values can quickly end up consuming excessive amounts of storage space.
To solve these issues (and to get other nice benefits), I propose that we
implement a global "data store" concept in the repository. A data store is an
append-only set of binary values that uses short identifiers to identify and
access the stored binary values. The data store would trivially fit the
requirements of transient space and transaction handling due to the append-only
nature. An explicit mark-and-sweep garbage collection process could be added to
avoid concerns about storing garbage values.
See the recent NGP value record discussion, especially [1], for more background
on this idea.
[1] http://mail-archives.apache.org/mod_mbox/jackrabbit-dev/200705.mbox/[EMAIL
PROTECTED]
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.