Versions in this module Expand all Collapse all v0 v0.9.1 May 25, 2015 Changes in this version + func Between(id1, id2, key []byte, rincl bool) bool + func HashKey(key []byte) []byte + func KeyFromString(key_str string) []byte + func Min(a, b int) int + type ChordMsg struct + Data []byte + TransportHandler func(*ChordMsg, chan *ChordMsg) + TransportMsg interface{} + Type MsgType + type Config struct + Hostname string + LogLevel LogLevel + NumSuccessors int + NumVnodes int + Replicas int + StabilizeMax time.Duration + StabilizeMin time.Duration + func DefaultConfig(hostname string) *Config + type DelegateHook interface + EmitEvent func(*EventCtx) + type ErrHookUnknownType string + func (e ErrHookUnknownType) Error() string + type EventCtx struct + EvType RingEventType + ItemList []*Vnode + PrimaryItem *Vnode + ResponseCh chan interface{} + SecondaryItem *Vnode + Target *Vnode + type LocalTransport struct + func (lt *LocalTransport) Decode(raw []byte) (*ChordMsg, error) + func (lt *LocalTransport) Encode(msgtype MsgType, data []byte) []byte + func (lt *LocalTransport) FindSuccessors(vn *Vnode, limit int, key []byte) ([]*Vnode, error) + func (lt *LocalTransport) GetPredecessor(vn *Vnode) (*Vnode, error) + func (lt *LocalTransport) GetVnodeHandler(vnode *Vnode) (VnodeHandler, bool) + func (lt *LocalTransport) ListVnodes(host string) ([]*Vnode, error) + func (lt *LocalTransport) Notify(dest, self *Vnode) ([]*Vnode, error) + func (lt *LocalTransport) Ping(vn *Vnode) (bool, error) + func (lt *LocalTransport) Register(vnode *Vnode, handler VnodeHandler) + func (lt *LocalTransport) RegisterHook(th TransportHook) + type LogLevel int + const LogDebug + const LogInfo + const LogNull + type MsgType byte + const PbAck + const PbErr + const PbFindSuccessors + const PbForward + const PbGetPredecessor + const PbJoin + const PbLeave + const PbListVnodes + const PbListVnodesResp + const PbNotify + const PbPing + const PbProtoVnode + type PBProtoAck struct + Ok *bool + Version *int64 + XXX_unrecognized []byte + func (*PBProtoAck) ProtoMessage() + func (m *PBProtoAck) GetOk() bool + func (m *PBProtoAck) GetVersion() int64 + func (m *PBProtoAck) Reset() + func (m *PBProtoAck) String() string + type PBProtoErr struct + Error *string + XXX_unrecognized []byte + func (*PBProtoErr) ProtoMessage() + func (m *PBProtoErr) GetError() string + func (m *PBProtoErr) Reset() + func (m *PBProtoErr) String() string + type PBProtoFindSuccessors struct + Dest *PBProtoVnode + Key []byte + Limit *int32 + XXX_unrecognized []byte + func (*PBProtoFindSuccessors) ProtoMessage() + func (m *PBProtoFindSuccessors) GetDest() *PBProtoVnode + func (m *PBProtoFindSuccessors) GetKey() []byte + func (m *PBProtoFindSuccessors) GetLimit() int32 + func (m *PBProtoFindSuccessors) Reset() + func (m *PBProtoFindSuccessors) String() string + type PBProtoForward struct + Vnode *PBProtoVnode + XXX_unrecognized []byte + func (*PBProtoForward) ProtoMessage() + func (m *PBProtoForward) GetVnode() *PBProtoVnode + func (m *PBProtoForward) Reset() + func (m *PBProtoForward) String() string + type PBProtoGetPredecessor struct + Dest *PBProtoVnode + XXX_unrecognized []byte + func (*PBProtoGetPredecessor) ProtoMessage() + func (m *PBProtoGetPredecessor) GetDest() *PBProtoVnode + func (m *PBProtoGetPredecessor) Reset() + func (m *PBProtoGetPredecessor) String() string + type PBProtoLeave struct + Dest *PBProtoVnode + Source *PBProtoVnode + XXX_unrecognized []byte + func (*PBProtoLeave) ProtoMessage() + func (m *PBProtoLeave) GetDest() *PBProtoVnode + func (m *PBProtoLeave) GetSource() *PBProtoVnode + func (m *PBProtoLeave) Reset() + func (m *PBProtoLeave) String() string + type PBProtoListVnodes struct + XXX_unrecognized []byte + func (*PBProtoListVnodes) ProtoMessage() + func (m *PBProtoListVnodes) Reset() + func (m *PBProtoListVnodes) String() string + type PBProtoListVnodesResp struct + Vnodes []*PBProtoVnode + XXX_unrecognized []byte + func (*PBProtoListVnodesResp) ProtoMessage() + func (m *PBProtoListVnodesResp) GetVnodes() []*PBProtoVnode + func (m *PBProtoListVnodesResp) Reset() + func (m *PBProtoListVnodesResp) String() string + type PBProtoNotify struct + Dest *PBProtoVnode + Vnode *PBProtoVnode + XXX_unrecognized []byte + func (*PBProtoNotify) ProtoMessage() + func (m *PBProtoNotify) GetDest() *PBProtoVnode + func (m *PBProtoNotify) GetVnode() *PBProtoVnode + func (m *PBProtoNotify) Reset() + func (m *PBProtoNotify) String() string + type PBProtoPing struct + Version *int64 + XXX_unrecognized []byte + func (*PBProtoPing) ProtoMessage() + func (m *PBProtoPing) GetVersion() int64 + func (m *PBProtoPing) Reset() + func (m *PBProtoPing) String() string + type PBProtoVnode struct + Host *string + Id []byte + XXX_unrecognized []byte + func (*PBProtoVnode) ProtoMessage() + func (m *PBProtoVnode) GetHost() string + func (m *PBProtoVnode) GetId() []byte + func (m *PBProtoVnode) Reset() + func (m *PBProtoVnode) String() string + type Ring struct + Stabilizations int + func CreateRing(config *Config, transport Transport) (*Ring, error) + func JoinRing(config *Config, transport Transport, existing string) (*Ring, error) + func (r *Ring) Len() int + func (r *Ring) Less(i, j int) bool + func (r *Ring) Logf(level LogLevel, format string, v ...interface{}) + func (r *Ring) Logln(level LogLevel, v ...interface{}) + func (r *Ring) Lookup(n int, keyHash []byte) ([]*Vnode, error) + func (r *Ring) MaxStabilize() time.Duration + func (r *Ring) MyVnodes() []*Vnode + func (r *Ring) RegisterDelegateHook(dh DelegateHook) + func (r *Ring) Replicas() int + func (r *Ring) Swap(i, j int) + type RingEventType int + var EvPredecessorJoined RingEventType = 1 + var EvPredecessorLeft RingEventType = 2 + var EvReplicasChanged RingEventType = 3 + type Transport interface + Encode func(MsgType, []byte) []byte + FindSuccessors func(*Vnode, int, []byte) ([]*Vnode, error) + GetPredecessor func(*Vnode) (*Vnode, error) + GetVnodeHandler func(*Vnode) (VnodeHandler, bool) + ListVnodes func(string) ([]*Vnode, error) + Notify func(dest, self *Vnode) ([]*Vnode, error) + Ping func(*Vnode) (bool, error) + Register func(*Vnode, VnodeHandler) + RegisterHook func(TransportHook) + func InitLocalTransport(remote Transport) Transport + func InitZMQTransport(hostname string, timeout time.Duration) (Transport, error) + type TransportHook interface + Decode func([]byte) (*ChordMsg, error) + type Vnode struct + Host string + Id []byte + func VnodeFromProtobuf(pb *PBProtoVnode) *Vnode + func (vn *Vnode) String() string + func (vn *Vnode) ToProtobuf() *PBProtoVnode + type VnodeHandler interface + FindRemoteSuccessors func(int) ([]*Vnode, error) + FindSuccessors func([]byte, int) ([]*Vnode, *Vnode, error) + GetPredecessor func() (*Vnode, error) + Notify func(*Vnode) ([]*Vnode, error) + type ZMQTransport struct + ClientTimeout time.Duration + ZMQContext *zmq.Context + func (t *ZMQTransport) RegisterHook(h TransportHook) + func (transport *ZMQTransport) Decode(data []byte) (*ChordMsg, error) + func (transport *ZMQTransport) Encode(mt MsgType, data []byte) []byte + func (transport *ZMQTransport) FindSuccessors(remote *Vnode, limit int, key []byte) ([]*Vnode, error) + func (transport *ZMQTransport) GetPredecessor(remote *Vnode) (*Vnode, error) + func (transport *ZMQTransport) GetVnodeHandler(vnode *Vnode) (VnodeHandler, bool) + func (transport *ZMQTransport) ListVnodes(host string) ([]*Vnode, error) + func (transport *ZMQTransport) NewErrorMsg(msg string) *ChordMsg + func (transport *ZMQTransport) Notify(remote, self *Vnode) ([]*Vnode, error) + func (transport *ZMQTransport) Ping(remote_vn *Vnode) (bool, error) + func (transport *ZMQTransport) Register(vnode *Vnode, handler VnodeHandler)