Paper by: Yu Li, Jianliang Xu, Byron Choi, and Haibo Hu Department of Computer Science Hong Kong Baptist University Slides and Presentation By: Justin.

Slides:



Advertisements
Similar presentations
Storing Data: Disk Organization and I/O
Advertisements

Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
Part IV: Memory Management
Flash storage memory and Design Trade offs for SSD performance
CS4432: Database Systems II Buffer Manager 1. 2 Covered in week 1.
Introduction to Database Systems1 Records and Files Storage Technology: Topic 3.
Myoungsoo Jung (UT Dallas) Mahmut Kandemir (PSU)
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement.
CSE506: Operating Systems Block Cache. CSE506: Operating Systems Address Space Abstraction Given a file, which physical pages store its data? Each file.
Chapter 11: File System Implementation
Chapter 101 Virtual Memory Chapter 10 Sections and plus (Skip:10.3.2, 10.7, rest of 10.8)
File Management Systems
Boost Write Performance for DBMS on Solid State Drive Yu LI.
Lecture 11: Memory Management
Data Indexing Herbert A. Evans. Purposes of Data Indexing What is Data Indexing? Why is it important?
CS 333 Introduction to Operating Systems Class 18 - File System Performance Jonathan Walpole Computer Science Portland State University.
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
Chapter 9 Virtual Memory Produced by Lemlem Kebede Monday, July 16, 2001.
Computer Organization Cs 147 Prof. Lee Azita Keshmiri.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 11 Database Performance Tuning and Query Optimization.
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
Hystor : Making the Best Use of Solid State Drivers in High Performance Storage Systems Presenter : Dong Chang.
Solid State Drive Feb 15. NAND Flash Memory Main storage component of Solid State Drive (SSD) USB Drive, cell phone, touch pad…
Lecture 21 Last lecture Today’s lecture Cache Memory Virtual memory
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Chapter 10 Storage and File Structure Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Introduction to Database Systems 1 Storing Data: Disks and Files Chapter 3 “Yea, from the table of my memory I’ll wipe away all trivial fond records.”
File System Implementation Chapter 12. File system Organization Application programs Application programs Logical file system Logical file system manages.
Memory Management. Roadmap Basic requirements of Memory Management Memory Partitioning Basic blocks of memory management –Paging –Segmentation.
The Design and Implementation of Log-Structure File System M. Rosenblum and J. Ousterhout.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Page Replacement Allocation of.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Virtual Memory 1 1.
Computer Systems Week 14: Memory Management Amanda Oddie.
CS333 Intro to Operating Systems Jonathan Walpole.
Memory Management & Virtual Memory © Dr. Aiman Hanna Department of Computer Science Concordia University Montreal, Canada.
Demand Paging Reference Reference on UNIX memory management
A Lightweight Transactional Design in Flash-based SSDs to Support Flexible Transactions Youyou Lu 1, Jiwu Shu 1, Jia Guo 1, Shuai Li 1, Onur Mutlu 2 LightTx:
ExLRU : A Unified Write Buffer Cache Management for Flash Memory EMSOFT '11 Liang Shi 1,2, Jianhua Li 1,2, Chun Jason Xue 1, Chengmo Yang 3 and Xuehai.
CHAPTER 3-3: PAGE MAPPING MEMORY MANAGEMENT. VIRTUAL MEMORY Key Idea Disassociate addresses referenced in a running process from addresses available in.
Virtual Memory Review Goal: give illusion of a large memory Allow many processes to share single memory Strategy Break physical memory up into blocks (pages)
1 Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples (not covered.
10.1 Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples.
 The emerged flash-memory based solid state drives (SSDs) have rapidly replaced the traditional hard disk drives (HDDs) in many applications.  Characteristics.
Elastic Parity Logging for SSD RAID Arrays Yongkun Li*, Helen Chan #, Patrick P. C. Lee #, Yinlong Xu* *University of Science and Technology of China #
CS161 – Design and Architecture of Computer
Memory Management Virtual Memory.
Jonathan Walpole Computer Science Portland State University
Chapter 2 Memory and process management
Data Indexing Herbert A. Evans.
Module 11: File Structure
CS161 – Design and Architecture of Computer
Chapter 9: Virtual Memory – Part I
An Adaptive Data Separation Aware FTL for Improving the Garbage Collection Efficiency of Solid State Drives Wei Xie and Yong Chen Texas Tech University.
Review.
O.S Lecture 13 Virtual Memory.
Chapter 9: Virtual-Memory Management
Page Replacement.
Computer Architecture
Chapter 13: Data Storage Structures
Parallel Garbage Collection in Solid State Drives (SSDs)
Lecture 11: Flash Memory and File System Abstraction
Chapter 14: File-System Implementation
Lecture 9: Caching and Demand-Paged Virtual Memory
Buddy Allocation CS 161: Lecture 5 2/11/19.
COMP755 Advanced Operating Systems
Chapter 13: Data Storage Structures
Virtual Memory.
Chapter 13: Data Storage Structures
Virtual Memory 1 1.
Presentation transcript:

Paper by: Yu Li, Jianliang Xu, Byron Choi, and Haibo Hu Department of Computer Science Hong Kong Baptist University Slides and Presentation By: Justin Weaver

Flash devices offer… Much faster random reads compared to HDDs Lower power consumption But random writes can be very slow Proposed solution called StableBuffer Takes advantage of efficient write patterns Implemented as DBMS buffer manager add-on No need for firmware or OS driver updates

Why are random writes to NAND flash so slow? Only empty cells can be written to Writes at page level, but erases operate on blocks Overwrite operation: read, erase, modify, write

Execute all writes to empty slots in a pre- allocated buffer on the flash device Take note of the writes actual destinations and look for efficient write patterns Flush the buffer by writing the discovered patterns to their actual locations

Sequential Writes – consecutive addresses Focused Writes – addresses within a specific range Partitioned Writes – mix of sequential writes to several areas

How should the space inside of the StableBuffer be managed? How should efficient write patterns be recognized without too much overhead? Which write patterns should be flushed to their destinations, and when should this happen?

StableBuffer Pre-allocated area on the flash device Broken into slots, each the size of a page Example: 4MB SB, 4KB pages 1,024 slots Translation Table In-memory table that maps actual destinations with slot numbers Example entry: Implemented as hash table, key is destination address Bitmap for Free Slots 1 empty, 0 occupied Free slot pointer points to next open slot Metadata added to pages for fault tolerance

Reader Writer Flush Manager

Checks to see if page is in SB first If it is, read it from the SB If not, read it from the actual destination Paper claims the overhead is negligible because of hashing

Overwrite page in table if destination is already there, then return OR... Invoke flushing if free slot pointer is null Write page to free slot Update table and bitmap Update free slot pointer

Write pattern recognition On-Demand Incremental Pattern Flush Strategies Passive Proactive

On-Demand Finds efficient write patterns upon request Scan on sorted destination addresses finds sequential and partitioned patterns Sliding window on sorted addresses finds focused area patterns Incremental Maintains pattern information; updated after every write Maintain set of S i = (addr min, addr max ) to find sequential writes Maintain set of P l where each entry points to all S i with size l; each P l is a candidate partitioned write pattern Maintain set of F i = (addr min, addr max, set addr ) where set addr is a set of addresses between min and max; each F i is a candidate focused write pattern

Passive Flushes pages when there are no open slots Triggers on-demand pattern recognition OR chooses incrementally generated patterns Chooses to flush the longest instance that is expected to be written fastest Proactive Flushes pages during any write operation when qualified to do so Requires incremental pattern recognition Runs in the background, detecting good efficient write patterns Checks if maintained patterns are qualified for flushing Qualified patterns have a threshold value higher than θ x where x is one of the three write patterns θ seq = l min / l θ par = θ seq * T par / T seq θ focus = θ seq * T focus / T seq

Three flash devices 16GB SSD 8GB USB flash drive 8GB SDHC card Three StableBuffer configurations Ondemand+Passive Incremental+Passive Incremental+Proactive TPC-C benchmark on PostgreSQL 8.4

All measurements outperform direct method SD card has poor performance with incremental+proactive Incremental+passive and ondemand+passive perform the best

SD card performs very poorly in parallel write test USB flash drive and SD card are clearly IO bound, not CPU bound

Best performance achieved when StableBuffer size was set to 4MB for this particular drive

Using the StableBuffer DBMS add-on, random write performance on flash memory was shown to dramatically increase No firmware or OS driver updates were needed

Comprehension questions?... Presentation questions... Does optimal performance rely too heavily on the need to benchmark each specific device model first? Could developments in firmware and/or OS drivers make an add-on like StableBuffer no longer necessary? USB flash drives and SD cards would probably never be used for DBMS storage; why not just test several different SSD models instead? Could OS support for the TRIM command help with random write performance within a DBMS?