Lazy Modular Upgrades in Persistent Object Stores Chandrasekhar Boyapati, Barbara Liskov, Liuba Shrira, Chuang-Hue Moh, Steven Richman MIT CSAIL October.

Slides:



Advertisements
Similar presentations
1 CSIS 7102 Spring 2004 Lecture 9: Recovery (approaches) Dr. King-Ip Lin.
Advertisements

Chapter 15: Transactions Transaction Concept Transaction Concept Concurrent Executions Concurrent Executions Serializability Serializability Testing for.
Phase Reconciliation for Contended In-Memory Transactions Neha Narula, Cody Cutler, Eddie Kohler, Robert Morris MIT CSAIL and Harvard 1.
Replication and Consistency (2). Reference r Replication in the Harp File System, Barbara Liskov, Sanjay Ghemawat, Robert Gruber, Paul Johnson, Liuba.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
Thread-Level Transactional Memory Decoupling Interface and Implementation UW Computer Architecture Affiliates Conference Kevin Moore October 21, 2004.
E-Transactions: End-to-End Reliability for Three-Tier Architectures Svend Frølund and Rachid Guerraoui.
Distributed Systems 2006 Styles of Client/Server Computing.
Ownership Types for Object Encapsulation Barbara Liskov Chandrasekhar Boyapati Liuba Shrira Laboratory for Computer Science Massachusetts Institute of.
Transaction Processing IS698 Min Song. 2 What is a Transaction?  When an event in the real world changes the state of the enterprise, a transaction is.
Chapter 8 : Transaction Management. u Function and importance of transactions. u Properties of transactions. u Concurrency Control – Meaning of serializability.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
September 24, 2007The 3 rd CSAIL Student Workshop Byzantine Fault Tolerant Cooperative Caching Raluca Ada Popa, James Cowling, Barbara Liskov Summer UROP.
Transaction Management WXES 2103 Database. Content What is transaction Transaction properties Transaction management with SQL Transaction log DBMS Transaction.
Ownership Types for Object Encapsulation Authors:Chandrasekhar Boyapati Barbara Liskov Liuba Shrira Presented by: Charles Lin Course: CMSC 631.
CS 603 Data Replication February 25, Data Replication: Why? Fault Tolerance –Hot backup –Catastrophic failure Performance –Parallelism –Decreased.
Software Upgrades in Distributed Systems Barbara Liskov MIT Laboratory for Computer Science October 23, 2001.
Distributed Databases
Transactional Web Services, WS-Transaction and WS-Coordination Based on “WS Transaction Specs,” by Laleci, Introducing WS-Transaction Part 1 & 2, by Little.
Data Structures and Programming.  John Edgar2.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
1 The Design of a Robust Peer-to-Peer System Rodrigo Rodrigues, Barbara Liskov, Liuba Shrira Presented by Yi Chen Some slides are borrowed from the authors’
Transactions Sylvia Huang CS 157B. Transaction A transaction is a unit of program execution that accesses and possibly updates various data items. A transaction.
© 2007 by Prentice Hall 1 Introduction to databases.
CS 162 Discussion Section Week 9 11/11 – 11/15. Today’s Section ●Project discussion (5 min) ●Quiz (10 min) ●Lecture Review (20 min) ●Worksheet and Discussion.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 15: Transactions.
Retro: Modular and efficient retrospection in a database Ross Shaull Liuba Shrira Brandeis University.
Concurrency Control in Database Operating Systems.
SE-02 COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require.
Chapter 16 Recovery Yonsei University 1 st Semester, 2015 Sanghyun Park.
©Silberschatz, Korth and Sudarshan15.1Database System Concepts Chapter 15: Transactions Transaction Concept Transaction State Implementation of Atomicity.
CSCI-383 Object-Oriented Programming & Design Lecture 18.
Ronny Krashinsky Erik Machnicki Software Cache Coherent Shared Memory under Split-C.
ActiveContext Erwann Wernli. Outline Why dyn. software update is challenging (5’) Our approach (5’) Current stage of the research (5’)
Feb 1, 2001CSCI {4,6}900: Ubiquitous Computing1 Eager Replication and mobile nodes Read on disconnected clients may give stale data Eager replication prohibits.
Chapter 15: Transactions Loc Hoang CS 157B. Definition n A transaction is a discrete unit of work that must be completely processed or not processed at.
Chapter 14 Transactions Yonsei University 1 st Semester, 2015 Sanghyun Park.
Storage Systems CSE 598d, Spring 2007 Rethink the Sync April 3, 2007 Mark Johnson.
EbiTrack Architecture Version 1.0 September 24, 2012.
Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden CSAIL, MIT Tolerating Byzantine Faults in Database Systems using Commit Barrier Scheduling.
Software System Lab. Transactions Transaction Concept A transaction is a unit of program execution that accesses and possibly updates various.
Detecting Atomicity Violations via Access Interleaving Invariants
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
The Object-Oriented Database System Manifesto Malcolm Atkinson, François Bancilhon, David deWitt, Klaus Dittrich, David Maier, Stanley Zdonik DOOD'89,
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
Ur/Web: A Simple Model for Programming the Web
I/Watch™ Weekly Sales Conference Call Presentation (See next slide for dial-in details) Andrew May Technical Product Manager Dax French Product Specialist.
Database Management System
Software Upgrades for Distributed Systems
Relational Algebra Chapter 4, Part A
Transaction Processing
CS122B: Projects in Databases and Web Applications Winter 2018
Providing Secure Storage on the Internet
Transactions Sylvia Huang CS 157B.
Section 18.8 : Concurrency Control – Timestamps -CS 257, Rahul Dalal - SJSUID: Edited by: Sri Alluri (313)
CSE 486/586 Distributed Systems Consistency --- 1
Relational Algebra Chapter 4, Sections 4.1 – 4.2
From Viewstamped Replication to BFT
write on board in advance: handouts, names, Hoare quote
Lazy Type Changes in Object-oriented Databases
Chapter 17: Application Recovery
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Transactional Information Systems:
Abstractions for Fault Tolerance
Executable Specifications
UNIT -IV Transaction.
Upgrading Distributed Systems is not rsync
CS122B: Projects in Databases and Web Applications Winter 2019
CS122B: Projects in Databases and Web Applications Spring 2018
Presentation transcript:

