[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ulysse::rdb_vms_competition

Title:DEC Rdb against the World
Moderator:HERON::GODFRIND
Created:Fri Jun 12 1987
Last Modified:Thu Feb 23 1995
Last Successful Update:Fri Jun 06 1997
Number of topics:1348
Total number of notes:5438

86.0. "Some details..." by TAV02::ARIE () Tue Mar 08 1988 09:11

    Hi,
    
    As I know Ingres doesn't have Two-phase commit so even they
    have a real distributed d.b. you can't guarantee consistency
    of transactions.
    
    Ingres has no connection to DB2.
    
    
    Here is a document which I've recieved from marketing and I hope
it'll help you 


        Arie.
-----------------------------------------------------------------------------

   Attached is a very interesting document comparing Rdb/VMS with Ingres.  
This document was created by a group at Livermore National Labs in 
California to justify the replacement of Ingres with Rdb.  It contains a
number of points which are of interest in competitive situations and a lot 
of information which is specific to the situation a Livermore Labs.  Here
is the document in its entirety.
cheers,
Chris

From:   WINERY::BARNES "WESTERN AREA MIS/VIA ASSG  09-Sep-1987 0857"  9-SEP-1987 18:12
To:     HERON::MARSHALL
Subj:   here is the work we did at Lawrence Livermore National Labs

Supervisory Control Systems
Ingres vs. Rdb
 
 
I.  Purpose
 
The purpose of this document is to examine the desirability of
replacing the Supervisory System's existing archival database
system, Ingres, with Digital's Rdb.  The study not only compares
the two systems' effectiveness in meeting current data storage
and management requirements, it also explores which product
offers the best tools for long range data analysis.
 
 
II.  Database Uses and Requirements
 
The Supervisory Control System presently tracks several thousand
data points.  Periodically, the Control system examines about
1500 of these points and stores their values in the archival
database.  Depending upon their volatility, the Control system
samples points with differing frequency.  For example, laser
control parameters are archived every five minutes, while beam
parameters are archived every thirty seconds.  Every set of
archival data is timestamped as it is sampled.
 
For the time being, archival data is used mainly for Operational
Trending.  While operating the laser system, for example,
operators often need to display graphs showing the recent history
of various parameters.  Based upon these graphs, or "trends," the
operators make critical decisions about how to adjust the system.
Because these trends play such an important role in real time
system operations, it is essential that the database system
fulfill several basic requirements:
 
    1)  24-hour per day availability.  The system cannot be taken
        off line for maintenance without seriously damaging the
        Control System's functionality.
 
    2)  Fast response.  Operational decisions cannot wait long
        for trends to display.
 
    3)  The ability to handle large amounts of data without
        degrading retrieval speed.  The Trender program displays
        "short term trends" (100 minutes of historical data),
        "long term trends" (100 hours of data), or arbitrary
        trends (any length window).  Enough data to meet this
        diversity of demands always must be available.
 
    4)  Efficient use of disk space.  So much data is archived
        that, unless the system both allocates space
        parsimoniously and reclaims unused space, disk volumes
        will be overrun in very short order.
 
    5)  Cost-effective and efficient network processing.  The
        Supervisory System both gathers archive data throughout a
        computer network and later retrieves it for real time
        display across the network.  Unless both operations can
        be done painlessly, system performance degrades
        unacceptably.
 
Besides being used for trending, the archival data is distributed
regularly to non-Supervisory System nodes for storage and other
forms of analysis.  At present, data must be moved to other nodes
to support the PaRTs system, to provide data for Dye Pump power
integration calculations, and to relieve disk overcrowding on the
Supervisory System.  Data need not be moved continuously to
fulfill these obligations.  Every hour or every day is
sufficient. Nevertheless, these uses require that the database
system migrate large blocks of data to other nodes without
disrupting real time activity.
 
 
III.  Ingres' Failure to Meet These Requirements
 
