plan

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 30, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultRunnerPort = uint16(38080)

Variables

View Source
var DefaultHostList = HostList{
	{
		IPv4:       MustParseIPv4(`127.0.0.1`),
		Slots:      runtime.NumCPU(),
		PublicAddr: `127.0.0.1`,
	},
}
View Source
var DefaultPortRange = PortRange{
	Begin: 10000,
	End:   11000,
}
View Source
var ErrInvalidHostSpec = errors.New("Invalid HostSpec")
View Source
var ErrNoEnoughCapacity = errors.New("no enough capacity")

Functions

func FormatIPv4

func FormatIPv4(ipv4 uint32) string

func GenCircularGraphPair

func GenCircularGraphPair(k, r int) (*Graph, *Graph)

func MustParseIPv4

func MustParseIPv4(host string) uint32

func PackIPv4

func PackIPv4(ip net.IP) uint32

func ParseIPv4

func ParseIPv4(host string) (uint32, error)

Types

type Addr

type Addr struct {
	IPv4 uint32
	Port uint16
	Name string
}

Addr is the logical address of a named channel

func (Addr) NetAddr

func (a Addr) NetAddr() NetAddr

func (Addr) Peer added in v0.2.2

func (a Addr) Peer() PeerID

func (Addr) String

func (a Addr) String() string

type Cluster added in v0.2.2

type Cluster struct {
	Runners PeerList
	Workers PeerList
}

func (Cluster) Bytes added in v0.2.2

func (c Cluster) Bytes() []byte

func (Cluster) Clone added in v0.2.2

func (c Cluster) Clone() Cluster

func (Cluster) DebugString added in v0.2.2

func (c Cluster) DebugString() string

func (*Cluster) Eq added in v0.2.2

func (c *Cluster) Eq(d Cluster) bool

func (Cluster) Resize added in v0.2.2

func (c Cluster) Resize(newSize int) (*Cluster, error)

func (Cluster) Validate added in v0.2.2

func (c Cluster) Validate() error

type Graph

type Graph struct {
	Nodes []Node
}

func GenBinaryTree

func GenBinaryTree(k int) *Graph

func GenBinaryTreeStar

func GenBinaryTreeStar(peers PeerList) *Graph

func GenDefaultReduceGraph

func GenDefaultReduceGraph(g *Graph) *Graph

func GenMultiBinaryTreeStar added in v0.2.1

func GenMultiBinaryTreeStar(peers PeerList) []*Graph

func GenStarBcastGraph

func GenStarBcastGraph(k, r int) *Graph

GenStarBcastGraph generates a star shape graph with k vertices and centered at vertice r (0 <= r < k)

func GenTree

func GenTree(peers PeerList) *Graph

func NewGraph

func NewGraph(n int) *Graph

func (*Graph) AddEdge

func (g *Graph) AddEdge(i, j int)

func (*Graph) Debug

func (g *Graph) Debug()

func (*Graph) DebugString added in v0.2.2

func (g *Graph) DebugString() string

func (Graph) IsSelfLoop

func (g Graph) IsSelfLoop(i int) bool

func (Graph) Nexts

func (g Graph) Nexts(i int) []int

func (Graph) Prevs

func (g Graph) Prevs(i int) []int

func (Graph) Reverse

func (g Graph) Reverse() *Graph

type HostList

type HostList []HostSpec

func ParseHostList

func ParseHostList(hostlist string) (HostList, error)

func (HostList) Cap

func (hl HostList) Cap() int

func (HostList) GenPeerList

func (hl HostList) GenPeerList(np int, pr PortRange) (PeerList, error)

func (HostList) GenRunnerList added in v0.2.2

func (hl HostList) GenRunnerList(port uint16) PeerList

func (HostList) SlotOf added in v0.2.2

func (hl HostList) SlotOf(ipv4 uint32) int

func (HostList) String

func (hl HostList) String() string

type HostSpec

type HostSpec struct {
	IPv4       uint32
	Slots      int
	PublicAddr string
}

func (HostSpec) String

func (h HostSpec) String() string

type Interval

type Interval struct {
	Begin int
	End   int
}

Interval represents the interval of integers [Begin, End)

func EvenPartition

func EvenPartition(r Interval, k int) []Interval

EvenPartition parts an Interval into k parts such that the length of each part differ at most 1

func (Interval) Len

func (i Interval) Len() int

type NetAddr

type NetAddr struct {
	IPv4 uint32
	Port uint16
}

NetAddr is the network address of a Peer

func (NetAddr) ColocatedWith

func (a NetAddr) ColocatedWith(b NetAddr) bool

func (NetAddr) SockFile

func (a NetAddr) SockFile() string

func (NetAddr) String

func (a NetAddr) String() string

func (NetAddr) WithName

func (a NetAddr) WithName(name string) Addr

type Node

type Node struct {
	Rank     int
	SelfLoop bool
	Prevs    Vertices
	Nexts    Vertices
}

type PeerID

type PeerID NetAddr

PeerID is the unique identifier of a peer.

func ParsePeerID added in v0.2.2

func ParsePeerID(val string) (*PeerID, error)

func (PeerID) ColocatedWith

func (p PeerID) ColocatedWith(q PeerID) bool

func (PeerID) ListenAddr added in v0.2.2

func (p PeerID) ListenAddr(strict bool) NetAddr

func (PeerID) SockFile

func (p PeerID) SockFile() string

func (PeerID) String

func (p PeerID) String() string

func (PeerID) WithName

func (p PeerID) WithName(name string) Addr

type PeerList

type PeerList []PeerID

PeerList is an ordered list of PeerIDs

func ParsePeerList added in v0.2.2

func ParsePeerList(val string) (PeerList, error)

func (PeerList) Bytes

func (pl PeerList) Bytes() []byte

func (PeerList) Clone added in v0.2.2

func (pl PeerList) Clone() PeerList

func (PeerList) Contains added in v0.2.2

func (pl PeerList) Contains(p PeerID) bool

func (PeerList) DebugString added in v0.2.2

func (pl PeerList) DebugString() string

func (PeerList) Diff

func (pl PeerList) Diff(ql PeerList) (PeerList, PeerList)

func (PeerList) Disjoint added in v0.2.2

func (pl PeerList) Disjoint(ql PeerList) bool

func (PeerList) Eq

func (pl PeerList) Eq(ql PeerList) bool

func (PeerList) Intersection added in v0.2.2

func (pl PeerList) Intersection(ql PeerList) PeerList

func (PeerList) LocalRank

func (pl PeerList) LocalRank(q PeerID) (int, bool)

func (PeerList) On

func (pl PeerList) On(host uint32) PeerList

func (PeerList) Rank added in v0.2.1

func (pl PeerList) Rank(q PeerID) (int, bool)

func (PeerList) Select added in v0.2.2

func (pl PeerList) Select(ranks []int) PeerList

func (PeerList) Set

func (pl PeerList) Set() map[PeerID]struct{}

func (PeerList) String

func (pl PeerList) String() string

type PortRange

type PortRange struct {
	Begin uint16
	End   uint16
}

func ParsePortRange

func ParsePortRange(val string) (*PortRange, error)

func (PortRange) Cap

func (pr PortRange) Cap() int

func (*PortRange) Set added in v0.2.0

func (pr *PortRange) Set(val string) error

Set implements flags.Value::Set

func (PortRange) String

func (pr PortRange) String() string

type Vertices

type Vertices []int

func (*Vertices) Append

func (vs *Vertices) Append(v int)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL