What is Xata?
Dedicated clusters

Dedicated clusters

Edit on GitHub

A dedicated cluster is a Postgres cluster, which includes a writer instance and potentially multiple read replicas. You can create and allocate Xata databases and branches to this cluster. Xata databases and branches behave the same whether they are allocated to the shared or dedicated cluster.

However, a dedicated cluster provides more isolation for your workload and enables more SQL functionality, as well as the ability to install Postgres extensions. See the table for the supported statements for more detail. For these reasons, a dedicated cluster is the best choice for production workloads.

Dedicated clusters are available in the Pro plan. Dedicated clusters are powered by AWS Aurora instances and the pricing for them matches the AWS Aurora for PostgreSQL pricing.

#

Supported versions

At the moment Xata supports the following Postgres versions:

  • 15.6
  • 15.5
  • 15.4
  • 14.11
  • 14.10
  • 14.9

As we work to promote dedicated clusters to generally available (GA), we will add more versions. We are also working to provide control over the maintenance windows and the ability upgrade a version yourself.

There are two kinds of instances that can power the Xata dedicated clusters:

  • Provisioned instances, which have a fixed amount of CPU and memory
  • Auto-scaling instances, which can scale up and down based on the load

The following instance types are available via the UI. If you require other instance types or would like to reserve instances, please reach out to our support team. We can generally support any instance type that is available in the AWS Aurora for PostgreSQL service.

In the following table, the prices are listed for the us-east-1 region and should be considered estimates. You will get the exact price per hour for the instances and an estimate of the monthly cost when you create the cluster.

Instance typevCPUMemory (GB)Price per hourPrice per hour (I/O optimized)Description
db.t4g.medium24$0.073$0.095General-purpose, Graviton2 processors.
db.t4g.large28$0.146$0.19General-purpose, Graviton2 processors.
db.t3.medium24$0.082$0.107General-purpose, CPU Burstable
db.t3.large28$0.164$0.213General-purpose, CPU Burstable
db.r6g.large216$0.26$0.338Memory-optimized, Graviton2 processors.
db.r6g.xlarge432$0.519$0.675Memory-optimized, Graviton2 processors.
db.r6g.2xlarge864$1.038$1.349Memory-optimized, Graviton2 processors.
db.r6gd.xlarge432$0.624$0.811Memory-optimized, local SSD storage, Graviton2 processors.
db.r6gd.2xlarge864$1.248$1.622Memory-optimized, local SSD storage, Graviton2 processors.
db.r6i.large216$0.29$0.377Memory-optimized, Intel Xeon processors.
db.r6i.xlarge432$0.58$0.754Memory-optimized, Intel Xeon processors.
db.r6i.2xlarge864$1.16$1.508Memory-optimized, Intel Xeon processors.

Auto-scaling instances are more expensive per GB of RAM compared to the provisioned instances, but they can scale up and down based on the load. This means that they can be more cost effective for workloads that have very variable load.

You can select a minimum and maximum RAM value for the auto-scaling instances. The number vCPUs will be automatically calculated based on the selected RAM value.

The Xata auto-scaling dedicated clusters are powered by the AWS Aurora Serverless v2 instances and use the same pricing.

RAM (GB)vCPUPrice per hourPrice per hour (I/O optimized )
10.5$0.06$0.08

Similar to the supported Postgres version, we will launch this feature in a selected set of regions:

  • us-east-1 - North Virginia, US
  • eu-central-1 - Frankfurt, Europe

If you the region you are looking for is not available please reach out to our support team.

All the extensions that are available in Aurora PostgreSQL are available in the dedicated clusters. The list of extensions and their versions depends on the Postgres version, please consult this list. You can enable extensions on your own by following the instructions provided in the Postgres documentation.

To inspect which extensions are available out-of-the-box, please connect to your database and run the following command:

SELECT * FROM pg_available_extensions;

To list the installed extensions:

SELECT * FROM pg_available_extensions WHERE installed_version IS NOT NULL;
| name      | default_version | installed_version | comment                                                    |
| --------- | --------------- | ----------------- | ---------------------------------------------------------- |
| plpgsql   | 1.0             | 1.0               | PL/pgSQL procedural language                               |
| uuid-ossp | 1.1             | 1.1               | generate universally unique identifiers (UUIDs)            |
| postgis   | 3.4.0           | 3.4.0             | PostGIS geometry and geography spatial types and functions |
| pgcrypto  | 1.3             | 1.3               | cryptographic functions                                    |
| vector    | 0.5.1           | 0.5.1             | vector data type and ivfflat and hnsw access methods       |

Every cluster has delete protection out of the box. If you decided to terminate a cluster, you must delete all branches located on that cluster or move them to a shared cluster. The simplest path to deleting the branches, is to navigate to branch management, there you will find the complete list of branches labelled with the cluster name and the delete action. Once no branch is present on the cluster, you can terminate it.

Every workspace hosting one or more dedicated clusters provides the ability to move branches from one cluster to another, this includes shared clusters. Please navigate to branch management and select the branch you move to which target cluster. Once started, you'll see the MOVING label on the branch while the operation is ongoing, furthermore all DML statements are present in the moved branch without downtime. DDL statements will be rejected during the moving process to ensure consistency.

Certain SQL statements and functions are forbidden, refer to limtations for the complete list. There are no limits imposed on amount of open Postgres connections or HTTP API requests in a dedicated cluster.

On this page

Supported versionsInstancesProvisioned instancesAuto-scaling instancesRegionsExtensionsTerminationMoving branchesLimitations