disk

42 downloads 742 Views 770KB Size Report
File Structures, Michael J. Folk, Bill Zoellick, Greg Riccardi,. An OO Approach with C++, Addison Wesley,1998.  Database Design &Implementation, Edward ...
File Organization (Dosya Düzenleme) Ders Notları #1 (Disk Organization & Performance) «Alim-i mursid, koyun olmalı; kuş olmamalı. Koyun, kuzusuna süt; kuş yavrusuna kay verir.»

1

Textbook & References  File Structures, Michael J. Folk, Bill Zoellick, Greg Riccardi,

An OO Approach with C++, Addison Wesley,1998  Database Design &Implementation, Edward Sciore, John Wiley, 2009

2

Definitions-1  File Structure is a combination of representations for data in files and of operations

for accessing the data on disk.  Data structures: deal with data in the main memory  File structures: deal with the data in the secondary storage  Main operations on file structure : search, add, remove, update, sort (external sorting) , merge  Main Metrics: simplicity, complexity, scalability, programmability, and maintainability  Structures for static files vs. dynamic files differs a lot.  Structures differ according to the media as well.  A rough History Access Methods:

3

 Sequential Search  simple index search (before 1960 )  tree structures ( BST-1960s, AVL-1963, B-tree (B+-tree) – 1970s  Simple Hashing (before 1980)  Dynamic Hashing (after 1980)

Based on •usage characteristics of data •data type (basic vs. multi-dim data) •physical characteristics of machine

Definitions-2  Physical File is the particular collections of bytes stored in disk.  Logical file is the view of physical file from the standpoint of application

   



program. There are thousands of physical files on disk, but the program can have only 20 logical files. OS make the connections between physical file and logical files. Example: int fd = open (filename, flags[,mode]); Read/Write: First OS make the connection then read/write with using logical descriptor. Physical Devices as Files. The program access the “file” without knowing whether the file comes from disk, tape, another computer, keyboard(stdin), screen (stdout)...  % list.exe > myoutput  % prog1 | prog2  % list | sort

4

MAIN GOAL  Increase reliability while increasing the speed at the lowest cost

 Data is inevitably scattered over disk pages in real world.  To decrese the speed, we have to minimize the number of access by

 clustering (temporal & locality) as far as possible  Getting e/t you need at one acess.  The physical characteristics of the hardware together with data

structures and the algorithms are used to predict the efficiency of file operations.  Now we will study physical characteristics of the hardware...

5

Storage Hierarchy Machine instructions

Cost/unit increase

Cache

1M, 15 cycle

(~40 times expensive)

Main Memory 1G-16GB, 200 cycle (10 nanosec.) volatile media

Capacity decrease

100.000 times slower

USB Flash Storage

Reliability increase

Non-volatile media

Secondary Storage Non-volatile media

(like 10sec vs. 10days) 80G, 10 milisec.

CD-RW DVD-RW Floppy Disk Serial access

Magnetic Tape storage

6

technologies used in storage  Cache memory: «static RAM» (SRAM)  Primary memory: «dynamic RAM» (DRAM)  Secondary memory:  HDD (Hard Disk Drive): magnetically store and R/W by magnetic arm

 SSD (Solid state Disk): electronic disk

 CD_ROM (Compact Disk-Read Only Memory): store optically, read by laser  WORM (Write Once Read Many)

 DVD (Digital Video Disk): store optically, read by laser. (smaller wavelength and laser type)

 BD (Blue-Ray Disk): uses blue-ray technology

7

technologies used in storage  USB Flash memory: EEPROM (NAND-type)  100 times faster than HDD, 100 times expensive than HDD  Wears out! «Wear-level» technique to lessen the rewrite limit problem.

 Magnetic Tapes:  cheap storage for archieval purposes  Only Sequential acces  Charactericstics of «9-track tape»  Tape density: bpi = Bpi (6250 ~ 30.000)  Tape speed: ips (30 ~ 200)  Gap size: 0,3 ~ 0,75 inch (i) frame

track

«9-track tape» Data block

8 Gap (R/W durma/kalkma için bırakılan alan)

Tape length  How much tape is needed to store 1 million 100-B records if we have tape

with 6250 bpi and 0,3 inch-size gaps?  g: length of gap size  n: # of data blocks  b: length of data block

s= n * (b+g) Blocking factor (bf) = # of records / block bf=1b=100/6250 Bpi = 0,016 i  s= 1 million * (0,3+0,016) =26.333 feet bf=50b=100*50/6250 Bpi = 0,8 i  s= (1 million/50) * (0,3+0,8) = 1833 feet Effective recording density (erd) =«#of Bytes /data_block» /length required to store data block

bf=1 100 /0,316 = 316,4 bpi bf=50 100*50 / 1,1 = 4545,45 bpi 9

Tape data trasmission rate  Nominal trans. rate = Tape density (bpi) * Tape speed (ips)  Effective trans. rate = effective recording density (erd) * Tape

speed (ips)  If we have 200 ips tape, determine the nominal and effective trans rates? Nominal trans. rate= 6250 Bpi * 200 ips= 1250 KBps bfr = 1  effective trans. rate = 316,4 Bpi * 200 = 63,3 KBps bfr = 50  effective trans. rate = 4545,45 bpi * 200 = 909 KBps

10

Basic Organization of DISK (hard or floopy):

Since there is only 1 datapath to the computer, only 1 read/write head can be active at a time.

11

Disk Organizations: Sector,Cluster  It has to do with abstraction. Improves disk access by decreasing ts.  Sector – the fix-length, smallest addressable portion of a disk.

Typically 512 bytes- 4K.

 Cylinder-Head-Sector addressing (physical CHS addressing) to access the

sector, then bring it into memory (buffer)  OS does not use CHS addressing, rather it uses LBS (logical block addresing) which orders all sectors from 0 to ‘the last sector’. If needed, a firmware (bios) on disk converts LBS adress to CHS address  Cluster is the smallest unit of space that can be allocated to a file by

OS. OS views the file as a series of clusters. A cluster has a fix number of contiguous sectors.  FAT in File Manager (a module in OS) ties physical sectors to the logical clusters by using FAT. (A) track (B) geometrical sector (C) track sector (D) cluster 12

Disk performance metrics-1  Note: B = byte

1KB=1024B (210B), 1MB=1024KB (220B), 1GB=1024MB (230B)  Capacity= C seek time (ts), rotation speed (tr), transfer rate (tt)  C = (# of platters) * (# of tracks/platter) * (# of B/track) example: 80GB,160GB ts = the time it takes for the actuator to move the disk head from its current location to requested track, ex: tsmin=0, tsmax=15-20msec, tsave.= (1/3)*tsmax= 5ms. The slowest part of total cost. tr = the time spent to move the head over the requested sector. Ex: 10000rpm  6msec is the full rotation time. in average ~1/2 of

full rotation, tt = (# of bytes transfered / # of bytes on a track) * rotation time the speed at which bytes pass by the disk head, to be transfered to/from memory. TOTAL ACCESS TIME= ts+tr+tt  transfer_rate: B/msec (Sample value= 100MB/sec) 13

Example1 10.000 rotateperminute disk Bytes / sector= 512 Sectors / track = 170 Tracks / cylinder = 16 Ave. Seek time= 8 msec Ave. Rotational delay= 3 msec transfer rate= 1/6 * (512*170)= 14500 bytes / msec Transfer time for a single sector? = (6/170)msec

Example 2: in real disk we transfer at least a sector, why? 10.000rpm tsave= 5 msec Transfer rate=83MB/sec Transfer time for 1B= 1/83MB = 0,000012 msec Transfer time for 1MB = 0,012 msec Average access to 1 B= 5 + 3 + 0,000012 = 8,000012 msec Average access to 1 MB = 5 + 3 +0,012 msec= 8,012 msec That is why we transfer a sector for each access !... 14

Internal / external fragmentation  fragmentation means that something is broken

into parts that are detached, isolated or incomplete.  May occur at al level of organization. Sector, block, cluster, file...  Since the sector size is fix, usually there is no convenient fit between records and sectors. This leads to “internal fragmentation” within the sectors”. Think similiar unused holes at different levels..  Sector spaning is a simple solution for this problem. Disadvantage?

aaaaa

aa---

bbbbb

aaaaa

aabbb

bbccc

ccc--

 Disk may have lots of small-sized chunks of unallocated blocks, but no large

chunks. Thus it may not be possible to allocate space for a large file, even though disk has plenty of free space. This is called “external fragmentation”. 15

Block-level interface(block,page )  Block is a sequence of bytes.  Adv.:  OS hides hardware details (like different sector sizes, different addressing) by block-level interface. OS maintains mapping b/w blocks and sectors.  Blocking increase througput (successful data transfer rate).  A Block size is at least 1 sector-size and determined by OS.. OS views the disk as a series of blocks.   



Block numbers start from 0. BF = # of records stored in each block. While Page is a block-sized area allocated in main memory. OS provides several methods to acces disk blocks.  readblock(n,p): read data from block-n to page-p  writeblock(n,p): write data in page-p to block-n.  allocate(k,n): find k contigious available blocks as close to block-n as possible.  deallocate(k,n): deallocate k contigious blocks as close to block-n as possible. OS keeps track of which blocks are available for allocation. 2 basic strategies exists:  Disk map  Free list

16

Block size:  Block contention increase with larger blocks. Thus, OLAP applications/web

search applications, which has higher random access prefers small-sized block.  Desicion support/data warehouse applciations, which has higher sequential access prefers large-sized block.

17

In terms of

Prefered size

Application

Block contention

Small

OLAP

Random row access speed

Small

OLAP

Sequential row access speed

Large

Desicion support Data warehouse

Disk performance metrics-2 (Additional metrics)  Block transfer time (btt)= (B/ transfer_rate)  bulk_transfer_rate (btr) = rate of transfering useful

bytes in the blocks (kullanışlı veri transfer hızı) btr = B/(B+G) * transfer_rate (G is gap size) Bulk time to transfer of k consecutive blocks on the same cylinder? ts + tr + (k* (B/bulk_transfer_rate))

18

File-level interface  Client views file a sequence of bytes. (No notion of block,

sector..) . Client can directly access to a byte in the file..  OS hides the details from client. For example, in the below code, blocks are accessed through pages. I/O buffers are allocated.... How many disk access requires for f.read() and f.write()? Look at “journey of a byte” at the following slides

 f.seek() method performs 2 conversions:  specified byte position  logical block reference (simple)  Logical block reference  physical block reference

(depends on file system implementation) 19

File implementation strategies Contiguous Allocation: each file as a sequence of contiguous blocks. Simplest strategy. Both internal and external fragmentation Extent-based allocation: similiar to contiguous allocation. Reduces internal/external frag. by storing a file a sequence of fix-length extents. File is extended 1 extent at a time Indexed allocation: extend file 1 block at a time. Least possible amount of fragmentation. Keeps track of allocated blocks of the file with a special index block. We need multiple level of indexing for large files Ex: UNIX file system

20

File implementation strategies

Extent-size: 8 blocks

 Junk’ s 21th logical block  53.block (clustering)  701.block (extent)

 Junk’ s 2 th logical block  16.block (indexing) 21

Example #3 (effect of sector spanning ) 512 bytes per sector 63 sectors per track 16 tracks per cylinder 4092 cylinders  Disk capacity? 512*63*16*4092  We have a file with 50.000 fixed-length records. How many cylinders does the file requires if each data record requires 240 byte? In case of sector spaning: Cylinder capacity = 512*63*16 = 516,096 bytes File size = 50,000*240 = 12,000,000 bytes Number of cylinders required = 12,000,000/516,096 = 23.25 In case of Internal fragmentation: (no sector spanning) File requires 25.000 sectors 63*16 = 1008 sectors per cylinder 25,000/1008 = 24.8 cylinders required. Analysis:  Sector spanning has an adv., because it requires less space for the file. On the other, some records can be retrieved by accesing two sectors.This is the disadvantage.  Observe fragmentation problem at different levels…(like cluster..)

22

Example #4 ( file access performance) 10.000 rotateperminute disk, 512 B/sector, 170 Sectors / track, 16 Tracks / cylinder, tsave = 8 msec. Allocate a file having 34.000 records, each of which is 256-B-length. a.) with cluster size of 4 KB. b.) with a cluster size of 1track.

34.000*256B

8704 KB file

Track-based access 100 tracks (not contigious)

cluster-based access 256-byte

34.000 records

. .

Tracksize:170*512 byte

Cluster size=4096 B This is 4096 / (170*512) of track There are 2125 clusters

Track-based sequential access=

(8msec+3msec+6 msec)*100=1.7sec

cluster-based random access= (8msec+3msec+(1/21.25) *6msec)*2125

=23,97sec 23

Example #5 (random sector access time) # of platters: 4 8192 track/platter-surface 256 sectors / track 512 bytes / sector

disk çapı: 3.5 inches (1 inche: 2,54cm) Gaps take %10 of the track space. Rpm: 3840 The head takes 1 msec for every 500 cylinder plus 1 msec for start/stop.

 What is the best, worst and average random sector I/O=?

min. = 0.05 msec max. = 33.05 msec ave. = 14.65 msec  If a block is 4096 bytes, what is the best, worst and average random I/O=? min. I/O = transfer time = 0.5 msec

24

Example#6 (file access performance) # of platters: 4 8192 track/platter-surface 256 sectors / track 512 bytes / sector





disk çapı: 3.5 inches (1 inche: 2,54cm) Gaps take %10 of the track space. Rpm: 3840 The head takes 1 msec for every 500 cylinder plus 1 msec for start/stop.

How much does it take to read 1 MB of data which is all stored in consecutive tracks? Answer: 138.8 msec If all sectors are scattered on the disk  30.003,2 msec ( ½ minutes) How much does it take to read 1000 MB of data which is all stored in consecutive cylinders? Answer: 126.005,8 ( 2 minutes and 6 sec) If all sectors are scattered on the disk  30.003.200 msec ( 8 hours +20 minutes)

25

Example #6-devam (effect of disk access algorithms) Requested cylinder

Arraival time

Complete time (by fifo algoritm)

Complete time

1000

0

7.85

7.85

(1.)

3000 7000 2000 8000 5000

0 0 20 30 40

20.7 37.55 56.6 77.45 92.3

20.7 37.55 77.5 48.4 63.25

(2.) (3.) (6.) (4.) (5.)

(by elevator algoritm)

26

A journey of Byte Write(append) the 1-B value in «ch» in program to textfile

write (textfile, ch, 1) A system call to OS

File Manager handles the request logical

FM access the information of the textfile i.e about the physical location(cylinder,track..) of the file.. FM uses FAT to locate the location of sector that is to contain the byte FM finds an available I/O buffer space then read the “sector” from disk into the system buffer in MM.

physical

Then write ‘ch’ into the appropriate place in the sector in MM. FM give instruction to I/O processor where the byte is stored in the MM and where it need to be sent in the disk. I/O processor check if the drive is available and also buffers the chunks of proper size of disk.

I/O processor sends data to disk cotroller controller instructs the drive to move the arm to the proper track and wait until the proper sector come under the arm and then sends the sector bit-by-bit.

Do not send the sector immediately to disk.Why? In which case do we need to send immediately? 27

I/O Processor / direct memory acces controller

 I/O processor: handles the task of communicating disk, process

independently from the main cpu.  I/O processor (a special purpose device) take the commands from OS and communicates with disk controller.  Once the buffer is full, I/O processor send the sector’s bytes, one at a time, as soon as the controller is available. User prog. char «c» in data area

1) 28

File Mgr. in OS: char «c» in system buffer

I/O processor/ DMA controller

Disk controller

DISK 2) 1-) Move mode / locate mode: to eliminate data transfer OH. 2-) Scatter input / gather output (vectored I/O): to eliminate 2step process to scatter OH and useful data of block.

