Scalable strong consistency for web applications (original) (raw)

Controlled Transactional Consistency for Web Caching

In-memory read-only caches are widely used in cloud infrastructure to reduce access latency and to reduce load on backend databases. Operators view coherent caches as impractical at genuinely large scale and many clientfacing caches are updated in an asynchronous manner with best-effort pipelines.

Towards On-Demand Web Application Replication

2003

The increasing popularity of Web applications drives the need for systems that offer improve high performance web services by replicating applications at geographically distributed servers. In this paper, we propose a system for Web application replication that replicates both application code and its data. A key challenge in such a system is data replication and consistency, so that each replica server can access its shared data locally thereby avoiding the widearea network latency that would be incurred by a traditional ...

Replicating web applications on-demand

… Computing, 2004.(SCC …, 2004

Many Web-based commercial services deliver their content using Web applications that generate pages dynamically based on user profiles, request parameters etc. The workload of these applications are often characterized by a large number of unique requests and a significant fraction of data updates. Hosting these applications drives the need for systems that replicates both the application code and its underlying data. We propose the design of such a system that is based on on-demand replication, where data units are replicated only to servers that access them often. This reduces the consistency overhead as updates are sent to a reduced number of servers. The proposed system allows complete replication transparency to the application, thereby allowing developers to build applications unaware of the underlying data replication. We show that the proposed techniques can reduce the client response time by a factor of 5 in comparison to existing techniques for a realworld e-commerce application used in the TPC-W benchmark. Furthermore, we evaluate our strategies for a wide range of workloads and show that on-demand replication performs better than centralized and fully replicated systems by reducing the average latency of read/write data accesses as well as the amount of bandwidth utilized to maintain data consistency.

Consistent Replication in Distributed Multi-Tier Architectures

Proceedings of the 7th International Conference on Collaborative Computing: Networking, Applications and Worksharing, 2011

Replication is commonly used to address the scalability and availability requirements of collaborative web applications in domains such as computer supported cooperative work, social networking, e-commerce and e-banking. While providing substantial benefits, replication also introduces the overhead of maintaining data consistent among the replicated servers. In this work we study the performance of common replication approaches with various consistency guarantees and argue for the feasibility of strong consistency. We propose an efficient, distributed, strong consistency protocol and reveal experimentally that its overhead is not prohibitive. We have implemented a replication middleware that offers different consistency protocols, including our strong consistency protocol. We use the TPC-W transactional web commerce benchmark to provide a comprehensive performance comparison of the different replication approaches under a variety of workload mixes.

Implementing highly-available www servers based on passive object replication

1999

Abstract We investigate issues related to building highly available World Wide Web (WWW) servers on workstation clusters. We present a novel architecture that includes a dynamic Domain Name System (DNS) and a WWW server based on passive object replication. This architecture allows us to reduce the service down-time of a WWW server without impacting on the Hyper Text Transfer Protocol (HTTP) protocol (and thus on the WWW client software).

Efficient Data Distribution in a Web Server Farm Locking for Content Distribution

A novel locking protocol maintains data consistency in distributed and clustered file systems that are used as scalable infrastructure for Web server farms. H igh-performance Web sites rely on Web server " farms " —hundreds of computers serving the same content—for scalability, reliability, and low-latency access to Internet content. Deploying these scalable farms typically requires the power of distributed or clustered file systems. Building Web server farms on file systems complements hierarchical proxy caching. 1 Proxy caching replicates Web content throughout the Internet, thereby reducing latency from network delays and off-loading traffic from the primary servers. Web server farms scale resources at a single site, reducing latency from queuing delays. Both technologies are essential when building a high-performance infrastructure for content delivery. In this article, we present a cache consistency model and locking protocol cus-tomized for file systems that are used as scalable infrastructure for Web server farms. The protocol takes advantage of the Web's relaxed consistency semantics to reduce latencies and network overhead. Our hybrid approach preserves strong consistency for concurrent write sharing with time-based consistency and push caching for readers (Web servers). Using simulation, we compare our approach to the Andrew file system and the sequential consistency file system protocols we propose to replace. Data Consistency File system design carries assumptions about workloads and application consistency needs that, when applied to Web serving, lead to inferior performance. File system designers assume that data are shared infrequently and that such data require strong (sequential) consistency. 2 Consistency describes how processors in a parallel or distributed system view shared data; the sidebar on related work in data consistency presents examples. For Web serving, data are widely shared among many servers, as Figure 1 shows, and strong consistency guarantees 56 JULY • AUGUST 2001 Scalable Internet Services are irrelevant because they cannot be passed on to users (or applications) at the Web browser. The hypertext transfer protocol (HTTP) provides little consistency, and any guarantees the file system provides are lost in transit. System designers can trade consistency for performance in middleware, databases, and Internet applications, 3 and likewise in file systems. We introduce a hybrid approach to enhance file system consistency for Web serving. The publish consistency model applies to data views that are stable during a given file's open/close session. This model relaxes semantics, permitting data to be read and written asynchronously, in parallel. We implement publish consistency in the producer/consumer locking protocol to replace callback invalidations—messages from the server invalidating cached versions—of stale data with push caching, 4 transmitting updates to Web servers. With push caching, Web server data are immediately available. However, we preserve strong consistency for writers, supporting fine-grained concurrent write sharing for applications (such as databases) that author Web data. The producer/consumer (PC) protocol is particularly appropriate for files likely to be modified frequently, like stock quotes, weather information, and live image/data feeds (for example, Web cameras). The protocol does not address a Web site's referential (link) integrity; a protocol operating at file granularity cannot enforce consistency guarantees between multiple files that make up a site. Publish consistency and producer/consumer locking are effective file system modifications that increase scalability and performance in Web serv-er farms. Reduced network overheads allow for the deployment of more servers on a given network infrastructure, and lowered latencies allow more HTTP requests to be served on any given Web server. File systems give Web servers access to a rich data-sharing and data-management environment. By using a customized consistency model and protocol, file systems provide a scalable infrastructure for Web server farms without adding latency. While the sequential consistency (SC) model—in which all processes see things as if they shared a single memory—is correct for many applications, Web servers don't require sequential consistency because they serve data through the weakly consistent HTTP protocol. Web-serving performance benefits from weakened file system consistency. Performance concerns aside, sequential consistency is the wrong model for updating Web data, as it can result in errors when Web clients parse HTML or XML content. When a reader (Web serv-er) and a writer (content publisher) share a sequentially consistent file, the reader sees each change to file data, including files in the process of being modified. The Web server distributes these files to its clients where parsing errors occur when files are incompletely written. However, before the writer begins and after the writer finishes , the file contains valid content. A more suitable publish-consistency model has the Web serv-er continue to serve the old version of the file until the writer finishes. More formally, publish consistency is based on the concepts of sessions and views. In file systems, open and close function calls define a file session. Associated with each session is a view, or image, of the file data. Data is publish-consistent if (1) write views are sequentially consistent, (2) a read-er's view does not change during a session, (3) a reader creates a session view consistent with the close of a recent write session, and (4) readers become aware of all write sessions within a bounded amount of time.

Alternative Architectures and Protocols for Providing Strong Consistency in Dynamic Web Applications

World Wide Web, 2006

Dynamic Web applications have gained a great deal of popularity. Improving the performance of these applications has recently attracted the attention of many researchers. One of the most important techniques proposed for this purpose is caching, which can be done at different locations and within different stages of the process of generating a dynamic Web page. Most of the caching schemes proposed in literature are lenient about the issue of consistency; they assume that users can tolerate receiving stale data. However, an important class of dynamic Web applications are those in which users always expect to get the freshest data available. Any caching scheme has to incur a significant overhead to be able to provide this level of consistency (i.e., strong consistency); the overhead may be so much that it neutralizes the benefits of caching. In this paper, three alternative architectures are investigated for dynamic Web applications that require strong consistency. A proxy caching scheme is designed and implemented, which performs caching at the level of database queries. This caching system is used in one of the alternative architectures. The performance experiments show that, despite the high overhead of providing strong consistency in database caching, this technique can improve the performance of dynamic Web applications, especially when there is a long network latency between clients and the (origin) server.

Reliable Partial Replication of Contents in Web Clusters: Getting Storage without losing Reliability

Journal of Computers, 2006

Traditionally, distributed Web servers have used two strategies for allocating files on server nodes: full replication and full distribution. While full replication provides a highly reliable solution, it limits storage capacity to the capacity of the smallest node. On the other hand, full distribution provides higher storage capacity at the cost of lower reliability. A hybrid solution is partial replication where every file is allocated to a small number of nodes. The most promising architecture for a partial replication strategy is the Web cluster architecture. However, Web clusters present a big flaw from reliability perspective as they contain a single point of failure. To correct this flaw, in this paper we present a modified architecture: the Web cluster with distributed Web switch. Reliability of Web clusters is evaluated for different replication strategies. System evaluations show that our proposal leads to a highly reliable solution with high scalability.

Engineering web cache consistency

ACM Transactions on Internet Technology, 2002

Server-driven consistency protocols can reduce read latency and improve data freshness for a given network and server overhead, compared to the traditional consistency protocols that rely on client polling. Server-driven consistency protocols appear particularly attractive for large-scale dynamic Web workloads because dynamically generated data can change rapidly and unpredictably. However, there have been few reports on engineering server-driven consistency for such workloads. This article reports our experience in engineering server-driven consistency for a sporting and event Web site hosted by IBM, one of the most popular sites on the Internet for the duration of the event. We also examine an e-commerce site for a national retail store. Our study focuses on scalability and cachability of dynamic content. To assess scalability, we measure both the amount of state that a server needs to maintain to ensure consistency and the bursts of load in sending out invalidation messages when a popular object is modified. We find that server-driven protocols can cap the size of the server's state to a given amount without significant performance costs, and can smooth the bursts of load with minimal impact on the consistency guarantees. To improve performance, we systematically investigate several design issues for which prior research has suggested widely different solutions, including whether servers should send invalidations to idle clients. Finally, we quantify the performance impact of caching dynamic data with server-driven consistency protocols and the benefits of server-driven consistency protocols for large-scale dynamic Web services. We find that (i) caching dynamically generated data can increase cache hit rates by up to 10%, compared to the systems that do not cache dynamically generated data; and (ii) server-driven consistency protocols can increase cache hit rates by a factor of 1.5-3 for large-scale dynamic Web services, compared to client polling protocols. We have implemented a prototype of a server-driven consistency protocol based on our findings by augmenting the popular Squid cache.

Walrus-a low latency, high throughput Web service using Internet-wide replication

International Conference on Distributed Computing Systems Workshops, 1999

Today, most of the popular web sites are served from single locations. This basic Web client-server model is easy to deploy and maintain and thus is very successful. It suffers, however, from several efficiency and availability problems. This paper presents Walrus, a low-latency, high-throughput Web service that addresses some of these problems. Under Walrus, a single logical Web server can be replicated to several clusters of identical servers where each cluster resides in a different part of the Internet. An important aspect of Walrus is its ability to transparently direct the web browser to the best replica without any changes to the web server, web client, and network infrastructure. "Best" is a relative term, dependent on where the client is located on the network, the load on each replica, and more. Walrus deploys an elegant algorithm that balances these considerations.