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.