Introducing Crunchy Data Warehouse: A next-generation Postgres-native data warehouse. Crunchy Data Warehouse Learn more

Latest posts from Dave Cramer

  • Change Data Capture in Postgres With Debezium

    Dave Cramer

    My colleague @craigkerstiens recently wrote about some guidance for cleaning up your Postgres database. One of the things he mentioned in his post, "Don't put your logs or messages in your database." got a number of questions

    Read More
  • PostgreSQL Change Data Capture With Debezium

    Dave Cramer

    As you can see from my previous blogs (A Guide to Building an Active-Active PostgreSQL Cluster) I’m interested in the ways that we can replicate data in PostgreSQL. For this post, I've decided to write about a product that enabled replicating heterogeneous databases.

    Through my involvement in the PostgreSQL JDBC project, I’ve had the opportunity to help out the folks in the Debezium

    Read More
  • 11 min read

    Deploying Active-Active PostgreSQL on Kubernetes

    Dave Cramer

    Kubernetes is a very popular container orchestration framework. I’ll show you how to get Symmetric-DS working on a single Kubernetes instance.

    I had previously explored how to build an active-active PostgreSQL cluster

    Read More
  • A Guide to Building an Active-Active PostgreSQL Cluster

    Dave Cramer

    One of the toughest challenges facing database engineers today is ensuring their data is always accessible so they can meet the high-availability requirements for their applications.

    While this problem may seem trivial in the world of applications where one can have many instances behind geographically distributed load balancers, in the database world where there is only one version of the data globally, the problem faces many obstacles.

    PostgreSQL replication has advanced considerably in recent major releases, including continuous improvements to streaming replication and the addition of logical replication in PostgreSQL 10. While these capabilities represent important enhancements to PostgreSQL, enabling users to address a wide variety of clustered architectures, they do not (easily) address the use cases where the application requires access to an updatable database in two or more geographic regions - often referred to as an "active-active" cluster.

    More specifically, an active-active cluster is one where the application can write to any instance in the cluster and the data will be written to all of the instances in the cluster, enabling each instance in the cluster to be used to:

    • Provide near zero downtime as the new instance is already in a read/write state; there is no need to reconfigure it.

    • Provide near zero downtime upgrades from one version to another

    • Improve latency for users in geographically distributed clusters. By providing an instance physically closer to the user latency is reduced.

    Read More