AW: alter table: 'lost' extents
Posted in 2004
I've just made some deeper investigation.
One of extents (I took the largest for simplicity) reported
by chunk's extent list (oncheck -pe) as belonging to the
dropped table is also not reflected in the "Chunk free list"
(the third page of any non-root chunk, can be displayed
with 'oncheck -pP CHUNK_NUM 2', and recursively with
'oncheck -pP CHUNK_NUM NEXT' where NEXT is displaeyed in the 'next'
field of the page header in the previous output; NEXT=0 means last page
in a linked list)
That means, the this extent will never be re-used by the engine.
It's lost forever.
The conclusion is:
Informix is not releasing 'old' (previous version) extents
after table subjected to 'in-place-alter-table' is dropped !!!!!!!!!!!!!!
I'll try to wait for response from the 'list' for a few days
and file a bug to PA.
P.S.
I converted my 9.21 DEV database to 9.40 and repeated the experiment.
No change. Lost space again.
THIS IS A REALLY BAD PROBLEM
------------------------------------------
Alexey Sonkin
-----Original Message-----
From: Alexey Sonkin [mailto:alexeis@grandvirtual.com]
Hi, everybody,
I've just found a very unpleasant problem with 9.21uc4
I have a huge table that was altered (column added) when it was big enough.
'Alter table' was 'in-place' - just because the operation went very fast.
After that, a lot of inserts were made, and old records were not updated.
Later, the table was dropped.
When I made an analysis of disk extents with 'oncheck -pe', I was surprised:
a lot of extents (actually, containing all the 'before alter table' records)
were not released by the 'drop table'!!!
Is it a known bug?
Is it fixed in 9.40?
Is there way to return extents to the free page pool?
------------------------------------------
Alexey Sonkin
sending to informix-list
sending to informix-list