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.
The transactional property of the entity pool fixes many issues related to creating IDs. However, entities still need to pre-process and all other commit operations whould be performed, 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.
- the default implmentation
- apropriate for large transactions
- avoids the overhead.
- when adding statements, the entities are directly added and cannot be rolled back.
- all entities are kept in memory - not recomended for large transactions (> 100M statements) to prevent OutOfMemoryErrors
- good for large number of small transactions
- mandatory in cluster environment - ensures entity IDs consistency
The entity pool implementation can be selected by the entity-pool-implementation config parameter or the -D command line parameter with the same name.
|entity-pool-implementation||transactional-simple||all entities are kept in memory|
|classic (default)||for bulk loads|