Although Ingres was deemed best database solution in 1984,
subsequent experience has revealed a number of drawbacks in the
product.  These shortcomings are severe enough to seriously
impair Ingres' ability to meet the requirements listed in section
II above.  Over the last few years, we have developed a number of
workarounds for these difficulties, but these workarounds have
been only partially successful.  They have also required that we
develop a large amount of in-house software, which has been
difficult and expensive to maintain.  Finally, these partial
solutions are both disruptive to the Supervisory System and
chronically labor intensive.  Our dissatisfaction with the need
for workarounds, our unhappiness with the workarounds themselves,
and the overall difficulty of maintaining Ingres thus prompted
the following review.  The sections that follow compare Rdb and
Ingres in the realms of performance, maintenance and management,
network characteristics, user/programmer interfaces, and
support/licencing issues -- always in the context of the
requirements stated above.  This examination shows Rdb to be more
successful in each of these spheres, not only because it has a
newer and better design, but because it is surrounded by superior
support and auxilliary tools.
 
 
IV.  Initial Considerations -- Programming and Performance
 
Although this study was motivated by the management and
maintenance difficulties attached to making Ingres satisfy the
requirements listed in Section II, we did not consider whether
Rdb could solve Ingres' difficulties until after we had compared
performance.  After all, if Rdb could not archive data and
deliver trend displays quickly enough to make the Supervisory
System useful, any other desirable features it might have would
be irrelevant.  As a rough guide, we decided that, unless Rdb's
throughput came within about 10% of Ingres,' no further time
would be spent on the issue.
 
Since Trending is the Supervisory System's most frequently used
and most time sensitive database function, the Trender program
was the most obvious vehicle for comparing Ingres and Rdb
performance.  To conduct the test, we edited a version of the
Trender to use RDB in place of Ingres.  We also used Datatrieve
and SCAN to convert CVL archive data from an Ingres database to
an identical Rdb database.  While editing the Trender, we
discovered a significant shortcoming in Rdb, viz., the inability
of the Rdb Pascal precompiler to handle variable table and column
names.  This meant that all table and column names had to be
specified at compile time, rather than being supplied as run-time
variable data, as we are able to do with Ingres.  This is
important, since the Trender requires random access to tables and
columns in order to allow Supervisory operators to select any
trend they wish.  To temporarily circumvent this problem, we hard
coded specific tables and columns into the RDB version of the
Trender.
 
We then conducted a series of time measurements, displaying
identical trends using the two different Trenders, called by the
same screen interpreter on the same machine, using identical
databases.  The results were promising: the Rdb version
consistently ran 30-50% faster than the Ingres version.  In two
series of 20 tests, the slowest instance of an Rdb trend was
slightly faster than the fastest instance of the same Ingres
trend.
 
Encouraged by these results, we next created an interpretive
version of an Rdb Trender to handle variable table and column
names.  This approach was equivalent to executing Rdb commands at
the DCL level from within our Pascal program.  We knew in advance
that this would not be a usable solution to the random access
problem, but it was a relatively easy way to implement random
access.  We did not expect this to run very fast, and it did not.
Typically, it was 4-6 times slower than the non-interpretive
Ingres version.
 
The correct solution to the Rdb random access problem is to add
two short functions to the Trender that can make run-time
modifications to the executable code generated by the Rdb
precompiler.  These functions take the necessary table and column
names, build them into the appropriate code, and insert them into
the executable image while the program is running, just prior to
executing the database calls.  The program operates just as if it
had been hard coded, because originally it was.  The new
functions just change the "hard code" at run time to retrieve the
tables and columns we want, thus providing random access.
 
Although this sounds rather obscure, it is not.  The Pascal Rdb
precompiler genrates DSRI (DIGITAL Standard Relational Interface)
code, which is well documented and highly regular.  The two
functions to parse and reconstruct this code are correspondigly
simple.  We were able to write and test them using actual Trender
code on the real archival database in less than one day.  The two
functions together are less than 100 lines long.  Incorporating
them into the production Trenders would be a very small task,
probably totalling less than a man-week.  Because this technique
produces essentially a "hard coded" Trender, it has the
desireable side effect of producing that approaches the speed of
the test Trender that so thoroughly outperformed Ingres in the
benchmarks described above.  A series of prototype studies
confirmed this.
 
