One Seek File System

35
One Seek File System Sharath R. Cholleti [email protected] Center for Distributed Object Computing Department of Computer Science and Engineering Washington University Fall 03 E71 CS 6785 Programming Languages Seminar 07 Nov 2003

description

One Seek File System. Sharath R. Cholleti [email protected]. Center for Distributed Object Computing Department of Computer Science and Engineering Washington University. Fall 03 E71 CS 6785 Programming Languages Seminar 07 Nov 2003. Outline. Fixed size blocks file system - PowerPoint PPT Presentation

Transcript of One Seek File System

Page 1: One Seek File System

One Seek File System

Sharath R. Cholleti

[email protected]

Center for Distributed Object ComputingDepartment of Computer Science and Engineering

Washington University

Fall 03 E71 CS 6785 Programming Languages Seminar

07 Nov 2003

Page 2: One Seek File System

Sharath R. Cholleti

Outline

• Fixed size blocks file system• Extent based file system• Buddy system• Buddy file system• Sum of powers of 2 blocks• Experiments• Heap manager algorithm• Defragmentation• Bounds

Page 3: One Seek File System

Sharath R. Cholleti

Fixed size blocks

• Blocks could be non-contiguous• Could be spread all over the disk• Number of seeks proportional to file size

– O(S)

Page 4: One Seek File System

Sharath R. Cholleti

Extent based File System

• Limited number of extents per file• An extent can be of arbitrarily large• Number of seeks is limited

– O(1)

• Problems– Difficult to predict the size of the extents

• Cross the limit of number of extents per file– Variable size gives rise to fragmentation

• DTSS – shown to be practical without too much internal or external fragmentation

Page 5: One Seek File System

Sharath R. Cholleti

Knuth’s Buddy System

• Free lists segregated by size

128

64

32

16

8

4

2

1

• All the requests are rounded up to a power of 2

Page 6: One Seek File System

Sharath R. Cholleti

Buddy System (1)

• Begin with one large block

• Suppose we want a block of size 8

128

64

32

16

8

4

2

1

Page 7: One Seek File System

Sharath R. Cholleti

Buddy System (2)

• Begin with one large block

• Suppose we want a block of size 8

• Subdivide recursively

128

64

32

16

8

4

2

1

Page 8: One Seek File System

Sharath R. Cholleti

Buddy System (3)

• Begin with one large block

• Suppose we want a block of size 8

• Subdivide recursively

128

64

32

16

8

4

2

1

Page 9: One Seek File System

Sharath R. Cholleti

Buddy System (4)

• Begin with one large block

• Suppose we want a block of size 8

• Subdivide recursively

128

64

32

16

8

4

2

1

Page 10: One Seek File System

Sharath R. Cholleti

Buddy System (5)

• Begin with one large block

• Suppose we want a block of size 8

• Subdivide recursively

• 2 blocks of size 8

128

64

32

16

8

4

2

1

Page 11: One Seek File System

Sharath R. Cholleti

Buddy System (6)

• Begin with one large block

• Suppose we want a block of size 8

• Subdivide recursively• 2 blocks of size 8• One of those given to

the program

128

64

32

16

8

4

2

1

Given to the program

Page 12: One Seek File System

Sharath R. Cholleti

Buddy System (7)

• Coalescing• Only buddies coalesce 128

64

32

16

8

4

2

1

Deallocated

Page 13: One Seek File System

Sharath R. Cholleti

Buddy File System

• Round the file size to a power of 2• Only one large block

– Mostly only 1 seek

• Fast allocation• Deallocation – coalescing with its buddy• High internal fragmentation

– Worse case almost 50%– Average 25%

Page 14: One Seek File System

Sharath R. Cholleti

Buddy System: Tree Notation

16

8

4

2

1

Allocate block of size 1

Free

Occupied

Page 15: One Seek File System

Sharath R. Cholleti

Buddy System: Tree Notation(2)

16

8

4

2

1

Allocate block of size 1

Free

