Michail Nikolaev <michail.nikol...@gmail.com> wrote:

> > Sorry, I missed the fact that your example can be executed inside BEGIN - 
> > END
> > block, in which case minRecoveryPoint won't advance after each command.
> 
> No, the block is not executed as a single transaction, all commands
> are separated transactions (see below)
> 
> > Actually I think that a commit record should be replayed
> > more often than XLOG_RUNNING_XACTS, shouldn't it?
> 
> Yes, but replaying commit records DOES NOT affect minRecoveryPoint in
> almost all cases.
> 
> UpdateMinRecoveryPoint is called by XLogFlush,  but xact_redo_commit
> calls XLogFlush only in two cases:
> * DropRelationFiles is called (some relation are dropped)
> * If ForceSyncCommit was used on primary - few “heavy” commands, like
> DropTableSpace, CreateTableSpace, movedb, etc.
> 
> But “regular” commit record is replayed without XLogFlush and, as
> result, without UpdateMinRecoveryPoint.

ok, I missed this. Thanks for explanation.

-- 
Antonin Houska
Web: https://www.cybertec-postgresql.com


Reply via email to