Parrot: Transparent User-Level Middleware for Data-Intensive Computing (Revised February 2004)
File(s)
Date
2004Author
Thain, Douglas
Livny, Miron
Publisher
University of Wisconsin-Madison Department of Computer Sciences
Metadata
Show full item recordAbstract
Originally submitted in 2003.
Distributed computing continues to be an alphabet-soup of services and protocols for managing computation and storage. To live in this environment, applications require middleware that can transparently adapt standard interfaces to new distributed systems; such software is known as an interposition agent. In this paper, we present several lessons learned about interposition agents via a progressive study of design possibilities. Although performance is an important
concern, we pay special attention to less tangible issues such as portability, reliability, and compatibility. We begin with a comparison of seven methods of interposition, focusing on one method, the debugger trap, that requires special techniques to achieve acceptable performance on popular operating systems. Using this method, we implement a complete interposition agent, Parrot, that splices existing remote I/O system into the namespace of standard applications. The primary design problem of Parrot is the mapping of fixed application semantics into the semantics of the available I/O system. We offer a detailed discussion of how errors and other unexpected conditions must be carefully managed in
order to keep this mapping intact. We conclude with an evaluation of the performance of the I/O protocols employed by Parrot, and use an Andrew-like benchmark to demonstrate that semantic differences have consequences in performance.
Permanent Link
http://digital.library.wisc.edu/1793/60376Citation
TR1493a