ViewstampedReplication.Protocol.State (viewstamped_replication v0.1.0)

Copy Markdown View Source

Immutable state consumed and returned by the pure VSR protocol.

Summary

Types

status()

@type status() :: :normal | :view_change | :recovering

t()

@type t() :: %ViewstampedReplication.Protocol.State{
  applied_number: non_neg_integer(),
  applying_number: pos_integer() | nil,
  client_table: map(),
  commit_number: non_neg_integer(),
  configuration: ViewstampedReplication.Configuration.t(),
  do_view_change_messages: map(),
  do_view_change_sent: MapSet.t(),
  group_id: term(),
  last_normal_view: non_neg_integer(),
  log: ViewstampedReplication.Log.t(),
  op_number: non_neg_integer(),
  pending_clients: map(),
  prepare_acks: map(),
  recovery_attempt: non_neg_integer(),
  recovery_nonce: term() | nil,
  recovery_responses: map(),
  replica_id: term(),
  snapshot: term() | nil,
  snapshot_op_number: non_neg_integer(),
  start_view_change_votes: map(),
  status: status(),
  timeouts: %{
    primary: non_neg_integer(),
    heartbeat: non_neg_integer(),
    view_change: non_neg_integer(),
    recovery: non_neg_integer()
  },
  timer_sequence: non_neg_integer(),
  timer_tokens: map(),
  view_number: non_neg_integer()
}

Functions

new(configuration)