Path: utzoo!attcan!uunet!samsung!usc!rutgers!mcnc!rti!xyzzy!aquila.DG.COM!harrism From: harrism@aquila.DG.COM (Mike Harris) Newsgroups: comp.databases Subject: Re: Client/Server processes and implementations Keywords: Client Server Processes Message-ID: <510@xyzzy.UUCP> Date: 20 Nov 89 18:36:07 GMT References: <7114@sybase.sybase.com> <6895@sybase.sybase.com> <2184@kodak.UUCP> <375@xyzzy.UUCP> Sender: usenet@xyzzy.UUCP Lines: 86 In article <7114@sybase.sybase.com>, forrest@phobos.sybase.com (Jon Forrest) writes: > > >2) A single server process may not be able to compete successfully for cpu > >resources in a cpu bound environment. [Other comments edited out ...] > > This is probably true but a server of any kind, single process > or multi process, that runs in a cpu bound environment is not > running in an environment in which a server should be run. > Servers are meant to be run on machines with as little else > going on as possible. This is one of the rudements of a > client/server architecture. The previous text is the text, in whole, that I am responding to. First, this is an important point. & worth more consideration: > This is probably true but a server of any kind, single process > or multi process, [...edited] An example: If there are M processes on the system, including the Sybase server, successfully competing equally for cpu resources, the distribution of cpu will be 1/M *100 percent per process. If the Sybase server could run N servers, the distribution would be 1/(M+N) *100 percent per process. Since there were N servers working for the same application (Sybase), the distribution to Sybase would be N/(M+N) *100. Grant me that M=5 and that there was enough Sybase work to allow N=2. With a single server architecture, the distribution to Sybase would be 1/5 *100, or, 20% of the CPU. Given the multi server architecture, the distribution would change to 2/(5+2) *100, or 28.5%. A significant change indeed! Also the most convenient way for an administrator to tune a system is to change the number of server processes. It is easy to do this if more processes can be created. It is difficult to do this if they can't. In the previous example, the only easy way to give "Sybase" more cpu was to create more servers. If, for example, 2 of the 5 processes were for another service, I could give Sybase's single server more cpu by reducing the other service's servers to 1. Note that I couldn't have done this if the other service didn't already have multiple servers. Jon mentions (elsewhere in the net) a new MP architecture. Is Sybase working on this soley to take advantage of multiple processors? Wouldn't this architecture allow multiple servers on a single architecture? Second: > [edited.... ] but a server of any kind, single process > or multi process, that runs in a cpu bound environment is not > running in an environment in which a server should be run. > Servers are meant to be run on machines with as little else > going on as possible. [edited.....] Perhaps for a simple PC or workstation server. Consider, also, the small [medium?} size business that has a mix of order entry, order processing, payroll, accounting, etc, applications. They are very likely to purchase a medium size "server", probably unix, for their business. This "server" will be handling ALL of their applications. I would say that the "accounting" servers have as much right to CPU as the "payroll", or (classic) "order entry" servers. I believe that people, all too often, think of a database server as the only type of server. Airline reservation systems, and Bank Teller applications are other examples of services that can (and do) benefit from the client-server architecture. They (not seen to you at the terminal) also will act as clients to a database server. Even forgetting, for now, about the mixed use departmental server, consider our server machine hosting a heterogenous mix of server applications. They are all server processes. Hosted on my "server" machine. How do I tune them now? The only way the Sybase (or single process server) will get more cpu is when the other processes wait on it (demand scheduling comes into play). If some of the other services aren't using Sybase, they wont be forced to give up cpu to Sybase. Thirdly: > [edited....]This is one of the rudements of a > client/server architecture. This has nothing to do with the client/server architecture. It may happen to be and ideal environment to run it in, but that is beside the point. No flames intended. Mike Harris - KM4UL harrism@dg-rtp.dg.com Data General Corporation {world}!mcnc!rti!dg-rtp!harrism Research Triangle Park, NC