Hi everybody:
I have discovered a strange phenomenon that may be a bug, or it may be me
doing something wrong. Let me mention up front that I don't use Smart Blobs in
a production environment, so my experience with Smart Blobs is limited. I
noticed the problem after having recently implemented Smart Blob support for
the InformixDB Python API (http://informixdb.sourceforge.net).
The problem is that under certain circumstances an sbspace appears to leak
storage space. The attached ESQL/C program shows this behavior on my setup,
which is Linux Fedora Core 4, IDS 10UC1, and CSDK 2.90UC2. If I create a
temporary smart blob inside a transaction, close and ifx_lo_release it, and
then roll back the transaction, the number of free pages in the used sbspace
(as reported by onstat -d) permanently goes down by a page. This lost page is
not reclaimed when running onspaces -cl. (Before Obnoxio the Clown asks, yes,
I've tried UPDATE STATISTICS. It didn't help. ;-) )
If I don't ifx_lo_release the blob, or if the test does not happen in a
transaction, or if the transaction is committed, the problem does not occur
and the number of free pages is unaffected by the test.
Could somebody please explain to me what's going on here?
Thanks,
Carsten Haese.
[demime 1.01d removed an attachment of type application/octet-stream which had a name of main.ec]
sending to informix-list