Shaun Thomas

Postgres High Availability Performance Architect, EDB

Shaun has spent decades working in the Postgres ecosystem, specializing in architecture and high availability. His "PostgreSQL High Availability Cookbook" serves as a treatise to the lessons he learned over that time. His guidance brought EDB Postgres Distributed a consensus-driven proxy for greatly simplified cluster topology. If you're interested to learn more on these topics, check out his regular blog on EDB's site.

Read Blogs

Technical Blog
Postgres has a lot of built-in information functions that most people don’t know about. Some of these are critical components to identifying replication lag, but what if we could use them for something else, like throughput? This man’s one simple trick can track actual database throughput; DBAs hate him! Everybody Knows Let’s take a look at a common query we might use to track replication lag...
Technical Blog
What is the role of PgBouncer in a Postgres High Availability stack? What even is PgBouncer at the end of the day? Is it a glorified traffic cop, or an integral component critical to the long-term survival of a Postgres deployment? When we talk about Postgres High Availability, a lot of terms might spring to mind. Replicas, streaming, disaster recovery, fail-over, automation; it’s a ceaseless...
Technical Blog
Studying Stored Procs in Postgres 11 With Postgres 11 looming on the near horizon, it’s only appropriate to check out a recent beta and kick the tires a few times. Whether it’s improvements in parallelism, partitions, stored procedures, JIT functionality, or any number of elements in the release page, there’s a lot to investigate. It just so happens that I ran across a fortuitous event on Twitter...
Technical Blog
When working with database capacity planning, there are a lot of variables to consider, and Postgres is no different in this regard. One of the elements which requires management is storage. However, there’s an aspect of storage that escapes inspection almost without exception, and it’s hiding in the shadows between the columns themselves. Alignment Basics In most low-level computer languages like...
Technical Blog
Just in case you missed the live broadcast, the video of my presentation below covers various topics around integration of PostgreSQL with other data sources and database technologies. http://www.youtube.com/watch?v=eUPJD8ouMik This presentation covers the following topics: What is a Foreign Data Wrapper? How to query MySQL, a Flat file, a Python script, a REST interface and a different Postgres...
Technical Blog
With the addition of logical replication in Postgres 10, it’s natural to ask “what’s next”? Though not directly supported yet, would it be possible to subscribe two Postgres 10 nodes to each other? What kind of future would that be, and what kind of scenarios would be ideal for such an arrangement? As it turns out, we already have a kind of answer thanks to the latency inherent to the speed of...
Technical Blog
We all love PgBouncer. It’s a great way to multiplex tens, hundreds, or even thousands of client connections to a small handful of Postgres sessions. What isn’t necessarily so endearing, is that it can’t pass authentication from itself to Postgres, as each Postgres session may exist before the connection to PgBouncer is established. Or can it? Let’s explore how things have evolved, but the news...
Technical Blog
Backups are a critical component to a fully covered Postgres database infrastructure. In some ways, it’s fair to say a database without a backup is no database at all—sometimes literally. 2ndQuadrant’s Barman tool is aptly named as a Backup And Recovery Manager for Postgres, and it exists primarily for encouraging a stable and robust backup process. Backing up a database and then restoring from...
Technical Blog
ZFS is a filesystem originally created by Sun Microsystems, and has been available for BSD over a decade. While Postgres will run just fine on BSD, most Postgres installations are historically Linux-based systems. ZFS on Linux has had much more of a rocky road to integration due to perceived license incompatibilities. As a consequence, administrators were reluctant or outright refused to run ZFS...
Technical Blog
PgBouncer is a popular proxy and pooling layer for Postgres. It’s extremely common to reconfigure PgBouncer with repmgr so it always directs connections to the current primary node. It just so happens our emerging Docker stack could use such a component. In our last article, we combined Postgres with repmgr to build a Docker container that could initialize and maintain a Postgres cluster with...