Bedrock.DataPlane.Log.Shale.State (bedrock v0.5.3)
View SourceInternal state struct for Shale log servers.
Summary
Types
@type init_state() :: :initialized | {:retrying, attempt :: pos_integer()}
@type mode() :: :locked | :running | :recovering
@type t() :: %Bedrock.DataPlane.Log.Shale.State{ active_segment: Bedrock.DataPlane.Log.Shale.Segment.t() | nil, cluster: module(), demux: pid() | nil, demux_supervisor: pid() | nil, director: Bedrock.ControlPlane.Director.ref() | nil, epoch: Bedrock.epoch() | nil, foreman: Bedrock.Service.Foreman.ref(), id: Bedrock.Service.Worker.id(), init_state: init_state(), last_version: Bedrock.version(), min_durable_version: Bedrock.version() | nil, mode: mode(), object_storage: module() | nil, oldest_version: Bedrock.version(), otp_name: Bedrock.Service.Worker.otp_name(), params: %{default_pull_limit: pos_integer(), max_pull_limit: pos_integer()}, path: String.t(), pending_pushes: %{ required(Bedrock.version()) => {encoded_transaction :: Bedrock.DataPlane.Transaction.encoded(), ack_fn :: (:ok | {:error, term()} -> :ok)} }, pending_transactions: term(), segment_recycler: Bedrock.DataPlane.Log.Shale.SegmentRecycler.server() | nil, segments: [Bedrock.DataPlane.Log.Shale.Segment.t()], waiting_pullers: %{ required(Bedrock.version()) => [ {Bedrock.timestamp_in_ms(), reply_to_fn :: (any() -> :ok), opts :: [limit: integer(), timeout: timeout()]} ] }, writer: Bedrock.DataPlane.Log.Shale.Writer.t() | nil }