You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/docs/index.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,24 @@ title: Home
7
7
8
8
## PgDoorman: PostgreSQL Pooler
9
9
10
-
PgDoorman is a stable and good alternative to [PgBouncer](https://www.pgbouncer.org/), [Odyssey](https://github.com/yandex/odyssey), or [PgCat](https://github.com/postgresml/pgcat) (based on it).
11
-
It has created with the Unix philosophy in mind. Developing was focused on perfomance, efficience and reliability.
12
-
Also, PgDoorman has the improved driver support for languages like Go (pgx), .NET (npgsql), and asynchronous drivers for Python and Node.js.
10
+
PgDoorman is a stable and high-performance alternative to [PgBouncer](https://www.pgbouncer.org/), [Odyssey](https://github.com/yandex/odyssey), or [PgCat](https://github.com/postgresml/pgcat).
11
+
It was created with the Unix philosophy in mind. Development focused on performance, efficiency, and reliability.
12
+
Additionally, PgDoorman provides improved driver support for languages like Go (pgx), .NET (npgsql), and asynchronous drivers for Python and Node.js.
13
13
14
14
[:fontawesome-solid-download: Get PgDoorman {{ version }}](tutorials/installation.md){ .md-button .md-button--primary }
Copy file name to clipboardExpand all lines: documentation/docs/tutorials/overview.md
+18-12Lines changed: 18 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,14 @@ title: Overview
8
8
9
9
PgDoorman is a high-performance PostgreSQL connection pooler based on PgCat. It acts as a middleware between your applications and PostgreSQL servers, efficiently managing database connections to improve performance and resource utilization.
10
10
11
+
```mermaid
12
+
graph LR
13
+
App1[Application A] --> Pooler(PgDoorman)
14
+
App2[Application B] --> Pooler
15
+
App3[Application C] --> Pooler
16
+
Pooler --> DB[(PostgreSQL)]
17
+
```
18
+
11
19
When an application connects to PgDoorman, it behaves exactly like a PostgreSQL server. Behind the scenes, PgDoorman either creates a new connection to the actual PostgreSQL server or reuses an existing connection from its pool, significantly reducing connection overhead.
12
20
13
21
## Key Benefits
@@ -21,23 +29,21 @@ When an application connects to PgDoorman, it behaves exactly like a PostgreSQL
21
29
22
30
To maintain proper transaction semantics while providing efficient connection pooling, PgDoorman supports multiple pooling modes:
23
31
24
-
### Session Pooling
32
+
### Transaction Pooling
25
33
26
-
In session pooling mode:
34
+
!!! success "Recommended for most use cases"
35
+
In transaction pooling mode, a client is assigned a server connection only for the duration of a transaction. Once the transaction ends, the connection is released back into the pool.
27
36
28
-
- Each client is assigned a dedicated server connection for the entire duration of the client connection
29
-
- The server connection remains exclusively allocated to that client until disconnection
30
-
- After the client disconnects, the server connection is released back into the pool for reuse
31
-
- This mode is ideal for applications that rely on session-level features like temporary tables or session variables
37
+
-**High Efficiency**: Connections are shared between clients, allowing thousands of clients to share a small pool.
38
+
-**Ideal for**: Applications with many short-lived connections or those that don't rely on session state.
32
39
33
-
### Transaction Pooling
40
+
### Session Pooling
34
41
35
-
In transaction pooling mode:
42
+
!!! info "Useful for specific legacy needs"
43
+
In session pooling mode, each client is assigned a dedicated server connection for the entire duration of the client connection.
36
44
37
-
- A client is assigned a server connection only for the duration of a transaction
38
-
- Once PgDoorman detects the end of a transaction, the server connection is immediately released back into the pool
39
-
- This mode allows for higher connection efficiency as connections are shared between clients
40
-
- Ideal for applications with many short-lived connections or those that don't rely on session state
45
+
-**Exclusive Allocation**: The connection remains exclusively allocated to that client until disconnection.
46
+
-**Support for Session Features**: Ideal for applications that rely on temporary tables or session variables.
0 commit comments