jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller" <thomas.tom.muel...@gmail.com>
Subject Re: [jira] Resolved: (JCR-926) Global data store for binaries
Date Fri, 19 Oct 2007 14:06:39 GMT

> It's a long procedure. So there are many possible points of failure.

Yes, it would be great if this can be simplified. It is the same
algorithm used in the FileDataStore: 1) create a temp file, 2) insert
the data, 3) try to rename it. It may be a good idea to wrap this in a
transaction, otherwise it could theoretically leak a temporary file if
there is a problem (connection lost after 1 and before 3). Also,
instead of the 'random number' at step 1 it may be better to use a
database side sequence (autoincrement) if possible, but that would
make it more database dependent.

> the uploaded code has a working version of a GC that collects on repository startup.

Yes, I saw that. I think it feels a bit strange having to change the
repository.xml to run the garbage collection (and then back).
Jackrabbit does not yet have a 'management API', maybe supporting JMX
would be a better option (not only for data store)...

> mark the nodes of all the workspaces, and then do a single delete
> operation for the entire data store
> I don't know if this was always your idea

Yes, that was the idea. Theoretically, multiple repositories could use
the same data store. Therefore, there must be a way to run the the
mark and the delete step separately.

> who has the hard reference to the data identifier

The chain is:
PropertyImpl -> InternalValue -> BLOBInDataStore -> DataIdentifier


View raw message