Subject RE: [IB-Architect] Backward compatability with previous versions of gdb files
Author David Schnepper
Jim is correct -- gbak is an extreemly well behaved application program.
Even the version bundled into the SS engine follows standard application

There *is* however, one special thing that Gbak does - there's a isc_dpb_
option that essentially says "I'm GBAK restoring a database" -- and the
engine then defers some constraint checking as rows are inserted into tables
(this had something to do with cross-reference PK/FK tables).


-----Original Message-----
From: Jim Starkey [mailto:jas@...]
Sent: Monday, May 01, 2000 7:04 AM
Subject: RE: [IB-Architect] Backward compatability with previous
versions of gdb files

At 09:32 AM 5/1/00 -0400, Matt Larsen wrote:
> If we changed back to this mindset and ALWAYS allowed
>backward compatibility, would it not be a fairly easily to extend gbak to
>read a "legacy" database and write a new database using current ODS to a
>file(s) (as Markus or Bill mentioned doing with pipes)? If I were
>considering creating a widely distributed application using Interbase as
>database, I would not be comfortable with the fact that anytime a
>significant new version comes out I would have to force my customers to do
>backup and restore.

I think the architecture of GBAK needs a little explanation. GBAK
is a properly layered, user level program that uses the published
API to back up and re-create database files. It doesn't know
diddly squat about ODS. It does through the Y-valve just like
any other program to access or create a database. Since, by
default, the Y-valve channels ISC_CREATE_DATABASE calls to the
most recent engine, GBAK automatically spans versions.

To increase performance by eliminating interprocess communication,
in V6 GBAK is packaged in the engine. And, yes, this is a temptation
to break the layering, but as far as I know, this hasn't happened
yet. There are some switches to tell the engine that the client
is gbak and to alter garbage collection accordingly, but, in theory,
at least, this is part of the API even if inadvertantly (ahem)
unpublished. When the source is openned, it will be there for
all to see.

The original philosophy of both the DEC Rdb products and Interbase
is that the entire API is exposed, there are no back doors, no
hidden switches. This is the ONLY way that a well architected
database system can evolve. Breaking the rule even once, in
the most innocent, well meaning way, leads inevitably to the
type of moronic hackery present in Java 1.2.

The primary vehicle to ensure clean architectures is this list.

Jim Starkey

Join's affiliate program and enjoy numerous benefits.
To learn more click here:

To unsubscribe from this group, send an email to: