IO-Lite: A Unified Buffering and Caching System By Pai, Druschel, and Zwaenepoel (1999) Presented by Justin Kliger for CS780: Advanced Techniques in Caching.

Slides:



Advertisements
Similar presentations
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Advertisements

MACHINE-INDEPENDENT VIRTUAL MEMORY MANAGEMENT FOR PAGED UNIPROCESSOR AND MULTIPROCESSOR ARCHITECTURES R. Rashid, A. Tevanian, M. Young, D. Golub, R. Baron,
High Performance Cluster Computing Architectures and Systems Hai Jin Internet and Cluster Computing Center.
Virtual Memory and I/O Mingsheng Hong. I/O Systems Major I/O Hardware Hard disks, network adaptors … Problems related with I/O Systems Various types of.
IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권.
Flash: An efficient and portable Web server Authors: Vivek S. Pai, Peter Druschel, Willy Zwaenepoel Presented at the Usenix Technical Conference, June.
1 Cheriton School of Computer Science 2 Department of Computer Science RemusDB: Transparent High Availability for Database Systems Umar Farooq Minhas 1,
1 Web Server Performance in a WAN Environment Vincent W. Freeh Computer Science North Carolina State Vsevolod V. Panteleenko Computer Science & Engineering.
Chapter 11: File System Implementation
Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
Jump to first page Flash An efficient and portable Web server presented by Andreas Anagnostatos CSE 291 Feb. 2, 2000 Vivek S. Pai Peter Druschel Willy.
File System Implementation
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Bugnion et al. Presented by: Ahmed Wafa.
Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
CS 333 Introduction to Operating Systems Class 18 - File System Performance Jonathan Walpole Computer Science Portland State University.
3.5 Interprocess Communication
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
RDMA ENABLED WEB SERVER Rajat Sharma. Objective  To implement a Web Server serving HTTP client requests through RDMA replacing the traditional TCP/IP.
File System Implementation
1 I/O Management in Representative Operating Systems.
U NIVERSITY OF M ASSACHUSETTS, A MHERST – Department of Computer Science Resource containers: A new facility for resource management in server systems.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Module I Overview of Computer Architecture and Organization.
1 Design and Performance of a Web Server Accelerator Eric Levy-Abegnoli, Arun Iyengar, Junehwa Song, and Daniel Dias INFOCOM ‘99.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Jonathan Walpole (based on a slide set from Vidhya Sivasankaran)
CS533 Concepts of Operating Systems Jonathan Walpole.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems CSCI-6140 – Computer Operating Systems David Goldschmidt, Ph.D.
CS 153 Design of Operating Systems Spring 2015 Lecture 17: Paging.
Penn State CSE “Optimizing Network Virtualization in Xen” Aravind Menon, Alan L. Cox, Willy Zwaenepoel Presented by : Arjun R. Nath.
« Performance of Compressed Inverted List Caching in Search Engines » Proceedings of the International World Wide Web Conference Commitee, Beijing 2008)
UNIX File and Directory Caching How UNIX Optimizes File System Performance and Presents Data to User Processes Using a Virtual File System.
A Measurement Based Memory Performance Evaluation of High Throughput Servers Garba Isa Yau Department of Computer Engineering King Fahd University of Petroleum.
Increasing Web Server Throughput with Network Interface Data Caching October 9, 2002 Hyong-youb Kim, Vijay S. Pai, and Scott Rixner Rice Computer Architecture.
Chapter 13: I/O Systems. 13.2/34 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Edouard et al. Madhura S Rama.
Supporting Multi-Processors Bernard Wong February 17, 2003.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
Free Space Management.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
Chapter 11: File System Implementation Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 11: File System Implementation Chapter.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
Latency Reduction Techniques for Remote Memory Access in ANEMONE Mark Lewandowski Department of Computer Science Florida State University.
Improving Disk Throughput in Data-Intensive Servers Enrique V. Carrera and Ricardo Bianchini Department of Computer Science Rutgers University.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition File System Implementation.
CS333 Intro to Operating Systems Jonathan Walpole.
Department of Computer Science and Software Engineering
Processes and Virtual Memory
Full and Para Virtualization
An Efficient Threading Model to Boost Server Performance Anupam Chanda.
Performance Optimization in Apache 2.0 Development: How we made Apache faster, and what we learned from the experience O’Reilly Open.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Presented by: Pierre LaBorde, Jordan Deveroux, Imran Ali, Yazen Ghannam, Tzu-Wei.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
FILE SYSTEM IMPLEMENTATION 1. 2 File-System Structure File structure Logical storage unit Collection of related information File system resides on secondary.
Transactional Flash V. Prabhakaran, T. L. Rodeheffer, L. Zhou (MSR, Silicon Valley), OSDI 2008 Shimin Chen Big Data Reading Group.
Kernel Design & Implementation
Module 12: I/O Systems I/O hardware Application I/O Interface
Jonathan Walpole Computer Science Portland State University
CE 454 Computer Architecture
CS490 Windows Internals Quiz 2 09/27/2013.
Memory Management for Scalable Web Data Servers
CS703 - Advanced Operating Systems
Lecture 15 Reading: Bacon 7.6, 7.7
Performance Issues in WWW Servers
Specialized Cloud Architectures
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Operating Systems Structure
Presentation transcript:

