PostgreSQL

Posts in 2021
  • PG Replica Identity Explained

    March 03, 2021 in PostgreSQL

    PG Replica Identity Explained

    Replica identity is important - it determines the success or failure of logical replication

    Replica identity is important - it determines the success or failure of logical replication

  • A Methodology for Diagnosing PostgreSQL Slow Queries

    February 23, 2021 in PostgreSQL

    A Methodology for Diagnosing PostgreSQL Slow Queries

    Slow queries are the sworn enemy of OLTP databases. Here’s how to identify, analyze, and fix them using metrics (Pigsty dashboards), pg_stat_statements, and logs.

    Slow queries are the sworn enemy of OLTP databases. Here’s how to identify, analyze, and fix them using metrics (Pigsty dashboards), pg_stat_statements, and logs.

  • Incident-Report: Patroni Failure Due to Time Travel

    February 22, 2021 in PostgreSQL

    Incident-Report: Patroni Failure Due to Time Travel

    Machine restarted due to failure, NTP service corrected PG time after PG startup, causing Patroni to fail to start.

    Machine restarted due to failure, NTP service corrected PG time after PG startup, causing Patroni to fail to start.

  • Online Primary Key Column Type Change

    January 15, 2021 in PostgreSQL

    Online Primary Key Column Type Change

    How to change column types online, such as upgrading from INT to BIGINT?

    How to change column types online, such as upgrading from INT to BIGINT?

Posts in 2020
  • Golden Monitoring Metrics: Errors, Latency, Throughput, Saturation

    November 06, 2020 in PostgreSQL

    Golden Monitoring Metrics: Errors, Latency, Throughput, Saturation

    Understanding the golden monitoring metrics in PostgreSQL

    Understanding the golden monitoring metrics in PostgreSQL

  • Database Cluster Management Concepts and Entity Naming Conventions

    June 03, 2020 in PostgreSQL

    Database Cluster Management Concepts and Entity Naming Conventions

    Concepts and their naming are very important. Naming style reflects an engineer's understanding of system architecture. Poorly defined concepts lead to communication confusion, while carelessly set names create unexpected additional burden. Therefore, they need careful design.

    Concepts and their naming are very important. Naming style reflects an engineer's understanding of system architecture. Poorly defined concepts lead to communication confusion, while carelessly set names create unexpected additional burden. Therefore, they need careful design.

  • PostgreSQL's KPI

    May 29, 2020 in PostgreSQL

    PostgreSQL's KPI

    Managing databases is similar to managing people - both need KPIs (Key Performance Indicators). So what are database KPIs? This article introduces a way to measure PostgreSQL load: using a single horizontally comparable metric that is basically independent of workload type and machine type, called **PG Load**.

    Managing databases is similar to managing people - both need KPIs (Key Performance Indicators). So what are database KPIs? This article introduces a way to measure PostgreSQL load: using a single horizontally comparable metric that is basically independent of workload type and machine type, called **PG Load**.

  • Online PostgreSQL Column Type Migration

    January 30, 2020 in PostgreSQL

    Online PostgreSQL Column Type Migration

    How to modify PostgreSQL column types online? A general approach

    How to modify PostgreSQL column types online? A general approach

Posts in 2019
  • Transaction Isolation Level Considerations

    November 12, 2019 in PostgreSQL

    Transaction Isolation Level Considerations

    PostgreSQL actually has only two transaction isolation levels: **Read Committed** and **Serializable**

    PostgreSQL actually has only two transaction isolation levels: **Read Committed** and **Serializable**

  • Frontend-Backend Communication Wire Protocol

    November 12, 2019 in PostgreSQL

    Frontend-Backend Communication Wire Protocol

    Understanding the TCP protocol used for communication between PostgreSQL server and client, and printing messages using Go

    Understanding the TCP protocol used for communication between PostgreSQL server and client, and printing messages using Go