Incidentally, the Trender is the only Supervisory application
that requires random table and column access.  All of the others,
including the archivers, are hard coded to begin with and thus
will work well using the existing Pascal Rdb precompiler.  As the
testing process required us to write the code for actual
Supervisory System Rdb database calls, modifying the existing
applications at this stage would involve little more than
replacing the Ingres calls with code already written.
 
In summary, Rdb is clearly capable of outperforming Ingres as a
Supervisory System trender and archiver.  Although achieving
maximum trender performance requires a special, one-time coding
effort, the code necessary to do this was actually written during
the test effort.  Based upon the experience accumulated during
the performance comparisons, it is also clear that converting the
application code from Ingres to Rdb will not be a major effort.
 
 
V.  Maintenance and Management Issues
 
Although Ingres appears to be somewhat slower than Rdb, its most
troublesome shortcomings lie in the areas of maintenance and
management.  It is these shortcomings that have most severly
strained our ability to fulfill basic control system obligations,
and it is our attempts to overcome them that have cost us
unacceptably over the last two years.  The problem is that most
Ingres maintenance and management functions cannot be carried out
on an active database.  This presents an obvious conflict with
the Supervisory System's requirement of 24-hour per day up time.
By contrast, Rdb either tolerates these activities without
interfering with database activities or it takes care of these
matters automatically. Ingres' problems are exacerbated by the
fact that, due to several design flaws, its maintenance and
management functions must be carried out far more frequently than
is true for a product like Rdb.  Some examples include:
 
    1)  Ingres does not allow dynamic alterations in table and
        column definitions.  As data points change type or
        dimension, are added or deleted, or undergo any of the
        many other changes that regularly occur in our
        development environment, the database definitions cannot
        be changed without redirecting the archivers and trenders
        to temporary tables, disassembling the original tables
        into a flat file, altering the database definitions, and
        then reloading the tables.  Figures 1 and 2 briefly
        describe the procedures required.  Through manual
        intervention by both the Ingres Database Administrator
        and the Supervisory Operations staff, the last 100
        minutes of data can be copied to temporary tables to
        maintain partial functionality until tables are redefined
        and the data copied back, but archiving and trending
        still must be suspended completely while the databases
        are modified and data is copied in both directions.
        Furthermore, the temporary database can accommodate only
        100 minute trends while the maintenance work is in
        progress.  Depending upon the number and size of the
        tables involved, this can be very time consuming.  Rdb,
        by contrast, permits tables and columns to be redefined
        without any system disruption.
 
    2)  Ingres cannot dynamically reclaim the disk space vacated
        by deleted records and their associated indexes.  Since
        the Supervisory System archives large and ever increasing
        amounts of data, and since disk space is always at a
        premium, the Ingres Database Administrator must
        constantly monitor the system and manually reclaim space
        on a nearly daily basis.  As always, the space can only
        be reclaimed by employing a temporary database scheme
        similar to the one described above.  Reclaiming space is,
        however, much more time consuming than altering database
        definitions.  Figure 3 briefly describes the tasks
        involved.  Rdb, once again, automatically and
        continuously reclaims deleted record and index space
        without any manual intervention.
 
    3)  In order to achieve adequate trending performance, the
        Supervisory System must use Ingres' B-tree indexing
        scheme.  Since all archived data is indexed by time,
        which increases monotonically, the B-trees are always
        completely unbalanced.  These unbalanced trees exhibit
        worst-case behavior on retrieval, and this degrades
        Ingres performance within approximately 1 day after the
        trees are re-balanced.  The problem is, as always, that
        Ingres B-trees cannot be re-balanced without the usual
        database disruption and its associated involvement by the
        staff.  Rdb, on the other hand, automatically and
        constantly re-balances its B-trees, so that performance
        remains persistently optimized without any manual
        intervention.
 
    4)  Ingres provides no facility for automatic recovery in the
        event of processor failure in a VAXcluster environment.
        Even though both Ingres and Rdb allow concurrent
        multiple-processor database access, Ingres does not
        safeguard against database corruption should one cluster
        node fail but others continue.  Rdb automatically allows
        remaining cluster members to roll back the failed node's
        incomplete transactions and then continue.  In addition,
        Rdb provides optional after-image journaling to further
        protect the integrity of the VAXcluster database.
 
