On Wed, Sep 6, 2017 at 9:43 AM, Robert Inder <rob...@interactive.co.uk>
wrote:

...

> And I've read that the answer to this is to set
> max_standby_streaming_delay in postgresql94.conf.
> So I've set it to "600s" -- ten minutes.
>
> I thought this would mean that when there was a conflict with an update
> from the live server, Postgres would give the dump 10 minutes "grace" in
> which to finish before killing it.
>
> Ten minutes may or may not be enough.  But in a case where it isn't
> enough, and the dump is abandonned, I would expect to see something like
>
>     the dump of database_a finishing at 5 minutes past the hour,
>     the dump of database_b
>           starting after the dump of database_a,
>           having a conflict,
>           being given 10 minutes to complete, and then
>           being abandonned
>     the dump of database_c starting after the dump of database_b and
> finishing (say) 3 minutes later
>
> So the dump of database_c should finish at around 18 minutes past the hour.
>
> BUT that is not what I am seeing.
> On occasions where the dump of database_b is being abandonned, the
> successful dump of
> database_c is timestamped less than 10 minutes after the dump of database_a
>
> Which does not fit with the dump of database_b being given 10 minutes in
> which to finish
>
> Have I misunderstood something?  Or is Postgres not actually configured
> the way I think it is?
>

The standby will wait for ten minutes to obtain the lock it wishes to
obtain.  In 9.4, if something other than dump of database b was already
blocking it for 8 minutes before the dump starts, then the dump of database
b will only have 2 minutes, not 10, before it gets cancelled.  So, are
there any long running jobs in database b other than the pg_dump?

Cheers,

Jeff

Reply via email to