View Source ExWal.LogWriter.Failover (ex_wal v0.3.0)

FailoverWriter is the implementation of LogWriter in failover mode.

Summary

Types

@type t() :: %ExWal.LogWriter.Failover{
  fs: ExWal.FS.t(),
  log_num: non_neg_integer(),
  logical_offset: %ExWal.LogWriter.Failover.LogicalOffset{
    latest_log_size: non_neg_integer(),
    no_estimated_offset?: boolean(),
    offset: non_neg_integer()
  },
  manager: pid() | GenServer.name(),
  name: GenServer.name(),
  q: [iodata()],
  registry: GenServer.name(),
  writers: %{
    s: %{
      required(index :: non_neg_integer()) =>
        wr :: ExWal.LogWriter.Failover.WriterAndRecorder.t()
    },
    cnt: non_neg_integer()
  }
}

Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

@spec current_observer(name :: GenServer.name()) :: pid() | GenServer.name()
@spec get_log(name :: GenServer.name()) ::
  {:ok, ExWal.Models.VirtualLog.t()} | {:error, reason :: any()}
@spec start_link(
  {name :: GenServer.name(), registry :: GenServer.name(), fs :: ExWal.FS.t(),
   dir :: String.t(), log_num :: non_neg_integer(), manager :: pid() | nil}
) :: GenServer.on_start()
@spec stop(name :: GenServer.name()) :: :ok | {:error, reason :: any()}
Link to this function

switch_dir(name, new_dir)

View Source
@spec switch_dir(name :: GenServer.name(), new_dir :: binary()) :: :ok
Link to this function

write_record(name, bytes, opts \\ [])

View Source
@spec write_record(
  name :: GenServer.name(),
  bytes :: binary(),
  opts :: keyword()
) :: {:ok, written_offset :: non_neg_integer()} | {:error, reason :: any()}