Occupied

Page 16: One Seek File System

Sharath R. Cholleti

Buddy System: Tree Notation(3)

16

8

4

2

1

Allocate block of size 1

Free

Occupied

Page 17: One Seek File System

Sharath R. Cholleti

Buddy System: Tree Notation(4)

16

8

4

2

1

Allocate block of size 1

Free

Occupied

Page 18: One Seek File System

Sharath R. Cholleti

Buddy System: Tree Notation(6)

16

8

4

2

1

Allocate block of size 4

Free

Occupied

Page 19: One Seek File System

Sharath R. Cholleti

Sum of powers of 2 blocks

• Buddy blocks of different sizes• 13 = 8 + 4 + 1

1

2

4

8

16

32

Free

Occupied

Page 20: One Seek File System

Sharath R. Cholleti

Allocation as Sum of powers of 2 blocks

• Internal fragmentation same as file system with blocks of equal size

• Buddy type coalescing helps control the external fragmentation

• Number of seeks is O(log S)• What if allocate the blocks contiguously?• Or make it contiguous after allocation• Only one seek necessary

Page 21: One Seek File System

Sharath R. Cholleti

Experiments

• CEC data• user file sizes• Usual (blocks of same size) vs Buddy vs Sum of

powers of 2– Total blocks (segments)– Wasted space– Min/avg/max number of segments

Page 22: One Seek File System

Sharath R. Cholleti

Total number of blocks (segments)

Page 23: One Seek File System

Sharath R. Cholleti

Wasted space

Page 24: One Seek File System

Sharath R. Cholleti

Min/Avg/Max number of blocks

Page 25: One Seek File System

Sharath R. Cholleti

Results

• Sum of powers of 2– Much lesser internal fragmentation compared to

buddy– Very few blocks compared to fixed block size file

system

• Experiments to limit the number of segments to a constant

Page 26: One Seek File System

Sharath R. Cholleti

Heap Manager Algorithm

1 02

1 4

5

2 1

3

0 0

0

3

8

1

2

4

8

16

Page 27: One Seek File System

Sharath R. Cholleti

Defragmentation

• Need to allocate a block of size 8 • No free block of size 8 -- relocate

1

2

4

8

16

32

Free

Occupied

Page 28: One Seek File System

Sharath R. Cholleti

Defragmentation (2)

• Need to allocate a block of size 8• No free block of size 8 -- relocate

1

2

4

8

16

32

Free

Occupied

Page 29: One Seek File System

Sharath R. Cholleti

Cost

• M – disk size• Allocation O(logM)• Deallocation O(logM)• Relocation O(slogM) – file of size s

Page 30: One Seek File System

Sharath R. Cholleti

Defragmentation Theory Assumptions

• All files are stored contiguously• Each file is stored big to small• File of size S, 2^n<S<=2^(n+1), lies entirely

within a buddy block of 2^(n+1)• Unit of the file is a block• There is a way to allocate or relocate a file

Page 31: One Seek File System

Sharath R. Cholleti

Bound on relocated file size

• For the relocation to be minimum, allocation of a file of size 2^n does not relocate file of size greater than 2^(n-1)

• Proof:– X: a file or a set of files– R(X): number of blocks moved to relocate X

Page 32: One Seek File System

Sharath R. Cholleti

Proof (cont)

a EDB

R = R(a) + R(B)

= |a| + R(D) + R(B)

> |E| + R(D) + R(B)

Page 33: One Seek File System

Sharath R. Cholleti

Proof (cont)

a EDB

Page 34: One Seek File System

Sharath R. Cholleti

Worst case relocation file size

• In worst case, to allocate a file of size 2^n, two files of size 2^(n-1) are relocated

Page 35: One Seek File System

Sharath R. Cholleti

Worst Case Defragmentation

• Worst-case relocation for a file of size S– SlogS blocks

• R(S) = S + 2*R(S/2)– 2(S-1) files

• R(S) = 1 + 2*R(S/2)