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 > SessionPoolPackage
@google-cloud/spanner!Constructors
(constructor)(database, options)
constructor(database: Database, options?: SessionPoolOptions);Constructs a new instance of the SessionPool class
| Type | Name | Description |
|---|---|---|
| Database | database |
The DB instance. |
| SessionPoolOptions | options |
Configuration options. |
Properties
_acquires
_acquires: PQueue;| Type | Description |
|---|---|
| PQueue |
_evictHandle
_evictHandle: NodeJS.Timer;| Type | Description |
|---|---|
| NodeJS.Timer |
_inventory
_inventory: SessionInventory;| Type | Description |
|---|---|
| SessionInventory |
_numInProcessPrepare
_numInProcessPrepare: number;| Type | Description |
|---|---|
| number |
_onClose
_onClose: Promise<void>;| Type | Description |
|---|---|
| Promise<void> |
_pending
_pending: number;| Type | Description |
|---|---|
| number |
_pendingPrepare
_pendingPrepare: number;| Type | Description |
|---|---|
| number |
_pingHandle
_pingHandle: NodeJS.Timer;| Type | Description |
|---|---|
| NodeJS.Timer |
_requests
_requests: PQueue;| Type | Description |
|---|---|
| PQueue |
_traces
_traces: Map<string, trace.StackFrame[]>;| Type | Description |
|---|---|
| Map<string, trace.StackFrame[]> |
_waiters
_waiters: Waiters;| Type | Description |
|---|---|
| Waiters |
available
get available(): number;Total number of available sessions. {number}
| Type | Description |
|---|---|
| number |
borrowed
get borrowed(): number;Total number of borrowed sessions. {number}
| Type | Description |
|---|---|
| number |
currentWriteFraction
get currentWriteFraction(): number;Current fraction of write-prepared sessions in the pool. {number}
| Type | Description |
|---|---|
| number |
database
database: Database;| Type | Description |
|---|---|
| Database |
isFull
get isFull(): boolean;Flag to determine if Pool is full. {boolean}
| Type | Description |
|---|---|
| boolean |
isOpen
isOpen: boolean;| Type | Description |
|---|---|
| boolean |
numReadWaiters
get numReadWaiters(): number;Current number of waiters for a read-only session. {number}
| Type | Description |
|---|---|
| number |
numWriteWaiters
get numWriteWaiters(): number;Current number of waiters for a read/write session. {number}
| Type | Description |
|---|---|
| number |
options
options: SessionPoolOptions;| Type | Description |
|---|---|
| SessionPoolOptions |
pendingPrepare
get pendingPrepare(): number;Number of sessions currently being prepared for a read/write transaction before being released into the pool. This number does not include the number of sessions being prepared for a read/write transaction that have already been checked out of the pool. {number}
| Type | Description |
|---|---|
| number |
reads
get reads(): number;Total number of read sessions. {number}
| Type | Description |
|---|---|
| number |
size
get size(): number;Total size of pool. {number}
| Type | Description |
|---|---|
| number |
totalPending
get totalPending(): number;Number of sessions being created or prepared for a read/write transaction. {number}
| Type | Description |
|---|---|
| number |
totalWaiters
get totalWaiters(): number;Sum of read and write waiters. {number}
| Type | Description |
|---|---|
| number |
writes
get writes(): number;Total number of write sessions. {number}
| Type | Description |
|---|---|
| number |
Methods
_acquire(type)
_acquire(type: types): Promise<Session>;Attempts to borrow a session from the pool.
| Type | Name | Description |
|---|---|---|
| types | type |
The desired type to borrow. |
| Type | Description |
|---|---|
| Promise<Session> | {Promise
|
_borrow(session)
_borrow(session: Session): void;Moves a session into the borrowed group.
| Type | Name | Description |
|---|---|---|
| Session | session |
The session object. |
| Type | Description |
|---|---|
| void |
_borrowFrom(type)
_borrowFrom(type: types): Session;Borrows the first session from specific group. This method may only be called if the inventory actually contains a session of the desired type.
| Type | Name | Description |
|---|---|---|
| types | type |
The desired session type. {Session} |
| Type | Description |
|---|---|
| Session |
_borrowNextAvailableSession(type)
_borrowNextAvailableSession(type: types): Session;Grabs the next available session.
| Type | Name | Description |
|---|---|---|
| types | type |
The desired session type. |
| Type | Description |
|---|---|
| Session | {Promise
|
_createSession(type)
_createSession(type: types): Promise<void>;Attempts to create a single session of a certain type.
| Type | Name | Description |
|---|---|---|
| types | type |
The desired type to create. |
| Type | Description |
|---|---|
| Promise<void> | {Promise} |
_createSessions({ reads, writes, })
_createSessions({ reads, writes, }: CreateSessionsOptions): Promise<void>;Batch creates sessions and prepares any necessary transactions.
| Type | Name | Description |
|---|---|---|
| CreateSessionsOptions | { reads, writes, } |
| Type | Description |
|---|---|
| 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.
SessoinPool#error
| Type | Name | Description |
|---|---|---|
| Session | session |
The session to delete. |
| Type | Description |
|---|---|
| Promise<void> | {Promise} |
_evictIdleSessions()
_evictIdleSessions(): void;Deletes idle sessions that exceed the maxIdle configuration.
| Type | Description |
|---|---|
| void |
_fill()
_fill(): Promise<void>;Fills the pool with the minimum number of sessions.
{Promise}
| Type | Description |
|---|---|
| Promise<void> |
_getIdleSessions()
_getIdleSessions(): Session[];Retrieves a list of all the idle sessions.
| Type | Description |
|---|---|
| Session[] | {Session[]} |
_getLeaks()
_getLeaks(): string[];Returns stack traces for sessions that have not been released.
{string[]}
| Type | Description |
|---|---|
| string[] |
_getSession(type, startTime)
_getSession(type: types, startTime: number): Promise<Session>;Attempts to get a session of a specific type. If the type is unavailable it may try to use a different type.
| Type | Name | Description |
|---|---|---|
| types | type |
The desired session type. |
| number | startTime |
Timestamp to use when determining timeouts. |
| Type | Description |
|---|---|
| Promise<Session> | {Promise
|
_hasSessionUsableFor(type)
_hasSessionUsableFor(type: types): boolean;Returns true if the pool has a session that is usable for the specified type, i.e. if a read-only session is requested, it returns true if the pool has a read-only or a read/write session. If a read/write session is requested, the method only returns true if the pool has a read/write session available.
| Type | Name | Description |
|---|---|---|
| types | type |
The type of session. |
| Type | Description |
|---|---|
| boolean |
_isValidSession(session)
_isValidSession(session: Session): boolean;Checks to see whether or not session is expired.
| Type | Name | Description |
|---|---|---|
| Session | session |
The session to check. |
| Type | Description |
|---|---|
| boolean | {boolean} |
_ping(session)
_ping(session: Session): Promise<void>;Pings an individual session.
| Type | Name | Description |
|---|---|---|
| Session | session |
The session to ping. |
| Type | Description |
|---|---|
| Promise<void> | {Promise} |
_pingIdleSessions()
_pingIdleSessions(): Promise<void>;Makes a keep alive request to all the idle sessions.
| Type | Description |
|---|---|
| Promise<void> | {Promise} |
_prepareTransaction(session)
_prepareTransaction(session: Session): Promise<void>;Creates a transaction for a session.
| Type | Name | Description |
|---|---|---|
| Session | session |
The session object. |
| Type | Description |
|---|---|
| Promise<void> | {Promise} |
_release(session)
_release(session: Session): void;Releases a session back into the pool.
SessionPool#available SessionPool#readonly-available SessionPool#readwrite-available
| Type | Name | Description |
|---|---|---|
| Session | session |
The session object. |
| Type | Description |
|---|---|
| void |
_startHouseKeeping()
_startHouseKeeping(): void;Starts housekeeping (pinging/evicting) of idle sessions.
| Type | Description |
|---|---|
| void |
_stopHouseKeeping()
_stopHouseKeeping(): void;Stops housekeeping.
| Type | Description |
|---|---|
| void |
close(callback)
close(callback: SessionPoolCloseCallback): void;Closes and the pool.
SessionPool#close
| Type | Name | Description |
|---|---|---|
| SessionPoolCloseCallback | callback |
The callback function. |
| Type | Description |
|---|---|
| void |
formatTrace(frames)
static formatTrace(frames: trace.StackFrame[]): string;Formats stack trace objects into Node-like stack trace.
| Type | Name | Description |
|---|---|---|
| trace.StackFrame[] | frames |
| Type | Description |
|---|---|
| string |
getReadSession(callback)
getReadSession(callback: GetReadSessionCallback): void;Retrieve a read session.
| Type | Name | Description |
|---|---|---|
| GetReadSessionCallback | callback |
The callback function. |
| Type | Description |
|---|---|
| void |
getWriteSession(callback)
getWriteSession(callback: GetWriteSessionCallback): void;Retrieve a read/write session.
| Type | Name | Description |
|---|---|---|
| GetWriteSessionCallback | callback |
The callback function. |
| Type | Description |
|---|---|
| void |
open()
open(): void;Opens the pool, filling it to the configured number of read and write sessions.
SessionPool#open {Promise}
| Type | Description |
|---|---|
| void |
release(session)
release(session: Session): void;Releases session back into the pool. If the session is a write session it will also prepare a new transaction before releasing it.
| Type | Name | Description |
|---|---|---|
| Session | session |
The session to release. |
| Type | Description |
|---|---|
| void |