PostgreSQL Topic Archive

MariaDB PostgreSQL Articles

Galera clustering, InnoDB and Aria internals, replication, optimizer behavior, and MariaDB operations notes.

MariaDB max_statement_time: The Built-In Query Guillotine
7 min read

Every shared MariaDB box eventually meets the query that should never have been allowed to run for six hours. max_statement_time is the built-in kill switch — here is how to scope it, what it actually kills, and why it will not save you from a retry loop.

MariaDB userstat: Cheap Per-User and Per-Table Observability
7 min read

One SET GLOBAL gives MariaDB per-account, per-client, per-table, and per-index counters — enough to answer 'who is hammering this table' in a single query. Here is what userstat collects, what it costs, and where the unused-index caveats hide.

MariaDB Galera Quorum and Split Brain: Why Two Nodes Is a Trap
8 min read

A two-node Galera cluster survives fewer failures than a single node. Here is the quorum arithmetic behind that, how garbd breaks ties, what a non-primary component actually does to your writes, and how to bootstrap safely after a full outage.

MariaDB Thread Pool Tuning: Surviving Connection Storms
11 min read

MariaDB ships a real thread pool in the community server — MySQL charges extra for one. Here is how pool-of-threads works, when it saves you under a connection storm, and when it quietly serializes you.

MariaDB Galera gcache Sizing: Keep IST Cheap and Avoid Full SST
8 min read

gcache.size is the difference between a node rejoining in three minutes via IST and a two-hour full SST that hammers the donor. Here is how the ring buffer works, how to size it from wsrep_replicated_bytes, and how to verify the window before you restart anything.

MariaDB Galera IST vs SST: Why a Node Rejoin Takes Seconds or Hours
11 min read

A Galera node rejoin either streams a small delta (IST) or copies the entire dataset (SST), and whether any donor's gcache still holds the joiner's missing writesets decides which. Here is how the decision is made, how to size for it, and how to watch it happen.

MariaDB userstat: Cheap Per-User and Per-Table Observability
7 min read

One SET GLOBAL gives MariaDB per-account, per-client, per-table, and per-index counters — enough to answer 'who is hammering this table' in a single query. Here is what userstat collects, what it costs, and where the unused-index caveats hide.

MariaDB max_statement_time: The Built-In Query Guillotine
7 min read

Every shared MariaDB box eventually meets the query that should never have been allowed to run for six hours. max_statement_time is the built-in kill switch — here is how to scope it, what it actually kills, and why it will not save you from a retry loop.

MariaDB Galera gcache Sizing: Keep IST Cheap and Avoid Full SST
8 min read

gcache.size is the difference between a node rejoining in three minutes via IST and a two-hour full SST that hammers the donor. Here is how the ring buffer works, how to size it from wsrep_replicated_bytes, and how to verify the window before you restart anything.

MariaDB Galera Quorum and Split Brain: Why Two Nodes Is a Trap
8 min read

A two-node Galera cluster survives fewer failures than a single node. Here is the quorum arithmetic behind that, how garbd breaks ties, what a non-primary component actually does to your writes, and how to bootstrap safely after a full outage.

MaxScale Read/Write Splitting for MariaDB: A Field Guide
7 min read

MaxScale's readwritesplit router gives your application one endpoint and spreads reads across replicas. Here is how routing decisions are made, where session state bites, and how failover coordination works.