ExStorageService.Cluster.Membership (ex_storage_service v0.6.2)

Copy Markdown View Source

Persistent cluster-node registration and exact configured membership reads.

Only configured voter IDs are read. Discovery and arbitrary metadata records never expand the placement membership.

Summary

Types

member_record()

@type member_record() :: %{
  node: ExStorageService.Cluster.Node.t(),
  mod_revision: non_neg_integer()
}

Functions

member(config, node_id, opts \\ [])

@spec member(ExStorageService.InstanceConfig.t(), binary(), keyword()) ::
  {:ok, member_record()} | {:error, :not_found | term()}

members(config, opts \\ [])

@spec members(
  ExStorageService.InstanceConfig.t(),
  keyword()
) :: {:ok, [member_record()]} | {:error, term()}

register(config, opts \\ [])

@spec register(
  ExStorageService.InstanceConfig.t(),
  keyword()
) :: :ok | {:error, term()}

set_draining(config, node_id, draining, opts \\ [])

@spec set_draining(
  ExStorageService.InstanceConfig.t(),
  binary(),
  boolean(),
  keyword()
) ::
  {:ok, member_record()} | {:error, term()}