Upload
benedict-mcleod
View
14
Download
0
Embed Size (px)
DESCRIPTION
Distributed Systems. Lecture # 3. Administrivia. Projects Design and Implement a distributed file system Paper Discussions Discuss papers as case studies. Paper Discussions. Attended by ~40 students 15% grade (10 + 5) Paper discussion modeled after program committee meetings - PowerPoint PPT Presentation
Citation preview
Distributed Systems
Lecture # 3
Administrivia
• Projects– Design and Implement a distributed file
system
• Paper Discussions– Discuss papers as case studies
Paper Discussions
• Attended by ~40 students• 15% grade (10 + 5)• Paper discussion modeled after program committee
meetings • Each Paper presented by 4 students
– Motivator (context of work)– Presenter– Advocate– Devil’s advocate– Class discussion and vote
Assignments
• Assignments:– One big project
• Teams of 5
– Network File System• Both paper design and implementation• Communication (2 weeks: Design and implement)• Naming (2 weeks: design and implement)• Storage: Multiple users (2 weeks: design and implement)• Reliability (make it work in 3 weeks)
Design Documents
• 400 words: One pager
• Two main sections– What is your design?– What were the alternatives
• Only bullet points– A picture is worth a thousand words
Implementation
• .. then you implement your design
• No copying of code– This is a serious offense!
• Use Java: Lots of existing code and libraries– Code submission at the end of the week– TAs will need to see a demo
Layered Communication
Application
Distributed System (RPC)
Socket
OSTCP/IPUDP/IP
Sun RPC
• What does a Sun RPC request contain?• Wire format
– Xid
– Call or reply
– RPC version
– program #
– program version
– procedure #
– auth bits
– Marshaled arguments
Marshalling: Sun RPC
• Marshaling arguments• "Linearize" data • "Externalize" data: Formats defined by XDR standard
Easy for e.g. int -- same representation, though portable byte-order...Collections? include a length.
Pointers? Pass by value or reference?
• Return Values– How to return?
• IDL: In, Out, INOut
• RMI: Objects– Recursive packing
RPC: Summary
• Synchronous, Blocking• Mimics a procedural call• Involves:
– Data transfer: Marshaling– Thread Migration
RPC Components
Client Server
Stub Skeleton
Client Framework Server Framework
Network
NFS Transparency
• Tension between performance and consistency– Syntax preserved– Not Semantics– File read/write semantics
• Only check on open()• Consistency?
– Events!
• Expose Distribution: Java RMI
Events
• Subscribe/notify
• Asynchronous
• Non-blocking
Subscribe
Notify
Events
• Better performance than polling for larger tasks– Do it, let me know when you are done
• Preferred mode of communication for interactive applications: none-blocking
• But Harder to program– Synchronization– Spaghetti code
Programming Events
Main thread
Events Handler
Subscribe
Notify
Distributed Shared Memory
Int x;x = 10;
Int x;..print x;
X = 10• Consistency?• Deadlock?• DSM abstraction?
• Make it explicit
Tuple-spaces
Tuple-space
• Explicit DSM• Tuple as the atomic data object • Clearly defined semantics for insert/read/peak
Your distributed file system
• What would you use?
Your file system
Java
Operating System
-Client-servercommunication- Naming of files-Storage of files- Consistency- Availability
Your file-system
File Server
Remote Client• Communication?• Name Server?
• Directories?• Storage
• Local file-system?• Consistency of data/names• Fault-tolerance