1 / 12

G22.3250-001

G22.3250-001. Pulling Back: How to Go about Your Own System Project?. Robert Grimm New York University. The Problem. How to build a system? Complex systems raise a lot of issues Completeness, interface design, implementation Functionality, speed, fault-tolerance

ilario
Télécharger la présentation

G22.3250-001

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. G22.3250-001 Pulling Back: How to Go about Your Own System Project? Robert Grimm New York University

  2. The Problem • How to build a system? • Complex systems raise a lot of issues • Completeness, interface design, implementation • Functionality, speed, fault-tolerance • System builders require guidance • Hence, design principles and/or hints • Embody experience with previous systems • Embody understanding of problem domain • That’s quite abstract, let’s look at an example

  3. The End-to-End Argument:The Challenge • Let’s assume a system includes communications (duh) • We typically have a communication subsystem (also, duh) • Where should we place functionality? • In the communication subsystem? • In the client and/or server? • In both (redundantly)?

  4. The End-to-End Argument:The Answer • “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the endpoints of the communication system. Therefore, providing that questioned function as a feature of the communication system itself is not possible. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement).”

  5. Careful File Transferas an Example • Goal: reliably transfer file from A to B • Steps • A: CFTP reads file from disk, receiving fixed-size blocks • Block size typically different from cylinder size • A: CFTP asks communication system to send data • Packet size typically different from block size • Network moves data in packets • B: Communication system reads packets and passes them to CFTP • B: CFTP writes data to disk

  6. Careful File Transferas an Example (cont.) • Things that can go wrong • Read data on A may be incorrect (think disk fault) • File system, communication system, CFTP may be buggy • Processor or memory might have a transient error • Network may drop packet, change packet, deliver twice • Either A or B may crash some time into operation • The only safe way of detecting errors • CFTP on B reads file back and compares checksum with checksum on A • Retries on mismatch • However, what about performance?

  7. Careful File Transferas an Example (cont.) • Naïvely retrying can lead to terrible performance • Improve network reliability to avoid whole file retries • Running checksum • But we still need end-to-end checks • Adding functionality at lower levels is tricky • None  bad performance • Too much • Overhead for all applications using subsystem • Subsystem may not have enough information to be efficient • In case of CFTP • Retrying in application leads to duplication of functionality • Always providing reliable transport harms other applications

  8. Other Properties That Require End-to-End Checks • Message delivery guarantees • Secure transmission of data • Duplicate message suppression • Guaranteed FIFO message delivery • Transaction management • So, why are we all using TCP and SSL?

  9. Where Are the Ends?Two Illustrative Examples • Internet telephony: The users • We don’t want reliability from communications systembut rather timely delivery • We accept (some) distortion or drop-outs • After all, we can always say “would you kindly repeat that?”or “what the f$@* did you just say?” • PC-based answering machine: The caller and disk (!) • We really want an accurate recording • After all, we cannot ask the user

  10. Where Are the Ends?Another Example (?) • An application and its libraries, specifically java.* • Java Collections • ArrayList, HashMap, Iterator • Java (traditional) I/O • Reader, Writer • How do these two class libraries differ? • Obviously, by functionality • Less obviously, in implementation style • Which style is the more appropriate style? • Where have we seen the e2e argument this semester?

  11. Do We Have Any Other Guidelines?

  12. What Do You Think?

More Related