On Sat, Dec 23, 2017 at 11:53:19PM +0300, konstantin knizhnik wrote:
>
> On Dec 23, 2017, at 2:08 AM, Greg Stark wrote:
>
> > On 20 December 2017 at 12:45, Konstantin Knizhnik
> > <k.knizhnik@postgrespro.ru> wrote:
> >
> >> It seems to me that it will be not so difficult to implement them in
> >> Postgres - we already have versions of tuples.
> >> Looks like we only need to do three things:
> >> 1. Disable autovacuum (autovacuum = off)
> >
> > "The Wheel of Time turns, and Ages come and pass, leaving memories
> > that become legend. Legend fades to myth, and even myth is long
> > forgotten when the Age that gave it birth comes again"
> >
> > I think you'll find it a lot harder to get this to work than just
> > disabling autovacuum. Notably HOT updates can get cleaned up (and even
> > non-HOT updates can now leave tombstone dead line pointers iirc) even
> > if vacuum hasn't run.
> >
>
> Yeh, I suspected that just disabling autovacuum was not enough.
> I heard (but do no know too much) about microvacuum and hot updates.
> This is why I was a little bit surprised when me test didn't show lost of updated versions.
> May be it is because of vacuum_defer_cleanup_age.
Well vacuum and single-page pruning do 3 things:
1. remove expired updated rows
2. remove deleted row
3. remove rows from aborted transactions
While time travel doesn't want #1 and #2, it probably wants #3.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +