membership

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2026 License: Apache-2.0 Imports: 24 Imported by: 19

Documentation

Overview

Package membership is a generated GoMock package.

Package membership is a generated GoMock package.

Package membership provides service discovery and membership information mechanism

Package membership is a generated GoMock package.

Package membership is a generated GoMock package.

Index

Constants

View Source
const (
	PortTchannel = "tchannel"
	PortGRPC     = "grpc"
)

Variables

View Source
var ErrInsufficientHosts = &types.InternalServiceError{Message: "Not enough hosts to serve the request"}

ErrInsufficientHosts is thrown when there are not enough hosts to serve the request

Functions

func TaskListExcludedFromShardDistributor added in v1.4.1

func TaskListExcludedFromShardDistributor(taskListName string, percentageOnboarded uint64, excludeShortLivedTaskLists bool) bool

Types

type ChangedEvent

type ChangedEvent struct {
	HostsAdded   []string
	HostsUpdated []string
	HostsRemoved []string
}

ChangedEvent describes a change in a membership ring

func (*ChangedEvent) Empty added in v1.2.14

func (ce *ChangedEvent) Empty() bool

type HostInfo

type HostInfo struct {
	// contains filtered or unexported fields
}

HostInfo is a type that contains the info about a cadence host

func NewDetailedHostInfo added in v0.24.0

func NewDetailedHostInfo(addr string, identity string, portMap PortMap) HostInfo

NewDetailedHostInfo creates a new HostInfo instance with identity and portmap information

func NewHostInfo

func NewHostInfo(addr string) HostInfo

NewHostInfo creates a new HostInfo instance

func (HostInfo) Belongs added in v0.24.0

func (hi HostInfo) Belongs(address string) (bool, error)

Belongs tells if ip:port is assigned to this member

func (HostInfo) GetAddress

func (hi HostInfo) GetAddress() string

GetAddress returns the ip:port address

func (HostInfo) GetNamedAddress added in v0.24.0

func (hi HostInfo) GetNamedAddress(port string) (string, error)

GetNamedAddress returns the ip:port address

func (HostInfo) Identity

func (hi HostInfo) Identity() string

Identity implements ringpop's Membership interface

func (HostInfo) Label

func (hi HostInfo) Label(key string) (value string, has bool)

Label is a noop function to conform to ringpop hashring member interface

func (HostInfo) SetLabel

func (hi HostInfo) SetLabel(key string, value string)

SetLabel is a noop function to conform to ringpop hashring member interface

func (HostInfo) String added in v0.24.0

func (hi HostInfo) String() string

String will return a human-readable host details

type MockPeerProvider added in v0.24.0

type MockPeerProvider struct {
	// contains filtered or unexported fields
}

MockPeerProvider is a mock of PeerProvider interface.

func NewMockPeerProvider added in v0.24.0

func NewMockPeerProvider(ctrl *gomock.Controller) *MockPeerProvider

NewMockPeerProvider creates a new mock instance.

func (*MockPeerProvider) EXPECT added in v0.24.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockPeerProvider) GetMembers added in v0.24.0

func (m *MockPeerProvider) GetMembers(service string) ([]HostInfo, error)

GetMembers mocks base method.

func (*MockPeerProvider) SelfEvict added in v0.24.0

func (m *MockPeerProvider) SelfEvict() error

SelfEvict mocks base method.

func (*MockPeerProvider) Start added in v0.24.0

func (m *MockPeerProvider) Start()

Start mocks base method.

func (*MockPeerProvider) Stop added in v0.24.0

func (m *MockPeerProvider) Stop()

Stop mocks base method.

func (*MockPeerProvider) Subscribe added in v0.24.0

func (m *MockPeerProvider) Subscribe(name string, handler func(ChangedEvent)) error

Subscribe mocks base method.

func (*MockPeerProvider) WhoAmI added in v0.24.0

func (m *MockPeerProvider) WhoAmI() (HostInfo, error)

WhoAmI mocks base method.

type MockPeerProviderMockRecorder added in v0.24.0

type MockPeerProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockPeerProviderMockRecorder is the mock recorder for MockPeerProvider.

func (*MockPeerProviderMockRecorder) GetMembers added in v0.24.0

func (mr *MockPeerProviderMockRecorder) GetMembers(service any) *gomock.Call

GetMembers indicates an expected call of GetMembers.

