Implementing A Simple Storage Case Consider a simple case for distributed storage – I want to back up files from machine A on machine B Avoids many tricky.

Slides:



Advertisements
Similar presentations
Global States.
Advertisements

Relaxed Consistency Models. Outline Lazy Release Consistency TreadMarks DSM system.
Lecture 11: Operating System Services. What is an Operating System? An operating system is an event driven program which acts as an interface between.
Silberschatz and Galvin  Operating System Concepts Module 16: Distributed-System Structures Network-Operating Systems Distributed-Operating.
Netprog: TCP Details1 TCP Details. Netprog: TCP Details2 TCP Lingo When a client requests a connection, it sends a “SYN” segment (a special TCP segment)
Recovery CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley 2002)
COS 461 Fall 1997 Transaction Processing u normal systems lose their state when they crash u many applications need better behavior u today’s topic: how.
FlareCo Ltd ALTER DATABASE AdventureWorks SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS Slide 1.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Lecture 19 Distributed Programming (Ch. 10) Other message-passing programming models  Channels vs mailboxes  Synchronous vs asynchronous.
File Transfer: FTP and TFTP
CSCE 515: Computer Network Programming TCP Details Wenyuan Xu Department of Computer Science and Engineering.
1 More on Distributed Coordination. 2 Who’s in charge? Let’s have an Election. Many algorithms require a coordinator. What happens when the coordinator.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
1 ICS 214B: Transaction Processing and Distributed Data Management Distributed Database Systems.
Distributed Commit. Example Consider a chain of stores and suppose a manager – wants to query all the stores, – find the inventory of toothbrushes at.
P2P Project Mark Kurman Nir Zur Danny Avigdor. Introduction ► Motivation:  Firewalls may allow TCP or UDP connections on several specific ports and block.
Remote Files. Traditional Memory Interfaces Process Virtual Memory Virtual Memory File Management File Management Physical Memory Physical Memory Storage.
CMPT Dr. Alexandra Fedorova Lecture XI: Distributed Transactions.
Election Algorithms. Topics r Issues r Detecting Failures r Bully algorithm r Ring algorithm.
Distributed File Systems Sarah Diesburg Operating Systems CS 3430.
Distributed Deadlocks and Transaction Recovery.
Recovery-Oriented Computing User Study Training Materials October 2003.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
Distributed Transactions Chapter 13
1 CS 430 Database Theory Winter 2005 Lecture 16: Inside a DBMS.
H2OS Audit Trail And History page. What is the Audit Trail? The Audit Trail is a companion for the H2OS Customers table. It contains a historical record.
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.
TCP/IP Protocol Suite 1 Chapter 19 Upon completion you will be able to: File Transfer: FTP and TFTP Understand the connections needed for FTP file transfer.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
O PERATING S YSTEM. What is an Operating System? An operating system is an event driven program which acts as an interface between a user of a computer,
Network Architecture Protocol hierarchies Design Issues for the layers
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT By Jyothsna Natarajan Instructor: Prof. Yanqing Zhang Course: Advanced Operating Systems.
5. The Transport Layer 5.1 Role of Transport Layer It bridge the gab between applications and the network layer. Provides reliable cost-effective data.
File Transfer And Access (FTP, TFTP, NFS). Remote File Access, Transfer and Storage Networks For different goals variety of approaches to remote file.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Netprog: Client/Server Issues1 Issues in Client/Server Programming Refs: Chapter 27.
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
Log Shipping, Mirroring, Replication and Clustering Which should I use? That depends on a few questions we must ask the user. We will go over these questions.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
Lecture 5 Page 1 CS 111 Summer 2013 Bounded Buffers A higher level abstraction than shared domains or simple messages But not quite as high level as RPC.
Chapter 9 The Transport Layer The Internet Protocol has three main protocols that run on top of IP: two are for data, one for control.
Tech Support Process By Catie Cotcher. Session Overview What to do if you have a Technical Issue What information should I check Errors Tips on calling.
Backup and Disaster Dr Stuart Petch CeG IT/IS Manager
1.2 The Network Edge Beginning at the edge of a network we are looking at the components with which we are most familiar - namely, the computers that we.
Distributed File Systems
Reddy Mainampati Udit Parikh Alex Kardomateas
Introduction to Networking Recital 4
Multiple Writers and Races
Database System Implementation CSE 507
湖南大学-信息科学与工程学院-计算机与科学系
Commit Protocols CS60002: Distributed Systems
Outline Announcements Fault Tolerance.
TCP Details.
EEC 688/788 Secure and Dependable Computing
Starting TCP Connection – A High Level View
Distributed File Systems
Issues in Client/Server Programming
Distributed File Systems
Distributed File Systems
Database Backup and recovery
EEC 688/788 Secure and Dependable Computing
Distributed File Systems
EEC 688/788 Secure and Dependable Computing
Update : about 8~16% are writes
Distributed File Systems
Presentation transcript:

