Oi.Topology.Cluster (oi v0.1.0)

Copy Markdown

Cluster dependencies based on user selections and dependency relationships at the front end to achieve parallel control.

i.e., isolate resource-intensive services and convert the entire parallel task into a serial + parallel process.

Summary

Functions

Return %{node_name => final_cluster_name}

Types

cluster_name()

@type cluster_name() :: atom() | String.t() | [cluster_name()]

t()

@type t() :: %Oi.Topology.Cluster{
  merge_groups: [{cluster_name() | MapSet.t(cluster_name()), cluster_name()}],
  node_colors: %{required(Oi.Topology.Graph.Node.id()) => cluster_name()}
}

Functions

paint_graph(sorted_nodes, edges, clusters)

@spec paint_graph(
  [Oi.Topology.Graph.Node.t()],
  MapSet.t(Oi.Topology.Graph.Edge.t()),
  t()
) :: %{
  required(Oi.Topology.Graph.Node.id()) => cluster_name()
}

Return %{node_name => final_cluster_name}