Skip to content
Lukas Schmelzeisen edited this page Apr 15, 2014 · 2 revisions

Static Data Delivery

StaticDataDelivery (SDD) is a graph database. It is licensed under GPL 3

SDD is optimized for fast reads, at the cost of slower writes. The design goal was to handle 1 write request per second on average (the amount of write requests the german wikipedia is recieving), and to make reads as fast as possible. This is achieved by configuring a data schema on what kind of data is going to be stored, and what views are needed for those kinds of data. After each write, all necessary views are than generated, making a read that would includes Joins in a SQL database, as fast as O(1).

SDD can either be used in embedded mode or can be started as a service and accessed using ZMQ Request Dispatcher.

In any case your going to have to create a Configuration file.

When performing a Read-Request, SDD will return a JSON-String as a response. Parsing JSON each time you want to access data can be tedious, so SDD provides a ClassGenerator to generate Java classes from your Configuration to get easy access to your data. To actually create a Java Instance from a JSON-String use SddOutputGenerator.

Embedded

Add the Metalcon Maven repository to your pom.xml:

<repositories>
  <repository>
    <id>metalcon-depend</id>
    <url>http://develop.metalcon.de:8080/mvn/</url>
  </repository>
</repositories>

Add SDD as a dependency:

<dependencies>
  <dependency>
    <groupId>de.metalcon</groupId>
    <artifactId>static-data-delivery-server</artifactId>
    <version><!-- SDD version --></version>
  </dependency>
</dependencies>

For learning how to use SDD embedded you best read the Javadoc.

Service

Add the Metalcon Maven repository to your pom.xml:

<repositories>
  <repository>
    <id>metalcon-depend</id>
    <url>http://develop.metalcon.de:8080/mvn/</url>
  </repository>
</repositories>

Communicating with SDD running as a service works through SDD-API. So you will have to add SDD-API as a dependency:

 <dependency>
   <groupId>de.metalcon</groupId>
   <artifactId>static-data-delivery-server-api</artifactId>
   <version>${metalcon.staticDataDeliveryServer.api.version}</version>
 </dependency>

You can then start SDD by executing ./run.sh. As an argument you can provide a path to your configuration file (by default this is: /usr/share/sdd/config.xml). SDD's RequestDispatcher-Endpoint lies on tcp://127.0.0.1:1337 (currently this is hardcoded and can not be changed).

Clone this wiki locally