Implementing A Simple Storage Case Consider a simple case for distributed storage – I want to back up files from machine A on machine B Avoids many tricky issues – Multiple nodes – Multiple writers – Most synchronization How might I design such a system? 1

Distributed Backup Keeping it simple, there’s only one live machine – Machine A And one machine holding the backups – Machine B Periodically I want to back up A’s files on B Occasionally I want to fetch a backed up file from B to A 2

Illustrating the Situation 3 Machine A Machine B We want to copy files from A to B on command Preferably only files not yet on B (or files that have changed) Stored on B in a way that will make it possible to recover them

Basic Approach Separate processes run on A and B B runs a server process – Always active – Waiting for requests from A A runs a process on demand – When the user wants to perform backup A’s process contacts B’s to tell it what to do 4

The Process On A (Backing Up) Needs to know what should be backed up Three choices: 1.A stores information about what was already backed up 2.A asks B for information on what was already backed up 3.A sends B an inventory of what A has and B asks for what it needs Which is best? 5

Illustrating the Choices for A 6 1. A keeps an inventory 2. A asks B 2. A tells B what he’s got ?

The Process on B (Backing Up) Server process waiting for A to contact it – Or should it be pro-active... ? Assuming A knows what is to be backed up, Should A send B an inventory of what’s coming? Or should A simply feed files to B, one by one? 7

Illustrating The Choices 8 foo bar foobar... fo o bar 1. Ship an inventory first 2. Just send the files foo bar foobar... fo o bar

Backing Up One File A decides file foo needs to be backed up Does he: 1.Send all of file foo at once? 2.Figure out what’s changed in file foo since he last backed it up and only send the diffs? In the second case, how does A know what to do? – And how does he tell it to B? 9

Sending the Entire File Assuming A is going to send the entire file, does he: 1.Send a message telling B what he’s going to do (e.g., name of file, length of file, etc.) and wait for B to say “OK” 2.Just start sending pieces of the file (maybe with control info in the first message?) Should A use TCP or UDP? Can B ask for flow control? 10

Sending Multiple Files Should A send all of file foo before sending file bar? – When does he start sending bar? 1.After the last part of foo is sent? 2.After B tells him foo is taken care of? Or start sending multiple files off at once? – All in parallel? – Some number >1 but less than all? 11

Handling An Incoming File on B File foo starts arriving on B What does B do? – Buffer all the data of foo till he has a complete file? – Write the contents of each incoming message to the appropriate place in the file on disk? – Fill a fixed size buffer up, then write it to disk? 12

How Does B Handle Multiple File Transfers? What is used to indicate to B that file foo is done and file bar is coming? Does B confirm handling of an entire file to A? – Even if A is using TCP? If multiple files are moving at once, how does B tell which part belongs to which file? Can B request that A slow down? 13

What Records Does B Keep? Nothing but the files themselves? The files plus an inventory of what he’s got? A transcript of a backup session? – If so, how many kept and for how long? 14

How About Failures? What happens if B fails during backup? – During the setup phase? – During transfer of one/multiple files? What happens if A fails during backup? – During setup phase? – While transferring files? In either case, what happens on recovery? 15

Restoring Files Does A ask for restore of full set of files? Or for selected files? How does A know what is backed up on B? – Does A keep records? – Does he ask B for an inventory? How does A handle moving an individual file? – Akin to the questions about B receiving it 16

Restoration From B’s Side Just on a per-file basis? – I.e., A asks for what he wants and B provides it Or some big “whole set” backup? – Done one file at a time or in parallel? Does A provide flow control information to B? Does B keep records about restorations? 17

Failures During Restoration What if A fails in the middle of a restore operation? What happens to files being restored at time of failure? What if B fails in the middle of a restore operation? – What’s different than the actions taken on A’s failure? What happens on recovery? – Complete restart or from where the failure occurred? 18

Extending the System What if B is a backup machine servicing several other machines? How does B’s software differ? Do the machines B services run the same software as before? Or does their client software need to be altered? 19

Going From Here We will start talking about these design questions in class Think about what you consider the best answers to each Be prepared to suggest alternatives and discuss why to use them Concentrate on distributed systems aspects – But some local issues may impact the distributed issues 20