At Sun, 21 May 2023 15:14:23 -0700, Andres Freund <and...@anarazel.de> wrote in > Hi, > > I don't really feel confident we're going to get the timeout approach solid > enough for something going into the tree around beta 1. > > How about this, imo a lot simpler, approach: We flush stats whenever replaying > a XLOG_RUNNING_XACTS record. Unless the primary is idle, it will log those at > a regular interval. If the primary is idle, we don't need to flush stats in > the startup process, because we'll not have done any io. > > We only log XLOG_RUNNING_XACTS when wal_level >= replica, so stats wouldn't > get regularly flushed if wal_level = minimal - but in that case the stats are > also not accessible, so that's not a problem.
I concur with the three aspects, interval regularity, reliability and about the case of the minimal wal_level. While I can't confidently claim it is the best, its simplicilty gives us a solid reason to proceed with it. If necessary, we can switch to alternative timing sources in the future without causing major disruptions for users, I believe. > It's not the prettiest solution, but I think the simplicity is worth a lot. > > Greetings, +1. -- Kyotaro Horiguchi NTT Open Source Software Center