Seamless computing requires that people have ready access to their data at any time from anywhere.
In theory, this could be achieved by placing all data in a shared repository, such as a network accessible
file server, and having all applications on all devices access this single, shared database. In practice,
such a centralized approach to data management is infeasible, except in limited situations, due to
nonuniform network connectivity and latencies as well as device limitations and regulatory restric-
tions. For example, many handheld devices do not have wireless network capabilities, although this is
rapidly changing. Even with wireless network adapters, devices may have restricted communication
in environments such as airplanes and hospitals. Moreover, the high cost of wide-area wireless net-
working renders its use less desirable than local data access. Although all of the technology trends are
in the right direction, ubiquitous, wide-area, low-cost, high-bandwidth, low-latency network com-
munications are still many years away. Thus, for the foreseeable future, storage systems must provide
the ability to replicate data close to its point of use, ideally colocated with applications running on a
PC or mobile device.
The same factors that argue for replicating data onto mobile devices dictate a style of rep-
lication known as “optimistic or update-anywhere” replication in which replicas are allowed to
behave autonomously. Specifically, users and applications can read and write data at a single replica
without coordinating their activity with other replicas. This provides maximum data availabil-
ity since the inaccessibility of some remote replicate cannot hinder access to one’s locally repli-
cated data. Contrast this to a system in which replicas are kept mutually consistent at all times
by using distributed transactions with locking and two-phase commit. In such a system, a slow,
failed, or disconnected device negatively affects the overall system behavior. Although the benefits
of an update-anywhere replication scheme are evident, the costs and complexities may be subtle.
Because replicas diverge through concurrent, autonomous activity, applications must be able to tol-
erate weakly consistent data. Additionally, to drive replicas toward eventual convergence, mecha-
nisms are needed for disseminating updates and dealing with the potential conflicts that naturally
arise in an update-anywhere system.
This lecture presented a variety of replication protocols for propagating updates between
devices and techniques for detecting and resolving conflicting updates. These range from simple
C H A P T E R 8
protocols that use best-effort multicast to complex knowledge-driven protocols that support peer-
to-peer delivery over arbitrary connections. Different techniques make widely varying assumptions
both about the devices on which they operate and the network characteristics and connectivity of
those devices. Replication protocols also differ in the functionality that they provide to mobile ap-
plications, such as consistency and delivery guarantees, features that are often apparent to end users.
Crafting a mobile application, therefore, requires designers to choose data management technologies
carefully and evaluate technology tradeoffs to fully meet the needs of the intended user community.
This lecture should help guide system designers in this important endeavor.

Get Replicated Data Management for Mobile Computing now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.