Purpose of "query.dictionary.overflow.threshold" property

I came across one parameter "query.dictionary.overflow.threshold". What exactly is the purpose of setting this property?

When a read query generates new RDF terms, eg IRIs or literals, which do not exist in the database (for example using BIND(function(..) as ?var) constructs), they're assigned a 64bit identifier. The mapping between such terms and their IDs is stored in a in-memory dictionary during query processing. When/if the number of such terms exceeds this parameter's value, they are moved to a special data structure which can spill them further to disk to save memory.

That special data structure makes the server less prone to OOM errors but is generally slower than on-heap dictionary, so increasing this value can help when speed is prioritised over resilience.


Got your point. Thanks Pavel

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.