In sum, Ingres' maintenance and management problems make it
difficult to meet the requirements of 24-hour per day up time,
good database performance, and efficient use of disk space.  Work
arounds for these difficulties are both disruptive and time
consuming.  By virtue of its different design, Rdb appears to
overcome these problems.  In addition, Rdb is more completely
suited to a VAXcluster environment.
 
 
VI.  Network Issues
 
Other Ingres' design problems interfere with its ability to meet
the requirements of migrating data efficiently to other nodes and
of making efficient use of the network in general.
 
The only mechanism currently available for migrating Ingres data
to non-Supervisory System nodes is our "Roll Out Procedure."  The
Roll Out Procedure is a locally developed data distribution tool
used to move older data off the Supervisory System so that it may
stored and analyzed without overloading the Supervisory System.
Although a database management tool of this type seems somewhat
fundamental, LIS had to develop this program locally because
Ingres does not supply one.  Although the Computer and
Communications Section invested significant effort in writing the
Roll Out Procedure, the program never became a mature, automatic
data distribution product.  The program remains very specialized,
it has occasionally misbehaved, and the original author is no
longer available to maintain it.  The gyrations necessary to
effect a roll out are described in the attached "Present Demo85
Database Management Procedures."  To bring this program up to par
with commericial data distribution products would require a
significant effort, probably measured in man years.
 
If Rdb were chosen as the Supervisory System database, this
problem could be eliminated using Digital's VAX Data Distributor.
VAX Data Distributor provides for automatic distribution of an
Rdb database, at user-defined intervals, by either
 
    1)  Extracting all or part of the database across the network
        to create an independent copy at a new location(s).  This
        technique is similar to a backup, except that the
        extracted database is a fully usable Rdb database, which
        may be changed and manipulated without any effect upon
        the original.  This facility could be used each day to
        extract all data older than a certain interval, thus
        replacing the current Roll Out Procedure.  Similarly, all
        data from a particular test run could be extracted to a
        non-Supervisory System node, for detailed analysis.
        Since the extracted databases carry with them all
        database definitions, data from any time period would
        always be available in its correct format, even if the
        active Supervisory System database had since changed.
        The existing Roll Out Procedure has to be changed each
        time the database changes, so it is unclear whether it
        actually can be used to restore and examine old data.
 
    2)  Replicating all or part of the database on new node(s) by
        transmitting database changes to the new node(s).  This
        method functions using a master-slave(s) relationship, in
        which one master (read/write) database reproduces some or
        all of its changes in one or more (read only) slave
        databases.  The changes are transmitted to the slave
        databases at user definable intervals, according to user
        definable selection criteria.  This technique could be
        especially useful, both in distributing database
        processing across the Supervisory System and in enhancing
        response for critical database uses.  By keeping the last
        100 minutes of data current in small databases on all of
        the nodes that drive screens, for example, this method
        could enable all short term trends to be performed
        without the overhead of realtime network access.
 
The advantages of Digital's Data Distributor are many: it is a
general purpose database management tool allowing numerous
database manipulation strategies. It is a supported product, it
is easy to use and change, and its use would free personnel
resources for other tasks.  It offers data migration strategies
that are clearly superior to anything possible with Ingres.
 
