Subject | Re: Any SELECT or UPDATE transaction increases size of data base in 2 bits |
---|---|
Author | gray_area_2 |
Post date | 2006-12-18T20:19:19Z |
--- In firebird-support@yahoogroups.com, "Ann W. Harrison"
<aharrison@...> wrote:
This explains a lot. It is not a problem/bug but the feature of
design.
Is here a way to avoid this TIP growth? I have tried to reopen
connection, doesn't help.
Thank you!
<aharrison@...> wrote:
>(4K)
> gray_area_2 wrote:
> >
> > If I run transaction ...
> > many times I got increase in size of the database in one page
> > approximately for every 16K transactions. The increase is linear.Ann
> > Which means thet if I run 160K transactions it will be 10 pages.
> >
> > Have anyone observed this effect before? What causes it?
>
> My guess is you're seeing the growth of TIPs (Transaction
> Inventory Pages) and that the growth is stepwise rather than
> strictly linear.
>
> Firebird records the state of transactions on TIPs, using two
> bits per transaction. Essentially the TIPs contain an array
> of two-bit elements, indexed by transaction number. Each TIP
> actually has some header information indicating that it's a
> TIP and the page number of the next TIP. A 4Kb page holds a
> bit more than 16K of entries - counting on my fingers I find
> 20 bytes of header, leaving 4076 bytes of entries or 16304
> entries per page.
>
> When a new TIP is allocated, all states are 0 - meaning that
> the transactions are active or not yet started. As those
> transactions finish their states are recorded as Limbo (1),
> Dead (2), or Committed (3). When a transaction starts, the
> system insures that the existence of TIP that will hold it.
> Thus, creating transaction 16304 adds a page to the database.
> Starting the next 16303 transactions won't affect the size
> of the database - the next creates another new page.
>
> When you run out of transaction numbers at 4G, you will
> have used 263431 TIP pages.
>
>
> Regards,
>
>
> Ann
>
This explains a lot. It is not a problem/bug but the feature of
design.
Is here a way to avoid this TIP growth? I have tried to reopen
connection, doesn't help.
Thank you!