Author - Jobin Augustine

Index Improvements in PostgreSQL 13

index improvements postgresql 13

Indexes are one of the core features of all the database management systems (DBMS). Indexes have a very long history in PostgreSQL, which has quite a rich set of index features. PostgreSQL has B-Tree, Hash,  GIN, GIST, and BRIN indexes. And because the development around indexes is still going on, PostgreSQL 13 provides some […]

Read more

Why PostgreSQL WAL Archival is Slow

PostgreSQL WAL Archival is Slow

It is very common to see many customer cases where a sudden increase in disk space usage is caused by a lot of WAL segments filling up the WAL directory (pg_wal). Panicking customers generally ask “Why isn’t PostgreSQL deleting them?”. The most common reasons we used to find were:

Failing WAL archival
A slot holding old […]

Read more

PostgreSQL synchronous_commit options and Synchronous Standby Replication

PostgreSQL synchronous_commit options and synchronous standby replication

I find myself discussing and explaining sychronous_commit with many PostgreSQL users, especially with novice users. So, I thought of noting down all the key points as a blog post which will be useful for more users. Recently I got an opportunity to talk about some related topics in our PostgreSQL Percona Tech Days.
What Is […]

Read more

Failover of Logical Replication Slots in PostgreSQL

failover logical replication slots postgresql

Missing Piece: Failover of the Logical Replication Slot
Logical decoding capability has existed in PostgreSQL for the last several versions, and a lot more functionalities are added over time.  However, one of the very crucial functionalities is still missing in PostgreSQL, which prevents logical replication to be part of critical production environments where downstream expects […]

Read more

SQL Optimizations in PostgreSQL: IN vs EXISTS vs ANY/ALL vs JOIN

SQL optimizations in PostgreSQL

This is one of the most common questions asked by developers who write SQL queries against the PostgreSQL database. There are multiple ways in which a sub select or lookup can be framed in a SQL statement. PostgreSQL optimizer is very smart at optimizing queries, and many of the queries can be rewritten/transformed for […]

Read more