Lazy Type Changes in Object-oriented Databases

Slides:



Advertisements
Similar presentations
Optimistic Methods for Concurrency Control By : H.T. Kung & John T. Robinson Presenters: Munawer Saeed.
Advertisements

Efficient Upgrades Steve Mallam, Sales Engineer. Highly available systems 24/7/365 Service Level Agreements Mission critical operations Time sensitive.
CS6223: Distributed Systems
Building a Database on S3 Matthias Brantner, Daniela Florescu, David Graf, Donald Kossmann, Tim Kraska Xiang Zhang
The google file system Cs 595 Lecture 9.
Replication and Consistency (2). Reference r Replication in the Harp File System, Barbara Liskov, Sanjay Ghemawat, Robert Gruber, Paul Johnson, Liuba.
1 Cheriton School of Computer Science 2 Department of Computer Science RemusDB: Transparent High Availability for Database Systems Umar Farooq Minhas 1,
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.
Distributed Systems 2006 Styles of Client/Server Computing.
Lecture 6 – Google File System (GFS) CSE 490h – Introduction to Distributed Computing, Winter 2008 Except as otherwise noted, the content of this presentation.
CS 582 / CMPE 481 Distributed Systems
Transaction Management and Concurrency Control
Chapter 19 Database Recovery Techniques. Slide Chapter 19 Outline Databases Recovery 1. Purpose of Database Recovery 2. Types of Failure 3. Transaction.
September 24, 2007The 3 rd CSAIL Student Workshop Byzantine Fault Tolerant Cooperative Caching Raluca Ada Popa, James Cowling, Barbara Liskov Summer UROP.
The Google File System.
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) Lecture 18: Replication Control All slides © IG.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Software Upgrades in Distributed Systems Barbara Liskov MIT Laboratory for Computer Science October 23, 2001.
4/3/ Atomicity & Durability Using Shadow Paging CSEP 545 Transaction Processing for E-Commerce Philip A. Bernstein Copyright ©2003 Philip A. Bernstein.
Distributed Databases
Data Concurrency Control And Data Recovery
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Low Cost Commit Protocols for Mobile Computing Environments Marc Perron & Baochun Bai.
Darkstar. Darkstar is a Sun research project on massively parallel online games The objective (not yet demonstrated!) is to supply a framework for massively.
CSC 556 – DBMS II, Spring 2013 May 1, 2013 DBMS ACID Properties & Concurrency Control.
1 Multiversion Reconciliation for Mobile Databases Shirish Hemanath Phatak & B.R.Badrinath Presented By Presented By Md. Abdur Rahman Md. Abdur Rahman.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Transaction Management Overview. Transactions Concurrent execution of user programs is essential for good DBMS performance. – Because disk accesses are.
4/1/ Atomicity & Durability Using Shadow Paging CSEP 545 Transaction Processing for E-Commerce Philip A. Bernstein Copyright ©2007 Philip A. Bernstein.
Software System Lab. Transactions Transaction Concept A transaction is a unit of program execution that accesses and possibly updates various.
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT By Jyothsna Natarajan Instructor: Prof. Yanqing Zhang Course: Advanced Operating Systems.
9 1 Chapter 9_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
10 1 Chapter 10_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
Antidio Viguria Ann Krueger A Nonblocking Quorum Consensus Protocol for Replicated Data Divyakant Agrawal and Arthur J. Bernstein Paper Presentation: Dependable.
Dsitributed File Systems
Lazy Modular Upgrades in Persistent Object Stores Chandrasekhar Boyapati, Barbara Liskov, Liuba Shrira, Chuang-Hue Moh, Steven Richman MIT CSAIL October.
Chapter 13 Managing Transactions and Concurrency Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.

