Support for Machine and Language Heterogeneity in a Distributed Shared State System
Chunqiang Tang, DeQing Chen, Sandhya Dwarkadas, Michael Lee Scott · UR Research (University of Rochester) · 2002
InterWeave is a distributed middleware system that supports the sharing of strongly typed, pointer-rich data structures across heterogeneous platforms. Unlike RPC-style systems (including DCOM, CORBA, Java RMI), InterWeave does not require processes to employ a procedural interface: it allows them to access shared data using ordinary reads and writes. To save bandwidth in wide area networks, InterWeave caches data locally, and employs two-way diffing to maintain coherence and consistency, transmitting only the portions of the data that have changed. In this paper, we focus on the aspects of InterWeave speci£cally designed to accommodate heterogeneous machine architectures and languages. Central to our approach is a strongly typed, platform-independent wire format for diffs, and a set of algorithms and metadata structures that support translation between local and wire formats. Using a combination of microbenchmarks and real applications, we evaluate the performance of our heterogeneity mechanisms, and compare them to comparable mechanisms in RPC-style systems. When transmitting entire segments, InterWeave achieves performance comparable to that of RPC, while providing a more ¤exible programming model. When only a portion of a segment has changed, Inter- Weave’s use of diffs allows it to scale its overhead down, signi£cantly outperforming straightforward use of RPC.