Disk Controller  DISK CONTROLLER CONTROLS THE DISK while hiding the details of disk access.  Disk controller is an interface b/w computer and disk-drive. Transfers R-W request/from disk,

controlling disk arm, provides reliability by applying checksums to sectors, remap the bad sectors.  Disk controller moves the head to the correct position, correct track, correct sector for reading and writing.  ATA(advanced tech. attachment)=IDE(integrated drive electronics) EX: 133 MB/s with ATA/133, 150 MB/S with SATA-serialATA, ATAPI  2 IDE port on PC, each port can atmost access 2 disk, one master and the other is slave.  SCSI (small computer system interface) a system bus standart coordinating many type of devices on a single bus. Provides a basement for RAID disks. Ex:max 16 devices in ULtra 320 SCSI.

IDE

SCSI

Cost

Cheap

Expensive

#of devices

2

16

Maintainance

Easy

Hard

Usage

At home

Business

Speed

133MB/s

320 MB/s 29

Disk Bottleneck, Improving Disk Access Time  “CPU rate (high performance network) is dramatically higher

than Disk I/O transfer rate” This causes disk bottleneck.  Solution: (read 3.1.8)  Multiprogramming (cpu works on other jobs while waiting for the data to arrive)

 Cylinders (2 tracks nearby ? at the same cylinders)  Disk cache  Parallelism (example: Disk Striping, RAID): This helps to achieve better reliability as well.

 Efficient use of RAM(buffering)

