Documentation ¶
Index ¶
- Constants
- Variables
- func AddElementArray(t PrefixTree, z *Zp) (marray []*Zp)
- func DelElementArray(t PrefixTree, z *Zp) (marray []*Zp)
- func NextChild(n PrefixNode, bs *Bitstring, depth int) int
- func ReadBitstring(r io.Reader) (*Bitstring, error)
- func ReadInt(r io.Reader) (n int, err error)
- func ReadString(r io.Reader) (string, error)
- func ReadZSet(r io.Reader) (*ZSet, error)
- func ReadZZarray(r io.Reader) ([]*Zp, error)
- func ReadZp(r io.Reader) (*Zp, error)
- func WriteBitstring(w io.Writer, bs *Bitstring) (err error)
- func WriteInt(w io.Writer, n int) (err error)
- func WriteMsg(w io.Writer, msgs ...ReconMsg) (err error)
- func WriteMsgDirect(w io.Writer, msg ReconMsg) (err error)
- func WriteString(w io.Writer, text string) (err error)
- func WriteZSet(w io.Writer, zset *ZSet) error
- func WriteZZarray(w io.Writer, arr []*Zp) (err error)
- func WriteZp(w io.Writer, z *Zp) (err error)
- type Config
- type DbRepl
- type DbRqst
- type Done
- type Elements
- type Error
- type Flush
- type FullElements
- type MemPrefixNode
- func (n *MemPrefixNode) Children() (result []PrefixNode)
- func (n *MemPrefixNode) Elements() []*Zp
- func (n *MemPrefixNode) IsLeaf() bool
- func (n *MemPrefixNode) Key() *Bitstring
- func (n *MemPrefixNode) Parent() (PrefixNode, bool)
- func (n *MemPrefixNode) SValues() []*Zp
- func (n *MemPrefixNode) Size() int
- type MemPrefixTree
- func (t *MemPrefixTree) BitQuantum() int
- func (t *MemPrefixTree) Init()
- func (t *MemPrefixTree) Insert(z *Zp) error
- func (t *MemPrefixTree) JoinThreshold() int
- func (t *MemPrefixTree) Node(bs *Bitstring) (PrefixNode, error)
- func (t *MemPrefixTree) NumSamples() int
- func (t *MemPrefixTree) Points() []*Zp
- func (t *MemPrefixTree) Remove(z *Zp) error
- func (t *MemPrefixTree) Root() (PrefixNode, error)
- func (t *MemPrefixTree) SplitThreshold() int
- type MsgType
- type Peer
- type PrefixNode
- type PrefixTree
- type ReconMsg
- type ReconRqstFull
- type ReconRqstPoly
- type Recover
- type RecoverChan
- type Settings
- func (s *Settings) BitQuantum() int
- func (s *Settings) Config() *Config
- func (s *Settings) ConnTimeout() int
- func (s *Settings) Filters() []string
- func (s *Settings) GetInt(key string, defaultValue int) int
- func (s *Settings) GetString(key string, defaultValue string) string
- func (s *Settings) GetStrings(key string) (value []string)
- func (s *Settings) GossipIntervalSecs() int
- func (s *Settings) HttpPort() int
- func (s *Settings) JoinThreshold() int
- func (s *Settings) LogName() string
- func (s *Settings) MBar() int
- func (s *Settings) MaxOutstandingReconRequests() int
- func (s *Settings) NumSamples() int
- func (s *Settings) PartnerAddrs() (addrs []net.Addr, err error)
- func (s *Settings) Partners() []string
- func (s *Settings) ReadTimeout() int
- func (s *Settings) ReconPort() int
- func (s *Settings) SplitThreshold() int
- func (s *Settings) ThreshMult() int
- func (s *Settings) UpdateDerived()
- func (s *Settings) Version() string
- type SyncFail
Constants ¶
View Source
const ( MsgTypeReconRqstPoly = MsgType(0) MsgTypeReconRqstFull = MsgType(1) MsgTypeElements = MsgType(2) MsgTypeFullElements = MsgType(3) MsgTypeSyncFail = MsgType(4) MsgTypeDone = MsgType(5) MsgTypeFlush = MsgType(6) MsgTypeError = MsgType(7) MsgTypeDbRqst = MsgType(8) MsgTypeDbRepl = MsgType(9) MsgTypeConfig = MsgType(10) )
View Source
const DefaultBitQuantum = 2
View Source
const DefaultJoinThreshold = DefaultSplitThreshold / 2
View Source
const DefaultMBar = 5
View Source
const DefaultNumSamples = DefaultMBar + 1
View Source
const DefaultSplitThreshold = DefaultThreshMult * DefaultMBar
View Source
const DefaultThreshMult = 10
View Source
const GOSSIP = "gossip:"
View Source
const SERVE = "serve:"
Variables ¶
View Source
var IncompatiblePeerError error = errors.New("Remote peer configuration is not compatible")
View Source
var NoPartnersError error = errors.New("That feel when no recon partner")
View Source
var PNodeNotFound error = errors.New("Prefix-tree node not found")
View Source
var ReconDone = errors.New("Reconciliation Done")
View Source
var ReconRqstPolyNotFound = errors.New("Peer should not receive a request for a non-existant node in ReconRqstPoly")
View Source
var RemoteConfigFailed string = "failed"
View Source
var RemoteConfigPassed string = "passed"
View Source
var RemoteRejectConfigError error = errors.New("Remote rejected configuration")
Functions ¶
func AddElementArray ¶
func AddElementArray(t PrefixTree, z *Zp) (marray []*Zp)
func DelElementArray ¶
func DelElementArray(t PrefixTree, z *Zp) (marray []*Zp)
func NextChild ¶
func NextChild(n PrefixNode, bs *Bitstring, depth int) int
func ReadBitstring ¶
func ReadZZarray ¶
func WriteBitstring ¶
func WriteZZarray ¶
Types ¶
type Config ¶
type FullElements ¶
type FullElements struct {
*ZSet
}
func (*FullElements) MsgType ¶
func (msg *FullElements) MsgType() MsgType
func (*FullElements) String ¶
func (msg *FullElements) String() string
type MemPrefixNode ¶
type MemPrefixNode struct { // All nodes share the tree definition as a common context *MemPrefixTree // contains filtered or unexported fields }
func (*MemPrefixNode) Children ¶
func (n *MemPrefixNode) Children() (result []PrefixNode)
func (*MemPrefixNode) Elements ¶
func (n *MemPrefixNode) Elements() []*Zp
func (*MemPrefixNode) IsLeaf ¶
func (n *MemPrefixNode) IsLeaf() bool
func (*MemPrefixNode) Key ¶
func (n *MemPrefixNode) Key() *Bitstring
func (*MemPrefixNode) Parent ¶
func (n *MemPrefixNode) Parent() (PrefixNode, bool)
func (*MemPrefixNode) SValues ¶
func (n *MemPrefixNode) SValues() []*Zp
func (*MemPrefixNode) Size ¶
func (n *MemPrefixNode) Size() int
type MemPrefixTree ¶
type MemPrefixTree struct {
// contains filtered or unexported fields
}
func (*MemPrefixTree) BitQuantum ¶
func (t *MemPrefixTree) BitQuantum() int
func (*MemPrefixTree) Init ¶
func (t *MemPrefixTree) Init()
Init configures the tree with default settings if not already set, and initializes the internal state with sample data points, root node, etc.
func (*MemPrefixTree) Insert ¶
func (t *MemPrefixTree) Insert(z *Zp) error
Insert a Z/Zp integer into the prefix tree
func (*MemPrefixTree) JoinThreshold ¶
func (t *MemPrefixTree) JoinThreshold() int
func (*MemPrefixTree) Node ¶
func (t *MemPrefixTree) Node(bs *Bitstring) (PrefixNode, error)
func (*MemPrefixTree) NumSamples ¶
func (t *MemPrefixTree) NumSamples() int
func (*MemPrefixTree) Points ¶
func (t *MemPrefixTree) Points() []*Zp
func (*MemPrefixTree) Remove ¶
func (t *MemPrefixTree) Remove(z *Zp) error
Remove a Z/Zp integer from the prefix tree
func (*MemPrefixTree) Root ¶
func (t *MemPrefixTree) Root() (PrefixNode, error)
func (*MemPrefixTree) SplitThreshold ¶
func (t *MemPrefixTree) SplitThreshold() int
type Peer ¶
type Peer struct { *Settings PrefixTree RecoverChan RecoverChan // contains filtered or unexported fields }
func NewMemPeer ¶
func NewMemPeer() *Peer
func NewPeer ¶
func NewPeer(settings *Settings, tree PrefixTree) *Peer
type PrefixNode ¶
type PrefixNode interface { BitQuantum() int Parent() (PrefixNode, bool) Key() *Bitstring Elements() []*Zp Size() int Children() []PrefixNode SValues() []*Zp IsLeaf() bool }
func Find ¶
func Find(t PrefixTree, z *Zp) (PrefixNode, error)
type PrefixTree ¶
type PrefixTree interface { Init() SplitThreshold() int JoinThreshold() int BitQuantum() int NumSamples() int Points() []*Zp Root() (PrefixNode, error) Node(key *Bitstring) (PrefixNode, error) Insert(z *Zp) error Remove(z *Zp) error }
type ReconMsg ¶
type ReconMsg interface { MsgType() MsgType // contains filtered or unexported methods }
type ReconRqstFull ¶
type ReconRqstFull struct { Prefix *Bitstring Elements *ZSet }
func (*ReconRqstFull) MsgType ¶
func (msg *ReconRqstFull) MsgType() MsgType
func (*ReconRqstFull) String ¶
func (msg *ReconRqstFull) String() string
type ReconRqstPoly ¶
type ReconRqstPoly struct { Prefix *Bitstring Size int Samples []*Zp }
func (*ReconRqstPoly) MsgType ¶
func (msg *ReconRqstPoly) MsgType() MsgType
func (*ReconRqstPoly) String ¶
func (msg *ReconRqstPoly) String() string
type RecoverChan ¶
type RecoverChan chan *Recover
type Settings ¶
type Settings struct { *toml.TomlTree // contains filtered or unexported fields }
func DefaultSettings ¶
func DefaultSettings() (settings *Settings)
func LoadSettings ¶
func NewSettings ¶
func NewSettings(tree *toml.TomlTree) (settings *Settings)
func (*Settings) BitQuantum ¶
func (*Settings) ConnTimeout ¶
func (*Settings) GetStrings ¶
func (*Settings) GossipIntervalSecs ¶
func (*Settings) JoinThreshold ¶
func (*Settings) MaxOutstandingReconRequests ¶
func (*Settings) NumSamples ¶
func (*Settings) ReadTimeout ¶
func (*Settings) SplitThreshold ¶
func (*Settings) ThreshMult ¶
func (*Settings) UpdateDerived ¶
func (s *Settings) UpdateDerived()
Click to show internal directories.
Click to hide internal directories.