[comp.databases] Multiple DBMS servers on the same CPU

deal@newkodak.uucp (Stephen M. Deal) (06/12/90)

We are wondering what the impact on a hardware/os platform would be if we
ran two (or more) DBMS servers simultaneously on the same CPU. For example
if we use a vendors application which runs on the DBMS bundled with the OS
and then develop our own applications on a different DBMS, what would be
the performance impact.

It seems to me that the two DBMSs might fight for resources and therefore
provide less throughput than if both applications used the same DBMS.
However this is the real (read heterogeneous) world and quite often we are
faced with applications that are not DBMS independent. 

Aside from the obvious problems of sharing data between the databases (RDA
ain't here yet), does anyone have experience running two RDBMSs simultaneously
on the same CPU (e.g. Ingres and Rdb/VMS, Informix and Sybase)?

Thanks,
  ===========================================================================
  | Steve Deal	 	| Internet: deal@Kodak.COM			    |
  | Eastman Kodak Co.	| UUCP:     ...rutgers!rochester!kodak!eis!deal     |
  | Engr. Systems Div.	| Voice:    (716) 726 - 5396			    |
  | mailcode: 35108	| FAX:	    (716) 726 - 7406			    |
  | 901 Elmgrove Road	| 					       	    |
  | Rochester, NY	| EIS... Engineering Information Systems	    |
  | 	   14653-5108   |		You can't build CIM without it!	    |
  ===========================================================================

forrest@orion.sybase.com (Jon Forrest) (06/13/90)

In article <1990Jun12.154120.3169@newkodak.kodak.com> deal@newkodak.uucp (Stephen M. Deal) writes:
>
>We are wondering what the impact on a hardware/os platform would be if we
>ran two (or more) DBMS servers simultaneously on the same CPU. For example
>if we use a vendors application which runs on the DBMS bundled with the OS
>and then develop our own applications on a different DBMS, what would be
>the performance impact.
>
>It seems to me that the two DBMSs might fight for resources and therefore
>provide less throughput than if both applications used the same DBMS.
>However this is the real (read heterogeneous) world and quite often we are
>faced with applications that are not DBMS independent. 
>
>Aside from the obvious problems of sharing data between the databases (RDA
>ain't here yet), does anyone have experience running two RDBMSs simultaneously
>on the same CPU (e.g. Ingres and Rdb/VMS, Informix and Sybase)?
>

You didn't say which OS the DBMS is using. This makes some difference
because on OS's which don't do asynchronous I/O I would imagine that
having more than one server might get you something since the second
server could get some CPU while the first is waiting for an I/O to
complete. On the other hand, if asynchronous I/O is supported then
I don't see any benefit from running more than one server, assuming
a multithreaded server, since the CPU will be kept busy performing
all the DBMS work presented to the server. If there isn't enough
work to keep the CPU busy, then the server would be idle but then
there wouldn't be any reason to have a second server in the first
place, unless the second server is needed for other not
related to performance.

For non-Sybase servers there might also be the question of what
happens if you're running more than one server where all the servers
access the same database. If one server gets a lock on a resource and
then is scheduled out because another server needs to run, and the
second server needs to access the locked data, then it will have to
wait until the first server can run again. This simple case will
cause a minor slowdown but these locking conflicts can get complicated.
(By "non-Sybase servers" I mean servers that use the O.S. provided
locking mechanism. One of the reasons we don't allow simultanous
access of multiple servers to the same database is because we don't
use the O.S. provided locking mechanism. We use a scheme that is part
of our multithreaded kernel inside our server. Our announced MP
server uses shared memory and internal synchronization primitives
to control data access when running on multiple CPUs in the same node.)

If you're running more than one server and the servers are from
different vendors then this locking problem would not occur but then
you couldn't access the same databases. In this case you'd have the
same problem running two servers as you'd have running two compilers
at the same time.

----
Anything you read here is my opinion and in no way represents Sybase, Inc.

Jon Forrest WB6EDM
forrest@sybase.com
{pacbell,sun,{uunet,ucbvax}!mtxinu}!sybase!forrest
415-596-3422

davidm@uunet.UU.NET (David S. Masterson) (06/14/90)

In article <1990Jun12.154120.3169@newkodak.kodak.com> deal@newkodak.uucp
(Stephen M. Deal) writes:

   We are wondering what the impact on a hardware/os platform would be if we
   ran two (or more) DBMS servers simultaneously on the same CPU. For example
   if we use a vendors application which runs on the DBMS bundled with the OS
   and then develop our own applications on a different DBMS, what would be
   the performance impact.

It really depends on the amount of work that each DBMS has to do at any point
in time.  From the OS standpoint, each DBMS is a process that the OS must
service.  Priorities and scheduling come into play.  From within a particular
DBMS, everything outside of it is competition for resources (mostly CPU or
disk I/O processing time).  If each DBMS had lots of work to do at any point
in time, the impact would be felt just as if there was one DBMS with many
other process intensive (CPU or I/O) tasks going on.

   It seems to me that the two DBMSs might fight for resources and therefore
   provide less throughput than if both applications used the same DBMS.

More than likely true.  A single DBMS should have an understanding of the
requests that it is currently processing and expectations for processing them
in order to allow it to schedule other activity efficiently.  Two DBMSes have
no idea what each other are doing and, so, cannot schedule tasks with the
other DBMS in mind.

--
===================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mt. View, CA  94043
===================================================================
"If someone thinks they know what I said, then I didn't say it!"