From f6777fba8186ed72c975c4f8596d69729fedf2eb Mon Sep 17 00:00:00 2001 From: Ibrar Ahmed Date: Fri, 9 Feb 2024 02:15:21 +0500 Subject: [PATCH] Update README.md --- README.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 635ef6400..be03fe05e 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,41 @@ [![Tests Status](https://github.com/zalando/patroni/actions/workflows/tests.yaml/badge.svg)](https://github.com/zalando/patroni/actions/workflows/tests.yaml?query=branch%3Amaster) [![Coverage Status](https://coveralls.io/repos/zalando/patroni/badge.svg?branch=master)](https://coveralls.io/github/zalando/patroni?branch=master) +# pgedge-patroni: pgEdge's Ultra-HA Clustering Solution -# pgedge-patroni: pgEdge's Spock Three AZ Clustering +Welcome to **pgedge-patroni**, a sophisticated adaptation of Patroni tailored explicitly for pgEdge's Ultra-HA Clustering environment. -Patroni is a template for high availability (HA) PostgreSQL solutions using Python. For maximum accessibility, Patroni supports a variety of distributed configuration stores like [ZooKeeper](https://zookeeper.apache.org/), [etcd](https://github.com/coreos/etcd), [Consul](https://github.com/hashicorp/consul) or [Kubernetes](https://kubernetes.io). Database engineers, DBAs, DevOps engineers, and SREs who are looking to quickly deploy HA PostgreSQL in datacenters - or anywhere else - will hopefully find it useful. +## Overview -Currently pgedge-patroni supported PostgreSQL 15 and above. +**pgedge-patroni** leverages Patroni, a Python-based template for building highly available (HA) solutions with PostgreSQL. It streamlines the deployment and management of PostgreSQL clusters, ensuring unwavering reliability and resilience. -![Image Description](pgedge-ultra-high-availability.png) +## Key Features -## How Patroni Works +- Seamless integration with pgEdge's multimaster platform. +- Fine-tuned adjustments to ensure optimal performance in an Ultra-HA environment. +- Enhanced failover mechanisms for uninterrupted service availability. +- Compatibility with PostgreSQL versions 15, 16, and beyond. + +![pgedge-ultra-high-availability](pgedge-ultra-high-availability.png) + +## PgEdge Enhancements -Patroni originated as a fork of [Governor](https://github.com/compose/governor), the project from Compose. It includes plenty of new features. +pgEdge's modifications to Patroni include: -For an example of a Docker-based deployment with Patroni, see [Spilo](https://github.com/zalando/spilo), currently in use at Zalando. +- Customized configurations to support pgEdge's multimaster architecture. +- Dynamic adjustments to PostgreSQL parameters for improved compatibility. +- Advanced fault tolerance mechanisms to handle primary and standby failures gracefully. + +## How Patroni Works -For additional background info, see: -- [Elephants on Automatic: HA Clustered PostgreSQL with Helm](https://www.youtube.com/watch?v=CftcVhFMGSY), talk by Josh Berkus and Oleksii Kliukin at KubeCon Berlin 2017 -- [PostgreSQL HA with Kubernetes and Patroni](https://www.youtube.com/watch?v=iruaCgeG7qs), talk by Josh Berkus at KubeCon 2016 (video) -- [Feb. 2016 Zalando Tech blog post](https://tech.zalando.de/blog/zalandos-patroni-a-template-for-high-availability-postgresql/) +Patroni intelligently manages PostgreSQL instances by orchestrating replication and failover processes. It employs leader election algorithms and consensus mechanisms to maintain cluster stability and data integrity. -## Replication Choices +## Contribution Guidelines -Patroni uses Postgres' streaming replication, which is asynchronous by default. Patroni's asynchronous replication configuration allows for ``maximum_lag_on_failover`` settings. -This setting ensures failover will not occur if a follower is more than a certain number of bytes behind the leader. This setting should be increased or decreased based on business requirements. It's also possible to use synchronous replication for better durability guarantees. +We encourage contributions to **pgedge-patroni**. Please refer to our [Contribution Guidelines](CONTRIBUTING.md) for details on how to get involved. -See replication modes documentation [here](https://github.com/zalando/patroni/blob/master/docs/replication_modes.rst) for details. +## License -## Applications Should Not Use Superusers +**pgedge-patroni** is licensed under the [MIT License](LICENSE). See the LICENSE file for full details. -When connecting from an application, always use a non-superuser. Patroni requires access to the database to function properly. By using a superuser from an application, you can potentially use the entire connection pool, including the connections reserved for superusers, with the ``superuser_reserved_connections`` setting. If Patroni cannot access the Primary because the connection pool is full, behavior will be undesirable. +Let's collaborate to build robust, scalable, and high-performance PostgreSQL clusters with pgEdge's Ultra-HA Clustering Solution.