func (*MockPeerProviderMockRecorder) SelfEvict added in v0.24.0

func (mr *MockPeerProviderMockRecorder) SelfEvict() *gomock.Call

SelfEvict indicates an expected call of SelfEvict.

func (*MockPeerProviderMockRecorder) Start added in v0.24.0

Start indicates an expected call of Start.

func (*MockPeerProviderMockRecorder) Stop added in v0.24.0

Stop indicates an expected call of Stop.

func (*MockPeerProviderMockRecorder) Subscribe added in v0.24.0

func (mr *MockPeerProviderMockRecorder) Subscribe(name, handler any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockPeerProviderMockRecorder) WhoAmI added in v0.24.0

WhoAmI indicates an expected call of WhoAmI.

type MockPercentageOnboarded added in v1.4.1

type MockPercentageOnboarded struct {
	// contains filtered or unexported fields
}

MockPercentageOnboarded is a mock of PercentageOnboarded interface.

func NewMockPercentageOnboarded added in v1.4.1

func NewMockPercentageOnboarded(ctrl *gomock.Controller) *MockPercentageOnboarded

NewMockPercentageOnboarded creates a new mock instance.

func (*MockPercentageOnboarded) EXPECT added in v1.4.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockPercentageOnboarded) Value added in v1.4.1

func (m *MockPercentageOnboarded) Value() int

Value mocks base method.

type MockPercentageOnboardedMockRecorder added in v1.4.1

type MockPercentageOnboardedMockRecorder struct {
	// contains filtered or unexported fields
}

MockPercentageOnboardedMockRecorder is the mock recorder for MockPercentageOnboarded.

func (*MockPercentageOnboardedMockRecorder) Value added in v1.4.1

Value indicates an expected call of Value.

type MockResolver added in v0.24.0

type MockResolver struct {
	// contains filtered or unexported fields
}

MockResolver is a mock of Resolver interface.

func NewMockResolver added in v0.24.0

func NewMockResolver(ctrl *gomock.Controller) *MockResolver

NewMockResolver creates a new mock instance.

func (*MockResolver) EXPECT added in v0.24.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockResolver) EvictSelf added in v0.24.0

func (m *MockResolver) EvictSelf() error

EvictSelf mocks base method.

func (*MockResolver) Lookup added in v0.24.0

func (m *MockResolver) Lookup(service, key string) (HostInfo, error)

Lookup mocks base method.

func (*MockResolver) LookupByAddress added in v0.24.0

func (m *MockResolver) LookupByAddress(service, address string) (HostInfo, error)

LookupByAddress mocks base method.

func (*MockResolver) LookupN added in v1.4.1

func (m *MockResolver) LookupN(service, key string, n int) ([]HostInfo, error)

LookupN mocks base method.

func (*MockResolver) MemberCount added in v0.24.0

func (m *MockResolver) MemberCount(service string) (int, error)

MemberCount mocks base method.

func (*MockResolver) Members added in v0.24.0

func (m *MockResolver) Members(service string) ([]HostInfo, error)

Members mocks base method.

func (*MockResolver) Start added in v0.24.0

func (m *MockResolver) Start()

Start mocks base method.

func (*MockResolver) Stop added in v0.24.0

func (m *MockResolver) Stop()

Stop mocks base method.

func (*MockResolver) Subscribe added in v0.24.0

func (m *MockResolver) Subscribe(service, name string, notifyChannel chan<- *ChangedEvent) error

Subscribe mocks base method.

func (*MockResolver) Unsubscribe added in v0.24.0

func (m *MockResolver) Unsubscribe(service, name string) error

Unsubscribe mocks base method.

func (*MockResolver) WhoAmI added in v0.24.0

func (m *MockResolver) WhoAmI() (HostInfo, error)

WhoAmI mocks base method.

type MockResolverMockRecorder added in v0.24.0

type MockResolverMockRecorder struct {
	// contains filtered or unexported fields
}

MockResolverMockRecorder is the mock recorder for MockResolver.

func (*MockResolverMockRecorder) EvictSelf added in v0.24.0

func (mr *MockResolverMockRecorder) EvictSelf() *gomock.Call

EvictSelf indicates an expected call of EvictSelf.

func (*MockResolverMockRecorder) Lookup added in v0.24.0

func (mr *MockResolverMockRecorder) Lookup(service, key any) *gomock.Call

