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

View Source

State structure for Resolver GenServer processes.

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

Metadata Distribution

The resolver also records system metadata mutations (keys with \xFF prefix, with this resolver's local verdicts) and relays them to commit proxies as exact windows - FDB's stateMutations relay:

  • last_served - per-proxy exclusive lower bound of the next window; advanced when a window is served. Windows are (last_served, last_version], so consecutive windows to one proxy tile exactly.
  • metadata_window - accumulated verdict-carrying entries in version order, pruned through the minimum served version once every one of the epoch's commit_proxy_count proxies has been served at least once.

Summary

Types

t()

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