Firebird Documentation IndexFirebird Vulcan Release Notes v. 1.1Process Architecture → Unfinished Work and Loose Ends
Firebird Home Firebird Home Prev: Firebird Vulcan InternalsFirebird Documentation IndexUp: Process ArchitectureNext: The fb_config Utility

Unfinished Work and Loose Ends

Remote Architecture

Parts of the interface for the various remote network modules have been encapsulated as a Port structure. The encapsulation, however, was driven more by pragmatics than coherent design. The encapsulation itself as well as the division of work between the base classes and individual networks modules could use a careful redesign. The interface is non-architectural, and can be changed at any point.

Use of XDR

The remote line protocol is defined in terms of XDR, the lower layer of Sun's remote procedure protocol. In practice, however, XDR adds nothing but cumbersome overhead. XDR should be replaced by simpler in-line code without impacting the line protocol or forward and backward compatibility.

Internal Engine SQL

Firebird Vulcan supports internal engine SQL. Following implementation of the compiled statement cache, GDML should generally be replaced by SQL for metadata handling within the engine.

The Gateway Provider

The Gateway Provider is demonstrable but incomplete. The Gateway is also compiled to support a single remote interface. It should probably be reworked to pick up information about the foreign system from the configuration file.

The Commit Manager

Firebird Vulcan includes the skeleton of code to group commits. When a transaction commits, all pages it changed must be written to disk. Some of those pages are common to many transactions: the header page, the tip, generator pages, etc. Considerable saving can be achieved by grouping commits to those pages are written once for the whole group.

The ability to group commits was not required to achieve the performance goals, but the structure to do so is in the code.

Portability

Firebird Vulcan was developed on four compilers simultaneously: gcc 2.96, gcc 3.3.4, Solaris/Forte 5.5, and Microsoft VC7. To make that work, Firebird Vulcan eliminated the dependency on std.lib, minimized all other dependencies outside the core clib (c library), and reduced the complexity of template usage.

Temporary Installation Procedure

To be provided

Prev: Firebird Vulcan InternalsFirebird Documentation IndexUp: Process ArchitectureNext: The fb_config Utility
Firebird Documentation IndexFirebird Vulcan Release Notes v. 1.1Process Architecture → Unfinished Work and Loose Ends