Hi
discussion about http://tracker.firebirdsql.org/browse/CORE-2348
I have solution for this problem reuse transaction id feature.
When oldest active transaction id reach e.g. 1 500 000 001 value (shuld be big
as possible but have also big difference to max integer value).
then:
1. set "reset flag" of database to 1 and start speciall think of garbage
collector
remove all old record versions and also set transaction id flag for all others
records (with transaction id flag less then or equal to 1 500 000 000) to value
1 500 000 000.
2. then server should look for time when 0 transactions are active.
3. then reset transaction counter to 0 also oldest active transaction value to
0 and set "reset flag" of database to 2
4. start another speciall think of garbage collector
Should remove all record versions and leave only the most recent one with the
largest value transaction id.
5. and reset transaction id flag for all record versions greater than or equal
to 1 500 000 000 to 0 value.
one more modification - code which get now most recent record versions should
check if "reset flag"=2
if yes then comparison of transaction id should be changed
transaction id >=1 500 000 000 is older then transaction e.g. 203
is this good solution or not?
Karol Bieniaszewski
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel