Re: Re: BUG #12990: Missing pg_multixact/members files (appears to have wrapped, then truncated)
От | Alvaro Herrera |
---|---|
Тема | Re: Re: BUG #12990: Missing pg_multixact/members files (appears to have wrapped, then truncated) |
Дата | |
Msg-id | 20150428062352.GW4368@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: BUG #12990: Missing pg_multixact/members files (appears to have wrapped, then truncated) (Thomas Munro <thomas.munro@enterprisedb.com>) |
Ответы |
Re: Re: BUG #12990: Missing pg_multixact/members files
(appears to have wrapped, then truncated)
Re: Re: BUG #12990: Missing pg_multixact/members files (appears to have wrapped, then truncated) |
Список | pgsql-bugs |
Thomas Munro wrote: > One thing I noticed about your patch is that it effectively halves the > amount of multixact members you can have on disk. Sure, I'd rather > hit an error at 2^31 members than a corrupt database at 2^32 members, > but I wondered if we should try to allow the full range to be used. Ah, yeah, we do want the full range; that's already built in the code elsewhere. In this version, I used your WouldWrap function, but there was a bug in your formulation of the call site: after the WARNING has been issued once, it is never issued again for that wraparound cycle, because the second time around the nextOffset has already crossed the boundary and your routine returns false. IMO this is wrong and the warning should be issued every time. To fix that problem I removed the offsetWarnLimit altogether, and instead do WouldWrap() of the value against offsetStopLimit minus the 20 segments. That way, the warning is issued continuously until the offsetStopLimit is reached (once there, obviously, only the error is thrown, not the warning, which is correct.) I also added a call to DetermineSafeOldestOffset() in TrimMultiXact: as far as I can tell, this is necessary for the time when a standby exits recovery, because when InRecovery we return early from DetermineSafeOldestOffset() so the safe point would never get set. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Вложения
В списке pgsql-bugs по дате отправления: