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

Reply via email to