package cluster

import "github.com/ydb-platform/ydb-go-sdk/v3/internal/cluster"

Index

Constants

const (
	MaxGetConnTimeout = 10 * time.Second
)

Variables

var (
	// ErrClusterClosed returned when requested on a closed cluster.
	ErrClusterClosed = errors.New("cluster closed")

	// ErrClusterEmpty returned when no connections left in cluster.
	ErrClusterEmpty = errors.New("cluster empty")

	// ErrUnknownEndpoint returned when no connections left in cluster.
	ErrUnknownEndpoint = errors.New("unknown endpoint")

	// ErrNilBalancerElement returned when requested on a nil Balancer element.
	ErrNilBalancerElement = errors.New("nil balancer element")
	// ErrUnknownBalancerElement returned when requested on a unknown Balancer element.
	ErrUnknownBalancerElement = errors.New("unknown balancer element")
	// ErrUnknownTypeOfBalancerElement returned when requested on a unknown types of Balancer element.
	ErrUnknownTypeOfBalancerElement = errors.New("unknown types of balancer element")
)

Functions

func DiffEndpoints

func DiffEndpoints(curr, next []endpoint.Endpoint, eq, add, del func(i, j int))

func SortEndpoints

func SortEndpoints(es []endpoint.Endpoint)

func WithConnConfig

func WithConnConfig(connConfig conn.Config) option

func WithEndpoint

func WithEndpoint(ctx context.Context, endpoint Endpoint) context.Context

func WithWG

func WithWG(wg *sync.WaitGroup) option

Types

type Cluster

type Cluster interface {
	Insert(ctx context.Context, endpoint endpoint.Endpoint, opts ...option)
	Update(ctx context.Context, endpoint endpoint.Endpoint, opts ...option)
	Get(ctx context.Context) (conn conn.Conn, err error)
	Pessimize(ctx context.Context, endpoint endpoint.Endpoint) error
	Close(ctx context.Context) error
	Remove(ctx context.Context, endpoint endpoint.Endpoint, wg ...option)
	SetExplorer(repeater repeater.Repeater)
	Force()
}

func New

func New(
	pool conn.Pool,
	trace trace.Driver,
	balancer balancer.Balancer,
) Cluster

type Endpoint

type Endpoint interface {
	NodeID() uint32
}

func ContextEndpoint

func ContextEndpoint(ctx context.Context) (e Endpoint, ok bool)

Source Files

cluster.go context.go

Directories

PathSynopsis
internal/cluster/entry
Version
v3.8.5
Published
Feb 4, 2022
Platform
js/wasm
Imports
15 packages
Last checked
17 minutes ago

Tools for package owners.