Compensation is the process by which a committed transaction in a database is undone by running the semantic inverse of that transaction on the database. Compensation has been proposed as a technique for undoing committed work in various situations where strict atomicity cannot be maintained [GS87, MR91]. In this paper, we discuss compensation in longrunning multidatabase transactions. We define the step approach to integrating local database schemas into a mulitdatabase. In the step approach, each local database is encapsulated by a set of procedures (steps). Steps can be grouped into atomic global transactions. Each step also has an associated compensating step, which is called if the compensating transaction is run. We examine two areas of multidatabase transaction management where compensation is required. The first is implementing compensation as a recovery technique when an open nested transaction is aborted. The second is in backing out the eflects of an atomic multidatabase tr...
Marian H. Nodine, Stanley B. Zdonik