A transaction processing (TP) application is a program that performs an administrative function by accessing a shared database on behalf of an on-line user. A TP system is an integrated set of products that supports TP applications. These products include both hardware, such as processors, memories, disks and communications controllers, and software such as operating systems (Oss), database management systems (DBMSs), computer networks and TP monitors. Much of the integration of these products is provided by TP monitors which coordinate the flow of transaction request between terminals that issue requests and TP applications that can process them.
Today, TP represents over 25 percent of the computer systems market and is one of the growing segments of the computer business. TP applications appear in most sectors of large-scale enterprises such as airline reservation, electronic banking, securities trading, inventory and production control, communications switching, videotex, sales management, military command and control and government services.
8455275CACM3310Consider a computer system having a CPU that feeds jobs to two input/output (I/O) devices having different speeds. Let &thgr; be the fraction of jobs routed to the first I/O device, so that 1 - &thgr; is the fraction routed to the second. Suppose that @@@@ = @@@@(&thgr;) is the steady-sate amount of time that a job spends in the system. Given that &thgr; is a decision variable, a designer might wish to minimize @@@@(&thgr;) over &thgr;. Since @@@@(·) is typically difficult to evaluate analytically, Monte Carlo optimization is an attractive methodology. By analogy with deterministic mathematical programming, efficient Monte Carlo gradient estimation is an important ingredient of simulation-based optimization algorithms. As a consequence, gradient estimation has recently attracted considerable attention in the simulation community. It is our goal, in this article, to describe one efficient method for estimating gradients in the Monte Carlo setting, namely the likelihood ratio method (also known as the efficient score method). This technique has been previously described (in less general settings than those developed in this article) in [6, 16, 18, 21]. An alternative gradient estimation procedure is infinitesimal perturbation analysis; see [11, 12] for an introduction. While it is typically more difficult to apply to a given application than the likelihood ratio technique of interest here, it often turns out to be statistically more accurate.
In this article, we first describe two important problems which motivate our study of efficient gradient estimation algorithms. Next, we will present the likelihood ratio gradient estimator in a general setting in which the essential idea is most transparent. The section that follows then specializes the estimator to discrete-time stochastic processes. We derive likelihood-ratio-gradient estimators for both time-homogeneous and non-time homogeneous discrete-time Markov chains. Later, we discuss likelihood ratio gradient estimation in continuous time. As examples of our analysis, we present the gradient estimators for time-homogeneous continuous-time Markov chains; non-time homogeneous continuous-time Markov chains; semi-Markov processes; and generalized semi-Markov processes. (The analysis throughout these sections assumes the performance measure that defines @@@@(&thgr;) corresponds to a terminating simulation.) Finally, we conclude the article with a brief discussion of the basic issues that arise in extending the likelihood ratio gradient estimator to steady-state performance measures.
[1]
William C. McGee.
The Information Management System IMS/VS Part V: Transaction Processing Facilities
,
1977,
IBM Syst. J..
[2]
Brian N. Bershad,et al.
Lightweight remote procedure call
,
1989,
TOCS.
[3]
C. McGeeW..
The information management system IMS/VS
,
1977
.
[4]
Arlene J. Wipfler.
Distributed Processing in the Cics Environment: A Guide to Mro/Isc
,
1989
.
[5]
Arlene J. Wipfler.
CICS: application development and programming
,
1987
.
[6]
Maurice Herlihy,et al.
Issues Process and Communication Structure for Distributed Programs
,
1983,
Symposium on Reliability in Distributed Software and Database Systems.
[7]
Philip A. Bernstein,et al.
Implementing recoverable requests using queues
,
1990,
SIGMOD '90.
[8]
Omri Serlin.
Fault-Tolerant Systems in Commercial Applications
,
1984,
Computer.
[9]
Michael Burrows,et al.
Performance of Firefly RPC
,
1989,
SOSP '89.
[10]
Joseph E. Siwiec.
A High-Performance DB/DC System
,
1977,
IBM Syst. J..
[11]
Butler W. Lampson,et al.
Designing a global name service
,
1986,
PODC '86.
[12]
John J. Wallace,et al.
Designing for Ultrahigh Availability: The Unix RTR Operating System
,
1984,
Computer.
[13]
Philip H. Seaman,et al.
Modeling Distributed Processing Across Multiple CICS/VS Sites
,
1982,
IBM Syst. J..
[14]
Daniel P. Siewiorek.
Architecture of Fault-Tolerant Computers
,
1984,
Computer.
[15]
Liuba Shrira,et al.
Promises: linguistic support for efficient asynchronous procedure calls in distributed systems
,
1988,
PLDI '88.
[16]
Michael Stonebraker,et al.
A measure of transaction processing power
,
1985
.
[17]
Andrew Birrell,et al.
Implementing remote procedure calls
,
1984,
TOCS.