Presentation is loading. Please wait.

Presentation is loading. Please wait.

IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권.

Similar presentations


Presentation on theme: "IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권."— Presentation transcript:

1 IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권

2 Contents Introduction IO-Lite Design Implementation Performance Conclusion & Critique

3 Introduction General-purpose operating systems provide inadequate support for server applications One of the problem is lack of integration among the various input-output (I/O) subsystems

4 Introduction The Problems of separate buffering /caching: Redundant data copying Multiple buffering Lack of cross-subsystem optimization IO-Lite: unifies all buffering and caching in the system for general purposing OS.

5 IO-Lite Design: Principles Immutable Buffers All I/O data buffers are immutable. Page Based Control Buffer Aggregates Buffer aggregates are instances of an abstraction data type (ADT) that represent I/O data To modify the I/O data, buffer aggregates are used

6 IO-Lite Design Interprocess Communication (IPC) IO-Lite uses an IPC mechanism similar to fbufs to support safe concurrent sharing from network subsystem to the file system from x-kernel to a general-purpose operating system IO-Lite and the Filesystem The filesystem itself remains unchanged

7 IO-Lite Design Access Control IO-Lite maintains cached pools of buffers with a common access control list (ACL). Data objects with the same ACL can be allocated in the same IO-Lite buffer

8 IO-Lite Design

9 IO-Lite and Applications To take full advantage of IO-Lite, application programs can use an extended I/O API that is based on buffer aggregates. IO-Lite I/O API Size_t IOL _read (int fd, IOL_Agg **aggr, size_t size) Size_t IOL_write (int fd, IOL_Agg *aggr)

10 IO-Lite Design IO-Lite and the Network Some modifications are required to network device drivers Programs using IO-Lite must determine the ACL of a data object prior to storing the object in memory With IO-Lite, early demultiplexing is necessary for best performance

11 IO-Lite Design Cache Replacement Cache replacement in a unified caching /buffering system is difficult from that of a conventional file cache Cache entries are maintained in a list ordered first by current use, then by time of last access. (eg. read, write,.. )

12 IO-Lite Design Impact of Immutable I/O buffers All data is modified Only additional cost is a buffer allocation Only a subset of the data is modified Chaining, indexing, buffer allocation cost Widely scattered Use mmap of UNIX system

13 IO-Lite Design Cross-Subsystem Optimization A unified buffering/caching system enables certain optimizations across applications and OS subsystems not possible in conventional I/O systems. Eg. Checksum Generation number and address identify uniquely data contents

14 IO-Lite Design Operation in a Web server IO-Lite’s ability to eliminate data copying and multiple buffering can dramatically reduce the cost of serving static and dynamic content The impact is particularly strong in the case when a cached copy of the request content exists

15 Implementation Network System BSD Network system File System Some modification of 4.4 BSD derived system VM System BSD VM system IPC System Modified BSD IPC System

16 Performance

17

18

19 Figure 8. Various application runtimes

20 Conclusion & Critique Conclustion This paper presents the design, implementation, and evaluation of IO-Lite IO-Lite shows good performance Critique Well described and considered system Idea is simple and excellent


Download ppt "IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권."

Similar presentations


Ads by Google