Configuring the Entity PoolΒΆ

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 need to 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 would not be faster than the classic one.

The Entity Pool implementation can be selected by the entity-pool-implementation config parameter or the -D command line parameter with the same name. The valid values are:

classic

  • the default implementation;
  • recommended for large transactions and bulk loads;
  • avoids the overhead of temporarily storing of entities and the remapping from temporary to permanent IDs (which is performed in the transactional-simple implementation);
  • when adding statements, the entities are added directly and cannot be rolled back.

transactional-simple

  • all new entities are kept in memory - not recommended for large transactions (> 100M statements) to prevent OutOfMemoryErrors;
  • good for large number of small transactions;

transactional

  • the recommended transactional implementation in the current version of GraphDB;
  • for this version of GraphDB, it is the same as transactional-simple but this may change in future versions.