Understanding PostgreSQL WAL and optimizing it with a dedicated disk

If you manage a PostgreSQL database with heavy write activity, one of the most important components to understand is the Write-Ahead Log (WAL). WAL is the foundation of PostgreSQL’s durability and crash recovery as it records every change before it’s applied to the main data files. But because WAL writes are synchronous and frequent, they can also become a serious performance bottleneck when they share the same disk with regular data I/O.
Read More

3 Features I am Looking Forward to in PostgreSQL 18

It is that time of the year again. The first release candidate of PostgreSQL 18 is out, and things look promising. We should expect General Availability in the next 2-4 weeks. Exciting times! Over the past many years and as many releases, the PostgreSQL community has done a phenomenal job of being disciplined about the annual release process. And we have done so averaging 150+ new features with each release!
Read More

The Hidden Bottleneck in PostgreSQL Restores and its Solution

In July 2025, during the PG19-1 CommitFest, I reviewed a patch targeting the lack of parallelism when adding foreign keys in pg_restore. Around the same time, I was helping a client with a large production migration where pg_restore dragged on for more than 24 hours and crashed multiple times. In this blog, I will talk about the technical limitations in PostgreSQL, the proposed fix, and a practical workaround for surviving large restores.
Read More

Cold, Warm, and Hot Standby in PostgreSQL: Key Differences

When working with customers, a common question we get is: “Which standby type is best for our HA needs?” Before answering, we ensure they fully understand the concepts behind each standby type and provide the necessary guidance A standby server is essentially a copy of your primary database that can take over if the primary fails. There are different types of standby setups, each with its own use cases, pros, and cons. In this blog, we will discuss the three types: Cold Standby, Warm Standby, and Hot Standby.
Read More

PostgreSQL Database SLAs: Why Hidden Issues Often Break Customer Commitments

SLAs feel reassuring when signed—but their substance lies in what happens behind the scenes. Often, the most damaging breaches don’t stem from cloud outages or server failures, but from invisible issues hidden in how PostgreSQL was initially set up and configured. Increasingly sluggish queries, split-brain scenarios, silent backup failures, any of these can suddenly explode into customer-facing crises. 1. Slow Queries: The Sneaky SLA Saboteur The Hidden Cost of Delayed Queries A seemingly minor tuning oversight, like a missing index or outdated statistics, can turn a 200 ms query into a 10-second slog. It might not seem urgent initially, but as concurrency increases, cascading delays build up. A Slow Query Accelerated 1000× In one case study, an engineer faced a painfully slow query that scanned 50 million rows through a sequential scan—even though it was a simple query filtering on two columns (col_1, col_2) and selecting by id. After creating an index using those columns plus an INCLUDE (id) clause, the query performance improved dramatically: what had taken seconds dropped to just milliseconds, representing up to a 1,000× improvement in the worst-case runtime. [Ref: Learnings from a slow query analysis in PostgreSQL] This shows how even a simple query, if not indexed properly, can pose an SLA risk as data volume increases.
Read More

Achieving High Availability in PostgreSQL: From 90% to 99.999%

When you are running mission-critical applications, like online banking, healthcare systems, or global e-commerce platforms, every second of downtime can cost millions and damage your business reputation. That’s why many customers aim for four-nines (99.99%) or five-nines (99.999%) availability for their applications n this post, we will walk through what those nines really mean and, more importantly, which PostgreSQL cluster setup will get you there.
Read More

When PostgreSQL performance slows down, here is where to look first

PostgreSQL is built to perform. However, as workloads increase and systems evolve, even the most robust setups can begin to show signs of strain. Whether you are scaling a product or supporting enterprise SLAs, performance slowdowns tend to surface when you least want them to. If you are a technology leader overseeing a team of developers who manage PostgreSQL as part of a broader application stack, or you are responsible for uptime and customer satisfaction at scale, knowing where to look first can make all the difference.
Read More

PostgreSQL 16 Installation on RHEL/CentOS – Step-by-Step Guide

Why Databases? Why PostgreSQL? In today's digital world, data is at the heart of every application, from social media platforms to banking systems, from e-commerce websites to IoT devices. To manage this data efficiently, reliably, and securely, we need a robust system known as a database management system (DBMS). Among the many DBMS options available, PostgreSQL stands out as a top choice for developers and enterprises alike. Here’s why PostgreSQL is a go-to database for modern applications: -Standards-compliant and ACID-compliant for strong reliability -Supports both relational and non-relational data (via JSON, hstore) -Extensible because you can create your own data types, operators, and functions. Advanced indexing and full-text search capabilities -Runs on all major OS platforms and integrates well with cloud environments While PostgreSQL 17 is the latest version, this guide focuses on PostgreSQL 16. In many production environments, it’s common to work with the n-1 version for stability and upgrade planning.
Read More