Interface IStoreDescriptionBuilder.INumaBehavior<BuilderT>

Type Parameters:
BuilderT - the builder to add NUMA behavior
Enclosing interface:
IStoreDescriptionBuilder

public static interface IStoreDescriptionBuilder.INumaBehavior<BuilderT>
The interface to specify what policy to use to pick on which NUMA nodes the data will be stored.
Author:
ActiveViam
  • Method Details

    • induceFromReference

      BuilderT induceFromReference(String ownedReference)
      Tells the builder that each partition of this store should be located in the same NUMA node as the partition it references via ownedReference.
      Parameters:
      ownedReference - the reference that should decide the NUMA node of this store
      Returns:
      the builder
    • useStorePartitioning

      BuilderT useStorePartitioning()
      Tells the builder that the NUMA node of each partition should be: partitionId % AtotiPools.getPoolCount().
      Returns:
      the builder
    • withSelector

      BuilderT withSelector(String description)
      Tells the builder to use the selector defined in the description. Logically, the partitioning of this store must imply the defined selector, so that no partition is asked to be in two different NUMA nodes.

      Example: withSelector("modulo64(FIELD)").

      Parameters:
      description - the description of the NUMA Node selector, should take the same form as a partitioning description
      Returns:
      the builder
    • withSelector

      BuilderT withSelector(String[] onFields, IPartitioningFunctionDescription[] withFunctions)
      Tells the builder to use the selector depending on the given onFields, and use the given withFunctions.
      Parameters:
      onFields - the fields on which the selector is
      withFunctions - the functions to pick the NUMA node for a partition
      Returns:
      the builder
    • withFieldPartitioning

      BuilderT withFieldPartitioning(String... fields)
      Tells the builder to use the partitioning on the given fields as the selector.

      Example: the store is partitioning by modulo16 on tradeId and value on date.

      • withFieldPartitioning("tradeId") means that the NUMA node is given by (tradeId % 16) % AtotiPools.getPoolCount().
      • While withFieldPartitioning("tradeId", "date") is equivalent to useStorePartitioning().
      Parameters:
      fields - the partitioning fields used in the selector
      Returns:
      the builder