You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Alexander Dutton (JIRA)" <ji...@apache.org> on 2014/01/28 14:31:39 UTC

[jira] [Created] (JENA-629) Support on-line rebuilds of a TDB store

Alexander Dutton created JENA-629:
-------------------------------------

             Summary: Support on-line rebuilds of a TDB store
                 Key: JENA-629
                 URL: https://issues.apache.org/jira/browse/JENA-629
             Project: Apache Jena
          Issue Type: New Feature
          Components: TDB
            Reporter: Alexander Dutton


TDB should occasionally sync its data into a fresh store and then transparently swap over to the new store. This would mean that stores with a lot of churn don't grow to excessive sizes.

"Occasionally" could be determined by some (configurable?) heuristic, such as "every X triples removed", or when initiated by the user.

My understanding of how TDB works is probably rather sketchy, but I suspect it'd be possible to enumerate the triples in the store and pipe them to tdbloader for a new store. The process could release the read lock periodically so as not to block writes for long periods, but record what happens in those writes for replaying onto the new store at the end. Eventually (and soon, in non-pathological cases) the two stores would be almost identical and TDB could stop writes to the old store, finish replaying any queued writes to the new store, and make the switch.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)