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 = fmt.Errorf("cluster closed")

	// ErrClusterEmpty returned when no connections left in cluster.
	ErrClusterEmpty = fmt.Errorf("cluster empty")
)

Functions

func DiffEndpoints

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

func SortEndpoints

func SortEndpoints(es []endpoint.Endpoint)

func WithEndpoint

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

func WithoutLock

func WithoutLock() crudOption

Types

type CRUD

type CRUD interface {
	// Insert inserts endpoint to cluster
	Insert(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Update updates endpoint in cluster
	Update(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Remove removes endpoint from cluster
	Remove(ctx context.Context, endpoint endpoint.Endpoint, opts ...crudOption) conn.Conn

	// Get gets conn from cluster
	Get(ctx context.Context, opts ...crudOption) (cc conn.Conn, err error)
}

type CRUDExplorerLocker

type CRUDExplorerLocker interface {
	CRUD
	Explorer
	sync.Locker
}

type Cluster

type Cluster interface {
	closer.Closer
	CRUD
	Explorer
	sync.Locker
	conn.Pessimizer
}

func New

func New(
	ctx context.Context,
	config config.Config,
	pool conn.Pool,
	balancer balancer.Balancer,
) Cluster

type Endpoint

type Endpoint interface {
	NodeID() uint32
}

func ContextEndpoint

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

type Explorer

type Explorer interface {
	SetExplorer(repeater repeater.Repeater)
	Force()
}

Source Files

cluster.go context.go

Directories

PathSynopsis
internal/cluster/entry
Version
v3.16.5
Published
Mar 22, 2022
Platform
linux/amd64
Imports
16 packages
Last checked
1 minute ago

Tools for package owners.