Lookup indicates an expected call of Lookup.

func (*MockResolverMockRecorder) LookupByAddress added in v0.24.0

func (mr *MockResolverMockRecorder) LookupByAddress(service, address any) *gomock.Call

LookupByAddress indicates an expected call of LookupByAddress.

func (*MockResolverMockRecorder) LookupN added in v1.4.1

func (mr *MockResolverMockRecorder) LookupN(service, key, n any) *gomock.Call

LookupN indicates an expected call of LookupN.

func (*MockResolverMockRecorder) MemberCount added in v0.24.0

func (mr *MockResolverMockRecorder) MemberCount(service any) *gomock.Call

MemberCount indicates an expected call of MemberCount.

func (*MockResolverMockRecorder) Members added in v0.24.0

func (mr *MockResolverMockRecorder) Members(service any) *gomock.Call

Members indicates an expected call of Members.

func (*MockResolverMockRecorder) Start added in v0.24.0

func (mr *MockResolverMockRecorder) Start() *gomock.Call

Start indicates an expected call of Start.

func (*MockResolverMockRecorder) Stop added in v0.24.0

func (mr *MockResolverMockRecorder) Stop() *gomock.Call

Stop indicates an expected call of Stop.

func (*MockResolverMockRecorder) Subscribe added in v0.24.0

func (mr *MockResolverMockRecorder) Subscribe(service, name, notifyChannel any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockResolverMockRecorder) Unsubscribe added in v0.24.0

func (mr *MockResolverMockRecorder) Unsubscribe(service, name any) *gomock.Call

Unsubscribe indicates an expected call of Unsubscribe.

func (*MockResolverMockRecorder) WhoAmI added in v0.24.0

func (mr *MockResolverMockRecorder) WhoAmI() *gomock.Call

WhoAmI indicates an expected call of WhoAmI.

type MockSingleProvider added in v1.3.0

type MockSingleProvider struct {
	// contains filtered or unexported fields
}

MockSingleProvider is a mock of SingleProvider interface.

func NewMockSingleProvider added in v1.3.0

func NewMockSingleProvider(ctrl *gomock.Controller) *MockSingleProvider

NewMockSingleProvider creates a new mock instance.

func (*MockSingleProvider) AddressToHost added in v1.3.0

func (m *MockSingleProvider) AddressToHost(owner string) (HostInfo, error)

AddressToHost mocks base method.

func (*MockSingleProvider) EXPECT added in v1.3.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockSingleProvider) Lookup added in v1.3.0

func (m *MockSingleProvider) Lookup(key string) (HostInfo, error)

Lookup mocks base method.

func (*MockSingleProvider) LookupN added in v1.4.1

func (m *MockSingleProvider) LookupN(key string, n int) ([]HostInfo, error)

LookupN mocks base method.

func (*MockSingleProvider) MemberCount added in v1.3.0

func (m *MockSingleProvider) MemberCount() int

MemberCount mocks base method.

func (*MockSingleProvider) Members added in v1.3.0

func (m *MockSingleProvider) Members() []HostInfo

Members mocks base method.

func (*MockSingleProvider) Refresh added in v1.3.0

func (m *MockSingleProvider) Refresh() error

Refresh mocks base method.

func (*MockSingleProvider) Start added in v1.3.0

func (m *MockSingleProvider) Start()

Start mocks base method.

func (*MockSingleProvider) Stop added in v1.3.0

func (m *MockSingleProvider) Stop()

Stop mocks base method.

func (*MockSingleProvider) Subscribe added in v1.3.0

func (m *MockSingleProvider) Subscribe(name string, channel chan<- *ChangedEvent) error

Subscribe mocks base method.

func (*MockSingleProvider) Unsubscribe added in v1.3.0

func (m *MockSingleProvider) Unsubscribe(name string) error

Unsubscribe mocks base method.

type MockSingleProviderMockRecorder added in v1.3.0

type MockSingleProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockSingleProviderMockRecorder is the mock recorder for MockSingleProvider.

func (*MockSingleProviderMockRecorder) AddressToHost added in v1.3.0

func (mr *MockSingleProviderMockRecorder) AddressToHost(owner any) *gomock.Call

AddressToHost indicates an expected call of AddressToHost.

func (*MockSingleProviderMockRecorder) Lookup added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Lookup(key any) *gomock.Call

