You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Andy Seaborne <an...@apache.org> on 2017/09/14 23:13:21 UTC

TDB2 modules

In Mantis, the module structure is currently:

== / (the parent)
== dboe-base
== dboe-index < dboe-base
== dboe-index-test < dboe-index
== dboe-transaction < dboe-base
== dboe-trans-data < dboe-transaction
== tdb2 < dboe-trans-data
== tdb2-cmds < tdb2, jena-cmds
== fuseki-tdb2 < tdb2, jena-fuseki-core, jena-text

(dboe == database operating environment)

For integration of modules, rather than dump them all in the top level, 
I was thinking of a directory of jena-db (better name?) and the modules 
under that to make the code base more navigable:

jena-db/
    jena-dboe-*
    jena-tdb2
    jena-tdb2-cmds (see below)

For artifact names:
   jena-tdb2 and jena-dboe-*

== /
   Parent.
   Very little is needed from this.
   The dependencies are jena-arq and jena-cmds.

== dboe-base
   General stuff, including the basic file access.

To make file access work for disk and memory, there are two abstractions 
with different implementations for

BinaryDataFile : series of length+binary records.
                  Append only; read by offset.

BlockAccess : indexed by block id.

== dboe-index
    depends on dboe-base

Index abstractions:
   Index : Key->Value
   RangeIndex : adds iteration over key range.

== dboe-index-test
    depends on dboe-index

Tests for indexes and range indexes.
Pulled out to facilitate other implementations of Index and RangeIndex.

== dboe-transaction
    depends on dboe-base

The transaction system.

== dboe-trans-data
    depends on dboe-transaction,

Transactional implementations of file abstractions:

B+Trees
TransBinaryDataFile
TransBlob      (read/write a whole file at once - presumed small)

Ought to include a jena-text adapter to have combined lucene indexes.

== tdb2
    depends on dboe-trans-data

== tdb2-cmds
    depends on tdb2, jena-cmds and apache-jena-libs

Goes away only if TDB2 is in apache-jena-libs, and hence available to 
jena-cmds

== fuseki-tdb2
    depends on tdb2, jena-fuseki-core, jena-text

Goes away.

	Andy