GraphDB-SE Entity Pool

compared with
Current by evgeni.milev
on Jun 04, 2015 15:59.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (11)

View Page History
The entity pool is a key component of the GraphDB storage layer. It converts the entities (URIs, Blank nodes and Literals) to internal IDs (32\- or 40-bit integers). From version 6.2 this component supports transactional behavior, which improves space usage and cluster behavior.

h1. Configuration Implementations

The transactional property of the entity pool fixes many issues related to creating IDs. However, entities still need to be pre-processed and all other commit operations should be performed (storing, inference, plugin handling, consistency checking, statement retraction on remove operations), including adding the entities to the permanent store. All these operations are time-consuming, so the new transactional entity pool cannot be faster than the classic one.

There are two implementations - a fully transactional and classic.
* all new entities are kept in memory - not recommended for large transactions (> 100M statements) to prevent {{{*}OutOfMemoryErrors{*}}}
* good for large number of small transactions
* mandatory in recommended for cluster environment - ensures entity IDs consistency between worker nodes
* mandatory when used with Solr and Elascticsearch connectors
* should be used with [Solr|Solr GraphDB Connector#Prerequisites] and [Elascticsearch|Elasticsearch GraphDB Connector#Prerequisites] connectors.

h1. Configuration

The entity pool implementation can be selected by the {{{*}entity-pool-implementation{*}}} config parameter or the {{*\-D{*}}} command line parameter with the same name.

h5. transactional
|| Parameter || Value || Note ||
| {{entity-pool-implementation}} | {{classic}} | default |
| | {{transactional-simple}} |
| | {{transactional}} | The recommended transactional implementation in the current version of GraphDB. \\
* the recommended for the current version of GraphDB transactional implementation. Currently it is transactional-simple. May change in future versions.

|| Parameter || Value ||
| entity-pool-implementation | transactional-simple |
| | classic (default) |
| | transactional (recommended) |
For 6.2 it is {{{*}transactional-simple{*}}}. May change in future versions |