Class RuntimeConfig


@Generated("config_generator.py") public class RuntimeConfig extends AbstractRuntimeConfig
PGX Runtime Config
  • Method Details

    • parse

      public static RuntimeConfig parse(InputStream is, boolean strict, String parentPath) throws IOException
      Parses an input stream.
      Parameters:
      is - the input stream
      strict - if true, parses in strict mode
      parentPath - if not null, resolves relative paths against this parentPath
      Returns:
      the parsed graph config
      Throws:
      IOException - Signals that an I/O exception has occurred.
    • parse

      public static RuntimeConfig parse(Map<String,Object> raw, boolean strict, String parentPath)
      Parses a raw key/value mapping.
      Parameters:
      raw - the raw key/value mapping to parse
      strict - if true, parses in strict mode
      parentPath - if not null, resolves relative paths against this parentPath
      Returns:
      the parsed graph config
    • parse

      public static RuntimeConfig parse(Properties props, boolean strict)
      Parses a properties file.
      Parameters:
      props - the properties to parse
      strict - if true, parses in strict mode
      Returns:
      the parsed graph config
    • getConfigFields

      public static RuntimeConfig.Field[] getConfigFields()
    • getValues

      public Map<RuntimeConfig.Field, Object> getValues()
      Gets the parsed values.
      Specified by:
      getValues in class AbstractRuntimeConfig
      Returns:
      the parsed values
    • isEmpty

      public boolean isEmpty()
      Checks if it's empty.
      Returns:
      true, if the Map 'values' is empty.
    • hasDefaultValue

      public boolean hasDefaultValue(RuntimeConfig.Field field)
      Checks for default value.
      Parameters:
      field - the field
      Returns:
      true, if value for given field is the default value
    • getValuesWithoutDefaults

      public Map<RuntimeConfig.Field, Object> getValuesWithoutDefaults()
      Gets the values without defaults.
      Specified by:
      getValuesWithoutDefaults in class AbstractRuntimeConfig
      Returns:
      the values without defaults
    • getLeftoverValues

      public Map<String,Object> getLeftoverValues()
      Gets the values that do not belong to any field.
      Returns:
      the values that do not belong to any field
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(boolean hideSensitiveData)
    • getNumSpinLocks

      public Integer getNumSpinLocks()
      how many spin locks each generated app will create at instantiation. Trade-off: small number implies less memory consumption. Big number implies faster execution (if algorithm uses spin locks)
    • isExplicitSpinLocks

      public Boolean isExplicitSpinLocks()
      true means spin explicitly in a loop until lock becomes available. false means using JDK locks which rely on the JVM to decide whether to context switch or spin. Our experiments showed that setting this value to true results in better performance.
    • getScheduler

      public SchedulerStrategy getScheduler()
      which scheduler to use.
      basic_scheduler = use scheduler with basic features.
      enterprise_scheduler = use scheduler with advanced, enterprise features for running multiple tasks concurrently and increased performance.
      low_latency_scheduler = use scheduler that privileges latency of tasks over throughput or fairness across multiple sessions. The low_latency_scheduler is only available in embedded mode
      Specified by:
      getScheduler in class AbstractRuntimeConfig
    • getTaskLength

      public Integer getTaskLength()
      default task length (only relevant for task-stealing strategies). F/J pool documentation says this value should be between 100 and 10000. Trade-off: small number implies more fine-grained tasks are generated, higher stealing throughput. High number implies less memory consumption and GC activity
    • getSmallTaskLength

      public Integer getSmallTaskLength()
      task length if total amount of work is small than default task length (only relevant for task-stealing strategies)
    • getMsBfsFrontierTypeStrategy

      public FrontierTypeStrategy getMsBfsFrontierTypeStrategy()
      the type strategy to use for MS-BFS frontiers
    • getBfsThresholdSingleThreaded

      public Integer getBfsThresholdSingleThreaded()
      until what number of BFS traversal level items vertices are visited single-threaded
    • getBfsThresholdReadBased

      public Integer getBfsThresholdReadBased()
      threshold of BFS traversal level items above which to switch to read-based visiting strategy
    • getBfsIterateQueTaskSize

      public Integer getBfsIterateQueTaskSize()
      task size for BFS iterate QUE phase
    • getBfsThresholdParentReadBased

      public Double getBfsThresholdParentReadBased()
      threshold of BFS traversal level items above which to switch to parent-read-based visiting strategy
    • getDfsThresholdLarge

      public Integer getDfsThresholdLarge()
      value that determines at which number of visited vertices the DFS implementation will switch to data-structures that are more optimized for larger numbers of vertices.
    • getCniStopRecursionDefault

      public Integer getCniStopRecursionDefault()
      default value used in the common neighbor iterator implementations, to indicate the minimum size where the binary search approach is applied.
    • getCniSmallDefault

      public Integer getCniSmallDefault()
      default value used in the common neighbor iterator implementations, to indicate below which threshold a subarray is considered small.
    • getCniDiffFactorDefault

      public Integer getCniDiffFactorDefault()
      default diff factor value used in the common neighbor iterator implementations.
    • getLargeArrayThreshold

      public Integer getLargeArrayThreshold()
      threshold when the size of an array is too big to use a normal Java array. This depends on the used JVM. (defaults to Integer.MAX_VALUE - 3)
    • getMaxOffHeapSize

      public Integer getMaxOffHeapSize()
      maximum amount of off-heap memory PGX is allowed to allocate in megabytes, before an OutOfMemoryError will be thrown. Note: this limit is not guaranteed to never be exceeded because of rounding and synchronization trade-offs. It only serves as threshold when PGX starts to reject new memory allocation requests.
    • getMaxOnHeapMemoryUsageRatio

      public Double getMaxOnHeapMemoryUsageRatio()
      maximum ratio of on-heap memory that PGX is allowed to use, between 0 and 1.
    • getCharacterSet

      public String getCharacterSet()
      standard charset to use throughout PGX, UTF-8 will be used as default. Note: Some formats may not be compatible.
    • getParallelism

      public Integer getParallelism()
      number of worker threads to be used in thread pool. Note: if caller thread is part of another thread-pool, this value is ignored and parallelism of parent pool is used.
    • getRandomGeneratorStrategy

      public RandomGeneratorStrategy getRandomGeneratorStrategy()
      method of generating random numbers in pgx
    • getRandomSeed

      public Long getRandomSeed()
      [relevant for deterministic random number generator only] seed for the deterministic random number generator used in pgx. The default is -24466691093057031
    • getPatternMatchingSupernodeCacheThreshold

      public Integer getPatternMatchingSupernodeCacheThreshold()
      minimum number of a node's neighbor to be a supernode. This is for pattern matching engine.
    • getUseIndexForReachabilityQueries

      public ReachabilityIndexCreationMode getUseIndexForReachabilityQueries()
      create index for reachability queries
    • getRevisitThreshold

      public Integer getRevisitThreshold()
      maximum number of matched results from a node to be cached
    • getEnterpriseSchedulerFlags

      public EnterpriseSchedulerFlagsConfig getEnterpriseSchedulerFlags()
      [relevant for enterprise_scheduler] enterprise scheduler specific settings.
    • getMemoryAllocator

      public MemoryAllocationStrategy getMemoryAllocator()
      which memory allocator to use
      Specified by:
      getMemoryAllocator in class AbstractRuntimeConfig
    • getMaxDistinctStringsPerPool

      public Integer getMaxDistinctStringsPerPool()
      [only relevant if string_pooling_strategy is indexed] amount of distinct strings per property after which to stop pooling. If the limit is reached an exception is thrown
    • getStringPoolingStrategy

      public StringPoolingStrategy getStringPoolingStrategy()
      which string pooling strategy to use
      Specified by:
      getStringPoolingStrategy in class AbstractRuntimeConfig
    • useMemoryMapperForStoringPgb

      public Boolean useMemoryMapperForStoringPgb()
      if true, use memory mapped files for storing in PGB format if possible; if false always use a stream based implementation
    • useMemoryMapperForReadingPgb

      public Boolean useMemoryMapperForReadingPgb()
      if true, use memory mapped files for reading graphs in PGB format if possible; false always use s stream based implementation
    • getPoolingFactor

      public Double getPoolingFactor()
      [only relevant if string_pooling_strategy is on_heap] this value prevents the string pool to grow as big as the property size which could render the pooling ineffective
    • getGraphValidationLevel

      public GraphValidationLevel getGraphValidationLevel()
      level of validation performed on newly loaded or created graphs
    • isAllowLazyLoadingForDatabaseGraphs

      public Boolean isAllowLazyLoadingForDatabaseGraphs()
      if true, PGX will automatically load graphs from the database when they are first referenced in graph queries
    • getBackendFields

      public List<RuntimeConfig.Field> getBackendFields()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object