Timescale Logo
Serverless Database Alternative

What Is Dynamic PostgreSQL?

A scaling PostgreSQL elephant

Dynamic PostgreSQL is a solution that solves the challenges posed by both provisioned and serverless databases, offering an optimized balance.

At the heart of Dynamic PostgreSQL is dynamic compute, a Timescale feature designed to scale your available compute instantly within a predefined min/max range, aligning with your load requirements. Gone are the days of provisioning for—and paying for—peak capacity at all times.

The approach is simple: select a compute range suitable for your needs. Your database operates at the base capacity and only scales up to its peak when necessary. The model? Buy the base, rent the peak. It's a practical, cost-effective strategy that puts you in control.

Buy the base, rent the peak

To accomplish this, we’ve innovated on how we operate the PostgreSQL infrastructure rather than modifying the internals of PostgreSQL. This solution is 100 percent PostgreSQL, with all the benefits of the PostgreSQL community and ecosystem, plus the maturity of Timescale’s database platform. To learn more about the thought process behind this feature, check out our launch blog post Introducing Dynamic PostgreSQL: How We Are Evolving the Database to Help You Sleep at Night.

When should Dynamic PostgreSQL be used (and why is it better than serverless databases)?

Dynamic PostgreSQL is built for continuous production workloads. Your application is almost always on, so why wouldn’t your database be? 

We commonly observe four types of load patterns: uniform, variable, bursty, and intermittent. We believe Dynamic PostgreSQL is well suited to serve the first three of those better than existing solutions, such as serverless databases.

The different workloads supported by Timescale's dynamic infrastructure vs. serverless infrastructure

Uniform workloads have exactly what they sound like, a fairly constant compute load. But typically, DBaaS offerings allocate compute in fixed power-of-two vCPU and corresponding memory sizes: 1, 2, 4, 8, 16, 32 vCPU.  Unless your uniform workload falls exactly on one of those values, you will pay for overprovisioning. (And even if it does fall exactly, do you really feel comfortable operating your database near 100 percent CPU utilization?) With Dynamic PostgreSQL, you more easily choose a compute range where your uniform usage falls between the min and max. This allows you to pay for only the fractional compute you’re using, with the reassurance of knowing that if it changes, it can scale!

Variable workloads experience some type of regular variability or seasonality, whether it be hourly, daily, or weekly. For example, your business application might naturally have more demand during normal work hours, or your media, gaming, or e-commerce site might see more demand in the evenings or weekends. Dynamic PostgreSQL naturally supports this variability in usage, and your key considerations are configuring a compute range that satisfies your peak usage while saving costs for the remainder.

Bursty workloads are more irregular variations caused by either external or internal changes in demand.  Externally, while your application continually sees regular load, it occasionally may receive unexpected popularity. Or perhaps, internally, database maintenance operations like autovacuum kick in at various intervals. But with Dynamic PostgreSQL, you can again size your database to handle these demands while knowing you often pay much less than the peak.

Intermittent workloads only see requests more occasionally, perhaps every few minutes or hours. In such scenarios, where you want to serve these occasional requests cost-effectively (and the performance hit of a cold start is an acceptable trade-off for your application), then a serverless database is a good option. We have not optimized Dynamic PostgreSQL for these scenarios.

In short, Dynamic PostgreSQL is suitable for most production database workloads. Most of these workloads will see significant cost savings with the same high performance compared to both static DBaaS and serverless alternatives.

Using Dynamic PostgreSQL: An example

With Dynamic PostgreSQL and its dynamic infrastructure (dynamic compute and dynamic storage), we've successfully amalgamated the strengths of existing DBaaS and serverless database models to offer a superior, practical solution for managing your production database. 

This innovation combines the performance, cost predictability, and reliability of a DBaaS platform with the flexibility and user-friendly nature of serverless databases.

Consider this scenario: You opt for a 4–8 CPU option. In this case, you're guaranteed 4 CPUs exclusively dedicated to your service and 32 GB of effective memory, ensuring consistent base performance. When your load escalates, your application can utilize up to 8 CPUs as required—metered and billed on a fractional CPU basis—and never more than 8 CPUs, if this is your set maximum.

The dynamic model of Dynamic PostgreSQL allows you to size your database in a cost-effective and stress-free manner. You can select a compute range where your standard demand fits the minimum, with the ability to grow or spike to the maximum as needed. This maximum acts as a natural cap on any usage above your base compute, resulting in a transparent cost ceiling. Plus, there's no pricing penalty for scaling—we charge the same rate per (fractional) CPU-hour for both your base and any metered usage over it.

If you find that your provisioned size range is either too low or too high, you can effortlessly adjust your compute range to a size that better accommodates your application’s needs.

Additionally, Dynamic PostgreSQL leverages Timescale’s usage-based storage, where you pay only for the volume of data stored (in GB-hours), not for a provisioned disk size. This eliminates concerns about wasting money on over-provisioned disks or running out of disk space. Timescale’s dynamic cloud infrastructure ensures adequate storage capacity, when needed, and billing only for what you use.

At the end of the month, your bill is straightforward, comprising just two metrics: (1) your compute costs, billed as your hourly base compute plus any fractional CPU usage above it, but no more than your peak; and (2) your storage costs, billed as data consumption in GB-hours. With Dynamic PostgreSQL, there's no need to grapple with new metrics or derived units—everything is clear and easy to understand.

Dynamic PostgreSQL pricing

At Timescale, we provide five distinct compute ranges tailored to your workload size. Each range comes with a corresponding effective memory allocation, ensuring optimal performance irrespective of your immediate usage.

 Dynamic PostgreSQL's pricing table

Our pricing model for Dynamic PostgreSQL is designed strategically with cost-efficiency in mind. Initial estimates suggest impressive potential savings: you could save 10-20 percent compared to AWS RDS for PostgreSQL and a substantial 50-70 percent compared to Aurora Serverless (I/O Optimized).

How to enable Dynamic PostgreSQL

To create a Dynamic PostgreSQL service, just select the PostgreSQL option when logging into Timescale:

How to create a Dynamic PostgreSQL service

Timescale now offers two specialized service types designed to cater to the unique requirements of your databases:

  1. Time Series: Designed to supercharge query speed and scalability for high-demand workloads, offering key Timescale features such as hypertables, columnar compression, continuous aggregates, and tiered storage. Ideal for hosting sensor data, energy metrics, financial data, events, and other data-intensive workloads.

  2. PostgreSQL: Optimized for cost-efficiency and user-friendliness, these Dynamic PostgreSQL services are perfect for your relational-only databases, such as business records.

Setting up your Dynamic PostgreSQL service is straightforward. Simply choose "PostgreSQL," select your region, define your dynamic compute range, and specify your availability and connection options. Just like that, your Dynamic PostgreSQL database is set up and ready for production use.

Creating a dynamic PostgreSQL service
Dynamic PostgreSQL—Creating a dynamic compute service

Start saving costs today on your dynamic workloads. Try Dynamic PostgreSQL—it’s available for free for 30 days.

Timescale Logo

Subscribe to the Timescale Newsletter

By submitting, you acknowledge Timescale’s Privacy Policy
2023 © Timescale Inc. All rights reserved.