Pigsty Blog Articles
Golden Monitoring Metrics: Errors, Latency, Throughput, Saturation
November 06, 2020 in PostgreSQL
Understanding the golden monitoring metrics in PostgreSQL
Database Cluster Management Concepts and Entity Naming Conventions
June 03, 2020 in PostgreSQL

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

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
How to modify PostgreSQL column types online? A general approach
Transaction Isolation Level Considerations
November 12, 2019 in PostgreSQL

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

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
Incident: PostgreSQL Extension Installation Causes Connection Failure
June 13, 2019 in PostgreSQL

Today encountered an interesting case where a customer reported database connection issues caused by extensions.
Today encountered an interesting case where a customer reported database connection issues caused by extensions.
CDC Change Data Capture Mechanisms
June 12, 2019 in PostgreSQL
Change Data Capture is an interesting ETL alternative solution.
Locks in PostgreSQL
June 11, 2019 in PostgreSQL

Snapshot isolation does most of the heavy lifting in PG, but locks still matter. Here’s a practical guide to table locks, row locks, intention locks, and `pg_locks`.
Snapshot isolation does most of the heavy lifting in PG, but locks still matter. Here’s a practical guide to table locks, row locks, intention locks, and `pg_locks`.
O(n2) Complexity of GIN Search
April 12, 2019 in PostgreSQL

When GIN indexes are used to search with very long keyword lists, performance degrades significantly. This article explains why GIN index keyword search has O(n^2) time complexity.
When GIN indexes are used to search with very long keyword lists, performance degrades significantly. This article explains why GIN index keyword search has O(n^2) time complexity.


