Skip to content

ActivationRepartitionerOptions

class

Namespace: Orleans.Configuration

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
public sealed class ActivationRepartitionerOptions

Constructors

Properties

  • AnchoringFilterEnabled Gets or sets a value indicating whether to enable the local vertex filter. This filter tracks which vertices are well-partitioned (moving them from the local host would be detrimental) and collapses them into a single per-silo vertex to reduce the space required to track edges involving that vertex. The result is a reduction in accuracy but a potentially significant increase in effectiveness of the repartitioner, since well-partitioned edges will not dominate the top-K data structure, leaving sufficient room to track non-well-partitioned vertices. This is enabled by default.
  • AnchoringFilterGenerations

    Determines how long anchoring history is retained. A lower generation count keeps the filter fresher, but might forget anchored grains too quickly. A higher generation count retains history longer, but increases the memory usage and the risk of saturation.

    Because the filter decays exactly once per repartitioning round, the actual time a "cold" grain remains anchored is directly tied to ActivationRepartitionerOptions and ActivationRepartitionerOptions. For example with the default of 3 generations and round periods randomly firing between 1-2 mins, a grain that goes completely "cold" will be retained in the filter for 4.5 mins (on average) before being dropped.

  • MaxEdgeCount

    The maximum number of edges to retain in-memory during a repartitioning round. An edge represents how many calls were made from one grain to another.

    If this number is N, it does not mean that N activations will be migrated after a repartitioning round. It also does not mean that if any activation ranked very high, that it will rank high at the next cycle. At the most extreme case, the number of activations that will be migrated, will equal this number, so this should give you some idea as to setting a reasonable value for this.

  • MaxRoundPeriod The maximum time between initiating a repartitioning round.
  • MaxUnprocessedEdges The maximum number of unprocessed edges to buffer. If this number is exceeded, the oldest edges will be discarded.
  • MinRoundPeriod The minimum time between initiating a repartitioning round.
  • ProbabilisticFilteringMaxAllowedErrorRate The maximum allowed error rate when ActivationRepartitionerOptions is set to true, otherwise this does not apply.
  • RecoveryPeriod The minimum time needed for a silo to recover from a previous repartitioning round. Until this time has elapsed, this silo will not take part in any repartitioning attempt from another silo.

Fields