Class FedXConfig

java.lang.Object
org.eclipse.rdf4j.federated.FedXConfig

public class FedXConfig extends Object
Configuration class for FedX
Author:
Andreas Schwarte
  • Field Details

    • DEFAULT_CONFIG

      public static FedXConfig DEFAULT_CONFIG
  • Constructor Details

    • FedXConfig

      public FedXConfig()
  • Method Details

    • withDebugQueryPlan

      public FedXConfig withDebugQueryPlan(boolean flag)
      Set whether the query plan shall be debugged. See isDebugQueryPlan().

      Can be set after federation construction and initialize.

      Parameters:
      flag -
      Returns:
      the current config
    • withLogQueries

      public FedXConfig withLogQueries(boolean flag)
      Set whether to log queries. See isLogQueries().

      Can only be set before federation initialization.

      Parameters:
      flag -
      Returns:
      the current config
    • withEnforceMaxQueryTime

      public FedXConfig withEnforceMaxQueryTime(int enforceMaxQueryTime)
      Set enforce max query time. See getEnforceMaxQueryTime().

      Can be set after federation construction and initialize.

      Parameters:
      enforceMaxQueryTime - time in seconds, 0 to disable
      Returns:
      the current config
    • withIncludeInferredDefault

      public FedXConfig withIncludeInferredDefault(boolean flag)
      Set the default value supplied to Operation.setIncludeInferred(boolean)
      Parameters:
      flag -
      Returns:
      the current config
    • withEnableMonitoring

      public FedXConfig withEnableMonitoring(boolean flag)
      Enable monitoring. See isEnableMonitoring().

      Can only be set before federation initialization.

      Parameters:
      flag -
      Returns:
      the current config
    • withBoundJoinBlockSize

      public FedXConfig withBoundJoinBlockSize(int boundJoinBlockSize)
      Set the bound join block size. See getBoundJoinBlockSize().

      Can only be set before federation initialization.

      Parameters:
      boundJoinBlockSize -
      Returns:
      the current config
    • withJoinWorkerThreads

      public FedXConfig withJoinWorkerThreads(int joinWorkerThreads)
      Set the number of join worker threads. See getJoinWorkerThreads().

      Can only be set before federation initialization.

      Parameters:
      joinWorkerThreads -
      Returns:
      the current config
    • withLeftJoinWorkerThreads

      public FedXConfig withLeftJoinWorkerThreads(int leftJoinWorkerThreads)
      Set the number of left join worker threads. See getLeftJoinWorkerThreads().

      Can only be set before federation initialization.

      Parameters:
      leftJoinWorkerThreads -
      Returns:
      the current config
    • withUnionWorkerThreads

      public FedXConfig withUnionWorkerThreads(int unionWorkerThreads)
      Set the number of union worker threads. See getUnionWorkerThreads().

      Can only be set before federation initialization.

      Parameters:
      unionWorkerThreads -
      Returns:
      the current config
    • withPrefixDeclarations

      public FedXConfig withPrefixDeclarations(String prefixFile)
      Set the optional prefix declarations file. See getPrefixDeclarations().

      Can only be set before federation initialization.

      Parameters:
      prefixFile -
      Returns:
      config
    • withLogQueryPlan

      public FedXConfig withLogQueryPlan(boolean flag)
      Whether to log the query plan with QueryPlanLog. See isLogQueryPlan().

      Can only be set before federation initialization.

      Parameters:
      flag -
      Returns:
      the current config
    • withEnableServiceAsBoundJoin

      public FedXConfig withEnableServiceAsBoundJoin(boolean flag)
      Whether external SERVICE clauses are evaluated using bound join (i.e. with the VALUES clause). Default true
      Parameters:
      flag -
      Returns:
      the current config.
    • withSourceSelectionCacheSpec

      public FedXConfig withSourceSelectionCacheSpec(String cacheSpec)
      The cache specification for the SourceSelectionMemoryCache. If not set explicitly, the SourceSelectionMemoryCache.DEFAULT_CACHE_SPEC is used.
      Parameters:
      cacheSpec - the CacheBuilderSpec for the SourceSelectionCache
      Returns:
      the current config
      See Also:
    • withSourceSelectionCacheFactory

      public FedXConfig withSourceSelectionCacheFactory(SourceSelectionCacheFactory factory)
      The SourceSelectionCacheFactory to be used. If not set explicitly, the default in memory implementation is used with the configued getSourceSelectionCacheSpec().
      Parameters:
      factory - the SourceSelectionCacheFactory
      Returns:
      the current config
    • withTaskWrapper

      public FedXConfig withTaskWrapper(TaskWrapper taskWrapper)
      Sets a TaskWrapper which may be used for wrapping any background Runnables. If no such wrapper is explicitly configured, the unmodified task is returned. See TaskWrapper for more information.
      Parameters:
      taskWrapper - the TaskWrapper
      Returns:
      the current config
      See Also:
    • getJoinWorkerThreads

      public int getJoinWorkerThreads()
      The (maximum) number of join worker threads used in the ControlledWorkerScheduler for join operations. Default is 20.
      Returns:
      the number of join worker threads
    • getUnionWorkerThreads

      public int getUnionWorkerThreads()
      The (maximum) number of union worker threads used in the ControlledWorkerScheduler for join operations. Default is 20
      Returns:
      number of union worker threads
    • getLeftJoinWorkerThreads

      public int getLeftJoinWorkerThreads()
      The (maximum) number of left join worker threads used in the ControlledWorkerScheduler for join operations. Default is 10.
      Returns:
      the number of left join worker threads
    • getBoundJoinBlockSize

      public int getBoundJoinBlockSize()
      The block size for a bound join, i.e. the number of bindings that are integrated in a single subquery. Default is 15.
      Returns:
      the bound join block size
    • getEnableServiceAsBoundJoin

      public boolean getEnableServiceAsBoundJoin()
      Returns a flag indicating whether vectored evaluation using the VALUES clause shall be applied for SERVICE expressions. Default: false Note: for todays endpoints it is more efficient to disable vectored evaluation of SERVICE.
      Returns:
      whether SERVICE expressions are evaluated using bound joins
    • getEnforceMaxQueryTime

      public int getEnforceMaxQueryTime()
      Get the maximum query time in seconds used for query evaluation. Applied if QueryManager is used to create queries.

      Set to 0 to disable query timeouts.

      The timeout is also applied for individual fine-granular join or union operations as a max time.

      Returns:
      the maximum query time in seconds
    • getIncludeInferredDefault

      public boolean getIncludeInferredDefault()
      Returns:
      the default for Operation.getIncludeInferred()
    • isEnableMonitoring

      public boolean isEnableMonitoring()
      Flag to enable/disable monitoring features. Default=false.
      Returns:
      whether monitoring is enabled
    • isLogQueryPlan

      public boolean isLogQueryPlan()
      Flag to enable/disable query plan logging via QueryPlanLog. Default=false The QueryPlanLog facility allows to retrieve the query execution plan from a variable local to the executing thread.
      Returns:
      whether the query plan shall be logged
    • isLogQueries

      public boolean isLogQueries()
      Flag to enable/disable query logging via QueryLog. Default=false The QueryLog facility allows to log all queries to a file. See QueryLog for details. Requires isEnableMonitoring() to be active.
      Returns:
      whether queries are logged
    • getPrefixDeclarations

      public String getPrefixDeclarations()
      Returns the path to a property file containing prefix declarations as "namespace=prefix" pairs (one per line).

      Default: no prefixes are replaced. Note that prefixes are only replaced when using the QueryManager to create/evaluate queries. Example: foaf=http://xmlns.com/foaf/0.1/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# =http://mydefaultns.org/

      Returns:
      the location of the prefix declarations or null if not configured
    • getSourceSelectionCacheSpec

      public String getSourceSelectionCacheSpec()
      Returns the configured CacheBuilderSpec (if any) for the SourceSelectionMemoryCache. If not defined, the SourceSelectionMemoryCache.DEFAULT_CACHE_SPEC is used. If getSourceSelectionCacheFactory() is configured, this setting is ignored.
      Returns:
      the CacheBuilderSpec or null
    • getSourceSelectionCacheFactory

      public SourceSelectionCacheFactory getSourceSelectionCacheFactory()
      Returns the SourceSelectionCacheFactory (if any). If not defined, the SourceSelectionCache is instantiated using the default implementation and respects getSourceSelectionCacheSpec().
      Returns:
      SourceSelectionCacheFactory
    • isDebugQueryPlan

      public boolean isDebugQueryPlan()
      The debug mode for query plan. If enabled, the query execution plan is printed to stdout
      Returns:
      whether the query plan is printed to std out
    • getTaskWrapper

      public Optional<TaskWrapper> getTaskWrapper()
      Returns a TaskWrapper which may be used for wrapping any background Runnables. If no such wrapper is explicitly configured, the unmodified task is returned. See TaskWrapper for more information.
      Returns:
      the TaskWrapper, an empty Optional if none is explicitly configured
    • withConsumingIterationMax

      public FedXConfig withConsumingIterationMax(int max)
      Set the max number of results to be consumed by ConsumingIteration. See getConsumingIterationMax().

      Can only be set before federation initialization.

      Parameters:
      max -
      Returns:
      the current config
    • getConsumingIterationMax

      public int getConsumingIterationMax()
      Returns the max number of results to be consumed by ConsumingIteration
    • withCollectionFactory

      public FedXConfig withCollectionFactory(CollectionFactory cf)
      Set the CollectionFactory to be used by the federation

      Can only be set before federation initialization.

      Parameters:
      cf -
      Returns:
      the current config