In addition to lacking a good data migration tool, Ingres handles
its individual network database transactions inefficiently.  To
execute each application program's reads or writes over a
network, Ingres must create both a front-end process on the
application's node and a back-end process on the node where the
database resides.  When there are a large number of Ingres
applications, network Ingres will thus proliferate processes
excessively.  For example, a fully-loaded Supervisory System
node -- one that both communicates with GEMs and drives screens
-- will have 8 to 10 applications.  These applications will, in
turn, create 16 to 20 more processes just to communicate their
Ingres data.  This is problematic not only because it consumes so
much memory and other resources, but also because it creates so
much competition for processor time.  The Supervisory System
operates only one Ingres database for the entire network.  As a
consequence, all of the system's back-end process concentrate on
a single node, where they compete for that single processor.  It
turns out that the Ingres front-end processes do little more than
spawn the back-ends and wait for data to be returned.  The
back-ends actually do all of the Ingres processing.  Almost all
of the Supervisory System's Ingres processing thus occurs on a
single node.  Despite the fact that this node is the fastest
processor in the Supervisory System, it is already badly
overloaded.  As the system grows, Ingres' concentration of
processing will progressively degrade overall performance.
 
Applications performing Rdb network operations achieve their
database access via an Rdb server process on the node accessing
the database.  This differs from the Ingres approach in two ways.
First, it eliminates the front-end processes altogether, cutting
process proliferation in half and eliminating a major burden from
the nodes where Supervisory applications run.  Second, although
the Rdb server process looks something like an Ingres back-end,
it has two major advantages.  First, when returning the data
after the database access is complete, the server process
packages records into the smallest possible number of network
packets.  Second, in a VAXcluster environment, the server
processes can be distributed among all of the processors in the
cluster, thus eliminating the need for all processes to compete
for a single cpu.
 
 
VII.  User/Programmer Interface
 
The archiving system was created not only to support trending but
also to maintain a comprehensive record of the state of the laser
system.  The trends are used mainly by the Supervisory Operations
Staff, and their principal requirements for these predefined
database retrievals are availability and speed.  Bearing in mind
all that problems already mentioned, the present system has
nevertheless served this purpose better than any others.
 
On the other hand, it has always been hoped that project
physicists, engineers, designers, and managers also might make
use of the comprehensive data archive, to review events following
test runs, for example, or to reduce data for progress reports.
Unlike the operators, these "higher level" users take an ad hoc
approach to the data, in which they form their own, highly
individualized data queries.  Unfortunately, these users tend not
to be sophisticated computer users, and, even if they were, they
would not wish to spend their time writing software to get at
data.  To make data available to them, therefore, the data base
system must have easily approachable data manipulation tools.  In
this realm, flexibility in designing queries is far more
important than performance.  Ideally, these tools also should
permit easy integration with other data analysis products
available on the users' PCs.
 
Because Ingres is so thoroughly lacking in such tools, the
Supervisory System archive has until now almost never been used
for higher level analysis.  Ingres does have a powerful set of
query tools, but they are so user unfriendly that they can really
only be used by a trained Ingres programmer.  To make matters
worse, Ingres has no data dictionary to make its data definitions
easily available to programs or other tools.  Thus, even if
someone were willing to write software to approach the archive
data, he would face the cumbersome task of recreating the entire
database definition in his program.
 
Rdb, on the other hand, is accompanied by many powerful and user
friendly information management tools.  For example, VAX Teamdata
is a powerful, easy to use information management facility for
those who need to use data in their work, but don't want to do
"data processing."  TEAMDATA lets users store and modify data,
using a screen-oriented, text-editing style.  TEAMDATA also
allows users to manipulate their personal data, as well as shared
or remote databases, in simple tables, spreadsheets, reports, and
graphs, and to perform complex queries and data reduction
operations.  TEAMDATA users can do all of these things by
selecting items from strip menus, using the command language, or
a combination of the two.  TEAMDATA, using VAX XWAY, also can
export and import data in the following storage formats:  DIF -
Data Interchange Format (used by products such as VisiCalc and
SuperCalc), SYLK - Symbolic Link File Format (used by products
such as Multiplan), WKS - Worksheet Format (used by products such
as LOTUS 1-2-3), VAX DECalc dump file format, and ASCII tabular
data with a specified separator (e.g. tabs, spaces, commas,
hyphens) between each data element (used by products such as
dBASE III, Supercomp-Twenty, 20/20, C-CALC).
 