IO-Lite: A Unified Buffering and Caching System By Pai, Druschel, and Zwaenepoel (1999) Presented by Justin Kliger for CS780: Advanced Techniques in Caching Professor Zhang (Summer 2005)

Outline Problem & Significance Problem & Significance Literature Review Literature Review Proposed Solution Proposed Solution Design, Implementation, & Operation Design, Implementation, & Operation Experimental Design Experimental Design Results Results Conclusion Conclusion Further Research Further Research

The Problem The I/O subsystem and various applications all tend to use their own private I/O buffers The I/O subsystem and various applications all tend to use their own private I/O buffers Redundant data copying Redundant data copying Multiple buffering Multiple buffering Lack of cross-subsystem optimization Lack of cross-subsystem optimization

Problem’s Significance Wastes memory Wastes memory Reduces space Reduces space available for caching Causes higher cache Causes higher cache miss rates High CPU overhead Limits server throughput

Literature Review 1.POSIX I/O -Problem:double-buffering 2.Memory-mapped files (mmap) - Problem: - Problem: Not generalized to network I/O

Literature Review 3.Transparent Copy Avoidance -Problem: VM page alignment problems Copy-on-write faults Genie (emulated copy) Genie (emulated copy) Lack of full transparency leads to same problems 4.Copy Avoidance with Handoff Semantics -Problem: Lack of concurrent sharing reduces effectiveness

Literature Review 5.Fast buffers (fbufs) Designed by Druschel -Problem: Does not support filesystem access, or a file cache or a file cache 6.Extensible kernels -Problem: More overhead, not OS-portable

IO-Lite Solution Unified buffering and caching Unified buffering and caching Allow all applications and subsystems share the same buffered I/O data Allow all applications and subsystems share the same buffered I/O data Very simple at face value, Very simple at face value, very complex to implement

Basic Design Immutable buffers Immutable buffers Initial allocated data cannot be modified Initial allocated data cannot be modified Effectively read-only sharing Effectively read-only sharingAdvantages? Eliminates synchronization and protection problems Eliminates synchronization and protection problemsDisadvantages? I/O data cannot be modified in place I/O data cannot be modified in place

Further Design Considerations To make up for immutable buffers: Create buffer aggregate abstraction (an ADT) Create buffer aggregate abstraction (an ADT)mutable Reference to IO-Lite Window in VM Aggregates contain ordered list of form Aggregates contain ordered list of form Aggregates passed by value Aggregates passed by value Buffers passed by reference Buffers passed by reference

Further Design Considerations Buffer sharing must be concurrent Buffer sharing must be concurrent To achieve this, use similar method to fbufs To achieve this, use similar method to fbufs Expand to include the filesystem Expand to include the filesystem Adapts for general purpose OS Adapts for general purpose OS Worst case scenario (in terms of overhead): Worst case scenario (in terms of overhead): Page remapping Page remapping (when last buffer is allocated before first is deallocated) (when last buffer is allocated before first is deallocated)

