UNPKG

@ydbjs/core

Version:

Core driver for YDB: manages connections, endpoint discovery, authentication, and service client creation. Foundation for all YDB client operations.

52 lines 1.77 kB
import { type EndpointInfo } from '@ydbjs/api/discovery'; import type { ChannelCredentials, ChannelOptions } from 'nice-grpc'; import { type Connection } from './conn.js'; export declare class ConnectionPool implements Disposable { #private; protected connections: Set<Connection>; protected pessimized: Set<Connection>; constructor(channelCredentials: ChannelCredentials, channelOptions?: ChannelOptions); /** * Get a channel based on load balancing rules * @param preferNodeId The preferred node id to use * @returns A connection from the pool */ acquire(preferNodeId?: Connection["nodeId"]): Connection; /** * Release a connection back to the pool * @param conn The connection to release * @returns The connection pool instance */ release(conn: Connection): this; /** * Add a new connection to the pool * @param endpoint The endpoint information for the new connection */ add(endpoint: EndpointInfo): this; /** * Find a connection by node id * @param nodeId The node id to search for * @returns The connection if found, undefined otherwise */ findByNodeId(nodeId: Connection["nodeId"]): Connection | undefined; /** * Remove a connection from the pool * @param connection The connection to remove */ remove(connection: Connection): this; /** * Pessimize a connection for a set amount of time * @param connection The connection to pessimize */ pessimize(connection: Connection): this; /** * Close all connections in the pool */ close(): void; /** * Destroy the connection pool. */ destroy(): void; [Symbol.dispose](): void; } //# sourceMappingURL=pool.d.ts.map