Lazy Modular Upgrades in Persistent Object Stores Chandrasekhar Boyapati, Barbara Liskov, Liuba Shrira, Chuang-Hue Moh, Steven Richman MIT CSAIL October 2003

Persistent Object Store Stores objects with methods –Objects belong to classes –Classes implement types Persistent Root

Transactions Objects are accessed within transactions –Transactions mask concurrency and failures Persistent Root Client 1 Client 2

Upgrades Upgrades are needed to –Correct errors –Improve performance –Meet changing requirements

Outline Defining upgrades Upgrade execution Upgrade modularity conditions Performance

Defining Upgrades Upgrade must preserve persistent state –E.g., set implementation changes from vector to hash table A class-upgrade is TF: old-class  new-class –TF changes representation of objects –System preserves identity

Completeness Upgrades can be –Compatible –Incompatible An upgrade is a set of class-upgrades –must contain all class-upgrades needed to maintain type correctness

System executes Upgrades Requires transforming all old-class objects Goal: don’t interfere with applications –Don’t stop the world Goal: be efficient in space and time –Don’t copy the database or use versions Goal: be expressive –Don’t limit expressive power of TFs

Solution: Lazy, Just in Time Applications continue to run –Objects are transformed just before first use Later upgrades run in parallel with earlier ones –If x has two pending transforms, they run in upgrade order

How System Works When application accesses x –Interrupt the application –Run earliest pending transform for x –Each transform runs in its own transaction Application continues after transform commits Transforms can be interrupted too

Example …; U1; … TF(x); A1; … TF(y); A2; … U1 is installed A1 starts to run, accesses x TF(x) runs and commits A1 continues and commits A2 starts to run, accesses y TF(y) runs and commits A2 continues and commits

Example …; U1; … TF(x); A1; … TF(y); A2; … U1 is installed A1 starts to run, accesses x TF(x) runs and commits A1 continues and commits A2 starts to run, accesses y TF(y) runs and commits A2 continues and commits Problem: suppose TF(y) accesses x

Modular Reasoning Want to support modular reasoning: –Programmer can reason about TF as if it were an extra method of the old-class –Programmer can assume same old-class interfaces and invariants X TF

Desired Semantics Upgrades appear to run when installed –Serialized before all later application transactions Upgrades appear to run in upgrade order Within an upgrade, transforms run as if each was the first to run

Order within an Upgrade Consider x and y due to be upgraded If TF(y) uses x (transitively) then if [TF(x); TF(y)], this must have same effect as [TF(y); TF(x)] YX

Ensuring Correct Behavior Based on encapsulation: An object must encapsulate every object it depends on A TF is well-behaved if it uses only encapsulated sub-objects X

Approach Analyze TFs Usually they will be well-behaved Otherwise notify user –User can use triggers to control order –Or, we maintain versions Z XY

Performance Implemented in Thor Analyzed overhead FE Clients OR FE App

Baseline Overhead

Transform Overhead Time per object (μs)T1T2b Transform Commit

Conclusions Correctness conditions for any upgrade system –Support modular reasoning Our lazy implementation approach –Correct and efficient Future work: upgrades in distributed systems