Class SessionPool (7.5.0)

Class used to manage connections to Spanner.

**You don't need to use this class directly, connections will be handled for you.**

{EventEmitter}

Inheritance

EventEmitter > SessionPool

Package

@google-cloud/spanner

Constructors

(constructor)(database, options)

constructor(database: Database, options?: SessionPoolOptions);

Constructs a new instance of the SessionPool class

Parameters
NameDescription
database Database

The DB instance.

options SessionPoolOptions

Configuration options.

Properties

_acquires

_acquires: PQueue;

_evictHandle

_evictHandle: NodeJS.Timer;

_inventory

_inventory: SessionInventory;

_onClose

_onClose: Promise<void>;

_pending

_pending: number;

_pingHandle

_pingHandle: NodeJS.Timer;

_requests

_requests: PQueue;

_traces

_traces: Map<string, trace.StackFrame[]>;

_waiters

_waiters: number;

available

get available(): number;

Total number of available sessions. {number}

borrowed

get borrowed(): number;

Total number of borrowed sessions. {number}

currentWriteFraction

get currentWriteFraction(): number;

database

database: Database;

isFull

get isFull(): boolean;

Flag to determine if Pool is full. {boolean}

isOpen

isOpen: boolean;

numReadWaiters

get numReadWaiters(): number;

numWriteWaiters

get numWriteWaiters(): number;

options

options: SessionPoolOptions;

pendingPrepare

get pendingPrepare(): number;

reads

get reads(): number;

size

get size(): number;

Total size of pool. {number}

totalPending

get totalPending(): number;

Number of sessions being created or prepared for a read/write transaction. {number}

totalWaiters

get totalWaiters(): number;

Sum of read and write waiters. {number}

writes

get writes(): number;

Methods

_acquire()

_acquire(): Promise<Session>;

Attempts to borrow a session from the pool.

Returns
TypeDescription
Promise<Session>

{Promise

_borrow(session)

_borrow(session: Session): void;

Moves a session into the borrowed group.

Parameter
NameDescription
session Session

The session object.

Returns
TypeDescription
void

_borrowFrom()

_borrowFrom(): Session;

Borrows the first session from the inventory.

{Session}

Returns
TypeDescription
Session

_borrowNextAvailableSession()

_borrowNextAvailableSession(): Session;

Grabs the next available session.

Returns
TypeDescription
Session

{Promise

_createSession()

_createSession(): Promise<void>;

Attempts to create a single session.

Returns
TypeDescription
Promise<void>

{Promise}

_createSessions(amount)

_createSessions(amount: number): Promise<void>;

Batch creates sessions.

Parameter
NameDescription
amount number

Config specifying how many sessions to create.

Returns
TypeDescription
Promise<void>

{Promise} SessionPool#createError

_destroy(session)

_destroy(session: Session): Promise<void>;

Attempts to delete a session, optionally creating a new one of the same type if the pool is still open and we're under the configured min value.

SessionPool#error

Parameter
NameDescription
session Session

The session to delete.

Returns
TypeDescription
Promise<void>

{Promise}

_evictIdleSessions()

_evictIdleSessions(): void;

Deletes idle sessions that exceed the maxIdle configuration.

Returns
TypeDescription
void

_fill()

_fill(): Promise<void>;

Fills the pool with the minimum number of sessions.

{Promise}

Returns
TypeDescription
Promise<void>

_getIdleSessions()

_getIdleSessions(): Session[];

Retrieves a list of all the idle sessions.

Returns
TypeDescription
Session[]

{Session[]}

_getLeaks()

_getLeaks(): string[];

Returns stack traces for sessions that have not been released.

{string[]}

Returns
TypeDescription
string[]

_getSession(startTime)

_getSession(startTime: number): Promise<Session>;

Attempts to get a session.

Parameter
NameDescription
startTime number

Timestamp to use when determining timeouts.

Returns
TypeDescription
Promise<Session>

{Promise

_hasSessionUsableFor()

_hasSessionUsableFor(): boolean;

Returns true if the pool has a usable session.

Returns
TypeDescription
boolean

_isValidSession(session)

_isValidSession(session: Session): boolean;

Checks to see whether or not session is expired.

Parameter
NameDescription
session Session

The session to check.

Returns
TypeDescription
boolean

{boolean}

_ping(session)

_ping(session: Session): Promise<void>;

Pings an individual session.

Parameter
NameDescription
session Session

The session to ping.

Returns
TypeDescription
Promise<void>

{Promise}

_pingIdleSessions()

_pingIdleSessions(): Promise<void>;

Makes a keep alive request to all the idle sessions.

Returns
TypeDescription
Promise<void>

{Promise}

_prepareTransaction(session)

_prepareTransaction(session: Session): void;

Creates a transaction for a session.

Parameter
NameDescription
session Session

The session object.

Returns
TypeDescription
void

_release(session)

_release(session: Session): void;

Releases a session back into the pool.

SessionPool#available SessionPool#session-available

Parameter
NameDescription
session Session

The session object.

Returns
TypeDescription
void

_startHouseKeeping()

_startHouseKeeping(): void;

Starts housekeeping (pinging/evicting) of idle sessions.

Returns
TypeDescription
void

_stopHouseKeeping()

_stopHouseKeeping(): void;

Stops housekeeping.

Returns
TypeDescription
void

close(callback)

close(callback: SessionPoolCloseCallback): void;

Closes and the pool.

SessionPool#close

Parameter
NameDescription
callback SessionPoolCloseCallback

The callback function.

Returns
TypeDescription
void

formatTrace(frames)

static formatTrace(frames: trace.StackFrame[]): string;

Formats stack trace objects into Node-like stack trace.

Parameter
NameDescription
frames StackFrame[]
Returns
TypeDescription
string

getReadSession(callback)

getReadSession(callback: GetReadSessionCallback): void;

Retrieve a read session.

Parameter
NameDescription
callback GetReadSessionCallback

The callback function.

Returns
TypeDescription
void

getSession(callback)

getSession(callback: GetSessionCallback): void;

Retrieve a session.

Parameter
NameDescription
callback GetSessionCallback

The callback function.

Returns
TypeDescription
void

getWriteSession(callback)

getWriteSession(callback: GetWriteSessionCallback): void;

Retrieve a read/write session.

Parameter
NameDescription
callback GetWriteSessionCallback

The callback function.

Returns
TypeDescription
void

open()

open(): void;

Opens the pool, filling it to the configured number of read and write sessions.

SessionPool#open {Promise}

Returns
TypeDescription
void

release(session)

release(session: Session): void;

Releases session back into the pool.

Parameter
NameDescription
session Session

The session to release.

Returns
TypeDescription
void