Lookup indicates an expected call of Lookup.

func (*MockSingleProviderMockRecorder) LookupN added in v1.4.1

func (mr *MockSingleProviderMockRecorder) LookupN(key, n any) *gomock.Call

LookupN indicates an expected call of LookupN.

func (*MockSingleProviderMockRecorder) MemberCount added in v1.3.0

func (mr *MockSingleProviderMockRecorder) MemberCount() *gomock.Call

MemberCount indicates an expected call of MemberCount.

func (*MockSingleProviderMockRecorder) Members added in v1.3.0

Members indicates an expected call of Members.

func (*MockSingleProviderMockRecorder) Refresh added in v1.3.0

Refresh indicates an expected call of Refresh.

func (*MockSingleProviderMockRecorder) Start added in v1.3.0

Start indicates an expected call of Start.

func (*MockSingleProviderMockRecorder) Stop added in v1.3.0

Stop indicates an expected call of Stop.

func (*MockSingleProviderMockRecorder) Subscribe added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Subscribe(name, channel any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockSingleProviderMockRecorder) Unsubscribe added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Unsubscribe(name any) *gomock.Call

Unsubscribe indicates an expected call of Unsubscribe.

type MultiringResolver added in v0.24.0

type MultiringResolver struct {
	// contains filtered or unexported fields
}

MultiringResolver uses ring-per-service for membership information

func (*MultiringResolver) EvictSelf added in v0.24.0

func (rpo *MultiringResolver) EvictSelf() error

EvictSelf is used to remove this host from membership ring

func (*MultiringResolver) Lookup added in v0.24.0

func (rpo *MultiringResolver) Lookup(service string, key string) (HostInfo, error)

func (*MultiringResolver) LookupByAddress added in v0.24.0

func (rpo *MultiringResolver) LookupByAddress(service, address string) (HostInfo, error)

func (*MultiringResolver) LookupN added in v1.4.1

func (rpo *MultiringResolver) LookupN(service string, key string, n int) ([]HostInfo, error)

func (*MultiringResolver) MemberCount added in v0.24.0

func (rpo *MultiringResolver) MemberCount(service string) (int, error)

func (*MultiringResolver) Members added in v0.24.0

func (rpo *MultiringResolver) Members(service string) ([]HostInfo, error)

func (*MultiringResolver) Start added in v0.24.0

func (rpo *MultiringResolver) Start()

Start starts provider and all rings

func (*MultiringResolver) Stop added in v0.24.0

func (rpo *MultiringResolver) Stop()

Stop stops all rings and membership provider

func (*MultiringResolver) Subscribe added in v0.24.0

func (rpo *MultiringResolver) Subscribe(service string, name string, notifyChannel chan<- *ChangedEvent) error

func (*MultiringResolver) Unsubscribe added in v0.24.0

func (rpo *MultiringResolver) Unsubscribe(service string, name string) error

func (*MultiringResolver) WhoAmI added in v0.24.0

func (rpo *MultiringResolver) WhoAmI() (HostInfo, error)

WhoAmI asks to provide current instance address

type PeerProvider added in v0.24.0

type PeerProvider interface {
	common.Daemon

	GetMembers(service string) ([]HostInfo, error)
	WhoAmI() (HostInfo, error)
	SelfEvict() error
	Subscribe(name string, handler func(ChangedEvent)) error
}

PeerProvider is used to retrieve membership information from provider

type PercentageOnboarded added in v1.4.1

type PercentageOnboarded interface {
	Value() int
}

PercentageOnboarded is the shared read path for the shard-manager onboarding percentage.

func NewPercentageOnboarded added in v1.4.1

func NewPercentageOnboarded(
	metricsClient metrics.Client,
	value dynamicproperties.IntPropertyFn,
) PercentageOnboarded

func StaticPercentageOnboarded added in v1.4.1

func StaticPercentageOnboarded(value int) PercentageOnboarded

StaticPercentageOnboarded always returns the given value. Intended for test harnesses that build a Resource without bootstrap wiring.

type PortMap added in v0.24.0

type PortMap map[string]uint16

PortMap is a map of port names to port numbers.

func (PortMap) String added in v0.24.0

func (m PortMap) String() string

String formats a PortMap into a string of name:port pairs

type Resolver added in v0.24.0

