The entity pool is a key component of the GraphDB storage layer. From version 6.2 it supports a 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|