DBMS, February 1997
DBMS Letters

Fat Clients and Servers

In the December issue of DBMS, David Linthicum writes about the pros and cons of fat servers and fat clients in "Client/Server Collapse." He specifically speaks about problems of scalability with Oracle when putting stored procedures and triggers in the server, but he implies that this was generally true for any RDBMS.

Although I don't have any experience with Oracle, I do have considerable client/server programming experience with Ingres. The idea that stored procedures and rules within Ingres require a greater percentage of the DB server to process than if that code is in the client applications is just not true.

According to Linthicum's description of one Oracle system, using stored procedures and triggers caused the server capacity to drop from 50 users to 25 users. It seems to me that one of the following would hold true in this case:

  1. Such a system is poorly designed to begin with.
  2. Oracle allows full procedural syntax within PL/SQL (for example, the complete processing of cursors within stored procedures and looping structures).
  3. There are not enough system resources available for Oracle.
If the DBMS server usage goes up to five percent per user when stored procedures and triggers are used (vs. two percent when the code is done in the front end), then it appears that a lot of DBMS server-type processing is done in the front-end Oracle process. In such a case, a valid argument could be made that the Oracle DB server is not a true server and the front-end processes are not true clients. This statement would mean that there has to be some sort of communication package that regulates client requests coming in to the server, emulating the client/server model (albeit very inefficiently).

The way to find out if this is indeed the case is to see if the Oracle front ends are about the same size under the latest version as they were when Oracle did not use the client/server model. (Ingres front ends went from around 256K in version 5.x to around 11K in 6.x and above.) If both front ends are about the same size, the odds are that the same version of the server is running in both architectures. If such is the case, then Oracle doesn't truly support the client/server model.

This structure means that Oracle has a single-user server supporting multiple front-end processes, which are themselves mini-servers. This argues that Oracle will not scale nearly as well as other RDBMSs that are truly client/server because each front-end process needs the resources necessary to handle functions that, in a true client/server architecture, are handled by the server.

For example, if under the standalone architecture an RDBMS has front ends of 256K each, but under the client/server model, the same RDBMS uses front ends that weigh in at 10K apiece, under the standalone model, 100 users would eat up 25MB for front ends alone, whereas under the true client/server approach, only 1MB would be used. Using a true client/server approach shrinks the front-end processes significantly. More users can be accommodated more quickly and with less system degradation to a given hardware platform than with any other current method.

If a client/server RDBMS uses 256K front ends and normally handles about 50 users on a given hardware platform, then any other RDBMS that makes full use of client/server technology to shrink the front ends to a reasonable size should be able to handle at least 500 users on the same platform.

Phil Brisco
brisco@charm.net


Subscribe to DBMS and Internet Systems -- It's free for qualified readers in the United States
February 1997 Table of Contents | Other Contents | Article Index | Search | Site Index | Home

DBMS and Internet Systems (http://www.dbmsmag.com)
Copyright © 1997 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to dbms@mfi.com
Updated Wednesday, January 22, 1997.