IO-Lite Implementation New read & write API which supersedes the regular read & write New read & write API which supersedes the regular read & write size_t IOL_read(int fd, IOL_Agg **aggr, size_t size); size_t IOL_read(int fd, IOL_Agg **aggr, size_t size); size_t IOL_write(int fd, IOL_Agg *aggr); size_t IOL_write(int fd, IOL_Agg *aggr); IOL_Agg is buffer aggregate data type IOL_Agg is buffer aggregate data type Both operations are atomic Both operations are atomic

IO-Lite Implementation Applications: Recommends implementation in runtime I/O Libraries to avoid modifying all programs Recommends implementation in runtime I/O Libraries to avoid modifying all programsFilesystem: File cache data structure: File cache data structure: Network: Need to modify network device drivers to allow early demultiplexing (using a packet filter) Need to modify network device drivers to allow early demultiplexing (using a packet filter)

IO-Lite Operation With regards to the cache: With regards to the cache: Cache replacement basically LRU Cache replacement basically LRU Allows for application customization Allows for application customization Cache eviction controlled by VM daemon Cache eviction controlled by VM daemon Do >½ replaced pages contain I/O data? Do >½ replaced pages contain I/O data?

IO-Lite Operation Impact of immutable buffers: Impact of immutable buffers: Case 1: Entire object is modified Case 1: Entire object is modified Lack of in-place modification has no ill effect Lack of in-place modification has no ill effect Case 2: Subset of object needs to be modified Case 2: Subset of object needs to be modified Rather than recopy entire object, use chaining Rather than recopy entire object, use chaining Performance loss is small if blocks are localized Performance loss is small if blocks are localized Case 3: Scattered subset needs modification Case 3: Scattered subset needs modification IO-Lite incorporates mmap interface for this IO-Lite incorporates mmap interface for this

Experimental Design Compared: Apache Apache Widely used web server Flash (event-driven HTTP server) Flash (event-driven HTTP server) Designed by authors in previous year Flash-Lite (Flash modified to use IO-Lite API) Flash-Lite (Flash modified to use IO-Lite API) New design by authors

Experimental Design 1.General: varied requested file size 40 requests for same file 40 requests for same file File size ranged from 500 bytes – 200 Kbytes File size ranged from 500 bytes – 200 Kbytes 2.Persistent connections Reduces overhead Reduces overhead 3.CGI Additional I/O traditionally slows servers Additional I/O traditionally slows servers

Experimental Design 4.Real workloads Shows performance benefits by allowing more space for caching Shows performance benefits by allowing more space for caching Based on Rice’s CSCI department logs Based on Rice’s CSCI department logs 5.Wide Area Network (WAN) Test throughput with slow clients connecting Test throughput with slow clients connecting 6.Applications Incorporated API into UNIX programs Incorporated API into UNIX programs

Results 1.General test: Bandwidth increase of 43% over Flash, 137% over Apache Bandwidth increase of 43% over Flash, 137% over Apache No real difference for files less than 5KBytes No real difference for files less than 5KBytes

Results 2.Persistent Connections Flash-Lite even more effective at smaller file sizes Flash-Lite even more effective at smaller file sizes 3.CGI All servers slow, but Flash-Lite still much better All servers slow, but Flash-Lite still much better 4.Real workload Flash-Lite throughput 65% greater than Apache Flash-Lite throughput 65% greater than Apache 5.WAN Flash-Lite does not suffer from slow clients Flash-Lite does not suffer from slow clients 6.Applications Varied improvement for all programs tested Varied improvement for all programs tested

Conclusion IO-Lite consistently improved performance in all contexts tested IO-Lite consistently improved performance in all contexts tested Requires modification to numerous libraries and network device drivers EG: see Peng, Sharma, & Chiueh (2003) EG: see Peng, Sharma, & Chiueh (2003)

Further Research There have been 42 citations Almost all fell between Almost all fell between Authors have not written any follow-ups Authors have not written any follow-ups Lack of papers that involve implementation of IO-Lite or a variation of it Probably because of complexity and number of modifications that are necessary Probably because of complexity and number of modifications that are necessary

Appendix: Figures 2) 4) 5) 3) 6)

Questions?