mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Explain why the startup process can't cause a shortage of sinval slots.
Bharath Rupireddy, reviewed by Fujii Masao and Yura Sokolov. Lightly edited by me. Discussion: http://postgr.es/m/CALj2ACU=3_frMkDp9UUeuZoAMjaK1y0Z_q5RFNbGvwi8NM==AA@mail.gmail.com
This commit is contained in:
parent
3785d8e98b
commit
edea649afb
@ -205,6 +205,14 @@ SInvalShmemSize(void)
|
|||||||
Size size;
|
Size size;
|
||||||
|
|
||||||
size = offsetof(SISeg, procState);
|
size = offsetof(SISeg, procState);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In Hot Standby mode, the startup process requests a procState array
|
||||||
|
* slot using InitRecoveryTransactionEnvironment(). Even though MaxBackends
|
||||||
|
* doesn't account for the startup process, it is guaranteed to get a
|
||||||
|
* free slot. This is because the autovacuum launcher and worker processes,
|
||||||
|
* which are included in MaxBackends, are not started in Hot Standby mode.
|
||||||
|
*/
|
||||||
size = add_size(size, mul_size(sizeof(ProcState), GetMaxBackends()));
|
size = add_size(size, mul_size(sizeof(ProcState), GetMaxBackends()));
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user