From 4bb90f296f0d6361122290dff56cc056781d9b12 Mon Sep 17 00:00:00 2001 From: Tony Zedginidze Date: Sun, 11 Oct 2026 23:51:15 +0200 Subject: [PATCH 1/2] docs: illustrate pool client handoff --- docs/pages/features/pooling.mdx | 8 ++++++++ docs/public/images/pool-client-handoff.png | Bin 0 -> 25597 bytes docs/public/images/pool-client-handoff.svg | 1 + 3 files changed, 9 insertions(+) create mode 100644 docs/public/images/pool-client-handoff.png create mode 100644 docs/public/images/pool-client-handoff.svg diff --git a/docs/pages/features/pooling.mdx b/docs/pages/features/pooling.mdx index ebe2844bc..72ba46ae4 100644 --- a/docs/pages/features/pooling.mdx +++ b/docs/pages/features/pooling.mdx @@ -56,6 +56,14 @@ client.release() future requests to check out a client from the pool will wait forever. +With `max: 1`, a second caller waits while the only client is checked out. Releasing a healthy client makes it available to the waiting caller: + +![Caller A checks out the pool’s only client. Caller B requests a client and waits until A releases it. B receives the same client, uses it, and releases it.](/images/pool-client-handoff.png) + +This example assumes a healthy client, no connection timeout, and no configured lifetime or usage limit that removes it. A release with an error removes the client instead of returning it for reuse. Always release checked-out clients, including when a query fails. + +[Download SVG](/images/pool-client-handoff.svg). Diagram created with [svgdiagram.ai](https://svgdiagram.ai). + ### Single query If you don't need a transaction or you just need to run a single query, the pool has a convenience method to run a query on any available client in the pool. This is the preferred way to query with node-postgres if you can as it removes the risk of leaking a client. diff --git a/docs/public/images/pool-client-handoff.png b/docs/public/images/pool-client-handoff.png new file mode 100644 index 0000000000000000000000000000000000000000..008e3fe5515f0417f7bf047525c9500f304a0841 GIT binary patch literal 25597 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 checked outconnect() — waitsrelease() after useSame client checked outrelease() after useCaller AUses the client firstPool · max: 1One reusable clientCaller BWaits for a free client \ No newline at end of file From bee011f73b46a67ab2593f5c4a63164cd6d497ff Mon Sep 17 00:00:00 2001 From: Tony Zedginidze Date: Mon, 12 Oct 2026 21:35:50 +0200 Subject: [PATCH 2/2] docs: distinguish pooled client reuse from error replacement --- docs/pages/features/pooling.mdx | 8 +- docs/public/images/pool-client-handoff.png | Bin 25597 -> 0 bytes docs/public/images/pool-client-handoff.svg | 1 - docs/public/images/pool-release-outcomes.png | Bin 0 -> 35402 bytes docs/public/images/pool-release-outcomes.svg | 98 +++++++++++++++++++ 5 files changed, 102 insertions(+), 5 deletions(-) delete mode 100644 docs/public/images/pool-client-handoff.png delete mode 100644 docs/public/images/pool-client-handoff.svg create mode 100644 docs/public/images/pool-release-outcomes.png create mode 100644 docs/public/images/pool-release-outcomes.svg diff --git a/docs/pages/features/pooling.mdx b/docs/pages/features/pooling.mdx index 72ba46ae4..c1ffd6235 100644 --- a/docs/pages/features/pooling.mdx +++ b/docs/pages/features/pooling.mdx @@ -56,13 +56,13 @@ client.release() future requests to check out a client from the pool will wait forever. -With `max: 1`, a second caller waits while the only client is checked out. Releasing a healthy client makes it available to the waiting caller: +With `max: 1`, a second caller waits while the only client is checked out. How the first caller releases that client determines whether the waiting caller receives the same client or a replacement: -![Caller A checks out the pool’s only client. Caller B requests a client and waits until A releases it. B receives the same client, uses it, and releases it.](/images/pool-client-handoff.png) +![Caller A holds the sole pool client while B waits. When A calls release without an error, the healthy client is reused and B receives the same client. When A passes an error to release, the pool removes that client and connects a replacement for B.](/images/pool-release-outcomes.png) -This example assumes a healthy client, no connection timeout, and no configured lifetime or usage limit that removes it. A release with an error removes the client instead of returning it for reuse. Always release checked-out clients, including when a query fails. +This example assumes an active pool, a successful replacement connection, no connection timeout, and no lifetime or usage limit that removes an otherwise healthy client. Passing an error to `client.release(error)` discards that client; the figure describes this explicit release choice, rather than prescribing it for every query error. The replacement still needs to be released after use. `max: 1` makes the example easy to follow, rather than recommending a pool size. -[Download SVG](/images/pool-client-handoff.svg). Diagram created with [svgdiagram.ai](https://svgdiagram.ai). +[Download editable SVG](/images/pool-release-outcomes.svg). ### Single query diff --git a/docs/public/images/pool-client-handoff.png b/docs/public/images/pool-client-handoff.png deleted file mode 100644 index 008e3fe5515f0417f7bf047525c9500f304a0841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25597 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 checked outconnect() — waitsrelease() after useSame client checked outrelease() after useCaller AUses the client firstPool · max: 1One reusable clientCaller BWaits for a free client \ No newline at end of file diff --git a/docs/public/images/pool-release-outcomes.png b/docs/public/images/pool-release-outcomes.png new file mode 100644 index 0000000000000000000000000000000000000000..693588abc1ec40484fd47fd3c5b6f86ae565266d GIT binary patch literal 35402 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 P2t-0e_G5|g=db? +Embedded inter font subsets retain the following copyright and SIL OFL 1.1 license. The surrounding diagram retains its repository license. + +Copyright 2016 The Inter Project Authors (https://github.com/rsms/inter) Inter-Italic[opsz,wght].ttf: Copyright 2016 The Inter Project Authors (https://github.com/rsms/inter) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Pool client release outcomes for a waiting callerWith max one, caller B waits while A holds the client. A normal release reuses that client; release with an error removes it and B receives a replacement.NoYesA holds the soleclient; B waitsA releases its clientRelease includesan error?Reuse the healthy clientB receives the same clientRemove client; connectreplacementB receives a new client