c91017d4

Created Started Cancelled

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Let a test say which part of it happened long ago

Most of a test is arranging what, in production, was arranged long
before the request under test: an account registered last week, a
build that finished this morning.  A replica has all of that.  Only
what happens after the arranging is recent enough for lag to be a
question.

Without somewhere to draw that line, a suite pointed at a replica
fails on its own setup, for a reason its production counterpart would
never meet, and says nothing about the request it was written for.

It waits rather than lifting the standby's apply delay while it
catches up.  Lifting would be quicker, and ALTER SYSTEM does work on a
standby, but how far behind the standby is belongs to the cluster:
every test running at that moment would get a replica that had caught
up, and a test whose subject is what happens when it has not would
quietly stop testing anything.  Waiting costs the configured delay at
worst, because the delay is measured against each record's commit
timestamp rather than from when replay reaches it.