The algorithm for solving a multiple-class closed QN with load-dependent devices is given in this section. It is an extension of the approximate algorithm for multiple classes given in Chapter 13 for incorporating load-dependent devices discussed previously in this chapter. It is assumed in this section that the service-rate multiplier of any load-dependent device is class independent (i.e., if device i is load-dependent, then ai,r(j) = ai(j) for all classes r).
The basis for the algorithm lies in obtaining an appropriate expression for the marginal probability, , of finding j customers at load-dependent device i given that the QN population vector is . This probability can be obtained from the local balance equations of the network states  as
where is the total number of customers in the network. As in the load-independent case, the dependency on values derived by removing one customer from each class makes an exact MVA solution for even moderate size QNs very expensive. To overcome this problem, it is assumed, as an approximation, that
In other words, it is assumed that the removal from the QN of one customer of class r does not significantly affect the overall queue length distribution at device i . Using Eq. (14.4.13) in Eq. (14.4.12) and the fact that , it follows that
Solving Eq. (14.4.14) recursively one can obtain a closed-form expression for as a function of can be obtained by requiring all probabilities to sum to 1 (see Exercise 14.5). Thus,
The generalization of Eq. (14.3.9) for the multiple-class case is
Using the approximation given in Eq. (14.4.13) in Eq. (14.4.17), it follows that
The values of the probabilities Pi(j 1 | ) are needed to compute the residence time . To compute these probabilities the values of the throughputs X0,r() are needed, which depend back on the residence time values. The following iterative approach is proposed:
This approach is specified in detail in the algorithm of Figure 14.7. The notation Kr indicates the number of devices for which Di,r > 0.
Consider the client-server architecture shown in Figure 14.3. Suppose the application layer is designed to support up to 80 running processes simultaneously. Each application process receives a client request, executes the application logic, and interacts with the database server. After monitoring the application processes, the performance analyst identified three types of processes (i.e., in terms of resource usage) corresponding to the three most common client requests. During the monitoring period, the application had 35 processes running on average. The application architect wants to determine the average database response time in order to understand the impact on the database if the number of application processes is changed. The analyst decides to use a three-class closed model with an LD device to represent the two-tier architecture depicted in Figure 14.8.
The database server is assumed to have one processor and one disk. The requests are categorized as being of three types: trivial, average, and complex, according to their use of database resources. Ten application processes are responsible for submitting trivial requests, 20 for submitting average requests, and five for complex ones. By measuring the application processes, the analyst parameterizes the behavior of the processes as summarized in Table 14.4. There are various ways of estimating disk service demands. For random data access, as is the case of this example, the service demand could be determined by multiplying the number of I/Os issued by a process by the average disk access time (i.e., average seek time plus the average latency plus the average transfer time, which is a function of the I/O size). However, most modern disk systems have a cache at the controller for caching data recently read or written to the disk . Cache hits are relatively rare for random access, but are higher for sequential access. When estimating service demands from measurement data, all the specific features of the disk architecture are captured by the measuring process. The disk demands reported in Table 14.4 reflect this measurement data. The LAN is assumed to be a 10-Mbps Ethernet with a slot duration S of 51.2 msec. The average network service demands per transaction class can be computed as the average number of packets x the average packet length divided by the network bandwidth. This gives values 0.16, 0.41, and 1.27 msec for trivial, average, and complex requests, respectively. The network is modeled as a load-dependent device with a class independent service rate function m(n). To use Eq. (14.3.11) for the Ethernet throughput, the average packet length over all classes is computed from the data in Table 14.4 as follows:
The average number of packets per request, Preq, is given by
The service rate in requests/sec for the network is equal to its service rate in packets/sec divided by the average number of packets per transaction. The algorithm of Fig 14.7 yields the performance metrics shown in Table 14.5. In this particular example, convergence is achieved after 16 iterations for a tolerance of 10 4.
Figure 14.7. Approximate multiclass MVA algorithm with LD devices.
Figure 14.8. Performance model of a two-tier client-server architecture.