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 | 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 | 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 | The session to check. |
Type | Description |
---|---|
boolean | {boolean} |
_ping(session)
_ping
(
session
:
Session
)
:
Promise<void>
;
Pings an individual session.
Type | Name | Description |
---|---|---|
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 | 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 | 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 | The session to release. |
Type | Description |
---|---|
void |