VAX RALLY also provides a powerful 4th Generation environment for
developing applications.  As an integrated package, RALLY
provides the tools necessary to construct Rdb/VMS databases,
forms, reports, menus, and online HELP for the application user.
Application developers can use RALLY's menu interface and
extensive defaulting capabilities to create simple applications
quickly.  More sophisticated applications can be constructed in
the RALLY editing environment.  Furthermore, Rdb does have a data
dictionary available through Digital's Common Data Dictionary.
The CDD is technology of long standing, which makes all Rdb
definitions immediately available to Datatrieve, to user
application programs in almost any language, and to many other
tools as well.  By allowing data specifications and definitions
to be shared by multiple applications, the CDD simplifies
maintenance and encourages information sharing.
 
With Rdb's auxilliary tools available, the Supervisory System's
archival data very likely would be more extensively used than it
is today.
 
 
VIII.  Support/Licensing Issues  --  Rdb vs. Ingres
 
In the areas of licensing and support, Ingres also has been
difficult.  One problem is that Ingres' parent company, RTI,
distributes only full installation kits.  Even though disk space
is chronically short on Supervisory System machines, and even
though the most Supervisory System nodes make use of only a tiny
fraction of the Ingres software, LIS must nevertheless install
the full 40,000 block kit on every single node.  LIS has, on its
own, subsequently deleted files that it does not believe it
needs, but this technique is in no way supported by RTI.
Furthermore, these files cannot be deleted on full-function
nodes, where the Ingres system files alone occupy about 50,000
blocks.  RTI also requires that quite a few systems have
full-function licenses, including the archive node on both the
LDF production Supervisory System, the archive node on the test
system, the development node (VAXR), and the PaRTs node (VAXT).
Aside from consuming a lot of disk space, this requirement boosts
the cost of Supervisory System Ingres licenses to approximately
$55,000.
 
Rdb overcomes these problems by being available in three
varieties, a full (development) version, a run-time only version,
providing all facilities except language precompilers and data
definition commands, and a remote applications version, allowing
only access to Rdb databases on remote nodes.  The latter two
permit application programs that have been developed on a
fully-licenced machine to run on target machines with smaller Rdb
system files and less expensive licences.  Fortunately, all of
the Supervisory System machines, as well as the test system,
could operate fully with these smaller and less expensive
versions.
 
What kind of savings would this represent?  In the first place,
the three Rdb versions occupy only 9,200, 5,600, 3,700 blocks,
respectively, for execution, and the installations kits are even
smaller.  On the development, production, PaRTs, and test
systems, therefore, the Rdb system files would occupy about
180,000 blocks less than their Ingres equivalents.  Furthermore,
Rdb would require a full licence on only the development node,
VAXR, and perhaps the PaRTs node, VAXT.  All other nodes could
function fully with just the remote application licence, except
for VAXE, VAXU, and perhaps VAXD, which would need the run-time
only licence.  Rdb licences for the test and production systems
thus would list at only $20,500 -- 63% less than the Ingres
equivalent -- and this does not take into account the Lab
discounts, which normaly take 20-50% off the Digital list price.
While it is true that the Ingres licences already have been
purchased and cannot be returned, Rdb clearly offers the less
expensive option for a plant design.
 
Installation itself also has been a source of difficulty, in that
it requires a person who knows both the history of our
application and the details of our network get Ingres up and
running.  As an example, RTI recently provided a patch to the
Ingres backend which is essential to achieving satisfactory
system performance.  To date, the product updates do not include
this "fix," and it is not documented.  The system manager or any
others responsible for installing an update simply have to
"know" that the patched backend must be saved and reinstalled
each time to avoid losing its functionality.
 
