This library provides backend and format agnostic data storage for simulation results coupled with metadata about the used [Software] and the simulation [Run]
The main use case is the following
- generate data on a cluster and save it with JSON backend
- transfer data to Neo4j backend
- directly use Neo4j to select data
Therefore the main goal is a simple solution for writing data and there are no plans to support advanched search or query features.
Data storage is not handled by the database, only associated metadata.
Currently two backends are included:
- Json, which saves everything in JSON files
- Neo4j, which uses a Neo4j database as backend (write only)
Custom backends can be implemented via the Database and DatabaseSession traits. Sessions are meant to associate a [Dataset]s specific [Run] of a [Software]. [Dataset]s are references to data stored in a file of any arbitrary format.
Features
jsonenable Json backendneo4jenable Neo4j backendshaenable [sha2] support for automatic hash calculationsarbitraryenable support for [arbitrary] (required for tests)
Example
This creates a Json based Database and writes some arbitraty data to it. Note that in order to create a session, usually the [vergen_session] macro will suffice.
use Write;
use Serialize;
use *;
// Define a metadata type