- Draw state transition diagram
- Obtain balance condition equations: rate in equals rate out
- for every state of the system
- This defines `steady state' as `The probability of the system being in state i does not depend on time.'

- Solve balance equations with normalizing equation
- \sum pn = 1

- Determine performance metrics from pn

Simple in principle. May be complex in practice.

Collection of interacting service providers.

One new concept:

- q_ij = P( job just finished at i will get immediate further processing at j ) 1 <= i,j <= M

Very similar to what we did near the beginning of the course

- e.g., Little's law

Jobs enter the network and depart from it

- Number of requests in a server is a random variable, N_i
- External arrivals can appear anywhere.
- Average rate of external arrivals at server i, \gamma_i, is deterministic
- Actual arrivals are random

- Extra destination for departures:
- q_i(M+1) = P( service is complete for a request immediately after service at i )

Definitions at server i

- external arrivals \gamma_i
- internal arrivals
- total arrivals \lambda_i = \gamma_i + internal arrivals
- throughput X_i = \lambda_i
- because of stability

- total arrivals \lambda_i = \gamma_i + \sum_j X_j q_ji
- The second term is the internal arrivals
- Remember: job can come back to where it just finished.
- Therefore, X_i = \gamma_i + \sum_j X_j q_ji

- conservation of requests
- \sum_i^M \lambda_i = \sum_i^M \gamma_i + \sum_i^M \sum_j^M \lambda_j q_ji
- \sum_i^M \lambda_i = external input + \sum_j^M \lambda_j (1 - q_j(M+1))
- \sum_i^M \lambda_i = external input + \sum_j^M \lambda_j - sum_j^M \lambda_j q_j(M+1))
- \sum_i^M \lambda_i = external input + \sum_j^M \lambda_j - external output
- \sum_i^M \gamma_i = sum_j^M \lambda_j q_j(M+1))

- Write balance equations
- These are different balance equations.

- Solve balance equations
- Derive performance metrics

U_i = \lambda_i s_i

- s_i, the mean service time, is a parameter assumed to be known
- s_i = 1 / \mu_i

X - rate of jobs departing from the network

- X = \sum \gamma_i because the network is stable
- X = \sum \lambda_i q_i(M+1)
- Not too hard to prove that these are the same

- No external arrivals.
- \gamma_i = 0

- No departures
- Number of jobs in the system, N, is constant
- stability is assured

1. Total arrival rate

- \lambda_i = sum_j \lambda_j q_ji
- \sum_i q_ji = 1
- \sum_i \lambda_i = \aum_i sum_j \lambda_j q_ji = \sum_j \lambda_j

- Balance equations give M equations, which are not linearly independent
- Can only solve for ratios of \lambda_i
- Because the system is closed the number of requests is conserved

Example: pdf

2. Utilization

- Can only solve for ratios of U_i
- U_i / U_j = (\lanbda_i / \lambda_j) * s_i/s_j: the factor in parenthesis is known

3. Throughput

Arbitrary decision

- Cut the system somewhere, e.g. at the arrival of server i
- Then X is the rate of jobs passing across the cut

1. Call the set of terminals server 0

2. Throughput

Cut at entrance to terminals: X = \lambda_0

- If we cut the network into two disjoint pieces the average flow across the cut is zero.

Define visit ratio: number of visits to server i per request

- V_i = \lambda_i / X = \lambda_i / \lambda_0
- This is what we solve for.

3. Utilization

U_i = \lambda_i s_i = X V_i s_i = X D_i

- D_i = X s_i is the demand per request at server i
- demand measured in seconds
- units of D_i is seconds per request
- units of X is requests per second
- U is unitless

- U_i / U_j = D_i / D_j

4. Upper bound on throughput

D = \sum D_i

X(n): throughput with N users

- X(1) = 1 / (D + Z)
- X(N) <= N/(Z + D) : equality when there is no contention

5. Bottleneck analysis

- b - server with highest demand
- D_b = max{D_i} = D_max
- U_b = X D_b <= 1
- X <= 1/D_max

Therefore, X(N) <= min( 1/D_max, N / (D+Z) )

6. Lower bound on mean response time

- Treat entire system as one server. Then R(N) = N/X - Z
- R(N) >= D = sum_i D_i because X(N) <= N / (D+Z)
- X(N) <= 1 / D_max, so that R(N) <= ND_max - Z

.

Return to: