Percona Resources

Software
Downloads

All of Percona’s open source software products, in one place, to download as much or as little as you need.

Valkey Contribution

Product Documentation

Why Percona for MongoDB?

Why Percona for PostgreSQL?

Percona Blog

Percona Blog

Our popular knowledge center for all Percona products and all related topics.

Community

Percona Community Hub

A place to stay in touch with the open-source community

Events

Percona Events Hub

See all of Percona’s upcoming events and view materials like webinars and forums from past events

About

About Percona

Percona is an open source database software, support, and services company that helps make databases and applications run better.

Percona in the News

See Percona’s recent news coverage, press releases and industry recognition for our open source software and support.

Our Customers

Our Partners

Careers

Contact Us

Jobin Augustine
Jobin Augustine is a PostgreSQL expert and Open Source advocate and has more than 21 years of working experience as a consultant, architect, administrator, writer, and trainer in PostgreSQL, Oracle and other database technologies. He has always been an active participant in the Open Source communities, and his main focus area is database performance and optimization. Jobin is a regular face in many of the PostgreSQL conferences and has presented at various conferences for the last 6+ years. He is a contributor to multiple Open Source Projects, an active blogger, and loves coding in C++ and Python. Jobin holds a Master's in Computer Applications; Currently, he is the PostgreSQL Escalation Specialist for Percona. Previously, he worked at OpenSCG for two years as an architect and was part of the BigSQL core team. Previous to his work at OpenSCG, Jobin worked at Dell as Database Senior Advisor for ten years and another five years with TCS/CMC.

PostgreSQL Backup Strategies for Enterprise-Grade Environments

This blog was originally written in September 2018 and was updated in March 2025. In this post, we cover the methods used to achieve an enterprise-grade PostgreSQL backup strategy. We’ll explore options like pg_basebackup and WAL archiving to enable PostgreSQL Point-in-Time Recovery (PITR), discuss PostgreSQL backup best practices, and touch upon enterprise database backup tools. […]

PostgreSQL Upgrade Using pg_dump/pg_restore: A Step-by-Step Guide

This post was originally published in March 2019 and was updated in February 2025. Planning a PostgreSQL upgrade but not sold on pg_upgrade? You’re not alone. If pg_upgrade feels too risky or limiting, pg_dump and pg_restore give you something better: full control. You can move across major versions, make schema changes, and leave storage format […]

Upgrading to the New Etcd Version From 3.3 for Patroni

We have been promoting and using Patroni as the best high availability framework for PostgreSQL, and Etcd was the preferred/recommended DCS for the Patroni cluster. Both Patroni and Etcd have been part of PostgreSQL distribution from Percona for years now. But one area where we were stuck was the Etcd version, and we continued to […]

Controlling Resource Consumption on a PostgreSQL Server Using Linux cgroup2

Multi-tenancy/co-hosting is always challenging. Running multiple PG instances could help to reduce the internal contention points (scalability issues) within PostgreSQL. However, the load caused by one of the tenants could affect other tenets, which is generally referred to as the “Noisy Neighbor” effect. Luckily, Linux allows users to control the resources consumed by each program […]

LDAP Authentication in PgBouncer Through PAM

There are many cases where external connection poolers like pgBouncer become unavoidable despite the costs and complexities associated with them. PgBouncer is one of the most popular external connection poolers for PostgreSQL. It is thin and lightweight, so it doesn’t have built-in authentication features like LDAP, which is essential for many enterprises. Luckily, pgBouncer has […]

PostgreSQL Indexes Can Hurt Performance: Exploring the Negative Effects and the Costs Involved

This blog was originally published in April 2023 and was updated in April 2024. Indexes are generally considered to be the panacea when it comes to SQL performance tuning, and PostgreSQL supports different types of indexes catering to different use cases. I keep seeing many articles and talks on “tuning” discussing how creating new indexes […]

Human Factors Behind Incidents: Why Settings Like “idle_session_timeout” Can Be a Bad Idea

PostgreSQL 14 introduced the parameter idle_session_timeout, and, unfortunately, many DBAs jumped to start using it without understanding or by ignoring the consequences. In a short span of time, it has become one of the most misused parameters in many PostgreSQL installations. There is nothing wrong with idle_session_timeout  from a technical perspective; even without this parameter, […]

PostgreSQL Sharding: An Overview and MongoDB Comparison

This post was originally published in 2019 and was updated in 2023. I presented at Percona University São Paulo about the new features in PostgreSQL that allow the deployment of simple shards. I’ve tried to summarize the main points in this post, as well as provide an introductory overview of sharding itself. Please note I […]

Speed Up of the WAL Archiving in PostgreSQL 15

Last time I blogged about the New WAL Archive Module/Library feature available in PostgreSQL 15, which is quite transformative in how WALs are archived today in PostgreSQL. PostgreSQL 15 has many more improvements related to WAL archiving, which is worth discussing. In this blog, I would like to highlight some of them which solve great […]

New WAL Archive Module/Library in PostgreSQL 15

PostgreSQL traditionally uses shell commands to achieve continuous WAL archiving, which is essential for backups and stable standby replication.  In the past, we blogged about the inefficiency in that design and how some of the backup tools like PgBackRest solve that problem. It is a well-known problem in the PostgreSQL community, and many discussions happened […]

Securing Patroni REST API End Points – Part 1

In recent years, Patroni emerged as the number one HA framework for PostgreSQL, currently with 5K stars in its git repository. We blogged about how some of the extraordinary capabilities of Patroni to solve problems like Logical Replication Slot Failover. One outstanding feature of Patroni is its powerful set of REST APIs. These APIs can […]

Don’t Forget to Tune Stats Collector for PostgreSQL 14 and Older

Recently I blogged about a significant improvement in PostgreSQL 15: PostgreSQL 15: Stats Collector Gone? What’s New? While there is great cheer for this upcoming improvement, we could see a few comments about “inefficiencies” in previous versions. That brought me to the realization that even though the feature to tune stats collector is part of the […]

PostgreSQL 15: Stats Collector Gone? What’s New?

Anyone trying the upcoming PostgreSQL 15 might observe that one of the background processes is missing.

if we compare this with PostgreSQL 14:

Yes, the “stats collector” is missing, and it is gone for good. One of the major bottlenecks and headaches is gone forever. What does the stats collector do? Novice users […]