BUG #15791: WalSndCtl->sync_standbys_defined modified too late

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #15791: WalSndCtl->sync_standbys_defined modified too late
Дата
Msg-id 15791-eac704d9ebfbdfea@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #15791: WalSndCtl->sync_standbys_defined modified too late  (Euler Taveira <euler@timbira.com.br>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      15791
Logged by:          DamionZ Zhao
Email address:      zhq651@126.com
PostgreSQL version: 11.2
Operating system:   linux
Description:

1.when commit transaction, we need to kwow it is sync or async . There is a
step : call function SyncRepWaitForLSN in function
RecordTransactionCommit.

void SyncRepWaitForLSN(XLogRecPtr lsn, bool commit)
{
        ....
    if (!WalSndCtl->sync_standbys_defined ||
        lsn <= WalSndCtl->lsn[mode] )
    {
                ...
        return;
    }
}

2.when modify WalSndCtl->sync_standbys_defined?  

2.1 in function SyncRepUpdateSyncStandbysDefined,
WalSndCtl->sync_standbys_defined will be modified.
----------------------------------------------------
void SyncRepUpdateSyncStandbysDefined(void)
{
    bool        sync_standbys_defined = SyncStandbysDefined();

    if (sync_standbys_defined != WalSndCtl->sync_standbys_defined)
    {
        
        WalSndCtl->sync_standbys_defined = sync_standbys_defined;
        LWLockRelease(SyncRepLock);
    }
}

2.2 SyncRepUpdateSyncStandbysDefined call stack is:
------------------------------------------
(1)CheckpointerMain(start checkpoint)-
    UpdateSharedMemoryConfig
        SyncRepUpdateSyncStandbysDefined
(2)CheckPointGuts --    Flush all data in shared memory to disk, and fsync    
    CheckPointBuffers    --Flush all dirty blocks in buffer pool to disk at
checkpoint time.
        BufferSync    -- Write out all dirty buffers in the pool.    
            CheckpointWriteDelay
                UpdateSharedMemoryConfig
                    SyncRepUpdateSyncStandbysDefined

2.3 when any checkpoint situation happened, WalSndCtl->sync_standbys_defined
will be modified.

3.my question:
----------------

when modify synchronous_standby_names in postgres.conf, and no checkpoint
happenes, will  synchronous_standby_names  take effect?


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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: BUG #15788: 'pg_dump --create' orders database GRANTs incorrectly
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: identity not working with inherited table