diff --git a/docs/about.md b/docs/about.md index d258c34..3ed651f 100644 --- a/docs/about.md +++ b/docs/about.md @@ -16,4 +16,4 @@ PgDog source code, so the whole community can benefit from your knowledge and ex ## Project name -This project is dedicated to the bestest dog in the world who's been patiently sitting at my feet the entire time PgDog has been developed. +This project is dedicated to the best dog in the world who's been patiently sitting at my feet the entire time PgDog has been developed. diff --git a/docs/architecture/benchmarks.md b/docs/architecture/benchmarks.md index fbad5ee..302ba1e 100644 --- a/docs/architecture/benchmarks.md +++ b/docs/architecture/benchmarks.md @@ -1,6 +1,6 @@ # Benchmarks -PgDog does its best to minimize its impact on database performance. Great care is taken to make sure as few operations are possible are performed +PgDog does its best to minimize its impact on database performance. Great care is taken to make sure as few operations as possible are performed when passing data between clients and servers. All benchmarks listed below were done on my local system (AMD Ryzen 7 5800X). Real world performance is impacted by factors like network speed, query complexity and especially by hardware used for running PgDog and PostgreSQL servers. diff --git a/docs/features/index.md b/docs/features/index.md index c8b72ed..9a7c052 100644 --- a/docs/features/index.md +++ b/docs/features/index.md @@ -3,27 +3,31 @@ PgDog contains multiple foundational and unique features which make it a great choice for modern PostgreSQL deployments. -Most features are configurable and can be toggled and tuned. Experimental features are marked -as such, and users are advised to test them before deploying to production. Most foundational features like -load balancing, healthchecks, and query routing have been battle-tested and work well in production. +Most features are configurable and can be toggled on/off and tuned to fit your environment. Experimental features are marked +as such, and users are advised to test them before deploying to production. + +Foundational features like load balancing, health checks, and query routing have been battle-tested and work well in production. ## Summary -Short summary of currently implemented features. +Short summary of currently implemented features below. | Feature | Description | |---------|-------------| -| [Load balancer](load-balancer/index.md) | Distribute `SELECT` queries evenly between replicas. Separate reads from writes with a single endpoint. | -| [Health checks](load-balancer/healthchecks.md) | Check databases are up and running, and can serve queries. | -| [Transaction mode](transaction-mode.md) | Share PostgreSQL connections between thousands of clients, a necessary feature for production deployments. | -| [Hot reload](../configuration/index.md) | Update configuration at runtime without restarting PgDog. | -| [Sharding](sharding/index.md) | Automatic query routing and logical replication between data nodes to scale PostgreSQL horizontally. | -| [Prepared statements](prepared-statements.md) | Support for Postgres named prepared statements. | -| [Plugins](plugins/index.md) | Pluggable libraries to add functionality to PgDog at runtime. | -| [Authentication](authentication.md) | Support for various PostgreSQL authentication mechanisms, like SCRAM. | +| [Load balancer](load-balancer/index.md) | Distribute `SELECT` queries evenly between replicas. Separate reads from writes, allowing applications to connect to a single endpoint. | +| [Health checks](load-balancer/healthchecks.md) | Check databases are up and running. Broken databases are blocked from serving queries. | +| [Transaction mode](transaction-mode.md) | Multiplex PostgreSQL server connections between thousands of clients. | +| [Hot reload](../configuration/index.md) | Update configuration at runtime without restarting the proxy. | +| [Sharding](sharding/index.md) | Automatic query routing and data migration between nodes to scale PostgreSQL horizontally. Schema management, distributed transactions. | +| [Prepared statements](prepared-statements.md) | Support for Postgres named prepared statements in transaction mode. | +| [Plugins](plugins/index.md) | Pluggable libraries to add functionality to PgDog at runtime, without recompiling code. | +| [Authentication](authentication.md) | Support for various PostgreSQL user authentication mechanisms, like SCRAM. | | [Session mode](session-mode.md) | Compatibility mode with direct PostgreSQL connections. | -| [Metrics](metrics.md) | Real time reporting, including Prometheus/OpenMetrics and admin database. | +| [Metrics](metrics.md) | Real time reporting, including Prometheus/OpenMetrics and an admin database. | +| [Mirroring](mirroring.md) | Copy queries from one database to another in the background. | +| [Pub/Sub](pub_sub.md) | Support for `LISTEN`/`NOTIFY` in transaction mode. | +| [Encryption](tls.md) | TLS encryption for client and server connections. | -## OS support +### OS support PgDog doesn't use any OS-specific features and should run on all systems supported by the Rust compiler, e.g. Linux (x86 and ARM64), Mac OS, and Windows. diff --git a/docs/features/load-balancer/healthchecks.md b/docs/features/load-balancer/healthchecks.md index b0e1f59..d1bd308 100644 --- a/docs/features/load-balancer/healthchecks.md +++ b/docs/features/load-balancer/healthchecks.md @@ -1,58 +1,74 @@ # Health checks -Databases proxied by PgDog are regularly checked with health checks. A health check is a simple query, e.g., -`SELECT 1`, that ensures the database is reachable and able to process queries. - -## How it works - -If a database fails a health check, it's placed in a list of banned hosts. Banned databases are removed -from the load balancer and will not serve queries. This allows PgDog to reduce errors clients see -when a database fails, for example due to hardware issues. +Databases proxied by PgDog's load balancer are regularly checked with health checks. A health check is a simple query, e.g., +`SELECT 1`, that ensures the database is reachable and able to handle requests. If a replica database fails a health check, +it's removed from the load balancer and prevented from serving additional queries for a configurable period of time.
+
Learn how to operate PgDog in production, like fetching real time statistics from the admin database or updating configuration.
+Learn how to operate PgDog in production, like fetching real-time statistics from the admin database or updating configuration.