diff --git a/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/creating_a_dha_cluster.mdx b/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/creating_a_dha_cluster.mdx
index 5a040d1d3ac..9345a5fe154 100644
--- a/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/creating_a_dha_cluster.mdx
+++ b/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/creating_a_dha_cluster.mdx
@@ -3,6 +3,7 @@ title: "Creating a distributed high-availability cluster"
description: Describes cluster creation options for a distributed high-availability cluster.
redirects:
- creating_an_eha_cluster
+deepToC: true
---
!!!Note "When using your cloud"
@@ -23,8 +24,8 @@ The following options aren't available when creating your cluster:
1. Sign in to the [BigAnimal](https://portal.biganimal.com) portal.
-1. On the Overview or Clusters page, select **Create New Cluster**.
-1. On the Create Cluster page, start with the **Cluster Info** tab.
+1. On the **Overview** or **Clusters** page, select **Create New** > **Database cluster**.
+1. On the **Create Cluster** page, start with the **Cluster Info** tab.
## Cluster Info tab
@@ -54,22 +55,22 @@ The following options aren't available when creating your cluster:
1. Under **Tags**, select **+**.
-1. To assign an existing tag, in the search bar under **Tags**, enter a tag name. To add a new tag, instead select **+ Add Tag**.
+1. To assign an existing tag, in the search bar under **Tags**, enter a tag name. To add a new tag, instead select **+ Add Tag**.
1. Select **Next: Data Groups**.
## Data Groups Tab
-1. Go to the **Nodes Settings** tab for the first Data Group. In the **Nodes** section, select **Two Data Nodes** or **Three Data Nodes**.
+1. Go to the **Node Settings** tab for the first Data Group. In the **Nodes** section, select **Two Data Nodes** or **Three Data Nodes**.
For more information on node architecture, see [Distributed high availability](../../overview/02_high_availability/distributed_highavailability/).
-1. In the **Provider & Region** section, select the provider and region where you want to deploy your cluster.
+1. In the **Provider & Region** section, select the cloud provider and region where you want to deploy your cluster.
!!! Tip
For the best performance, we strongly recommend that this region be the same as your other resources that communicate with your cluster. For a list of available regions, see [Supported regions](../../overview/03a_region_support). If you're interested in deploying a cluster to a region that isn't currently available, contact [Support](/biganimal/latest/overview/support/).
- 1. In the **Database Type** section:
+1. In the **Database Type** section:
1. Select the type of Postgres you want to use in the **Postgres Type** field:
@@ -77,7 +78,7 @@ The following options aren't available when creating your cluster:
- **[EDB Postgres Extended Server](/pge/latest/)** is EDB's advanced logical replication, PostgreSQL-compatible database offering.
- 1. In the **Postgres Version** list, select 14, 15, or 16 as the version of Postgres that you want to use.
+ 1. In the **Postgres Version** list, select the version of Postgres that you want to use.
1. In the **Instance Type** section:
@@ -94,40 +95,52 @@ The following options aren't available when creating your cluster:
1. In the **Storage** section:
- !!!tip
- When choosing your storage options, for most workloads, consider using at least 20GB of storage.
+ !!!tip
+ When choosing your storage options, for most workloads, consider using at least 20GB of storage.
By default, the **Database Storage** volume stores the Postgres data and the write-ahead logs (WAL) together. If you want to improve write performance for WAL files, you can allocate separate storage volume for the WAL files. To allocate separate storage volume for WAL files, select **Use a separate storage volume for Write-Ahead Logs**. Then select the volume type, size, IOPS, and disk throughput separately for **Database Storage** and **Write-Ahead Logs Storage**. If you allocate separate storage volume for the WAL files, you have to pay cloud infrastructure costs for the second volume. Once separate storage volume is allocated for WAL files, you can't remove it from the cluster settings later on.
From the **Volume Type** list, select your volume type.
+
+ Azure
- - For Azure, in **Volume Type**, select **Premium SSD** or **Ultra Disk**. Compared to Premium SSD volumes, ultra disks offer lower-latency, high-performance options and direct control over your disk's input/output operations per second (IOPS). For BigAnimal, we recommend using ultra disks for workloads that require the most demanding performance. See [Using Azure ultra disks](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd?tabs=azure-portal) for more information.
+ For Azure, in **Volume Type**, select **Premium SSD** or **Ultra Disk**. Compared to Premium SSD volumes, ultra disks offer lower-latency, high-performance options and direct control over your disk's input/output operations per second (IOPS). For BigAnimal, we recommend using ultra disks for workloads that require the most demanding performance. See [Using Azure ultra disks](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd?tabs=azure-portal) for more information.
- For Premium SSD, in **Volume Properties**, select the type and amount of storage needed for your cluster. See [Azure Premium SSD storage types](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#premium-ssds) for more information.
- For ultra disk, in **Volume Properties**, select the disk size and IOPS for your cluster. BigAnimal calculates disk throughput based on your IOPS settings, but you have the option of updating the value.
- !!!important
- While setting the required IOPS for the disk that you selected, consider the VM limits that are tied to the VM size that you selected. See [Ultra disk IOPS](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#ultra-disk-iops) for more information.
+ !!!important
+ While setting the required IOPS for the disk that you selected, consider the VM limits that are tied to the VM size that you selected. See [Ultra disk IOPS](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#ultra-disk-iops) for more information.
+
+
+
+ AWS
- - For AWS, in **Volume Type**, select **General Purpose SSD (GP3)**, **io2**, or **io2 Block Express**.
+ For AWS, in **Volume Type**, select **General Purpose SSD (GP3)**, **io2**, or **io2 Block Express**.
- !!!Note
- io2 Block Express is available for selected instance types, such as R5b. However, you can't switch between io2 and io2 Block Express after creating your cluster.
+ !!!Note
+ io2 Block Express is available for selected instance types, such as R5b. However, you can't switch between io2 and io2 Block Express after creating your cluster.
- In **Volume Properties**, select the disk size for your cluster, and configure the IOPS.
+ In **Volume Properties**, select the disk size for your cluster, and configure the IOPS.
+
+
- - For Google Cloud, in **Volume Type**, select **SSD Persistent Disk**.
+ GCP
+
+ For Google Cloud, in **Volume Type**, select **SSD Persistent Disk**.
- In **Volume Properties**, select the disk size for your cluster.
+ In **Volume Properties**, select the disk size for your cluster.
+
+
+
- !!!note
- When provisioning database storage, not all of the storage space you specify is available for holding your data. Some space is reserved for other purposes. For a full explanation of the structure of a Postgres data directory, see [Database File Layout](https://www.postgresql.org/docs/current/storage-file-layout.html). You can make more storage space available for data if you specify separate storage for WAL.
- !!!
+ !!!note Note for all cloud providers
+ When provisioning database storage, not all of the storage space you specify is available for holding your data. Some space is reserved for other purposes. For a full explanation of the structure of a Postgres data directory, see [Database File Layout](https://www.postgresql.org/docs/current/storage-file-layout.html). You can make more storage space available for data if you specify separate storage for WAL.
-1. In the **Network, Logs, & Telemetry** section:
+1. In the **Networking** section:
- In **Connectivity Type**, specify whether to use private or public networking. Networking is set to **Public** by default. Public means that any client can connect to your cluster's public IP address over the internet. Optionally, you can limit traffic to your public cluster by specifying an IP allowlist, which allows access only to certain blocks of IP addresses. To limit access, add one or more classless inter-domain routing (CIDR) blocks in the **IP Allowlists** section. CIDR is a method for allocating IP addresses and IP routing to a whole network or subnet. If you have any CIDR block entries, access is limited to those IP addresses. If none are specified, all network traffic is allowed.
+ In **Connectivity Type**, specify whether to use private or public networking. Networking is set to **Public** by default. Public means that any client can connect to your cluster's public IP address over the internet. Optionally, you can limit traffic to your public cluster by specifying an IP allowlist, which allows access only to certain blocks of IP addresses. To limit access, tick the **Use allowlists** box and add one or more classless inter-domain routing (CIDR) blocks. CIDR is a method for allocating IP addresses and IP routing to a whole network or subnet. If you have any CIDR block entries, access is limited to those IP addresses. If none are specified, all network traffic is allowed.
Private networking allows only IP addresses in your private network to connect to your cluster.
@@ -138,7 +151,7 @@ The following options aren't available when creating your cluster:
1. In the **Backups** section:
Change the default database backup retention period of 30 days using the
- **Retention Time** controls. You can configure
+ **Retention Period** controls. You can configure
the retention period to a number of days, weeks, or months. The retention
period must be between 1-180 days, 1-25 weeks, or 1-6 months.
@@ -153,6 +166,12 @@ The following options aren't available when creating your cluster:
For more information, see [Periodic maintenance](/biganimal/release/overview/updates).
+1. In the **Connections** section:
+
+ When enabled, the **Read-only Workloads** option configures a connection string you can use for read-only operations to lighten the workload on the write leader and improve the cluster's performance.
+
+ See [Read-only workloads](../../overview/02_high_availability/distributed_highavailability/#read-only-workloads) for more information.
+
1. Select **Next: DB Configuration**
1. In the **Parameters** section on the **DB Configuration** tab, you can update the value of the database configuration parameters for the data group as needed.
@@ -161,7 +180,7 @@ The following options aren't available when creating your cluster:
1. Select **Create: Data Group**. The data group preview appears.
-1. To finish creating your cluster, select **Create Cluster**. If you want to create a second data group, select **Add a Data Group**.
+1. If you want to create a second data group, select **Add a Data Group**. To finish creating your cluster, select **Create Cluster**.
## Creating a second data group
diff --git a/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/index.mdx b/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/index.mdx
index 16b20366ee9..a75c15ba801 100644
--- a/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/index.mdx
+++ b/product_docs/docs/biganimal/release/getting_started/creating_a_cluster/index.mdx
@@ -24,8 +24,8 @@ The following options aren't available when creating your cluster:
1. Sign in to the [BigAnimal](https://portal.biganimal.com) portal.
-1. On the Overview or Clusters page, select **Create New Cluster**.
-1. On the Create Cluster page, specify the cluster settings on the following tabs:
+1. On the **Overview** or **Clusters** page, select **Create New** > **Database cluster**.
+1. On the **Create Cluster** page, specify the cluster settings on the following tabs:
- [**Cluster Info**](#cluster-info-tab)
- [**Cluster Settings**](#cluster-settings-tab)
- [**DB Configuration** ](#db-configuration-tab) (optional)
@@ -39,11 +39,11 @@ The following options aren't available when creating your cluster:
1. Select the type of cluster to deploy.
- - [Single Node](../../overview/02_high_availability/single_node/) creates a cluster with one primary and no standby replicas. Suited for test environments where high availability might not be required. You can create single-node clusters running PostgreSQL or EDB Postgres Advanced Server.
+ - [Single Node](../../overview/02_high_availability/single_node/) creates a cluster with one primary and no standby replicas. Suited for test environments where high availability might not be required. You can create single-node clusters running PostgreSQL, EDB Postgres Extended Server or EDB Postgres Advanced Server.
- - [Primary/Standby High Availability](../../overview/02_high_availability/primary_standby_highavailability/) creates a cluster with one primary and one or two standby replicas in different availability zones. You can create primary/standby high-availability clusters running PostgreSQL or EDB Postgres Advanced Server. Only primary/standby high-availability clusters allow you to enable read-only workloads for users. However, if you enable read-only workloads, then you might have to raise the IP address resource limits for the cluster.
+ - [Primary/Standby High Availability](../../overview/02_high_availability/primary_standby_highavailability/) creates a cluster with one primary and one or two standby replicas in different availability zones. You can create primary/standby high-availability clusters running PostgreSQL, EDB Postgres Extended Server or EDB Postgres Advanced Server. If you enable read-only workloads, then you might have to raise the IP address resource limits for the cluster.
- - [Distributed High Availability](../../overview/02_high_availability/distributed_highavailability/) creates a cluster, powered by EDB Postgres Distributed, with up to two data groups spread across multiple cloud regions to deliver higher performance and faster recovery. See [Creating a distributed high-availability cluster](creating_a_dha_cluster) for instructions.
+ - [Distributed High Availability](../../overview/02_high_availability/distributed_highavailability/) creates a cluster, powered by EDB Postgres Distributed, with up to two data groups spread across multiple cloud regions to deliver higher performance and faster recovery. You can create distributed high availability clusters running PostgreSQL, EDB Postgres Extended Server or EDB Postgres Advanced Server. See [Creating a distributed high-availability cluster](creating_a_dha_cluster) for instructions.
See [Supported cluster types](/biganimal/latest/overview/02_high_availability/) for more information about the different cluster types.
@@ -57,7 +57,10 @@ The following options aren't available when creating your cluster:
!!! Note
If you use BigAnimal's cloud account, your estimated cloud infrastructure costs are calculated into your cluster's estimated monthly price shown at the bottom of the page.
-1. Select the cloud provider for your cluster. If you're using your account and haven't connected it to BigAnimal yet, see [Connecting to your cloud](/biganimal/latest/getting_started/02_connecting_to_your_cloud).
+1. Select the cloud provider and region for your cluster. If you're using your account and haven't connected it to BigAnimal yet, see [Connecting to your cloud](/biganimal/latest/getting_started/02_connecting_to_your_cloud).
+
+ !!! Tip
+ For the best performance, we strongly recommend that this region be the same as your other resources that communicate with your cluster. For a list of available regions, see [Supported regions](../../overview/03a_region_support). If you're interested in deploying a cluster to a region that isn't currently available, contact [Support](/biganimal/latest/overview/support/).
1. Select **Next: Cluster Settings** to continue to specify the required settings for your cluster.
@@ -69,7 +72,7 @@ The following options aren't available when creating your cluster:
1. Under **Tags**, select **+**.
-1. To assign an existing tag, in the search bar under **Tags**, enter a tag name. To add a new tag, instead select **+ Add Tag**.
+1. To assign an existing tag, in the search bar under **Tags**, enter a tag name. To add a new tag, instead select **+ Add Tag**.
1. In the **Database Type** section:
@@ -82,11 +85,6 @@ The following options aren't available when creating your cluster:
- **[PostgreSQL](/supported-open-source/postgresql/)** is the open-source, object-relational database management system. PostgreSQL is compatible with single-node and primary/standby high-availability cluster types.
1. In the **Postgres Version** list, select the version of Postgres that you want to use. See [Database version policy](../../overview/05_database_version_policy) for more information.
-
-1. In the **Region** section, select the region where you want to deploy your cluster.
-
- !!! Tip
- For the best performance, we strongly recommend that this region be the same as your other resources that communicate with your cluster. For a list of available regions, see [Supported regions](../../overview/03a_region_support). If you're interested in deploying a cluster to a region that isn't currently available, contact [Support](/biganimal/latest/overview/support/).
1. In the **Instance Type** section:
@@ -107,8 +105,10 @@ The following options aren't available when creating your cluster:
By default, the **Database Storage** volume stores the Postgres data and the write-ahead logs (WAL) together. If you want to improve write performance for WAL files, you can allocate separate storage volume for the WAL files. To allocate separate storage volume for WAL files, select **Use a separate storage volume for Write-Ahead Logs**. Then select the volume type, size, IOPS, and disk throughput separately for **Database Storage** and **Write-Ahead Logs Storage**. If you allocate separate storage volume for the WAL files, you have to pay cloud infrastructure costs for the second volume. Once separate storage volume is allocated for WAL files, you can't remove it from the cluster settings later on.
From the **Volume Type** list, select your volume type.
+
+ Azure
- - For Azure, in **Volume Type**, select **Premium SSD** or **Ultra Disk**. Compared to Premium SSD volumes, ultra disks offer lower-latency, high-performance options and direct control over your disk's input/output operations per second (IOPS). For BigAnimal, we recommend using ultra disks for workloads that require the most demanding performance. See [Using Azure ultra disks](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd?tabs=azure-portal) for more information.
+ For Azure, in **Volume Type**, select **Premium SSD** or **Ultra Disk**. Compared to Premium SSD volumes, ultra disks offer lower-latency, high-performance options and direct control over your disk's input/output operations per second (IOPS). For BigAnimal, we recommend using ultra disks for workloads that require the most demanding performance. See [Using Azure ultra disks](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd?tabs=azure-portal) for more information.
- For Premium SSD, in **Volume Properties**, select the type and amount of storage needed for your cluster. See [Azure Premium SSD storage types](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#premium-ssds) for more information.
@@ -117,24 +117,33 @@ The following options aren't available when creating your cluster:
!!!important
While setting the required IOPS for the disk that you selected, consider the VM limits that are tied to the VM size that you selected. See [Ultra disk IOPS](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#ultra-disk-iops) for more information.
- - For AWS, in **Volume Type**, select **General Purpose SSD (GP3)**, **io2**, or **io2 Block Express**.
+
+
+ AWS
+
+ For AWS, in **Volume Type**, select **General Purpose SSD (GP3)**, **io2**, or **io2 Block Express**.
- !!!Note
- io2 Block Express is available for selected instance types, such as R5b. However, you can't switch between io2 and io2 Block Express after creating your cluster.
+ !!!Note
+ io2 Block Express is available for selected instance types, such as R5b. However, you can't switch between io2 and io2 Block Express after creating your cluster.
- In **Volume Properties**, select the disk size for your cluster, and configure the IOPS.
+ In **Volume Properties**, select the disk size for your cluster, and configure the IOPS.
+
+
+
+ GCP
- - For Google Cloud, in **Volume Type**, select **SSD Persistent Disk**.
+ For Google Cloud, in **Volume Type**, select **SSD Persistent Disk**.
In **Volume Properties**, select the disk size for your cluster.
- !!!note
- When provisioning database storage, not all of the storage space you specify is available for holding your data. Some space is reserved for other purposes. For a full explanation of the structure of a Postgres data directory, see [Database File Layout](https://www.postgresql.org/docs/current/storage-file-layout.html). You can make more storage space available for data if you specify separate storage for write ahead logs (WAL).
+
+ !!!note Note for all cloud providers
+ When provisioning database storage, not all of the storage space you specify is available for holding your data. Some space is reserved for other purposes. For a full explanation of the structure of a Postgres data directory, see [Database File Layout](https://www.postgresql.org/docs/current/storage-file-layout.html). You can make more storage space available for data if you specify separate storage for write ahead logs (WAL).
-2. ##### Network, Logs, & Telemetry section
+1. In the **Network, Logs, & Telemetry** section:
- In **Connectivity Type**, specify whether to use private or public networking. Networking is set to **Public** by default. Public means that any client can connect to your cluster’s public IP address over the internet. Optionally, you can limit traffic to your public cluster by specifying an IP allowlist, which allows access only to certain blocks of IP addresses. To limit access, add one or more classless inter-domain routing (CIDR) blocks in the **IP Allowlists** section. CIDR is a method for allocating IP addresses and IP routing to a whole network or subnet. If you have any CIDR block entries, access is limited to those IP addresses. If none are specified, all network traffic is allowed.
+ In **Connectivity Type**, specify whether to use private or public networking. Networking is set to **Public** by default. Public means that any client can connect to your cluster’s public IP address over the internet. Optionally, you can limit traffic to your public cluster by specifying an IP allowlist, which allows access only to certain blocks of IP addresses. To limit access, tick the **Use allowlists** box and add one or more classless inter-domain routing (CIDR) blocks. CIDR is a method for allocating IP addresses and IP routing to a whole network or subnet. If you have any CIDR block entries, access is limited to those IP addresses. If none are specified, all network traffic is allowed.
Private networking allows only IP addresses in your private network to connect to your cluster.
@@ -142,7 +151,7 @@ The following options aren't available when creating your cluster:
See [Cluster networking architecture](01_cluster_networking) for more information.
-3. To optionally make updates to your database configuration parameters, select **Next: DB Configuration**.
+1. To optionally make updates to your database configuration parameters, select **Next: DB Configuration**.
!!! note
Make changes to database or server parameters after cluster creation is complete. Changing some parameters requires a restart.
@@ -160,7 +169,7 @@ For other optional settings, select **Next: Additional Settings**.
### Backups
Change the default database backup retention period of 30 days using the
-**Retention Time** controls in the **Backups** section. You can configure the
+**Retention Period** controls in the **Backups** section. You can configure the
retention period to a number of days, weeks, or months. The retention period
must be between 1-180 days, 1-25 weeks, or 1-6 months.
@@ -180,7 +189,7 @@ For more information, see [Periodic maintenance](/biganimal/release/overview/upd
#### Read-only workloads
!!! Note
- The **Read-only Workloads** option is available only for primary/standby high-availability cluster types.
+ The **Read-only Workloads** option is available only for primary/standby high-availability and distributed high-availability cluster types.
Enable **Read-only Workloads**. This feature directs read-only operations exclusively toward replicas. If this option is enabled, you might have to raise the IP address resource limits for the cluster:
@@ -188,7 +197,7 @@ Enable **Read-only Workloads**. This feature directs read-only operations exclus
- For AWS, the IP address quota is Elastic IP. You might also have to increase the **Network Load Balancers per Region** value.
-When enabling read-only workloads, keep in mind the following:
+When enabling read-only workloads, keep in mind:
- Read-only workloads are routed to Postgres physical standbys. Commands run on read-only workloads aren't filtered by BigAnimal. The connection is read-only because it runs on a standby replica where Postgres doesn't permit changes to the contents of database tables. A privileged connection to a standby replica can still execute other sensitive commands permitted by Postgres on standby replicas. For example, it can modify replication slots or Postgres configuration settings, terminate backends, see activity from other users, and more. We recommend that you use a Postgres role with minimal privileges for your application, even for read-only workloads.
diff --git a/product_docs/docs/biganimal/release/overview/02_high_availability/distributed_highavailability.mdx b/product_docs/docs/biganimal/release/overview/02_high_availability/distributed_highavailability.mdx
index 1cf498f70cf..b3a5a84741e 100644
--- a/product_docs/docs/biganimal/release/overview/02_high_availability/distributed_highavailability.mdx
+++ b/product_docs/docs/biganimal/release/overview/02_high_availability/distributed_highavailability.mdx
@@ -8,7 +8,7 @@ This configuration provides a true active-active solution as each data group is
Distributed high-availability clusters support both EDB Postgres Advanced Server and EDB Postgres Extended Server database distributions.
-Distributed high-availability clusters contain one or two data groups. Your data groups can contain either three data nodes or two data nodes and one witness node. At any given time, one of these data nodes is the leader and accepts writes, while the rest are referred to as [shadow nodes](/pgd/latest/terminology/#write-leader). We recommend that you don't use two data nodes and one witness node in production unless you use asynchronous [commit scopes](/pgd/latest/durability/commit-scopes/).
+Distributed high-availability clusters contain one or two data groups. Your data groups can contain either three data nodes or two data nodes and one witness node. At any given time, one of these data nodes in each group is the leader and accepts writes, while the rest are referred to as [shadow nodes](/pgd/latest/terminology/#write-leader). We recommend that you don't use two data nodes and one witness node in production unless you use asynchronous [commit scopes](/pgd/latest/durability/commit-scopes/).
[PGD Proxy](/pgd/latest/routing/proxy) routes all application traffic to the leader node, which acts as the principal write target to reduce the potential for data conflicts. PGD Proxy leverages a distributed consensus model to determine availability of the data nodes in the cluster. On failure or unavailability of the leader, PGD Proxy elects a new leader and redirects application traffic. Together with the core capabilities of EDB Postgres Distributed, this mechanism of routing application traffic to the leader node enables fast failover and switchover.
@@ -57,6 +57,31 @@ To guard against cloud service provider failures, you can designate a witness no
Cross-cloud service provider witness nodes are available with AWS, Azure, and Google Cloud using your own cloud account and BigAnimal's cloud account. This option is enabled by default and applies to both multi-region configurations available with PGD. For witness nodes you pay only for the infrastructure used, which is reflected in the pricing estimate.
+## Read-only workloads
+
+When you enable the read-only workloads option during the cluster creation, a read-only connection string is created for the data group. You can use this connection to allow your application or service to route read-only requests through the shadow nodes (non-write leaders) to lighten the load on the write leaders and improve the Distributed High Availability cluster's performance.
+
+If you have more than one data group, you can choose whether to enable the read-only workloads option on a per-data-group basis.
+
+Since the infrastructure of a Distributed High Availability cluster is almost entirely based on EDB Postgres Distributed, the same [PGD Proxy read-only routing rules](/pgd/latest/routing/readonly/) apply.
+
+!!! Important
+
+ Once you have configured a read-only connection string with your application, read-only workloads are routed to shadow nodes (non-write leaders). The connection is read-only because it accepts read-only queries through the shadow nodes. However, commands that run on read-only connections aren't filtered by BigAnimal, so shadow nodes can still perfom write operations to the contents of database tables. We recommend that you use a Postgres role with minimal read-only privileges for your application or pass `default_transaction_read_only=on` in the connection string. This way, you can avoid write operations on shadow nodes that could cause conflicts between the write leader and the shadow nodes.
+
+**IP addresses**
+
+If you are configuring read-only workload connections on your own cloud account, you might have to raise the IP address resource limits for the cluster:
+
+- For Azure, the IP address quota is Standard Public IP Address.
+
+- For AWS, the IP address quota is Elastic IP. You might also have to increase the **Network Load Balancers per Region** value.
+
+**Advisory locks**
+
+Advisory locks aren't replicated between Postgres nodes, so advisory locks taken on a shadow node don't conflict with advisory locks taken on the lead. We recommend that applications that rely on advisory locking avoid using read-only workloads for those transactions.
+
+
## For more information
For instructions on creating a distributed high-availability cluster using the BigAnimal portal, see [Creating a distributed high-availability cluster](../../getting_started/creating_a_cluster/creating_a_dha_cluster/).