|
Volksdata 1.0b7
RDF library
|
LMDB graph store backend. More...


Go to the source code of this file.
Macros | |
| #define | VOLK_MDB_STORE_URN "file://" TMPDIR "/mdb_store" |
| Default MDB store identifier and location. | |
Variables | |
| const VOLK_StoreInt | mdbstore_int |
| MDB store interface. | |
LMDB graph store backend.
This module stores triples in a LMDB embedded store, organized into named graphs. The store is optimized and indexed for fast lookup of any number of bound terms.
Note that this store does not keep track of empty contexts. Hence, if an empty graph is created under this store, nothing is effectively recorded until some triples are added to the graph.
The store must be first initialized once, to create the environment files and folders as well as the internal databases, then it must be opened once per session. Within that session multiple R/W operations can be performed using transactions.
This store supports transactions. Under the hood, LMDB supports nested RW transactions, which are used here, but not exposed to the caller. Some functions have a transaction handle parameter that may be NULL. In that case, a new transaction is opened and closed within the scope of the function (or, in cases such as mdbstore_lookup(), within the life cycle of the iterator); if not, the transaction handle may either be used as the parent for a new transaction (which is closed as in the previous case), or the function uses the same transaction (i.e. changes are only committed after the parent transaction is committed).
Definition in file store_mdb.h.
| #define VOLK_MDB_STORE_URN "file://" TMPDIR "/mdb_store" |
Default MDB store identifier and location.
Definition at line 40 of file store_mdb.h.
|
extern |
MDB store interface.
Definition at line 1261 of file store_mdb.c.