next up previous
Next: Comparison to Related Work Up: Framework Implementation Previous: Encina TP Monitor Interface

Application Interface

The ability to communicate efficiently across address spaces allows robustness to be enhanced without sacrificing good performance. The Encina Toolkit's modular decomposition, described in the previous section, is predicated on fast interprocess communication (IPC). Although it has been shown that IPC can be fast [BALL90], its performance in commercial Unix implementations lags far behind that of local procedure calls. Even on Mach 2.5, the measurements reported by Barrera [Bar91] indicate that fast IPC is about 500 times more expensive than local procedure calls.

Given our desire to make the Reflective Transaction Framework efficient and portable, we were not willing to make its design critically dependent on fast IPC. Instead, we have structured the transaction adapters in the Reflective Transaction Framework as a library that is linked in with an application. No external communication of any kind is involved in the application servicing of an transaction event. An implication of this is, of course, that we have to trust applications not to damage transaction adapter data structures and vice versa.

A less obvious implication is that different applications can not share access to the same transaction adapter data structures. Such sharing would enable applications to dynamically coordinate and exchange run-time information through shared transaction adapters. This inability to share transaction adapter data structures is not a significant limitation for implementing current extended transaction models, because they support only restricted forms of highly structured cooperation. But it may be a legitimate concern for applications that wish to allow more dynamic run-time forms of cooperation based on an awareness of other active transactions. It is possible, however, to achieve this functionality, at the cost of portability, by linking the Reflective Transaction Framework library with the TP monitor code, thus enabling all applications access to a shared set of adapter data structures. Once we have extensively tested our prototype, we will investigate this option further and, in addition, measure the communications overhead of implementing the Reflective Transaction Framework as a separate process which applications access through IPC.


next up previous
Next: Comparison to Related Work Up: Framework Implementation Previous: Encina TP Monitor Interface
Matt Hurlbut
1998-07-06