ABSTRACT

Replication is a well-known technique for improving data availability and application performance as it allows the collocation of data and code. Data availability is ensured because, even in the presence of network failures, data remains locally available; in addition, application performance is potentially better (when compared to a remote invocation approach), as all accesses to data are local. Several significant issues must be addressed to take full advantage of replication. In this chapter, we address the following: (1) replica management, (2) memory management, and (3) adaptability. Note that many other issues are equally important [1], such as how to merge or reconcile replicas that have diverged due to updates being performed independently, but such issues are considered elsewhere in this book.