[comp.databases] Summary

jang@forit.uit.no (Jan Grav) (06/05/90)

Two weeks ago I had the following note in comp.databases:

**Subject: References on Distributed Databases WANTED !
**I wonder if any of you have some information about commercially
**available Distributed Database Systems ( = name of product ) ?

**If you have some additional information about the system's
**fragmentation/replication/updating/... facilities or references
**for this information, this will also be of interest.

Here are the reponses :
-----------------------
-----------------------

From: Robert Claeson <prc@erbe.se>
Date: Tue, 29 May 90 08:35:21 -0200

Ingres/Star and Oracle*Star are two distributed database systems (I'm
sure there are more).

Ingres/Net, Oracle*Net, Informix-Net and Sybase are some
client-server networked database systems.

-----------------------------------------------------------------------------


From: "Bruce E. Golightly" <bg0l+@andrew.cmu.edu>
Date: Tue, 29 May 90 09:28:27 -0400 (EDT)

You should look at Ingres. They introduced the first production quality
distributed data base. Since they also use a server architecture (sp?),
and run on a variety of platforms, it has great potential for almost
any application.

There are, of course, problems. We've had some locking and concurrancy
problems that we were unable to resolve. Part of this is due to the
distributed nature of what we were attempting. This does not rule out
the possibility of a bug or bugs compounding a design problem.

As with any leading edge product, there are some real issues. We've had
permit and protection problems at times. Two-phase commit isn't in the
version we're using at present. There are issues around the use of Ingres
in a broader Unix based network related to authentication that we're very
concerned about.

#############################################################################
                                     !                                      
Bruce E. Golightly                   !  bg0l@andrew.cmu.edu (BeeGeeZeroEl)  
Chief of Data Base Development       !  (412)268-8560                       
Telecommunications Group             !                                      
Carnegie Mellon University           !  UCC 117, 4910 Forbes Ave.           
                                     !  Pittsburgh PA 15213-3890            
Vice President, Western Penna IUA    !
#############################################################################

------------------------------------------------------------------------------

From hokey@plus5.com Tue May 29 07:05:15 1990
Date: Mon, 28 May 90 23:56:26 -0500

If I understood your question a bit better I could probably tell you what
you wanted to know as far as our Mumps implementation under Unix goes.

Hokey

-----------------------------------------------------------------------------

Organization: NCR Corporation, Rancho Bernardo
From: benl%adt.sandiego.ncr.com@RELAY.CS.NET
Date: Mon, 28 May 90 12:38:50 -0400 (at ncrlnk.Dayton.NCR.COM)

For heterogenous distributed database capabilities, i.e. to connect
applications to more than one type (or vendor) of database, check
out Oracle SQL*Star and Ingres Star.  Functionality and performance
wise, I prefer Ingres' products.

If you are happy utilizing only one vendor, Sybase is technically a
superior product in terms of performance and functionality.  E.g.
it provides an efficient Remote Procedure Call (RPC) capability.  

>If you have some additional information about the system's
>fragmentation/replication/updating/... facilities or references
>for this information, this will also be of interest.

>From first-hand experience, I'll warn you to scrutinize vendor's
claims, ad nauseam.  Oracle, for example has long claimed update
capability to DB2, but they failed to mention that SQL*Forms --
their flag-ship (yech) application generator) could only be used
in the read mode!  Another example is that both Oracle and Ingres 
provide RPC-like capabilities, but this works only against their 
RDBMS, not through their Gateways.

DATAPRO Research Notes has a relatively good overview of all the
big commercially avaiable products.

Qualifying Comments:

I'm passing this on as a result of first-hand research, and from an
evaluation done by our RDBMS group here at NCR.  I've also only hit
the big commercial products, and have not considered products from
Europe.

-- 
Benoit.Lheureux@sandiego.NCR.COM      ####################################
Application Dev Tools, Dept 4775      #  Opinions are my own, not NCR's  #
16550 West Bernardo Drive             #    Farewell Micro C Magazine     #
San Diego, CA 92127 619/485-3578      ####################################

-------------------------------------------------------------------------
From: endrizzi@SCTC.COM (Michael Endrizzi )
Date: Mon, 28 May 90 08:30:55 CDT

Book by Papdimitriaou(??) called The Theory of Database
Concurrency Control put out by Compuer Science Press in
1986.


				Dreez

-------------------------------------------------------------------------

From: John Hanley <jhanley@us.oracle.com>
Date: Wed, 30 May 90 03:02:09 PDT
Organization: Oracle Corporation


Oracle's product currently addresses pieces of the Distributed Database
problem, with database links (location indepence via SQL*Net) and
Table Replication (increased availability and fault tolerance via
special logging and consistency checks, with automatic update progation).

						--JH

----------------------------------------------------------------------------

From: cognos!nigelc (Nigel Campbell)
Date: Thu, 31 May 90 19:35:15 EDT
Organization: Cognos Inc., Ottawa, Canada