30

Disk Cache  Disk cache – A kind of buffering! Block of memory set aside to

contain blocks of data from disk. Disk cache is bundled with disk drive.  Improves performance.  When data is requested from secondary storage, the file manager looks into the disk cache to see if it contains the requested data.  Compare the following access times: transfer a sector= ts +1/2 tr + sector rotation time transfer a track = ts + tr

Which one do you prefer? Transfer sector or transfer track?  The real value of disk cache is prefetching.

31

Disk Striping  Two 20GB drives are always faster than a single 40GB drive. Because

simultaneous access to 2 sectors. 2 problems arises:  Cost increases  Load balancing is required for disks to be working as uniformly as possible.

 Using Two 20GB drives is efficient if both can be always kept busy.  To increase efficiency, we have to balance the workload among the multiple

disks..For balancing workload, Disk Striping can be used.  Disk striping uses the disk controller to hide the smaller disks from the OS, giving it the illusion of large single disk.



32

Striping distributes database among small drives equally.

Disk reliability, improving disk reliability  2 reasons to decrase reliability: Magnetic material can degenerate Head crash  2 approaches to increase reliability. These tasks are governed by disk controller again. Mirroring Storing Parity (use a single disk to back up any # of other disks)

33

High speed and robust Problem: •Cost is high because High number of disks..

2 problems: •Note that thare are 4 disk accesess for a single sector write. •More vulnerable to non-recoverable multi-disk failure

RAID

 In high speed networks, Storage area Network (SAN) provides RAID

(redundant array of independent disks) organization. RAID supports large data, provides reliability, resource sharing, performance improvement, disk striping.  RAID-0 : only striping, no guard against disk failure RAID-1: mirrored striping RAID-2: byte striping, error-correcting codes instead of parity (difficult to implement, no longer used) RAID-3: byte striping and 1 parity disk RAID-4: sector striping and 1 parity disk. RAID-5: similiar to RAID-4, but parity information is distributed among disks.(Nth sector of each disk stores parity info.) RAID-6: similiar to RAID-5, store 2 kinds of parity info., thus needs another disk for additional parity info.

34

Buffer Management  Working with large chunks of data in MM so that  Read data in memory multiple times (caching)

 the # of access to disk is reduced..

 Sysem buffer vs. user buffer

 Buffer manegement by OS: organizing >2 buffers including system buffers..  coordination uses some techniques such as Least Recently Used, FIFO, clock-replacement algorithm..  How many buffers do we need?

1: Even if we ( the program) transmit data in only one direction, 1 buffer causes problems like I/O bound processing..(CPU wants to be filling the buffer at the same time that I/O is being performed= Enabling I/O-CPU overlapping ONLY by using at least 2 buffers!! Fig.3.22 )

2: At least 2 (one for input, the other for output): still similiar problems occur.

 Solution : Apply Multiple buffering strategy :Tradeoff: (as cost of memory decrease using

many buffers is possible) the more buffers there are  but the more complex management transfer the «buffer» to the disk with 1 is required. access when either

Buffer pool with 4 buffers (pages) 1 buffer for each page 35

•The page is being replaced •File is closed • For data integrity purposes (Recovery management)

Suggest Documents