RE: Very old page bug
Posted in 2004
See below
------------------------------------------
Alexey Sonkin
> -----Original Message-----
> From: Art S. Kagel [mailto:kagel@bloomberg.net]
> Sent: Tuesday, March 23, 2004 3:31 PM
> To: informix-list@iiug.org
> Subject: Re: Very old page bug
>
> On Tue, 23 Mar 2004 12:10:48 -0500, rkusenet wrote:
>
> > I am trying to help someone who I think is experiencing the very old
page
> > bug. I read some postings in c.d.i archives and I have 3 questions :-
> >
> > (a) When ontape finds that the page has really very old timestamp, it
> > updates the timestamp of that page to latest timestamp. Shouldn't this
be
> > done only once (till that page becomes very old again in future).
>
This is not a bug, it's a feature.
Informix considers 'very old' those pages, whose time stamp is below 1/2
of the 'archive start' timestamp, and updates their timestamp so that during
subsequent archives it could distinguish between updated and non-updated
pages
The only case when this actually causes a problem is when You do 'ontape'
so rarely that time stamp changes to almost 1/2 of its original
value since previous archive. Then, it's a real problem: archive becomes
inconsistent. This is actually a 'very old page' BUG.
> Yes, but continuing updates and the ever increasing timestamp guarantee
that
> more pages will be 'very old' by the next archive (indeed updating the
> timestamps on a bunch of old pages during the archive merely causes a 'dog
> chasing his tail' syndrome until every page that is not actively updated
> frequently has finally been redated. That's the bug part of this problem,
it
> persists for months and dozens of archives slowing the archives down to a
> crawl.
>
Do not agree. See explanation above.
In our system (pretty active), we have archive slowdown caused by
the 'very old page rewriting' every 2 or 3 weeks
> > (b) I read that dummy statement update table set colmun1 = column1 is
not
> > logged as the engine knows that it is a dummy statement. Is this true?
What
> > about buffers. Does dummy update avoid flooding the buffer.
>
Yes, this is true (not sure that with all IDS version), unless the table
is under 'in-place alter table'. In the case when table is under
the pending 'alter table' (multi-version table), Your approach might
cause a very big trouble (long transaction, etc - full table/index rebuilt
with
single SQL statement in a single transaction)
Also, keep in mind, that this statement executed under 'normal'
condition doesn't update most of the table indexes: they remain 'very old'
and cause re-writing during archive...
> Don't know about that.
>
> > (c) Is there a script to find out which page has really old timestamp.
This
> > way the table can be identified and update statement issued for only
that
> > table.
I think that the only way to get the list of 'very old pages' is to scan
the entire database. It's not very efficient. It's much cheaper to let
ontape periodically update Your database
> No. Tech support has a utility IB. Getting access to it is a problem.
>
> Art S. Kagel
sending to informix-list