Skip to content

Commit

Permalink
Merge pull request #2814 from EnterpriseDB/release/2022-06-16
Browse files Browse the repository at this point in the history
Release: 2022-06-16
  • Loading branch information
drothery-edb authored Jun 16, 2022
2 parents 794e73a + db2bf2b commit f2d23d8
Show file tree
Hide file tree
Showing 22 changed files with 187 additions and 78 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,66 +16,76 @@ Prior to creating your cluster, make sure you have enough resources. Without eno

1. Sign in to the [BigAnimal](https://portal.biganimal.com) portal.

2. Select **Create New Cluster** in the top right of the **Overview** page or **Clusters** page.
3. On the **Create Cluster** page, specify the cluster settings on the following tabs:
- [**Cluster Settings**](#cluster-settings-tab)
1. Select **Create New Cluster** in the top right of the **Overview** page or **Clusters** page.
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)
- [ **Availability** ](#availability-tab) (optional)
4. Select **Create Cluster**. It might take a few minutes to deploy.
1. Select **Create Cluster**. It might take a few minutes to deploy.

!!! Note
When you don't configure settings on optional tabs, the default values are used.

### Cluster Info tab

1. Select which type of cluster to deploy.

- [Single node](bigamimal/release/03_security/#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 EDB Postgres Advanced Server or PostgreSQL.

- [High availability](bigamimal/release/03_security/#high-availability) creates a cluster with one primary and two standby replicas in different availability zones. You can create high availability clusters running EDB Postgres Advanced Server or PostgreSQL.

- [Extreme high availability (beta)](bigamimal/release/03_security/#extreme-high-availability-beta) creates a cluster configured with a leader node, three shadow nodes, and one witness node. This cluster uses EDB Postgres Distributed to deliver higher performance and faster recovery. You can create extreme high availability clusters with either PostgreSQL or Oracle compatibility.

See [Supported cluster types](/biganimal/release/overview/03_security) for more information about the different cluster types.

!!! Note
You can't switch from a single node or high availability cluster to an extreme high availability cluster or vice versa.

1. Select the cloud provider for your cluster. If you're using your own account and haven't connected it to BigAnimal yet, see [Set up your cloud service provider](/biganimal/latest/getting_started/02_connecting_to_your_cloud/01_connecting_your_own_cloud/#setting-up-your-cloud-service-provider).

### Cluster Settings tab

1. Enter the name for your cluster in the **Cluster Name** field.

2. Enter a password for your cluster in the **Password** field. This is the password for the user edb_admin.
1. Enter a password for your cluster in the **Password** field. This is the password for the user edb_admin.
1. In the **Database Type** section:

1. Select the type of Postgres you want to use in the **Postgres Type** field:

- **Oracle Compatible** is powered by [EDB Postgres Advanced Server](/epas/latest/). View [a quick demonstration of Oracle compatibility on BigAnimal](../../using_cluster/06_demonstration_oracle_compatibility).
- **Oracle Compatible** is powered by [EDB Postgres Advanced Server](/epas/latest/). View [a quick demonstration of Oracle compatibility on BigAnimal](../../using_cluster/06_demonstration_oracle_compatibility). EDB Postgres Advanced Server is compatible with all three cluster types.

- [**PostgreSQL**](/supported-open-source/postgresql/) is an open-source object-relational database management system.
- **[PostgreSQL](/supported-open-source/postgresql/)** is an open-source object-relational database management system. PostgreSQL is compatible with single node and high availability cluster types.

2. 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.
2. In the **Provider** section, select the cloud provider for your cluster. If you're using your own account and haven't connected it to BigAnimal yet, see [Set up your cloud service provider](/biganimal/latest/getting_started/02_connecting_to_your_cloud/01_connecting_your_own_cloud/#setting-up-your-cloud-service-provider).
3. In the **Region** section, select the region where you want to deploy your cluster. For the best performance, EDB typically recommends 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).
4. In the **Instance Type** section,
- **PostgreSQL Compatible** uses advanced logical replication of data and schema. It is only available if you select extreme high availability as your cluster type.

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. For the best performance, EDB strongly recommends 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 are interested in deploying a cluster to a region that isn't currently available, contact [Support](docs/biganimal/latest/overview/support/).
1. In the **Instance Type** section,
1. Select the category that works best for your applications and workload:
- Memory optimized for large data sets

- Compute optimized for compute bound applications
- General purpose if you don't require memory or compute optimization.
2. Select the instance series and size.
- See [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/) for information to help you choose the appropriate instance type.
1. Select the instance series and size. See [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/) for information to help you choose the appropriate instance type.

5. In the **Storage** section, select your volume type from the **Volume Type** list.
1. In the **Storage** section, select your volume type from the **Volume Type** list.
- For Azure, BigAnimal currently supports Azure Premium SSD storage types. In **Volume Properties**, select the type and amount of storage needed for your cluster. See [the Azure documentation](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#premium-ssds) for more information.

- For AWS, BigAnimal currently supports General Purpose SSD (GP3) storage. In **Volume Properties**, select the disk size for your cluster.

6. In the **Networking Connectivity** section, you 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.
1. In the **Networking Connectivity** section, you 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.

Private networking allows only IP addresses within your private network to connect to your cluster. See [Cluster networking architecture](01_cluster_networking) for more information.


7. 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**.

### DB Configuration tab

In the **Parameters** section, you can update the value of the database configuration parameters, as needed.

To update the parameter values, see [Modifying Your Database Configuration Parameters](../../using_cluster/03_modifying_your_cluster/05_db_configuration_parameters).

### Availability tab

Enable or disable high availability using the **High Availability** control. High availability is enabled by default.
When high availability is enabled, clusters are configured with one primary and two replicas with synchronous streaming replication.
Clusters are configured across availability zones in regions with availability zones. When high availability is disabled, only one instance is provisioned.
See [Supported Architectures](../../overview/02_high_availability) for more information.

## What’s next

After you create your cluster, use these resources to learn about cluster use and management:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ EDB provides a shell script, called [`biganimal-preflight-azure`](https://github
| ------- | ----------- |
| `-h` or `--help`| Displays the command help. |
| `-i` or `--instance-type` | Azure VM instance type for the BigAnimal cluster. The `help` command provides a list of possible VM instance types. Choose the instance type that best suits your application and workload. Choose an instance type in the memory optimized ESv3 or ESv4 series for large data sets. Choose from the compute optimized FSv2 series for compute-bound applications. Choose from the general purpose DSv3 or DSv4 series if you don't require memory or compute optimization. See [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) for information to help you choose the appropriate instance type. |
| `-a` or `--high-availability` | Enables high availability for the cluster. See [Supported architectures](/biganimal/release/overview/02_high_availability) for more information.|
| `-a` or `--high-availability` | Enables high availability for the cluster. See [Supported cluster types](/biganimal/release/overview/02_high_availability) for more information.|
| `-e` or `--endpoint` | Type of network endpoint for the BigAnimal cluster, either `public` or `private`. See [Cluster networking architecture](/biganimal/release/getting_started/creating_a_cluster/01_cluster_networking) for more information. |
| `-r` or `--activate-region` | Specifies region activation if no clusters currently exist in the region. |
| `--onboard` | Checks if the user and subscription are correctly configured.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ EDB provides a shell script, called [biganimal-csp-preflight](https://github.com
| ------- | ----------- |
| `-h` or `--help`| Displays the command help. |
| `-i` or `--instance-type` | AWS instance type for the BigAnimal cluster. The help command provides a list of possible VM instance types. Choose the instance type that best suits your application and workload. Choose an instance type in the memory optimized R5, R5B, or R6I series for large data sets. Choose from the compute-optimized C5 or C6I series for compute-bound applications. Choose from the general purpose M5 or M6I series if you don't require memory or compute optimization.|
| `-a` or `--high-availability` | Enables high availability for the cluster. See [Supported architectures](../../overview/02_high_availability) for more information.|
| `-a` or `--high-availability` | Enables high availability for the cluster. See [Supported cluster types(../../overview/02_high_availability) for more information.|
| `-e` or `--endpoint` | Type of network endpoint for the BigAnimal cluster, either `public` or `private`. See [Cluster networking architecture](../creating_a_cluster/01_cluster_networking) for more information. |
| `-r` or `--activate-region` | Specifies region activation if no clusters currently exist in the region. |
| `--onboard` | Checks if the user and subscription are correctly configured.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,53 @@
---
title: "Supported architectures"
title: "Supported cluster types"
redirects:
- 02_high_availibility
---

BigAnimal enables deploying a cluster with or without high availability. The option is controlled with the **High Availablity** control on the [Create Cluster](https://portal.biganimal.com/create-cluster) page in the [BigAnimal](https://portal.biganimal.com) portal.
BigAnimal supports three cluster types:
- Single node
- Standard high availability
- Extreme high availability (beta)

## High availability—enabled
You choose which type of cluster you want on the [Create Cluster](https://portal.biganimal.com/create-cluster) page in the [BigAnimal](https://portal.biganimal.com) portal.

The high availability option is provided to minimize downtime in cases of failures. High-availability clusters—one *primary* and two *replicas*—are configured automatically, with replicas staying up to date through physical streaming replication. In cloud regions with availability zones, clusters are provisioned across multiple availability zones to provide fault tolerance in the face of a datacenter failure.
Postgres distribution and version support varies by cluster type.

- Replicas are usually called *standby servers*.
- In case of temporary or permanent unavailability of the primary, a standby replica becomes the primary.
| Postgres distribution | Versions | Cluster type |
| ---------------------------- | ------------ | ------------------------------ |
| PostgreSQL | 11–14 | Single node, high availability |
| Oracle Compatible | 11–14 | Single node, high availability |
| Oracle Compatible | 12–14 | Extreme high availability |
| PostgreSQL Compatible | 12-14 | Extreme high availability |

![*BigAnimal Cluster4*](images/high-availability.png)
## Single node

Incoming client connections are always routed to the current primary. In case of failure of the primary, a standby replica is automatically promoted to primary, and new connections are routed to the new primary. When the old primary recovers, it rejoins the cluster as a replica.
For nonproduction use cases where high availability is not a primary concern, a cluster deployment with high availability not enabled provides one primary with no standby replicas for failover or read-only workloads.

By default, replication is synchronous to one replica and asynchronous to the other. That is, one replica must confirm that a transaction record was written to disk before the client receives acknowledgment of a successful commit. In PostgreSQL terms, `synchronous_commit` is set to `on` and `synchronous_standby_names` is set to `ANY 1 (replica-1, replica-2)`. You can modify this behavior on a per-transaction, per-session, per-user, or per-database basis with appropriate `SET` or `ALTER` commands.
In case of unrecoverable failure of the primary, a restore from a backup is required.

## High availability—not enabled
![*BigAnimal Cluster4*](images/Single-Node-Diagram-2x.png)

For nonproduction use cases where high availability is not a primary concern, a cluster deployment with high availability not enabled provides one primary with no standby servers for failover or read-only workloads.
## Standard high availability

In case of permanent unavailability of the primary, a restore from a backup is required.
The high availability option is provided to minimize downtime in cases of failures. High-availability clusters—one *primary* and two *standby replicas*—are configured automatically, with standby replicas staying up to date through physical streaming replication. In cloud regions with availability zones, clusters are provisioned across zones to provide fault tolerance in the face of a datacenter failure.

![*BigAnimal Cluster4*](images/ha-not-enabled.png)
In case of temporary or permanent unavailability of the primary, a standby replica becomes the primary.

![*BigAnimal Cluster4*](images/HA-diagram-2x.png)

Incoming client connections are always routed to the current primary. In case of failure of the primary, a standby replica is automatically promoted to primary, and new connections are routed to the new primary. When the old primary recovers, it rejoins the cluster as a standby replica.

By default, replication is synchronous to one standby replica and asynchronous to the other. That is, one standby replica must confirm that a transaction record was written to disk before the client receives acknowledgment of a successful commit. In PostgreSQL terms, `synchronous_commit` is set to `on` and `synchronous_standby_names` is set to `ANY 1 (replica-1, replica-2)`. You can modify this behavior on a per-transaction, per-session, per-user, or per-database basis with appropriate `SET` or `ALTER` commands.

## Extreme high availability (beta)

Extreme high availability clusters are powered by EDB Postgres Distributed, a logical replication platform that delivers more advanced cluster management compared to a physical replication based system.

Extreme high availability clusters can be deployed with either PostgreSQL or Oracle compatibility.

Extreme High Availability clusters deploy four data-hosting "BDR" nodes across two availability zones (A and B in the diagram below). One of these nodes will be the leader at any given time (A.1 in the diagram). The rest are typically referred to as "shadow" nodes. Any shadow node can be promoted to leadership at any time by the HARP router. The third availability zone (C) contains one node called the "witness". This node does not host data; it exists only for management purposes, to support operations that require consensus in case of an availability zone failure.

The EDB Postgres Distributed router (HARP) routes all application traffic to the leader node, which acts as the principal write target to reduce the potential for data conflicts. HARP leverages a distributed consensus model to determine availability of the BDR nodes in the cluster. On failure or unavailability of the leader, HARP elects a new leader and redirects application traffic. Together with the core capabilities of BDR, this mechanism of routing application traffic to the leader node enables fast failover and switchover without risk of data loss.

![*BigAnimal Cluster4*](images/Extreme-HA-Diagram-2x.png)
Loading

0 comments on commit f2d23d8

Please sign in to comment.