Abstract The World-Wide Web [10] has been established as the de facto source of information for common users, and is now responsible for the majority of Internet traffic. Ecommerce, e-banking and www publishing are areas that generate an ever increasing interest for web applications. The boost in the popularity of the web resulted in large bandwidth demands and notoriously high latencies experienced by end-users. To combat these problems the benefits of caching and replication were early recognized by the research community. Caching [11] was traditionally applied to distributed file systems such as the AFS [48] and although it is a well studied issue, its application on the Internet gave rise to new problems, e.g., where to place a cache, how to make sure cached contents are valid, how to handle dynamic pages etc. Replication was commonly used in distributed systems to increase availability and fault tolerance. Both techniques have complimentary roles in the web environment. Caching attempts to store the most commonly accessed objects as close to the clients as possible, while replication distributes a site's contents across multiple mirror servers. Caching targets directly at minimizing the download delays, by assuming that retrieving the required object from the cache, incurs less latency compared to getting it from the web server. Replication, on the other hand, accounts for improved endto-end responsiveness by allowing clients to perform downloads from their closest mirror server (either in geographic terms or network-wise), while at the same time balancing the load among the various web servers. From a terminology point of view, caching and replication are sometimes used interchangeably in the literature. Arguably, caching can be viewed as a special case of replication when mirror servers store only parts of a site's contents. This analogy leads to some interesting comparisons. For instance, cache replacement algorithms are examples of on-line, distributed, locally greedy algorithms for data allocation in replicated systems [26] . Furthermore, the fact that caches do not have full server capabilities can be viewed as the case of a redirection policy for a replicated system, that sends requests for specific object types (e.g., dynamic pages) to a single server. Essentially, every major aspect of a caching scheme has its equivalent in replicated systems, but not a vice versa. Until now, researchers concentrated their efforts primarily on caching issues and the potential of replication was not fully exploited. Therefore it comes as no surprise that the current state of the art involves manual decisions concerning where to create a mirror site and copying the whole site's contents (coarse grain replication) even if some objects are rarely accessed. Moreover, requiring the clients to explicitly define the server from where to download, is still the order of the day for many sites. In this survey we attempt to: 1) provide an overview of the key issues when applying replication on the web, 2) summarize and categorize research done in the area and 3) identify open problems and directions for future work. A survey on web caching can be found in [59] . A number of bibliographies and reading materials for web caching are also available on line, e.g., [23] . Concerning replication and its challenges, [53] provides an early overview. The rest of the paper is organized as follows. Section 2 focuses on major research issues in replication. Section 3 discusses redirection. Section 4 discusses server selection and Section 5 describes issues in replica placement. We illustrate some open research problems in Section 6. Finally, Section 7 presents some concluding remarks. The large volume of requests (potentially millions per day) arriving at popular sites, can result in saturating even the most powerful web server, especially during peak hours. In order to tackle the problem, hot sites run multiple servers, potentially spanning the globe. The objective of
For an overview of caching and replication on the Internet, see REF 26] .
An overview of data replication on the Internet
Proceedings International Symposium on Parallel Architectures, Algorithms and Networks. I-SPAN'02
Proceedings International Symposium on Parallel Architectures, Algorithms and Networks. I-SPAN'02
Computer Science