Starbase from Cognos which is based on Interbase from Interbase Corp
is a distributed database running on 
	
	Vax-Vms/Ultrix,Sun,Apollo,Aviion,Hp-Ux,Hp-Xl,Os/2 and Xenix

	can have multiple databases per machine  

	uses a client-server model 

	supports tcp/ip and dec-net 

	passes database requests/messages in a form called Blr which 
	minimises the overhead on the network 
	
	supports Digitals DSRI thus any DSRI compliant software could
	access the database

	uses the distributed lock manager on the Vax

	supports the two-phased commit protocol with a dba tool for
	determining what to do with transactions that did not complete
	during the two-phased commit 

The database does not support fragmentation or replication currently
which as you are probably aware does not come cheaply . However using
our 4.gl. Powerhouse it is possible to describe multiple databases
to the Powerhouse dictionary thus supporting location transparency as
well as joining of relations from multiple databases . Version 3 of 
the database supports a database event which allows programs to trap
until the event is signalled by the database trigger code : this would
allow you to create a daemon whos function it was to replicate certain data .
A simple example of this feature was to create a code management system/mail 
system which watched for events to do with your user name etc . 

Limits 

# relations per database 		- none
# databases concurrently accessible	- none
# indexes per database			- none
# indexes per relation 			- 64
row size				- 65,000 bytes 
tuples per relation 			- none
field size excluding Blobs		- 32,000 bytes
columns per relation 			- 16,000
characters per column			- 32,000
Index key				- 255 bytes
Blob size				- none
#concurrent accessors			- none

Note that full record compression and index compression is applied in the
database . 


regards . Nigel 
-- 
Nigel Campbell          Voice: (613) 783-6828                P.O. Box 9707
Cognos Incorporated       FAX: (613) 738-0002                3755 Riverside Dr.
uucp: nigelc@cognos.uucp || uunet!mitel!sce!cognos!nigelc    Ottawa, Ontario
                                                             CANADA  K1G 3Z4

-----------------------------------------------------------------------------

From: Dean Swan <dean@sun.soe.clarkson.edu>
Date: Fri, 1 Jun 90 10:38:20 EDT

My company is implementing a fairly large expenditure tracking systems
for the New York State Office of Mental Retardation and Developmental
Disabilities.  We have been developing the system in Clipper (a dBase
dialect compiler), more because the project was started four years
ago as a single user, stand-alone system on one machine, and it's
rather expensive to throw out 30k lines of existing, working code.

Clipper has *no* built in distributed database support.  One of the
problems that we faced is that a Developmental Center in th OMRDD system
has multiple community offices that are remote sites, supervising and
supporting community residences.  They spend money, and their expenditures
need to be tracked.  It is unreasonable to have a centralized staff
do all the administrative work for the community offices, so we implemented
a distributed system, where each community office has their own PC, on
which they can perform all functions that the main office can.

Since a wide area network was not feasible (one of out sites covers a
seven county region and has 3 community offices)  we implemented a "sneaker-
net", where data is checked in and out and transported by floppy disk.

This system has presented a number of problems.  First and most substantial
is the problem of synchronization and signalling.  We modeled the system
loosely on a client-server model.  The machine at the main office is
considered the home-base, and each community office is considered a
satallite system.  The problems arrise when, for example, a satellite
transmits a batch of information to the host.  It needs to know what has
already been sent, and successfully receved by the homebase so that it
can avoid redundacy, and only transmit new information.  Similar problems
exist in transmitting information from the home base to the satellites.

This has been described by some texts as a "Red Army, Blue Army problem".
The analogy is that if you have  the Blue army in the center of a valley,
and the Red army divided in half on either side of the Blue army, your
plan is to attack simultaneously.  If you are Red army, part 1 and you send
a messenger to Red army, part 2 saying "Attack at dawn".  You have no way
of knowing whether the messenger reached the other side.  Part 2 could send
a messenger back to you, but then they have no way of knowing that you
actually received the message.

So, the problem is basically that the transmitter never knows if their
message has been received.  This problem can come up when dealing with
'sockets' under BSD implementations of Unix, as well.  One way to ensure
that data is not duplicated, and that message are always confirmed is
to enforce a restriction that a given transmitter may not transmit again
until it has received an acknowledgement from the receiver.  Unfortunately,
this was neither possible nor practical for our expenditure tracking system.

Our solution was that a transmitter always re-transmits information for which
it has not received a confirmation, and a reciever will incorporate from the
incoming information, only new information that is not already present in
it's local database.  Whenever a transmitter sends more information, it
includes a confirmation log of information that it has already recieved.

Eventually, the system stabilizes itself, and only new information is
transmitted, and only the most recent confirmations are carried.  There
is usually only one frame (i.e. the previous transmission, plus the new
transmision's information) of overlap due to the exchange of confirmations
being asynchronous.

Another reasonable example of this effect at work is the concept of a
"working set" in a demand paged virtual memory system.  References to this
can be found in DEC's VAX series documentation, various texts on operating
systems (especially BSD implementations of UNIX, and references to DEC's VMS)
and books on computer architectures (i.e. Tannenbaum's "Sturcture Computer
Organization").

I don't know if this is what you're looking for, but it is at least our
one real-world experience to draw on.  The most impressive implementation
of a distributed database that I can think of is the inter-net name
server system.

Feel free to e-mail if you wish to discuss any further.

-Dean Swan
dean@sun.soe.clarkson.edu