A
Brief
Description
Replication
is extremely important in
mobile environments
because nomadic users require local copies of important data.
Replication
is more important in mobile environments than it is in stationary
environments,
because mobile users are often disconnected from a network or pay a
high
price for a degraded network connection. While the stationary user has
fast, cheap, and easy access to off-machine resources, the mobile user
does not, and therefore needs to have important data replicated
locally.
However,
today's replication systems are
not "mobile-ready."
Instead of improving the mobile user's environment, current replication
systems actually hinder mobility and complicate mobile operation.
Designed
for stationary environments, replication services do not and cannot
provide
mobile users with the capabilities they require. Instead, they often
force
users to behave as if they were stationary, requiring the user
to
make expensive, long-distance phone calls over low bandwidth links to
synchronize
data with the server back home.
Consider,
for example, the case of two
businesspeople
who travel from Los Angeles to New York for a meeting. In their hotel
rooms,
they would like to and should be able to directly synchronize
data
on each of their laptops. However, existing client-server solutions
require
that first laptop A contact the Los Angeles server via a long-distance
connection and upload the changes, and then laptop B can make the same
connection and download the changes . . . even though the two laptops
are
physically only a few feet apart. Existing peer-to-peer solutions would
enable such direct communication, but suffers from dramatic scaling
problems
in the number of replicas, limiting the number of overall users and
impacting
performance.
Replication
in mobile environments requires
fundamentally
different solutions than those previously proposed, because nomadicity
presents a fundamentally new and different computing paradigm. Roam
is a system designed to meet those requirements.
Why
Aren't Existing Systems Good Enough?
There are
numerous examples, like the one
above, that
illustrate scenarios in which mobile users would like to work
but
cannot, given the restraints of the replication system. In general, one
main reason for this disparity is that many of the replication systems
and underlying algorithms were designed without considering mobile
computing
and the strains mobility places on the system.
Before
mobile computing was a feasible
reality, software
designers simply didn't design their systems to be mobile-enabled.
Computers
were largely stationary, so there was no need to consider what would
happen
if it were easy for people to move around geographically. Consider the
case of mobile-IP. When the Internet Protocol (IP) was developed,
mobility
was not feasible, and therefore was not considered in the design. Now
that
mobility is a reality, many researchers are trying to fix or
redesign
IP to support real mobility. Like the mobile-IP case, the replication
system
software must also be redesigned to account for mobile computing.
What
Does Roam Provide?
Roam
is built using the Ward
Model---a new replication
architecture that has been designed especially with mobility in mind,
though
of course it applies equally well to stationary environments. The Ward
Model provides a new replication paradigm that is neither strictly peer
nor client-server; rather, it is a hybrid model of the two that allows
everyone to be effectively a peer while maintaining good scalability in
the number of replicas.
Additionally,
Roam provides a
number of new
distributed algorithms. For instance, Roam contains new and
improved
distributed algorithms for garbage collection (the deallocation of disk
space occupied by unnameable files) and for dynamic management of the
version
vector, the main data structure behind most optimistic replication
systems.
Overall,
therefore, Roam
provides:
|