Skip to content

Aurora PostgreSQL: "process took" in ZDP event for reader instances reports massively inflated time compared to actual wall-clock duration

0

Observed Behavior

During an automatic minor version upgrade across 14 Aurora PostgreSQL clusters (17.5.x → 17.7.2 and 14.17.4 → 14.20.2), I noticed a significant discrepancy in the "process took" value reported in the ZDP upgrade event for reader instances compared to the actual wall-clock time.

For writer instances, the reported time matches the wall-clock time between "Attempting" and "finished" events — as expected.

For reader instances, the reported "process took" value is 30x to 270x larger than the actual elapsed wall-clock time.

Data

05:00:03 — "Database cluster engine minor version upgrade started." 05:00:47 — "Attempting to upgrade the database instance 'member-2' with zero downtime." (writer) 05:00:53 — "Attempt to upgrade ... 'member-2' finished. The process took 1875 ms, 68 connections preserved, 0 dropped." ✅ matches wall-clock 05:00:47 — "Attempting to upgrade the database instance 'member-1' with zero downtime." (reader) 05:00:58 — "Attempt to upgrade ... 'member-1' finished. The process took 1610695 ms." ❌ wall-clock = 11 sec

Question

Is this a known behavior? If so, what exactly does the "process took" timer measure for reader instances during automatic minor version upgrades? If not — could this be a bug in how the upgrade duration is calculated and reported in the event? I believe this timing metric is more misleading than informative.

asked 2 months ago51 views

2 Answers
0

Based on the available documentation about Aurora PostgreSQL zero-downtime patching (ZDP), the "process took" metric in ZDP events is intended to report the actual duration of the upgrade operation. The documentation shows examples where this metric accurately reflects the time between the "Attempting" and "finished" events, such as "The process took 3485 ms, 378 connections preserved, 0 connections dropped."

However, the specific behavior you're observing—where reader instances report dramatically inflated "process took" values (30x to 270x larger than wall-clock time) while writer instances report accurate values—is not explicitly documented or explained in the available AWS documentation about Aurora PostgreSQL upgrades or ZDP operations.

The documentation does note that during minor version upgrades of Multi-AZ DB cluster deployments, Amazon RDS upgrades reader DB instances one at a time, then switches one reader to become the new writer, and finally upgrades the old writer instance. This sequencing could potentially involve internal timing mechanisms that differ between writer and reader upgrades, but there's no documented explanation for why the reported metric would be so significantly different from actual elapsed time.

Given that this discrepancy appears consistent across your 14 clusters and the magnitude of the difference is substantial, this could represent either an undocumented behavior in how the timing is calculated for reader instances, or potentially a reporting issue. I would recommend opening a support case with AWS to get clarification on whether this is expected behavior and what the "process took" metric actually measures for reader instances during automatic minor version upgrades.
Sources
Use ZDP for Aurora PostgreSQL DB cluster upgrades | AWS re:Post
Upgrades of the RDS for PostgreSQL DB engine - Amazon Relational Database Service

answered 2 months ago

0

That is exactly why I posted my analysis here — I expect this might be a calculation bug, and I hope this discrepancy will be brought to AWS's attention.

answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.