Database recovery techniques
Database Recovery Techniques
CMSC 611: Advanced Computer Architecture
Memory Hierarchy Ideal memory is fast, large, and inexpensive
DURABILITY OF TRANSACTIONS AND CRASH RECOVERY
DBMS & TPS Barbara Russell MBA 624.
Chapter 9: Virtual Memory
Transaction Management and Concurrency Control
MongoDB Distributed Write and Read
File System Implementation
Google Filesystem Some slides taken from Alan Sussman.
Review.
The Google File System Sanjay Ghemawat, Howard Gobioff and Shun-Tak Leung Google Presented by Jiamin Huang EECS 582 – W16.
Two Ideas of This Paper Using Permissions-only Cache to deduce the rate at which less-efficient overflow handling mechanisms are invoked. When the overflow.
Chapter 9: Virtual-Memory Management
On transactions, and Atomic Operations
7.1. CONSISTENCY AND REPLICATION INTRODUCTION
CSE 4340/5349 Mobile Systems Engineering
Understanding Transaction Isolation Levels
On transactions, and Atomic Operations
write on board in advance: handouts, names, Hoare quote
Recovery System.
Hybrid Transactional Memory
Lecture 21: Replication Control
Chapter 17: Application Recovery
Database Recovery 1 Purpose of Database Recovery
Transactional Information Systems:
Lecture 21: Replication Control
Concurrency control (OCC and MVCC)
Distributed Databases
Presentation transcript:

Lazy Type Changes in Object-oriented Databases Shan Ming Woo and Barbara Liskov MIT Lab. for Computer Science December 1999

Background Behavior of OODB apps composed of behavior of persistent objects Behavior of objects governed by their types Type changes needed to update OODB apps How to execute type change?

Requirements A type change may affect other types An upgrade consists of a set of related type changes Upgrades are ordered Execution of an upgrade have to be atomic w.r.t. app transactions to prevent type errors

Naïve Execution Step 1: shut down the database Step 2: transform objects Step 3: restart the database Drawback: database availability suffers Not suitable for large-scale databases and mission-critical databases Solution: lazy type changes

Lazy Type Changes Objects transformed lazily, i.e. just before use Database availability not affected Workload of an upgrade: 1. Spread effectively over time 2. Distributed fairly among apps Suitable for all databases including large-scale and mission-critical ones

Theory Type change: CT =<T, T’, f T> Upgrade: U =<n, {Ci }> Transform function Pre-type Post-type Serial # Set of type changes

Theory (cont.) Transform functions: Act on one object at a time Preserve object identities, i.e. object references survive type changes Should not ‘modify’ any data Upgrades have to be complete, i.e. should not affect other types

Implementation Design (1) Based on Thor [ECOOP99] Distributed client/server OODBMS Optimistic concurrency control Servers store objects, validate transactions Clients cache objects, operate on cached objects on behalf of apps Object identity partly location dependent Objects in client cache indexed by a resident object table (ROT) Each ROT entry stores a dispatch vector pointer and a field pointer for an object Pointers in an empty entry are null Pointers in a full entry are up-to-date

Implementation Design (2) Single Server Upgrades stored at the server and pushed to clients Objects transformed by clients before used by apps Objects transformations are regarded as modifications Invariant: All full ROT entries represent up-to-date objects. At receipt of new upgrade, client aborts running transaction if it used affected objects to guarantee atomicity scans ROT and empties affected entries to preserve invariant

Implementation Design (3) Single server continued Special client cooperate with garbage collector to transform rarely used objects Upgrades complete in order: when all objects affected by the oldest upgrade has been transformed, it is discarded Problem: objects change sizes across transformations Size decreases---overwrite original object Size increases---find space on the same server page: If succeed, update page offset table Otherwise, write to another page and replace original object with surrogate Reference through surrogate is shortcut when the referring object is modified

Implementation Design (4) Multiple servers A master server stores the master copy of all upgrades Upgrades pushed from master server to other servers Each server sends upgrades to its clients and each client processes upgrades as in the single server implementation Problem: need to maintain consistency when a client talks to multiple servers---an upgrade may arrive at one server before another Client acts as relay to restore consistency: each commit request is tagged with serial number of newest upgrade at client

Conclusion Lazy type changes preserve database availability and can be efficiently implemented---essential for large-scale and mission-critical databases Future work Project focused on persistent objects: how to avoid recompiling applications? Universal application framework? How to extend to non-database environment?