velocious 1.0.418 → 1.0.419

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1442,7 +1442,7 @@ database: {
1442
1442
  }
1443
1443
  ```
1444
1444
 
1445
- `pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed.
1445
+ `pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed. The built-in debug endpoint reports each in-use connection's `checkedOutForMs`, each idle connection's `idleForMs`, and queued `pendingCheckouts[].waitingForMs` so production diagnostics can distinguish long-held checkouts from pool-capacity waits.
1446
1446
 
1447
1447
  # Websockets
1448
1448
 
@@ -2,6 +2,7 @@ export const CLOSED_CONNECTION: unique symbol;
2
2
  /**
3
3
  * @typedef {object} PendingCheckout
4
4
  * @property {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfig - Resolved database configuration needed by the checkout.
5
+ * @property {number} enqueuedAt - Timestamp when the checkout started waiting.
5
6
  * @property {import("./base.js").ConnectionCheckoutOptions} options - Checkout options.
6
7
  * @property {string} reuseKey - Database configuration reuse key needed by the checkout.
7
8
  * @property {(connection: import("../drivers/base.js").default) => void} resolve - Resolves with an activated connection.
@@ -68,6 +69,14 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
68
69
  * @returns {Promise<void>} - Resolves when the connection is checked in or closed.
69
70
  */
70
71
  checkin(connection: import("../drivers/base.js").default): Promise<void>;
72
+ /**
73
+ * @param {import("../drivers/base.js").default} connection - Connection being checked in.
74
+ * @param {number | undefined} id - Connection checkout id.
75
+ * @returns {void}
76
+ */
77
+ untrackConnectionInUse(connection: import("../drivers/base.js").default, id: number | undefined): void;
78
+ /** @returns {Promise<void>} - Resolves once idle reaping has been scheduled or run. */
79
+ handleCheckedInIdleConnection(): Promise<void>;
71
80
  /**
72
81
  * @param {string} reuseKey - Database configuration reuse key.
73
82
  * @param {object} [args] - Options.
@@ -91,6 +100,11 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
91
100
  activateConnection(connection: import("../drivers/base.js").default, options?: import("./base.js").ConnectionCheckoutOptions): Promise<import("../drivers/base.js").default>;
92
101
  /** @returns {number | undefined} - Configured max live connections. */
93
102
  maxConnections(): number | undefined;
103
+ /**
104
+ * @param {unknown} value - Candidate max connection count.
105
+ * @returns {value is number} - Whether the value is a valid max connection count.
106
+ */
107
+ validMaxConnections(value: unknown): value is number;
94
108
  /** @returns {number} - Number of live and in-progress connections. */
95
109
  liveConnectionCount(): number;
96
110
  /** @returns {boolean} - Whether a new connection can be spawned. */
@@ -112,6 +126,21 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
112
126
  drainPendingCheckouts(): Promise<void>;
113
127
  /** @returns {Promise<void>} - Resolves when pending checkouts have been drained as far as possible. */
114
128
  drainPendingCheckoutsActual(): Promise<void>;
129
+ /**
130
+ * @param {PendingCheckout} checkout - Checkout waiting for a connection.
131
+ * @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity.
132
+ */
133
+ closeIdleConnectionForPendingCheckoutCapacity(checkout: PendingCheckout): Promise<boolean>;
134
+ /**
135
+ * @param {string} reuseKey - Database configuration reuse key.
136
+ * @returns {import("../drivers/base.js").default | undefined} - Matching idle connection, if present.
137
+ */
138
+ findIdleConnectionForReuseKey(reuseKey: string): import("../drivers/base.js").default | undefined;
139
+ /**
140
+ * @param {PendingCheckout} checkout - Checkout waiting for a connection.
141
+ * @returns {Promise<import("../drivers/base.js").default | undefined>} - Matching idle connection, if one can be reused.
142
+ */
143
+ idleConnectionForPendingCheckout(checkout: PendingCheckout): Promise<import("../drivers/base.js").default | undefined>;
115
144
  /**
116
145
  * @param {PendingCheckout} checkout - Checkout request to resolve.
117
146
  * @returns {Promise<void>} - Resolves when the checkout has been handled.
@@ -125,6 +154,13 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
125
154
  resolvePendingCheckout(checkout: PendingCheckout, connection: import("../drivers/base.js").default): Promise<void>;
126
155
  /** @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity. */
127
156
  closeOneIdleConnectionForCapacity(): Promise<boolean>;
157
+ /** @returns {import("../drivers/base.js").default} - Fallback connection, if present. */
158
+ currentFallbackConnectionOrFail(): import("../drivers/base.js").default;
159
+ /**
160
+ * @param {number} id - Checked-out connection id.
161
+ * @returns {void}
162
+ */
163
+ ensureConnectionIsInUse(id: number): void;
128
164
  /**
129
165
  * Registers a fallback connection for this pool identifier that will be used when no async context is available.
130
166
  * @param {import("../drivers/base.js").default} connection - Connection.
@@ -140,6 +176,55 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
140
176
  setTestSharedConnection(connection: import("../drivers/base.js").default): void;
141
177
  /** @returns {void} */
142
178
  clearTestSharedConnection(): void;
179
+ /**
180
+ * @param {number} now - Current timestamp.
181
+ * @returns {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} - Connection snapshots and seen set.
182
+ */
183
+ debugConnectionSnapshots(now: number): {
184
+ connections: Array<Record<string, unknown>>;
185
+ seenConnections: Set<import("../drivers/base.js").default>;
186
+ };
187
+ /**
188
+ * @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
189
+ * @returns {void}
190
+ */
191
+ addInUseDebugConnectionSnapshots({ connections, now, seenConnections }: {
192
+ connections: Array<Record<string, unknown>>;
193
+ now: number;
194
+ seenConnections: Set<import("../drivers/base.js").default>;
195
+ }): void;
196
+ /**
197
+ * @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
198
+ * @returns {void}
199
+ */
200
+ addIdleDebugConnectionSnapshots({ connections, now, seenConnections }: {
201
+ connections: Array<Record<string, unknown>>;
202
+ now: number;
203
+ seenConnections: Set<import("../drivers/base.js").default>;
204
+ }): void;
205
+ /**
206
+ * @param {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
207
+ * @returns {void}
208
+ */
209
+ addFallbackDebugConnectionSnapshots({ connections, seenConnections }: {
210
+ connections: Array<Record<string, unknown>>;
211
+ seenConnections: Set<import("../drivers/base.js").default>;
212
+ }): void;
213
+ /**
214
+ * @param {{connection: import("../drivers/base.js").default | undefined, connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>, state: string}} args - Snapshot collection state.
215
+ * @returns {void}
216
+ */
217
+ addDebugConnectionSnapshotIfUnseen({ connection, connections, seenConnections, state }: {
218
+ connection: import("../drivers/base.js").default | undefined;
219
+ connections: Array<Record<string, unknown>>;
220
+ seenConnections: Set<import("../drivers/base.js").default>;
221
+ state: string;
222
+ }): void;
223
+ /**
224
+ * @param {number} now - Current timestamp.
225
+ * @returns {Array<Record<string, unknown>>} - Pending checkout snapshots.
226
+ */
227
+ pendingCheckoutDebugSnapshots(now: number): Array<Record<string, unknown>>;
143
228
  /**
144
229
  * @returns {import("../drivers/base.js").default | undefined} - The global connection.
145
230
  */
@@ -152,8 +237,15 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
152
237
  clearGlobalConnectionForIdentifier(): void;
153
238
  /** @returns {number | null} - Idle timeout in milliseconds, or null when disabled. */
154
239
  idleTimeoutMillis(): number | null;
240
+ /**
241
+ * @param {unknown} value - Candidate idle timeout value.
242
+ * @returns {value is number} - Whether the value is a valid idle timeout.
243
+ */
244
+ validIdleTimeoutMillis(value: unknown): value is number;
155
245
  /** @returns {void} */
156
246
  scheduleIdleConnectionReaper(): void;
247
+ /** @returns {boolean} - Whether an idle reaper timer should be scheduled. */
248
+ hasIdleConnectionsToReap(): boolean;
157
249
  /**
158
250
  * @param {number} idleTimeoutMillis - Idle timeout in milliseconds.
159
251
  * @returns {number} - Delay before the next reap.
@@ -164,6 +256,49 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
164
256
  * @returns {Promise<void>} - Resolves when complete.
165
257
  */
166
258
  reapIdleConnections(): Promise<void>;
259
+ /**
260
+ * @param {import("../drivers/base.js").default[]} expiredConnections - Connections to close.
261
+ * @returns {Promise<void>} - Resolves when closed.
262
+ */
263
+ closeExpiredIdleConnections(expiredConnections: import("../drivers/base.js").default[]): Promise<void>;
264
+ /** @returns {Promise<void>} - Resolves once in-flight connection closes settle. */
265
+ awaitInflightConnectionCloses(): Promise<void>;
266
+ /**
267
+ * @param {{idleTimeoutMillis: number, now: number}} args - Reaper classification inputs.
268
+ * @returns {{expiredConnections: import("../drivers/base.js").default[], keptConnections: import("../drivers/base.js").default[]}} - Classified idle connections.
269
+ */
270
+ classifyIdleConnectionsForReaping({ idleTimeoutMillis, now }: {
271
+ idleTimeoutMillis: number;
272
+ now: number;
273
+ }): {
274
+ expiredConnections: import("../drivers/base.js").default[];
275
+ keptConnections: import("../drivers/base.js").default[];
276
+ };
277
+ /**
278
+ * @param {{connection: import("../drivers/base.js").default, expiredConnections: import("../drivers/base.js").default[], idleTimeoutMillis: number, keptConnections: import("../drivers/base.js").default[], now: number}} args - Classification state.
279
+ * @returns {void}
280
+ */
281
+ classifyIdleConnectionForReaping({ connection, expiredConnections, idleTimeoutMillis, keptConnections, now }: {
282
+ connection: import("../drivers/base.js").default;
283
+ expiredConnections: import("../drivers/base.js").default[];
284
+ idleTimeoutMillis: number;
285
+ keptConnections: import("../drivers/base.js").default[];
286
+ now: number;
287
+ }): void;
288
+ /**
289
+ * @param {import("../drivers/base.js").default} connection - Connection to inspect.
290
+ * @returns {boolean} - Whether the connection is marked closed.
291
+ */
292
+ connectionIsClosed(connection: import("../drivers/base.js").default): boolean;
293
+ /**
294
+ * @param {{connection: import("../drivers/base.js").default, idleTimeoutMillis: number, now: number}} args - Expiry inputs.
295
+ * @returns {boolean} - Whether the idle connection expired.
296
+ */
297
+ idleConnectionExpired({ connection, idleTimeoutMillis, now }: {
298
+ connection: import("../drivers/base.js").default;
299
+ idleTimeoutMillis: number;
300
+ now: number;
301
+ }): boolean;
167
302
  /**
168
303
  * @param {import("../drivers/base.js").default} connection - Connection to inspect.
169
304
  * @returns {boolean} - Whether the connection has an open transaction.
@@ -197,6 +332,10 @@ export type PendingCheckout = {
197
332
  * - Resolved database configuration needed by the checkout.
198
333
  */
199
334
  databaseConfig: import("../../configuration-types.js").DatabaseConfigurationType;
335
+ /**
336
+ * - Timestamp when the checkout started waiting.
337
+ */
338
+ enqueuedAt: number;
200
339
  /**
201
340
  * - Checkout options.
202
341
  */
@@ -1 +1 @@
1
- {"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"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"}