Documentation
¶
Index ¶
- Constants
- Variables
- type Algorithm
- type BalancerConfig
- type Config
- type Option
- func WithBalancingConfig(balancingConfig BalancerConfig) Option
- func WithCertificate(certificate *x509.Certificate) Option
- func WithCredentials(credentials credentials.Credentials) Option
- func WithDatabase(database string) Option
- func WithDialTimeout(timeout time.Duration) Option
- func WithDiscoveryInterval(discoveryInterval time.Duration) Option
- func WithEndpoint(endpoint string) Option
- func WithFastDial(fastDial bool) Option
- func WithGrpcOptions(option ...grpc.DialOption) Option
- func WithOperationCancelAfter(operationCancelAfter time.Duration) Option
- func WithOperationTimeout(operationTimeout time.Duration) Option
- func WithRequestTimeout(requestTimeout time.Duration) Option
- func WithRequestsType(requestsType string) Option
- func WithSecure(secure bool) Option
- func WithStreamTimeout(streamTimeout time.Duration) Option
- func WithTrace(trace trace.Driver) Option
Constants ¶
View Source
const ( BalancingAlgorithmRandomChoice = iota BalancingAlgorithmRoundRobin DefaultBalancingAlgorithm = BalancingAlgorithmRandomChoice )
View Source
const (
DefaultDiscoveryInterval = time.Minute
)
Variables ¶
View Source
var (
DefaultBalancer = BalancerConfig{Algorithm: DefaultBalancingAlgorithm, PreferLocal: true}
)
Functions ¶
This section is empty.
Types ¶
type BalancerConfig ¶
type BalancerConfig struct {
// Algorithm define balancing algorithm
Algorithm Algorithm
// PreferLocal adds endpoint selection logic when local endpoints
// are always used first.
// When no alive local endpoints left other endpoints will be used.
//
// NOTE: some balancing methods (such as p2c) also may use knowledge of
// endpoint's locality. Difference is that with PreferLocal local
// endpoints selected separately from others. That is, if there at least
// one local endpoint it will be used regardless of its performance
// indicators.
//
// NOTE: currently driver (and even ydb itself) does not track load factor
// of each endpoint properly. Enabling this Option may lead to the
// situation, when all but one nodes in local datacenter become inactive
// and all clients will overload this single instance very quickly. That
// is, currently this Option may be called as experimental.
// You have been warned.
PreferLocal bool
}
type Config ¶
type Config interface {
// Endpoint is a required starting endpoint for connect
Endpoint() string
// Database is a required database name.
Database() string
// Secure is an flag for secure connection
Secure() bool
// Credentials is an ydb client credentials.
// In most cases Credentials are required.
Credentials() credentials.Credentials
// Trace contains driver tracing options.
Trace() trace.Driver
// RequestTimeout is the maximum amount of time a Call() will wait for an
// operation to complete.
// If RequestTimeout is zero then no timeout is used.
RequestTimeout() time.Duration
// StreamTimeout is the maximum amount of time a StreamRead() will wait for
// an operation to complete.
// If StreamTimeout is zero then no timeout is used.
StreamTimeout() time.Duration
// OperationTimeout is the maximum amount of time a YDB server will process
// an operation. After timeout exceeds YDB will try to cancel operation and
// regardless of the cancellation appropriate error will be returned to
// the client.
// If OperationTimeout is zero then no timeout is used.
OperationTimeout() time.Duration
// OperationCancelAfter is the maximum amount of time a YDB server will process an
// operation. After timeout exceeds YDB will try to cancel operation and if
// it succeeds appropriate error will be returned to the client; otherwise
// processing will be continued.
// If OperationCancelAfter is zero then no timeout is used.
OperationCancelAfter() time.Duration
// DiscoveryInterval is the frequency of background tasks of ydb endpoints
// discovery.
// If DiscoveryInterval is zero then the DefaultDiscoveryInterval is used.
// If DiscoveryInterval is negative, then no background discovery prepared.
DiscoveryInterval() time.Duration
// BalancingConfig is an optional configuration related to selected
// BalancingMethod. That is, some balancing methods allow to be configured.
BalancingConfig() BalancerConfig
// RequestsType set an additional types hint to all requests.
// It is needed only for debug purposes and advanced cases.
RequestsType() string
// FastDial will make dialer return Driver as soon as 1st connection succeeds.
// NB: it may be not the fastest node to serve requests.
FastDial() bool
// DialTimeout is the maximum amount of time a dial will wait for a connect to
// complete.
// If DialTimeout is zero then no timeout is used.
DialTimeout() time.Duration
// TLSConfig specifies the TLS configuration to use for tls client.
// If TLSConfig is zero then connections are insecure.
TLSConfig() *tls.Config
// GrpcDialOptions is an custom client grpc dial options which will appends to
// default grpc dial options
GrpcDialOptions() []grpc.DialOption
}
Config contains driver configuration options.
type Option ¶
type Option func(c *config)
func WithBalancingConfig ¶
func WithBalancingConfig(balancingConfig BalancerConfig) Option
func WithCertificate ¶
func WithCertificate(certificate *x509.Certificate) Option
func WithCredentials ¶
func WithCredentials(credentials credentials.Credentials) Option
func WithDatabase ¶
func WithDialTimeout ¶
func WithDiscoveryInterval ¶
func WithEndpoint ¶
func WithFastDial ¶
func WithGrpcOptions ¶ added in v3.5.0
func WithGrpcOptions(option ...grpc.DialOption) Option
func WithOperationTimeout ¶
func WithRequestTimeout ¶
func WithRequestsType ¶
func WithSecure ¶
func WithStreamTimeout ¶
Click to show internal directories.
Click to hide internal directories.