ViewstampedReplication.Configuration (viewstamped_replication v0.1.0)

Copy Markdown View Source

An explicit, ordered, fixed-membership VSR configuration.

Membership order is significant: it determines the primary for each view and is included in the configuration hash.

Summary

Types

t()

@type t() :: %ViewstampedReplication.Configuration{
  group_id: term(),
  members: [ViewstampedReplication.Member.t()],
  replica_id: ViewstampedReplication.Member.id()
}

Functions

failure_threshold(configuration)

@spec failure_threshold(t()) :: non_neg_integer()

hash(configuration)

@spec hash(t()) :: binary()

hash_hex(configuration)

@spec hash_hex(t()) :: String.t()

member_count(configuration)

@spec member_count(t()) :: pos_integer()

new(attributes)

@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}

new!(attributes)

@spec new!(keyword() | map()) :: t()

primary_id(configuration, view_number)

@spec primary_id(t(), non_neg_integer()) :: ViewstampedReplication.Member.id()

quorum_size(configuration)

@spec quorum_size(t()) :: pos_integer()

validate(configuration)

@spec validate(t()) :: {:ok, t()} | {:error, term()}