Once installed, Ingres is activated on a system by means of an
"authorization string," which "opens" Ingres if the string
properly corresponds to the System ID (SID) for which Ingres has
been licensed.  Unfortunately, if a Supervisory System node's
configuration changes, or if the processor has to be swapped for
repair, the SID changes and Ingres ceases to function.
 
Finally, LIS has had frequent difficulty over the last two years
communicating specific performance or functionality problems to
RTI.  For example, LIS noticed a chronic problem with corrupted
Ingres data approximately 18 months ago, which RTI fixed only
very recently.  LIS staff spent most of that time trying to
convince RTI that there really was a problem.  Although technical
support response has greatly improved since then, the lack of
on-site support has hindered problem solving.  Rdb, on the other
hand, is a standard, supported Digital product.  Its installation
is accomplished the standard Digital product installation
procedure, with which the LIS system managers are familiar.
Telephone hotline support is available for the product 24-hours
per day, and Digital personnel are resident on site to expedite
problem resolution.
 
 
IX.  Other Considerations
 
Rdb is already a part of LIS, and rapidly is becoming part of the
Supervisory System itself.  As a result, significant parts of the
licensure needed for changing the Supervisory System to a full
Rdb implementation already are in place.  From the start, the EDS
group has used Rdb/VMS to support the real time distributed
database functions in its VAX/ELN-based GEMs.  Rdb/VMS not only
stores the definitions for EDS's run-time ELN databases but also
stores all initial values for these databases.  Because Rdb
support tools were rather limited when EDS began to use the
product, EDS developed two local programs to help use the Rdb
system.  The "Configuration Manager" creates and manages the
contents of the Rdb database, and the "Object Allocator" extracts
the definitions stored in Rdb and constructs a memory-based ELN
equivalent.  EDS applications programs are linked to the
memory-resident database, along with a set of simple data
manipulation routines.
 
Recently, the LDF Control Systems group began to develop a
variation of the EDS GEMs for use in the Supervisory System's new
microVAX-based GEMs.  This necessitated purchase of a full Rdb
licence on VAXR, which could be used without further cost for all
Rdb development that would be involved in converting the archival
database system from Ingres to Rdb.  The LDF Control Systems
group quickly realized, however, that VAX Rally would provide a
far easier and more functional database interface than the two
EDS programs mentioned above.  The EDS programs suffer from the
following limitations:
 
    1)  In-house software requires in-house maintenance.
 
    2)  The Configuration Manager is not user friendly.
 
    3)  Modifying the database definitions requires recompiling
        and relinking major portions of the system.
 
    4)  Only the simplest database queries are possible.
 
Tim Sherman actually duplicated 80-90% of the Configuration
Manager and Object Allocator functionality in one morning, using
Rally, and this was accomplished with no training other than
reading the Rally manual for an evening and experimenting for a
few hours.  The final Rally product will have none of the
shortcomings listed above, will provide significantly more
functionality than the locally developed programs, and will serve
for all similar microVAX-based GEMs that ultimately become part
of the Supervisory System.  Rdb and Rally thus will become part
of the Supervisory System regardless of whether the archival
system remains an Ingres application.  For the long run, however,
it might be more efficient to unify all database functions under
a single system.
 
 
X.  Conversion.
 
Conversion of existing Ingres databases to Rdb databases will not
be a major task, as evidenced by our experience in generating an
Rdb archive for the prototype Trender.  To create the test
database, Robert Barnes of Digital first used a VAX SCAN program
to parse the Ingres database definitions and create an equivalent
Rdb database definition.  Next, the Ingres Database Administrator
dumped the Ingres data into ASCII files using standard Ingres
utilities.  The ASCII data were then loaded into Rdb using
Datatrieve.  This entire operation was accomplished within one
day, despite the fact that Mr. Barnes had no familiarity with
either the Ingres database or of Supervisory Operations in
general.  The same procedure can, if necessary, be used to move
data in either direction between the two systems.
 
                                            James Beattie
                                            Rich Ward
 
                                            September 3, 1987
 
========================================================================
T.RTitleUserPersonal
Name
DateLines