Bedrock.DataPlane.Resolver.State (bedrock v0.5.3)

View Source

State structure for Resolver GenServer processes.

Maintains the interval tree for conflict detection, version tracking, and waiting queue for out-of-order transactions. Includes lock token for authentication.

Metadata Distribution

The resolver also tracks system metadata mutations (keys with \xFF prefix) and distributes differential updates to commit proxies:

  • proxy_progress - Maps proxy PIDs to their last seen metadata version
  • metadata_window - Accumulated metadata mutations in version order

Summary

Types

mode()

@type mode() :: :running

t()

@type t() :: %Bedrock.DataPlane.Resolver.State{
  conflicts: Bedrock.DataPlane.Resolver.Conflicts.t(),
  director: pid(),
  epoch: Bedrock.epoch(),
  last_sweep_time: integer(),
  last_version: Bedrock.version(),
  lock_token: Bedrock.lock_token(),
  metadata_window: Bedrock.DataPlane.Resolver.MetadataAccumulator.t(),
  mode: mode(),
  oldest_version: Bedrock.version(),
  proxy_progress: %{required(pid()) => Bedrock.version()},
  sweep_interval_ms: pos_integer(),
  version_retention_ms: pos_integer(),
  waiting: Bedrock.Internal.WaitingList.t()
}