From: Ian King (iking_at_killthewabbit.org)
Date: Wed Feb 18 2004 - 17:39:58 PST
The authors describe a system for sharing a virtual memory address space across
a set of loosely-coupled systems, with each system contributing its physical
memory to the pool of pages. The system was implemented on a small network of
workstations, and both functional testing and performance metrics suggested this
method is workable to implement distributed computing.
The basics of the mechanism described are an externalization of multiprocessor
cache coherency protocols. The most significant part of the paper is discussion
of management for those operations; in a multiprocessor accessing local shared
memory, the communication channel is the memory bus, but in this model the
processors are loosely coupled over an asynchronous channel such as a network
connection. The authors quickly discard the management method most often seen
in tightly-coupled multiprocessors - local ownership of pages - and explore
various distribution methods.
One contention I never found to be supported was in the initial section, where
the authors claim that this method can supplant RPC. While the mechanism
described clearly allows distributed access to both code and data segments,
there is nothing implicit in this that supports migration of actual processes.
I'm going to draw the distinction between procedures and processes set forth in
another paper, and suggest that while procedures could certainly be migrated,
none of the state that is associated with a procedure that is currently active
is implicitly conveyed through the described mechanism - some additional
protocol is required to invoke the migrated procedure. While a system like
Emerald could make excellent use of this mechanism, that is because its objects
do contain all relevant state; nonetheless, it would still be necessary to
somehow "inform" the remote processor that it should execute this migrated
process object.
This archive was generated by hypermail 2.1.6 : Wed Feb 18 2004 - 17:50:35 PST