Rich Pinder wrote:

On the XP laptop, it runs (albiet slowly). On the 2003 server it starts to crawl at around 20,000 inserted records, then gets so slow I need to kill the job (and delete the rows, do a sweep, etc).
Investigating further I find that I have installed the exact same version of FB on both machines. Running v1.5.2
BUT the ODS Version reports 10.0 on the (slower) server, whereas it is 10.1 my laptop !

So my question has to do with this difference. My read of the documentation led me to believe the ODS version was more tied to the running software?

Ann W. Harrison answers:

The ODS is the On Disk Structure and has everything to do with the database file and (relatively) little to do with the running software. The ODS defines what is written to disk - data formats, system tables, index organization, the length of generators, the format of database pages, etc. The ODS version is in two parts - the number before the decimal point is the major version, the part after is the minor version. Adding a new type of database page is an example of a major ODS change. Adding an index to a system table is a minor ODS change.

Originally, and again in Vulcan, major versions of the software handled only only one major version of the ODS. However, that requires that a server be able to use different engines for different databases and that in turn requires an architecture that disappeared for a decade or so.

InterBase after V4 and Firebird use the same engine to handle all ODS versions starting with 8. InterBase 5 handled 8 and 9; InterBase 6 and Firebird 1 handle 8, 9, and 10. Firebird 2 handles 8, 9, 10, and 11.

When you install a new version of InterBase, it automatically upgrades the ODS of each database it connects to - sometimes successfully, sometimes less so. The less successful upgrades left the database stuck - didn't work with the new version of InterBase and couldn't be read by the older version. Firebird does not do automatic, in-place upgrades.

The right way to upgrade is to backup the database with the old software and restore it with the new. In the actual case at hand, you might try to avoid the backup/restore by identifying the new system table indexes and creating them yourself in the 10.0 ODS database.

Like this post? Share on: TwitterFacebookEmail

Related Articles


Firebird Community



Gems from Firebird Support list