[HACKERS] archive_timeout ignored directly after promotion

Поиск
Список
Период
Сортировка
От Andres Freund
Тема [HACKERS] archive_timeout ignored directly after promotion
Дата
Msg-id 20170621175838.3kva7ajqk5qru657@alap3.anarazel.de
обсуждение исходный текст
Ответы Re: [HACKERS] archive_timeout ignored directly after promotion  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
Hi,

When promoting a standby without using the "fast promotion" logic,
e.g. by using recovery targets (which doesn't use fast promotion for
unbeknownst to me reasons), checkpointer doesn't necessarily respect
archive timeout for the first cycle after promotion.  The reason for
that is that it determines the sleep times like    if (XLogArchiveTimeout > 0 && !RecoveryInProgress())    {
elapsed_secs= now - last_xlog_switch_time;        if (elapsed_secs >= XLogArchiveTimeout)            continue;
/*no sleep for us ... */        cur_timeout = Min(cur_timeout, XLogArchiveTimeout - elapsed_secs);    }
 
and RecoveryInProgress() will still return true.  We just fudge that
when creating the end-of-recovery checkpoint:        /*         * The end-of-recovery checkpoint is a real checkpoint
that's        * performed while we're still in recovery.         */        if (flags & CHECKPOINT_END_OF_RECOVERY)
     do_restartpoint = false;
 

One easy way to fix that would be to just wakeup the checkpointer from
the startup process once at the end of recovery, but it'd not be
pretty.   I think it'd be better to change the        do_restartpoint = RecoveryInProgress();
        /*         * The end-of-recovery checkpoint is a real checkpoint that's         * performed while we're still
inrecovery.         */        if (flags & CHECKPOINT_END_OF_RECOVERY)            do_restartpoint = false;
 

into having a per-loop 'local_in_recovery' variable, that we turn off
once a CHECKPOINT_END_OF_RECOVERY checkpoint is requested.

Comments?

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Khandekar
Дата:
Сообщение: Re: [HACKERS] UPDATE of partition key
Следующее
От: Andres Freund
Дата:
Сообщение: [HACKERS] Fast promotion not used when doing a recovery_target PITR restore?