TDB2 is an upgrade of TDB. It provides fully scalable transactions, for example, loading 100 millions triples into a live database which continues to service queries.

Release builds are now available from maven central:

   <dependency>
     <groupId>org.seaborne.mantis</groupId>
     <artifactId>tdb2</artifactId>
     <version>0.2.0</version>
   </dependency>

Development builds are also available via the Sonatype snapshot repository.

** TDB2 databases are not compatible with Apache Jena TDB (TDB1). **

This is not currently part of Apache Jena - it does not come with the backing of the Apache Software Foundation.

The main reason is to have a faster release cycle while not disturbing the stability of Jena.

== Converting from TDB1:

* Replace "TDBFactory" with "TDB2Factory".
* Change imports - there is a different "Location" class and connectDataset is preferred over createDataset for disk areas.
* Use transactions - see Txn.
* Load the data.

TDB2 from Java:
https://github.com/afs/mantis/blob/master/use-tdb2.md

== Use with Fuseki

* Start with a clean Fuseki installation and copy the TDB2 "fuseki-tdb2-server-VER.jar" onto "fuseki-server.jar".
* Use a configuration file and "--conf" to start the server.
* Load the data.

TDB2 with Fuseki:
https://github.com/afs/mantis/blob/master/use-fuseki-tdb2.md

Codebase:
   https://github.com/afs/mantis

Example:

Loading 100m of BSBM data into a live Fuseki (a single write transaction while the server was able to answer queries at the same time) with a default heap size:

SSD:  70K triples/s (about 24 minutes)
Disk: 47.5K triples/s (about 35 minutes)

== Technical Changes

A description and discussion of the code changes:
https://s.apache.org/YslO

Reply via email to