Sidx.Partition (sidx v0.1.0)

Handles requests to one partition within a table

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor.

Collects all slots of a tree to a list

Looks up or creates a reference in the tree for a list of secondary keys

Returns the pid (safe) or name (unsafe but fast) of a partition

Callback implementation for GenServer.init/1.

Link to this section Types

@type tree() :: %{required(term()) => tree() | reference()}

Link to this section Functions

Link to this function

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

Link to this function

collect_slots(subtree, path \\ [])

@spec collect_slots(subtree :: tree() | reference(), path :: [term()]) :: [
  reference()
]

Collects all slots of a tree to a list

Link to this function

find_slot(tree, list, create)

@spec find_slot(tree :: tree(), keys :: [term()], create :: boolean()) ::
  {tree(), reference() | nil}

Looks up or creates a reference in the tree for a list of secondary keys

Link to this function

get_process(table, primary_key, safe)

@spec get_process(table :: Sidx.Table.t(), primary_key :: term(), safe :: boolean()) ::
  pid() | {:via, term(), term()}

Returns the pid (safe) or name (unsafe but fast) of a partition

Callback implementation for GenServer.init/1.

Link to this function

start(table, num)

@spec start(table :: Sidx.Table.t(), num :: non_neg_integer()) ::
  DynamicSupervisor.on_start_child()
Link to this function

start_link(arg)