type Resolver interface {
	common.Daemon

	// WhoAmI returns self host details.
	// To be consistent with peer provider, it is advised to use peer provider
	// to return this information
	WhoAmI() (HostInfo, error)

	// EvictSelf evicts this member from the membership ring. After this method is
	// called, other members should discover that this node is no longer part of the
	// ring.
	// This primitive is useful to carry out graceful host shutdown during deployments.
	EvictSelf() error

	// Lookup will return host which is an owner for provided key.
	Lookup(service, key string) (HostInfo, error)

	// LookupN returns up to n hosts responsible for the given key. This
	// enables redundant workers across multiple hosts for the same key.
	LookupN(service, key string, n int) ([]HostInfo, error)

	// Subscribe adds a subscriber which will get detailed change data on the given
	// channel, whenever membership changes.
	Subscribe(service, name string, notifyChannel chan<- *ChangedEvent) error

	// Unsubscribe removes a subscriber for this service.
	Unsubscribe(service, name string) error

	// MemberCount returns host count in a service specific hashring
	MemberCount(service string) (int, error)

	// Members returns all host addresses in a service specific hashring
	Members(service string) ([]HostInfo, error)

	// LookupByAddress returns Host which owns IP:port tuple
	LookupByAddress(service, address string) (HostInfo, error)
}

Resolver provides membership information for all cadence services.

func NewResolver added in v0.24.0

func NewResolver(
	provider PeerProvider,
	metricsClient metrics.Client,
	logger log.Logger,
	rings map[string]SingleProvider,
) (Resolver, error)

NewResolver builds hashrings for all services

type Ring added in v1.3.0

type Ring struct {
	// contains filtered or unexported fields
}

func NewHashring added in v1.3.0

func NewHashring(
	service string,
	provider PeerProvider,
	timeSource clock.TimeSource,
	logger log.Logger,
	scope metrics.Scope,
) *Ring

func (*Ring) AddressToHost added in v1.3.0

func (r *Ring) AddressToHost(addr string) (HostInfo, error)

func (*Ring) Lookup added in v1.3.0

func (r *Ring) Lookup(key string) (HostInfo, error)

Lookup finds the host in the ring responsible for serving the given key

func (*Ring) LookupN added in v1.4.1

func (r *Ring) LookupN(key string, n int) ([]HostInfo, error)

LookupN returns up to n hosts from the ring for the given key. This can be used to assign the same key to multiple hosts for redundancy purposes.

func (*Ring) LookupRaw added in v1.3.0

func (r *Ring) LookupRaw(key string) (string, error)

LookupRaw finds the host address in the ring responsible for serving the given key without converting it to HostInfo

func (*Ring) MemberCount added in v1.3.0

func (r *Ring) MemberCount() int

MemberCount returns number of hosts in a ring

func (*Ring) Members added in v1.3.0

func (r *Ring) Members() []HostInfo

func (*Ring) Refresh added in v1.3.0

func (r *Ring) Refresh() error

func (*Ring) Start added in v1.3.0

func (r *Ring) Start()

Start starts the hashring

func (*Ring) Stop added in v1.3.0

func (r *Ring) Stop()

Stop stops the resolver

func (*Ring) Subscribe added in v1.3.0

func (r *Ring) Subscribe(watcher string, notifyChannel chan<- *ChangedEvent) error

Subscribe registers callback watcher. Services can use this to be informed about membership changes

func (*Ring) Unsubscribe added in v1.3.0

func (r *Ring) Unsubscribe(name string) error

Unsubscribe removes subscriber

type SingleProvider added in v1.3.0

type SingleProvider interface {
	common.Daemon
	Lookup(key string) (HostInfo, error)
	// LookupN returns up to n hosts responsible for the given key, enabling
	// redundant workers across multiple hosts for the same key.
	LookupN(key string, n int) ([]HostInfo, error)
	Subscribe(name string, channel chan<- *ChangedEvent) error
	AddressToHost(owner string) (HostInfo, error)
	Unsubscribe(name string) error
	Members() []HostInfo
	MemberCount() int
	Refresh() error
}

func NewShardDistributorResolver added in v1.3.0

func NewShardDistributorResolver(
	spectator spectatorclient.Spectator,
	excludeShortLivedTaskLists dynamicproperties.BoolPropertyFn,
	percentageOnboarded PercentageOnboarded,
	ring SingleProvider,
	logger log.Logger,
) SingleProvider

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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