Scaling Dynamic Content Applications through Data Replication - Opportunities for Compiler Optimizations Cristiana Amza UofT.

Slides:



Advertisements
Similar presentations
Exploiting Distributed Version Concurrency in a Transactional Memory Cluster Kaloian Manassiev, Madalin Mihailescu and Cristiana Amza University of Toronto,
Advertisements

Monitoring Data Structures Using Hardware Transactional Memory Shakeel Butt 1, Vinod Ganapathy 1, Arati Baliga 2 and Mihai Christodorescu 3 1 Rutgers University,
1 Cheriton School of Computer Science 2 Department of Computer Science RemusDB: Transparent High Availability for Database Systems Umar Farooq Minhas 1,
Cooperative Caching of Dynamic Content on a Distributed Web Server Vegard Holmedahl, Ben Smith, Tao Yang Speaker: SeungLak Choi, DB Lab., CS Dept.
Fundamentals, Design, and Implementation, 9/e Chapter 14 JDBC, Java Server Pages, and MySQL.
What is it? –Large Web sites that support commercial use cannot be written by hand What you’re going to learn –How a Web server and a database can be used.
INTRODUCTION The Group WEB BROWSER FOR RELATION Goals.
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Handling Web Hotspots at Dynamic Content Web Sites Using DotSlash Weibin Zhao Henning Schulzrinne Columbia University NYMAN’04.
CS 491B Project Web Galaxy Wendy Tan Web Galaxy Project Introduction Demo Analysis.
Multiple Tiers in Action
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Handling Web Hotspots at Dynamic Content Web Sites Using DotSlash Weibin Zhao Henning Schulzrinne Columbia University Dagstuhl.
Overview  Strong consistency  Traditional approach  Proposed approach  Implementation  Experiments 2.
Proxy Cache Leonid Romanovsky Olga Fomenko Winter 2003 Instructor: Konstantin Sinyuk.
DotSlash: Providing Dynamic Scalability to Web Applications Weibin Zhao and Henning Schulzrinne Department of Computer Science, Columbia University More.
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications C. Faloutsos – A. Pavlo How to Scale a Database System.
Sitefinity Performance and Architecture
PNUTS: YAHOO!’S HOSTED DATA SERVING PLATFORM FENGLI ZHANG.
Web Application Architecture and Communication. Displaying a Web page in a Browser
Krerk Piromsopa. Advance Net-Centric Computing Technology Krerk Piromsopa. Department of Computer Engineering. Chulalongkorn University.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
Orbe: Scalable Causal Consistency Using Dependency Matrices & Physical Clocks Jiaqing Du, EPFL Sameh Elnikety, Microsoft Research Amitabha Roy, EPFL Willy.
1 Design and Performance of a Web Server Accelerator Eric Levy-Abegnoli, Arun Iyengar, Junehwa Song, and Daniel Dias INFOCOM ‘99.
Database Replication Policies for Dynamic Content Applications Gokul Soundararajan, Cristiana Amza, Ashvin Goel University of Toronto EuroSys 2006: Leuven,
Presented by Dr. Greg Speegle April 12,  Two-phase commit slow relative to local transaction processing  CAP Theorem  Option 1: Reduce availability.
Tejasvi Kumar Technology Specialist – VSTS Microsoft Corporation
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Web Caching By Neeraj Agrawal. Caching Caching is widely used for improving performance in many context( e.g processor caches in hardware, buffer pool.
1 Specification and Implementation of Dynamic Web Site Benchmarks Sameh Elnikety Department of Computer Science Rice University.
Evaluating FERMI features for Data Mining Applications Masters Thesis Presentation Sinduja Muralidharan Advised by: Dr. Gagan Agrawal.
Consistent and Efficient Database Replication based on Group Communication Bettina Kemme School of Computer Science McGill University, Montreal.
Architectural Characterization of an IBM RS6000 S80 Server Running TPC-W Workloads Lei Yang & Shiliang Hu Computer Sciences Department, University of.
Applications Web et bases de données en grappe Séminaire InTech 3 Février 2005 – Grenoble.
Intro – Part 2 Introduction to Database Management: Ch 1 & 2.
Usenix Annual Conference, Freenix track – June 2004 – 1 : Flexible Database Clustering Middleware Emmanuel Cecchet – INRIA Julie Marguerite.
ECE200 – Computer Organization Chapter 9 – Multiprocessors.
Architecture for Caching Responses with Multiple Dynamic Dependencies in Multi-Tier Data- Centers over InfiniBand S. Narravula, P. Balaji, K. Vaidyanathan,
Preventive Replication in Database Cluster Esther Pacitti, Cedric Coulon, Patrick Valduriez, M. Tamer Özsu* LINA / INRIA – Atlas Group University of Nantes.
PatentScope - Electronic Publication World Intellectual Property Organization.
TPC BENCHMARK W (Web Commerce) SeungLak Choi Dept. of Computer Science, KAIST.
Case Study Dynamic Website - Three Tier Architecture
Database Replication in Tashkent CSEP 545 Transaction Processing Sameh Elnikety.
Fast Crash Recovery in RAMCloud. Motivation The role of DRAM has been increasing – Facebook used 150TB of DRAM For 200TB of disk storage However, there.
Cache Coherence Protocols 1 Cache Coherence Protocols in Shared Memory Multiprocessors Mehmet Şenvar.
Database replication policies for dynamic content applications Gokul Soundararajan, Cristiana Amza, Ashvin Goel University of Toronto Presented by Ahmed.
Computer Science Lecture 13, page 1 CS677: Distributed OS Last Class: Canonical Problems Distributed synchronization and mutual exclusion Distributed Transactions.
By Shruti poundarik.  Data Objects and Files are replicated to increase system performance and availability.  Increased system performance achieved.
1 Admission Control and Request Scheduling in E-Commerce Web Sites Sameh Elnikety, EPFL Erich Nahum, IBM Watson John Tracey, IBM Watson Willy Zwaenepoel,
Highly available database clusters with JDBC
R. Jiménez-Peris Scalability Evaluation of the Replication Support of JOnAS, an Industrial J2EE Application Server A. Paz, F. P é rez-Sorrosal, M. Patiño-Martínez,
DATABASE REPLICATION DISTRIBUTED DATABASE. O VERVIEW Replication : process of copying and maintaining database object, in multiple database that make.
How Web Database Architectures Work CPS181s April 8, 2003.
A Comparative Evaluation of Transparent Scaling Techniques for Dynamic Content Servers Presented by Chen Zhang Written by C. Amza, A. L. Cox,
Scalable Data Scale #2 site on the Internet (time on site) >200 billion monthly page views Over 1 million developers in 180 countries.
An Architectural Evaluation of Java TPC-W Harold “Trey” Cain, Ravi Rajwar, Morris Marden, Mikko Lipasti University of Wisconsin-Madison
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
TPC Benchmark™ W 2002 년 6 월 이상호 교수 숭실대학교 데이터베이스 연구실
Abhinav Kamra, Vishal Misra CS Department Columbia University
Netscape Application Server
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
PHP / MySQL Introduction
Martin Rinard Laboratory for Computer Science
Database Driven Websites
HyperLoop: Group-Based NIC Offloading to Accelerate Replicated Transactions in Multi-tenant Storage Systems Daehyeok Kim Amirsaman Memaripour, Anirudh.
Building a Database on S3
7.1. CONSISTENCY AND REPLICATION INTRODUCTION
Admission Control and Request Scheduling in E-Commerce Web Sites
Client-Server Model: Requesting a Web Page
Presentation transcript:

Scaling Dynamic Content Applications through Data Replication - Opportunities for Compiler Optimizations Cristiana Amza UofT

2 Dynamic Content is Ubiquitous 1 2 3

3 We focus on scaling the database Dynamic Content Web Sites 3-tier: Web Server, Application Server, Database Query Response HTTP Request HTML Page Web Server Database Server App Server

4 Common Scaling Solution Query Response HTTP Request HTML Page Web ServerApp Server SMP Database Server

5 Alternative: Database Cluster Read-one, write all replication Cluster of Database Servers Query Response HTTP Request HTML Page Web ServerApp Server

6 Where to Implement? Web Server Scheduler App Server Query Response Query Response Cluster of Database Servers

7 Problem: Conflict Ordering Bestseller book Consistent order for conflicting transactions (Same client buys the book on all replicas) Buy Query Response Cluster of Database Servers

8 Synchronous (Eager) Replication Web Server Scheduler App Server Query Response Cluster of Database Servers Write Does not perform well

9 Our Asynchronous Solution Web Server Scheduler App Server Query Response Cluster of Database Servers Write

10 Our Asynchronous Solution Web Server Scheduler App Server Query Response Cluster of Database Servers How about conflict ordering ?

11 Idea: Application Code Known begin-transaction write a write b write c commit-transaction

12 Make Conflicts Explicit begin-transaction use a, b, c write a last-use a write b last-use b write c commit-transaction (Could be automated by compiler)

13 Order Conflicts  Scheduler assigns versions at “use” table declaration  Atomic (per transaction)  Per table  If conflict, assign a higher version number

14 Execution Rules  Enforced by database proxy at each query  Wait for appropriate version of tables to be produced  Versions are produced At commit/abort At last-use

15 How It Works begin use a, b, c  get versions e.g., (0, 0, 0) write a write b write c commit T0: a0, b0, c0 T1: a1, b1, c1

16 Order-placement begin orders, order_line, item, customer, credit_card insert new order in orders for all items in shopping_cart { insert order in order_line adjust item.stock field in item } find customer insert info in credit_card commit

17 Annotated Order-placement begin orders, order_line, item, customer, credit_card insert new order in orders table release orders for all items in shopping_cart insert order in order_line release order_line for all items in shopping_cart adjust item.stock field in item release item find customer release customer insert info in credit_card commit

18 Refine “Object” Granularity begin orders.*, order_line.*, item.stock, customer.* … insert new order in orders table release orders.* for all items in shopping_cart insert order in order_line release order_line.* for all items in shopping_cart adjust item.stock field in item release item.stock find customer release customer.* insert info in credit_card commit

19 Value Flow Analysis Known argument values for program BestSellers.php ? Category=“KIDS” Infer values of query fields Bestseller transaction on category = “KIDS” is disjoint from book order in category = “SPORTS”

20 Dependences $var = SELECT … SELECT …. WHERE … = $var

21 Other Applications for Optimizations Transparent Caching Determine if an update transaction should invalidate a cached query response Scheduler Database server App Server Query Response Query Response

22 Comparison to Eager

23 TPC-W Benchmark  Models an on-line book store  Three standard workloads (differ in % of writes) browsing (5%), shopping (20%) ordering (50%)  Application size: 4 GB

24 Comparison to Eager

25 Comparison to Eager

26 Comparison to Loose Consistency Methods

27 Conclusions  1-copy SR can be implemented with good performance  Key ingredients: asynchrony and conflict reduction  Looser consistency models needed only for (very) write- heavy workloads

28 Consistency & Lazy Replication L4 Switch Schedulers LOCK WR RD LOCK Seq SN SN LOCK Async writes  scaling Conflict ordering  consistency Conflict ? Order SN Web/App serversDatabase engines

29 Experimental Environment  Software Apache + PHP, MySQL  Hardware Athlon 800 Mhz, 256 MB RAM, Fast Ethernet  Implementation: on 8 replicas  Simulation: for up to 60 databases Calibrated against prototype