free pages in tablespace
Posted in 2007
Topics: Storage & Space Management
Version: IDS 10 FC4 1. Is it advisable to have blob as part of tablespace even with the fragemented table ? 2. Is it correct that if blob is part of tablespace then row in tablespace just contains the pointer to the page where blob is ? Is that blob page part of same tablespace or is it spread somewhere in the dbspace ? 3. How does informix look for free pages for blobs and row data. As I understand every tablespace has bitmap page that tracks available pages in tablespace. Is this page in every extent of tablespace ? 4. In table fragmented by round robin how does informix find free page from bitmap page. Does informix just randomly pick any dbspace and then look for free page in tablspace with help of extent information and bit map page of that extent ? 5. I think all concurrent sessions trying to insert a row to a table try to get a lock on bitmap page and if other thread has already locked this bitmap page then it waits until freed. Does fragmenting table with round robin alleviate this issue, does informix redirects the thread to see if other bitmap page is free in tablespace of other dbspace ?
Can't answer your blobspace questions. AFAIK there is a single tablespace for each fragment/partition of a table (not for each extent). The bitmap pages have a 1 or 0 to indicate whether there is free space or not. Bitmap pages occur every so oftern throughout the table - depending on your page size. Consider that there is 28 bytes (or so) of header space - every additional byte represents one page which will either be on or off. Round Robin is just that. with four spaces, it will put the first row in space 1, the next in space 2 and so forth - nothing random about it. It can then look at the table header for that fragment and determine where the next page with free space is. Not sure how the bitmap factors in - obviously there is some relationship. Certainly a Round Robin loads faster than other fragmentation schemes, that is it's principal benefit - perhaps you've laid out the reason why. However, once data is in a round robin schema, there is no way to tell from the fragmentation scheme where the row is - which makes it impossible to do fragment elimination or purge data by detaching/dropping fragments. The load /insert rate of a round robin is generally not worth that cost. j. -----Original Message----- From: informix-list-bounces@iiug.org [mailto:informix-list-bounces@iiug.org]On Behalf Of mohitanchlia@gmail.com Sent: Sunday, August 12, 2007 8:00 PM To: informix-list@iiug.org Subject: free pages in tablespace Version: IDS 10 FC4 1. Is it advisable to have blob as part of tablespace even with the fragemented table ? 2. Is it correct that if blob is part of tablespace then row in tablespace just contains the pointer to the page where blob is ? Is that blob page part of same tablespace or is it spread somewhere in the dbspace ? 3. How does informix look for free pages for blobs and row data. As I understand every tablespace has bitmap page that tracks available pages in tablespace. Is this page in every extent of tablespace ? 4. In table fragmented by round robin how does informix find free page from bitmap page. Does informix just randomly pick any dbspace and then look for free page in tablspace with help of extent information and bit map page of that extent ? 5. I think all concurrent sessions trying to insert a row to a table try to get a lock on bitmap page and if other thread has already locked this bitmap page then it waits until freed. Does fragmenting table with round robin alleviate this issue, does informix redirects the thread to see if other bitmap page is free in tablespace of other dbspace ? _______________________________________________ Informix-list mailing list Informix-list@iiug.org http://www.iiug.org/mailman/listinfo/informix-list
-- 1. Is it advisable to have blob as part of tablespace even with the -- fragemented table ? assumed old fashoned blobs (byte and text type.) depends on the size of your blobdata. if huge then i would store them in blobspaces.(it may othewise kill your buffer cache or generate long trx rollbacks) or if i needed HDR i will have to store them in dbspaces. If small i would store them in dbspaces too since then i could use HDR if i wanted in the future. -- 2. Is it correct that if blob is part of tablespace then row in -- tablespace just contains the pointer to the page where blob is ? Is -- that blob page part of same tablespace or is it spread somewhere in -- the dbspace ? A table is created, then an extent is allocated when data is inserted, the bitmap page is examined to determine where space is. The data is put on free space. The blobdata is pointed to by a pointer in the row. The pointer points to a page in the extent which will be blobdata. AFAIKR the bitmap page will also tell if a page is blobdata or not. > 3. How does informix look for free pages for blobs and row data. As I > understand every tablespace has bitmap page that tracks available > pages in tablespace. Is this page in every extent of tablespace ? a bitmap page occurs every x pages (for 2 k pages every 4040 pages if i recall correctly.) free space in blobspaces is tracked using the blob free map/free list pages??? also a sort of bitmap. 4 and 5 pass. hum why do you need to know this....?? If you are afraid of performance problems why don't you perform a benchmark test. Superboer.
On Aug 13, 12:00 am, Superboer <superbo...@t-online.de> wrote: > -- 1. Is it advisable to have blob as part of tablespace even with the > -- fragemented table ? > assumed old fashoned blobs (byte and text type.) > > depends on the size of your blobdata. if huge then i would store them > in blobspaces.(it may othewise kill your buffer cache > or generate long trx rollbacks) or if i needed HDR i will have to > store them in dbspaces. > If small i would store them in dbspaces too since then i could use HDR > if i wanted in the future. > > -- 2. Is it correct that if blob is part of tablespace then row in > -- tablespace just contains the pointer to the page where blob is ? Is > -- that blob page part of same tablespace or is it spread somewhere in > -- the dbspace ? > > A table is created, then an extent is allocated when data is > inserted, the bitmap page is examined > to determine where space is. The data is put on free space. The > blobdata is pointed to by a pointer in the row. > The pointer points to a page in the extent which will be blobdata. > AFAIKR the bitmap page will also tell > if a page is blobdata or not. > > > 3. How doesinformixlook for free pages for blobs and row data. As I > > understand every tablespace has bitmap page that tracks available > > pages in tablespace. Is this page in every extent of tablespace ? > > a bitmap page occurs every x pages (for 2 k pages every 4040 pages if > i recall correctly.) > free space in blobspaces is tracked using the blob free map/free list > pages??? also a sort of bitmap. > > 4 and 5 pass. > > hum why do you need to know this....?? > > If you are afraid of performance problems why don't you perform a > benchmark test. > > Superboer. Is there a way to see the locks on bitmap page of a table. Basically, I want to see performance of lot of concurrent insert into a table in terms of accessing or locating free pages. I want to see how long it takes to get access to bitmap page and how long it takes to find a free page in tablespace.