Designing Process Replication and Activation: A Quantitative Approach

Distributed application systems are composed of classes of objects with instances that interact to accomplish common goals. Such systems can have many classes of users with many types of requests. Furthermore, the relative load of these classes can shift throughout the day, causing changes to system behavior and bottlenecks. When designing and deploying such systems, it is necessary to determine a process replication and threading policy for the server processes that contain the objects, as well as process activation policies. To avoid bottlenecks, the policy must support all possible workload conditions. Licensing, implementation or resource constraints can limit the number of permitted replicas or threads of a server process. Process activation policies determine whether a server is persistent or should be created and terminated with each call. This paper describes quantitative techniques for choosing process replication or threading levels and process activation policies. Inappropriate policies can lead to unnecessary queuing delays for callers or unnecessarily high consumption of memory resources. The algorithms presented consider all workload conditions, are iterative in nature and are hybrid mathematical programming and analytic performance evaluation methods. An example is given to demonstrate the technique and describe how the results can be applied during software design and deployment.

[1]  Jerome A. Rolia,et al.  Automatic generation of performance models for distributed application systems , 1996, CASCON.

[2]  Richard R. Muntz,et al.  A Note on the Computational Cost of the Linearizer Algorithm for Queueing Networks , 1990, IEEE Trans. Computers.

[3]  Giuseppe Serazzi,et al.  A Queue-Shift Approximation Technique for Product-Form Queueing , 1998, Computer Performance Evaluation.

[4]  K. Mani Chandy,et al.  Linearizer: a heuristic algorithm for queueing network models of computing systems , 1982, CACM.

[5]  Jerome A. Rolia,et al.  Automatic generation of a software performance model using an object-oriented prototype , 1995, MASCOTS '95. Proceedings of the Third International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[6]  M. S. Bazaraa,et al.  Nonlinear Programming , 1979 .

[7]  Giuseppe Serazzi,et al.  Asymptotic Analysis of Multiclass Closed Queueing Networks: Common Bottleneck , 1996, Perform. Evaluation.

[8]  Giuseppe Serazzi,et al.  Asymptotic Analysis of Multiclass Closed Queueing Networks: Multiple Bottlenecks , 1997, Perform. Evaluation.

[9]  Raghu V. Hudli,et al.  CORBA fundamentals and programming , 1996 .

[10]  Stephen S. Lavenberg,et al.  Mean-Value Analysis of Closed Multichain Queuing Networks , 1980, JACM.

[11]  Marin Litoiu,et al.  A performance engineering tool and method for distributing applications , 1997, CASCON.

[12]  Jr. Harold W. Lockhart OSF DCE: guide to developing distributed applications , 1994 .

[13]  Jerome A. Rolia,et al.  The Method of Layers , 1995, IEEE Trans. Software Eng..

[14]  Dan Harkey,et al.  Client/Server programming with Java and Corba , 1997 .

[15]  Shikharesh Majumdar,et al.  The Stochastic Rendezvous Network Model for Performance of Synchronous Client-Server-like Distributed Software , 1995, IEEE Trans. Computers.

[16]  Greg Hills,et al.  Performance Engineering of Distributed Software Process Architectures , 1995, MMB.

[17]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.