SlideShare a Scribd company logo
Image: Mathias Krumbholz (wikipedia commons)
Plan for Today
Recap: Unix System 5 File System
Creating a File
Better File Systems: ZFS, RAID
Flash Memory
1
PS4 is due
11:59pm
Sunday, 6 April
Exam 2 Redo: posted on
course site, due 11:69pm
2
0
1
2
…
9
10
11
12 Disk Block
(1K bytes)
Indirect
Disk Block
(1K bytes)
4 bytes for each = 256 pointers
Disk Block
(1K bytes)
Disk Block
(1K bytes)
Disk Block
(1K bytes)
Double
Indirect
Disk Block
Indirect
Disk Block
(1K bytes)
Indirect
Disk Block
(1K bytes)
D
(
D
(1
D
(
Diskmap
(Unix System 5)
Directories are Files Too!
3
Filename Inode
. 494211
.. 494205
.DS_Store 494212
class0 6565946
class1 6565826
class10 1467012
class11 2252968
… …
class16 5649155
class2 494218
… …
ls -ali
How do you create a new file?
4
Finding a Free Block
5
Data
I-List (inodes)
Superblock
Boot block
Not to scale!
0
1
…
98
99
List of free disk blocks
0
1
…
98
99
Finding a Free inode
6
Data
I-List (inodes)
Superblock
Boot block
Not to scale!
0 0
1 1
2 0
3 0
… …
Superblock keeps a cache of free inodes
Finding a Free inode
7
Data
I-List (inodes)
Superblock
Boot block
Not to scale!
0 0
1 1
2 0
3 0
… …
Superblock keeps a cache of free inodes
Lots more to do!
Need to select disk blocks, update directory, etc.
Read the OSTEP chapter.
Modern File Systems
8
IBM 350 Disk Storage (1956)
118,000 in3, 5MB, 600ms seek
Seagate HDD (2013)
23 in3, 4TB (4M MB), 5ms seek
What should a modern file system do
that Unix S5FS doesn’t?
9
10
11
ZFSDeveloped for Solaris, 2005
Now open source:
http://open-zfs.org/
12
“MacZFS is free data storage and protection software
for all Mac OS users. It’s for people who have Mac OS,
who have any data, and who really like their data.
Whether on a single-drive laptop or on a massive
server, it’ll store your petabytes with ragingly redundant
RAID reliability, and it’ll keep the bit-rotted bleeps and
bloops out of your iTunes library.”
Handling Failures
13
Block Checksums
14
0
1
2
…
9
10
11
12
Disk Block
(1K bytes)
S5FS
Block
Checksum
(SHA-256)
0 40a3dc…
1 2c5829d…
2 955d253…
… …
ZFS
How do you check the checksums?
Hashing the Hashes
15
Block 1 Block 2 Block 3 Block 4
Hash(B1) Hash(B2) Hash(B3) Hash(B4)
Merkle Tree
16
Ralph Merkle
Block 1 Block 2 Block 3 Block 4
Hash(B1) Hash(B2) Hash(B3) Hash(B4)
Recovery
17
copies = 2
One
Copy
Copy 1
Copy 2
Keep 2 copies of every block: if
checksum fails for first copy
read, try reading second copy.
18
copies = 3
One
Copy
Copy 1
Copy 2
For the truly paranoid…
Copy 3
RAID
19
For the fairly paranoid but cheap… Redundant
Arrays of
Inexpensive
DisksACM SIGMOD 1988
whitehouse.gov
Case for
RAID
20
21
Redundancy
22
23
Improving Performance
24
Cache (64MB DRAM)
Adaptive Replacement Cache
Adaptive Replacement Cache
25
T1: Recent Cache Entries
Accessed Again
T2: Frequently-Used Blocks
Size of T1 adapts
B1: Evicted from T1 (LRU) B2: Evicted from T2 (LRU)
How should relative size of T1 and T2 be adjusted?
BlocksinCache“Ghost”Entries
Adaptive Replacement Cache
26
T1: Recent Cache Entries
Accessed Again
T2: Frequently-Used Blocks
Size of T1 adapts
B1: Evicted from T1 (LRU) B2: Evicted from T2 (LRU)
BlocksinCache“Ghost”Entries
Hit in B1: should increase size of T1, drop entry from T2 to B2
Hit in B2: should increase size of T2, drop entry from T1 to B1
27
IBM Almaden Research Center
Do you actually have
a disk like this on
your EC2 node/main
computing device?
28
Cache (64MB DRAM)
Flash Memory
29
Solid State Drive
30
Fujio Masuoka
Drain
How NAND Flash Works
31
Oxide Layer
Adapted from http://computer.howstuffworks.com/flash-memory1.htm
Word Line
BitLine
Control gate
Floating gate
stores electrons
Source 1
Uncharged State
Drain
How NAND Flash Works
32
Oxide Layer
Adapted from http://computer.howstuffworks.com/flash-memory1.htm
Word Line
BitLine
Control gate
Floating gate
stores electrons
Source 0
Charged State
----------------------------------------
Flash Memory
Non-volatile
preserves state without any power
Solid State
no moving parts larger than electrons
Fast (compared to disk)
random read time ~10,000ns
33
Summary: Storage Systems
34
Device Example Time to Access Cost per Bit
Mercury (Gin) Delay Line UNIVAC (1951) 220,000ns (average)
$ 0.38 (1968)
(a bazillion n$)
DRAM
Kingston KVR16N11/4
4GB DDR3 ($40)
13.75ns 1.16 n$
SSD
Samsung 500GB
($300)
~10,000 ns
(for random read)
0.075 n$
Disk Drive
Seagate Desktop HDD 4
TB SATA 6Gb/s NCQ
64MB
5,000,000ns 0.0046 n$
Challenges of Flash
Writing (1  0) is expensive
Erasing (0  1) is super expensive:
Apply electric field to release charge
Can only erase a full block (often 128K) at a time
Cells wear out after 10,000-1M erasings
Reading disturbs nearby cells
Cannot read same cell too many times
35
But: no seek time – time to access every cell is the same!
How should we design a file
system for flash memory?
36
37
UVa Mathematics (1984)
Berkeley CS PhD
Stanford Professor
Log-Structured File System
38
Write sequentially: never overwrite data
File 1 File 2
Updated
File 1
Disk
April Fool’s? What’s wrong with this picture?
Where does the meta-data go?
39
Block 0
Disk
Block 1 Block 2
InodeA
When should we do the writes?
40
Block 0
Disk
Block 1 Block 2
InodeA
When should we do the writes?
41
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
In-Memory Buffer
Block 6 Block 7
InodeB
When should we do the writes?
42
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
In-Memory Buffer
Block 6 Block 7
InodeB
Updating a File
43
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Suppose the contents of Block 1 are modified?
Updating a File
44
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
Updating a File
45
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
Finding an Inode
46
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
Recap: how did we do this for S5FS?
47
Filename Inode
. 494211
.. 494205
.DS_Store 494212
class0 6565946
class1 6565826
… …
class16 5649155
class2 494218
… …
Recap: how did we do this for S5FS?
48
Filename Inode
. 494211
.. 494205
.DS_Store 494212
class0 6565946
class1 6565826
… …
class16 5649155
class2 494218
… …
Finding an Inode
49
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
50
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
imap
0
1
2
Pointer to most recent version of inode.
51
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
imap
0
1
2
Pointer to most recent version of inode.
Where should we store the imap?
52
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block
InodeB
Block 7
Block 1 -
update
InodeA’
imap
0
1
2
Pointer to most recent version of inode.
At the end of each write! (when
necessary) – its small (4 bytes *
number of inodes), and sequential
writes are cheap!
53
Block 0
Disk
Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block 7InodeB
Block 7
Block 1 -
update
InodeA’
imap
Block 8
Block 0 -
update
…
Won’t the disk fill up with lots of old junk?
Block 5 -
update
InodeA’
InodeB’
imap
54
Class 8:
Garbage Collection in LSFS
55
Block 0 Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block 7
InodeB
Block 7
Block 1 -
update
InodeA’
imap
Block 8
Block 0 -
update
…Block 5 -
update
InodeA’
InodeB’
imap
Garbage Collection in LSFS
56
Block 0 Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block 7
InodeB
Block 7
Block 1 -
update
InodeA’
imap
Block 8
Block 0 -
update
…Block 5 -
update
InodeA’
InodeB’
imap
Segment
Garbage Collection in LSFS
57
Block 0 Block 1 Block 2
InodeA
Block 3 Block 4 Block 5
Disk, continued
Block 6 Block 7
InodeB
Block 7
Block 1 -
update
InodeA’
imap
Block 8
Block 0 -
update
…Block 5 -
update
InodeA’
InodeB’
imap
Segment
Garbage Collection in LSFS
58
Block 6 Block 7
InodeB
Block 7
Block 1 -
update
InodeA’
imap
Block 8
Block 0 -
update
…Block 5 -
update
InodeA’
InodeB’
imap
Segment
A full clean segment!
Block 2 Block 3 Block 4
InodeA’
InodeB’
imap
…
59
SOSP 1991
1987
60
http://www.jcmit.com/flash2013.htm
2003: $0.25/MB
2006: $0.02/MB
2010: $0.002/MB
2013: $0.0005/MB
< $1/GB
Differences with Flash
No need for sequential writes
Just need to find unused blocks
Can do 1  0 rewrites!
Maintain a bitmap of used blocks at fixed block
Lots of complexities:
Bits wear out, read disruption, etc.
61
Who should deal with those complexities?
62
2GB microSD card
Andrew “bunnie” Huang
63
2GB microSD card
Andrew “bunnie” Huang
ARM Processor!
64
Summary: Storage Systems
65
Device Example Time to Access Cost per Bit
Mercury (Gin) Delay Line UNIVAC (1951) 220,000ns (average)
$ 0.38 (1968)
(a bazillion n$)
DRAM
Kingston KVR16N11/4
4GB DDR3 ($40)
13.75ns 1.16 n$
SSD
Samsung 500GB
($300)
~10,000 ns
(for random read)
0.075 n$
Disk Drive
Seagate Desktop HDD 4
TB SATA 6Gb/s NCQ
64MB
5,000,000ns 0.0046 n$
ModernHardDrive
Relevance to PS4?
66
Not expected to implement any of this
– a very simple filesystem in memory is
fine (but feel free to surprise us!)
Your filesystem is in memory: no need to deal with
complexities of interfacing with persistent media
(but doing this could be a good post-PS4 project!).
FlashKernel?
67
by shamserg
PS4 Due
Sunday,
11:59pm

More Related Content

What's hot

Let Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened EnvironmentsLet Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened Environments
Nicolas Collery
 
Mac Memory Analysis with Volatility
Mac Memory Analysis with VolatilityMac Memory Analysis with Volatility
Mac Memory Analysis with Volatility
Andrew Case
 
Namespaces in Linux
Namespaces in LinuxNamespaces in Linux
Namespaces in Linux
Lubomir Rintel
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityJoe Sylve
 
Hunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory ForensicsHunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory Forensics
Andrew Case
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
shimosawa
 
Memory forensics
Memory forensicsMemory forensics
Memory forensicsSunil Kumar
 
PostgreSQL on ZFS Lightning Talk
PostgreSQL on ZFS Lightning TalkPostgreSQL on ZFS Lightning Talk
PostgreSQL on ZFS Lightning Talk
Sean Chittenden
 
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
Andrew Case
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme Petazzoni
Docker, Inc.
 
Prosit google-cloud
Prosit google-cloudProsit google-cloud
Prosit google-cloud
UC Davis
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of Technology
Nugroho Gito
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKB
shimosawa
 
Unix::Statgrab
Unix::StatgrabUnix::Statgrab
Unix::Statgrab
Jens Rehsack
 
Malware analysis using volatility
Malware analysis using volatilityMalware analysis using volatility
Malware analysis using volatilityYashashree Gund
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
Knoldus Inc.
 
Forensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual MachineForensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual Machine
Source Conference
 
Linux Interview Questions Quiz
Linux Interview Questions QuizLinux Interview Questions Quiz
Linux Interview Questions QuizUtkarsh Sengar
 
Sql Bits Sql Server Crash Dump Analysis
Sql Bits   Sql Server Crash Dump AnalysisSql Bits   Sql Server Crash Dump Analysis
Sql Bits Sql Server Crash Dump Analysis
Pablo Alvarez Doval
 
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Nicolas Collery
 

What's hot (20)

Let Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened EnvironmentsLet Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened Environments
 
Mac Memory Analysis with Volatility
Mac Memory Analysis with VolatilityMac Memory Analysis with Volatility
Mac Memory Analysis with Volatility
 
Namespaces in Linux
Namespaces in LinuxNamespaces in Linux
Namespaces in Linux
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
 
Hunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory ForensicsHunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory Forensics
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Memory forensics
Memory forensicsMemory forensics
Memory forensics
 
PostgreSQL on ZFS Lightning Talk
PostgreSQL on ZFS Lightning TalkPostgreSQL on ZFS Lightning Talk
PostgreSQL on ZFS Lightning Talk
 
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
Memory Forensics: Defeating Disk Encryption, Skilled Attackers, and Advanced ...
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme Petazzoni
 
Prosit google-cloud
Prosit google-cloudProsit google-cloud
Prosit google-cloud
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of Technology
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKB
 
Unix::Statgrab
Unix::StatgrabUnix::Statgrab
Unix::Statgrab
 
Malware analysis using volatility
Malware analysis using volatilityMalware analysis using volatility
Malware analysis using volatility
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
 
Forensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual MachineForensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual Machine
 
Linux Interview Questions Quiz
Linux Interview Questions QuizLinux Interview Questions Quiz
Linux Interview Questions Quiz
 
Sql Bits Sql Server Crash Dump Analysis
Sql Bits   Sql Server Crash Dump AnalysisSql Bits   Sql Server Crash Dump Analysis
Sql Bits Sql Server Crash Dump Analysis
 
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
 

Viewers also liked

Invent the Future (Operating Systems in 2029)
Invent the Future (Operating Systems in 2029)Invent the Future (Operating Systems in 2029)
Invent the Future (Operating Systems in 2029)
David Evans
 
Scheduling in Linux and Web Servers
Scheduling in Linux and Web ServersScheduling in Linux and Web Servers
Scheduling in Linux and Web Servers
David Evans
 
Kernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring NaughtKernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring Naught
David Evans
 
Inventing the Future
Inventing the FutureInventing the Future
Inventing the Future
David Evans
 
System Calls
System CallsSystem Calls
System Calls
David Evans
 
Unix file systems 2 in unix internal systems
Unix file systems 2 in unix internal systems Unix file systems 2 in unix internal systems
Unix file systems 2 in unix internal systems
senthilamul
 
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
David Evans
 
ZFS Tutorial USENIX June 2009
ZFS  Tutorial  USENIX June 2009ZFS  Tutorial  USENIX June 2009
ZFS Tutorial USENIX June 2009
Richard Elling
 
Nu: scrum op school
Nu: scrum op schoolNu: scrum op school
Nu: scrum op school
JohanvanDelden
 
What the &~#@&lt;!? (Pointers in Rust)
What the &~#@&lt;!? (Pointers in Rust)What the &~#@&lt;!? (Pointers in Rust)
What the &~#@&lt;!? (Pointers in Rust)
David Evans
 
SSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and SchedulingSSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and Scheduling
David Evans
 
Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)
David Evans
 
Managing Memory
Managing MemoryManaging Memory
Managing Memory
David Evans
 
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and TasksSegmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
David Evans
 
Once Upon a Process
Once Upon a ProcessOnce Upon a Process
Once Upon a Process
David Evans
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)
Peter Martin
 
Class 1: What is an Operating System?
Class 1: What is an Operating System?Class 1: What is an Operating System?
Class 1: What is an Operating System?
David Evans
 
Building Linux IPv6 DNS Server (Complete Presentation)
Building Linux IPv6 DNS Server (Complete Presentation)Building Linux IPv6 DNS Server (Complete Presentation)
Building Linux IPv6 DNS Server (Complete Presentation)
Hari
 
Mca ii os u-5 unix linux file system
Mca  ii  os u-5 unix linux file systemMca  ii  os u-5 unix linux file system
Mca ii os u-5 unix linux file system
Rai University
 

Viewers also liked (20)

Invent the Future (Operating Systems in 2029)
Invent the Future (Operating Systems in 2029)Invent the Future (Operating Systems in 2029)
Invent the Future (Operating Systems in 2029)
 
Scheduling in Linux and Web Servers
Scheduling in Linux and Web ServersScheduling in Linux and Web Servers
Scheduling in Linux and Web Servers
 
Kernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring NaughtKernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring Naught
 
Inventing the Future
Inventing the FutureInventing the Future
Inventing the Future
 
System Calls
System CallsSystem Calls
System Calls
 
Unix file systems 2 in unix internal systems
Unix file systems 2 in unix internal systems Unix file systems 2 in unix internal systems
Unix file systems 2 in unix internal systems
 
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
Smarter Scheduling (Priorities, Preemptive Priority Scheduling, Lottery and S...
 
ZFS Tutorial USENIX June 2009
ZFS  Tutorial  USENIX June 2009ZFS  Tutorial  USENIX June 2009
ZFS Tutorial USENIX June 2009
 
Nu: scrum op school
Nu: scrum op schoolNu: scrum op school
Nu: scrum op school
 
What the &~#@&lt;!? (Pointers in Rust)
What the &~#@&lt;!? (Pointers in Rust)What the &~#@&lt;!? (Pointers in Rust)
What the &~#@&lt;!? (Pointers in Rust)
 
SSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and SchedulingSSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and Scheduling
 
Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)
 
Managing Memory
Managing MemoryManaging Memory
Managing Memory
 
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and TasksSegmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
 
Once Upon a Process
Once Upon a ProcessOnce Upon a Process
Once Upon a Process
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)
 
Class 1: What is an Operating System?
Class 1: What is an Operating System?Class 1: What is an Operating System?
Class 1: What is an Operating System?
 
Unix File System
Unix File SystemUnix File System
Unix File System
 
Building Linux IPv6 DNS Server (Complete Presentation)
Building Linux IPv6 DNS Server (Complete Presentation)Building Linux IPv6 DNS Server (Complete Presentation)
Building Linux IPv6 DNS Server (Complete Presentation)
 
Mca ii os u-5 unix linux file system
Mca  ii  os u-5 unix linux file systemMca  ii  os u-5 unix linux file system
Mca ii os u-5 unix linux file system
 

Similar to Flash! (Modern File Systems)

Secondarystoragedevices1 130119040144-phpapp02
Secondarystoragedevices1 130119040144-phpapp02Secondarystoragedevices1 130119040144-phpapp02
Secondarystoragedevices1 130119040144-phpapp02
Seshu Chakravarthy
 
9_Storage_Devices.pptx
9_Storage_Devices.pptx9_Storage_Devices.pptx
9_Storage_Devices.pptx
JawaharPrasad3
 
9_Storage_Devices.pptx
9_Storage_Devices.pptx9_Storage_Devices.pptx
9_Storage_Devices.pptx
AbdulhseynAayev1
 
Internal representation of files ppt
Internal representation of files pptInternal representation of files ppt
Internal representation of files ppt
Abhaysinh Surve
 
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt AhrensOpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
Matthew Ahrens
 
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
Kuniyasu Suzaki
 
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
npinto
 
Computer Memory Hierarchy Computer Architecture
Computer Memory Hierarchy Computer ArchitectureComputer Memory Hierarchy Computer Architecture
Computer Memory Hierarchy Computer Architecture
Haris456
 
Hard Disk
Hard Disk Hard Disk
Hard Disk
Zubair CH
 
Latest performance changes by Scylla - Project optimus / Nolimits
Latest performance changes by Scylla - Project optimus / Nolimits Latest performance changes by Scylla - Project optimus / Nolimits
Latest performance changes by Scylla - Project optimus / Nolimits
ScyllaDB
 
NAND-Flash-Data-Recovery-Cookbook-igor.pdf
NAND-Flash-Data-Recovery-Cookbook-igor.pdfNAND-Flash-Data-Recovery-Cookbook-igor.pdf
NAND-Flash-Data-Recovery-Cookbook-igor.pdf
sheikhfarhanm6948
 
Some analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDBSome analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDB
Xiao Yan Li
 
AOS Lab 9: File system -- Of buffers, logs, and blocks
AOS Lab 9: File system -- Of buffers, logs, and blocksAOS Lab 9: File system -- Of buffers, logs, and blocks
AOS Lab 9: File system -- Of buffers, logs, and blocksZubair Nabi
 
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
Kuniyasu Suzaki
 
ITC 360Professor John CovingtonSystem Administration And Managemen.docx
ITC 360Professor John CovingtonSystem Administration And Managemen.docxITC 360Professor John CovingtonSystem Administration And Managemen.docx
ITC 360Professor John CovingtonSystem Administration And Managemen.docx
christiandean12115
 
15 B-Trees
15 B-Trees15 B-Trees
Why the Address Translation Scheme Matters?
Why the Address Translation Scheme Matters?Why the Address Translation Scheme Matters?
Why the Address Translation Scheme Matters?Jiaqing Du
 
Case Study Raid Utility Guideline
Case Study Raid Utility GuidelineCase Study Raid Utility Guideline
Case Study Raid Utility Guideline
Selinasalvationdata
 

Similar to Flash! (Modern File Systems) (20)

Secondarystoragedevices1 130119040144-phpapp02
Secondarystoragedevices1 130119040144-phpapp02Secondarystoragedevices1 130119040144-phpapp02
Secondarystoragedevices1 130119040144-phpapp02
 
9_Storage_Devices.pptx
9_Storage_Devices.pptx9_Storage_Devices.pptx
9_Storage_Devices.pptx
 
9_Storage_Devices.pptx
9_Storage_Devices.pptx9_Storage_Devices.pptx
9_Storage_Devices.pptx
 
Internal representation of files ppt
Internal representation of files pptInternal representation of files ppt
Internal representation of files ppt
 
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt AhrensOpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
 
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
Linux Symposium 2009 Slide Suzaki "Effect of readahead and file system block ...
 
RAID Review
RAID ReviewRAID Review
RAID Review
 
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
IAP09 CUDA@MIT 6.963 - Guest Lecture: Out-of-Core Programming with NVIDIA's C...
 
Computer Memory Hierarchy Computer Architecture
Computer Memory Hierarchy Computer ArchitectureComputer Memory Hierarchy Computer Architecture
Computer Memory Hierarchy Computer Architecture
 
Hard Disk
Hard Disk Hard Disk
Hard Disk
 
Latest performance changes by Scylla - Project optimus / Nolimits
Latest performance changes by Scylla - Project optimus / Nolimits Latest performance changes by Scylla - Project optimus / Nolimits
Latest performance changes by Scylla - Project optimus / Nolimits
 
NAND-Flash-Data-Recovery-Cookbook-igor.pdf
NAND-Flash-Data-Recovery-Cookbook-igor.pdfNAND-Flash-Data-Recovery-Cookbook-igor.pdf
NAND-Flash-Data-Recovery-Cookbook-igor.pdf
 
Some analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDBSome analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDB
 
Unix 6 en
Unix 6 enUnix 6 en
Unix 6 en
 
AOS Lab 9: File system -- Of buffers, logs, and blocks
AOS Lab 9: File system -- Of buffers, logs, and blocksAOS Lab 9: File system -- Of buffers, logs, and blocks
AOS Lab 9: File system -- Of buffers, logs, and blocks
 
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
Linux.Conf.AU 2009 (LCA09) Slide "OS Circular: Internet bootable OS Archive" ...
 
ITC 360Professor John CovingtonSystem Administration And Managemen.docx
ITC 360Professor John CovingtonSystem Administration And Managemen.docxITC 360Professor John CovingtonSystem Administration And Managemen.docx
ITC 360Professor John CovingtonSystem Administration And Managemen.docx
 
15 B-Trees
15 B-Trees15 B-Trees
15 B-Trees
 
Why the Address Translation Scheme Matters?
Why the Address Translation Scheme Matters?Why the Address Translation Scheme Matters?
Why the Address Translation Scheme Matters?
 
Case Study Raid Utility Guideline
Case Study Raid Utility GuidelineCase Study Raid Utility Guideline
Case Study Raid Utility Guideline
 

More from David Evans

Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!
David Evans
 
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for CypherpunksTrick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
David Evans
 
Hidden Services, Zero Knowledge
Hidden Services, Zero KnowledgeHidden Services, Zero Knowledge
Hidden Services, Zero Knowledge
David Evans
 
Anonymity in Bitcoin
Anonymity in BitcoinAnonymity in Bitcoin
Anonymity in Bitcoin
David Evans
 
Midterm Confirmations
Midterm ConfirmationsMidterm Confirmations
Midterm Confirmations
David Evans
 
Scripting Transactions
Scripting TransactionsScripting Transactions
Scripting Transactions
David Evans
 
How to Live in Paradise
How to Live in ParadiseHow to Live in Paradise
How to Live in Paradise
David Evans
 
Bitcoin Script
Bitcoin ScriptBitcoin Script
Bitcoin Script
David Evans
 
Mining Economics
Mining EconomicsMining Economics
Mining Economics
David Evans
 
Mining
MiningMining
Mining
David Evans
 
The Blockchain
The BlockchainThe Blockchain
The Blockchain
David Evans
 
Becoming More Paranoid
Becoming More ParanoidBecoming More Paranoid
Becoming More Paranoid
David Evans
 
Asymmetric Key Signatures
Asymmetric Key SignaturesAsymmetric Key Signatures
Asymmetric Key Signatures
David Evans
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
David Evans
 
Class 1: What is Money?
Class 1: What is Money?Class 1: What is Money?
Class 1: What is Money?
David Evans
 
Multi-Party Computation for the Masses
Multi-Party Computation for the MassesMulti-Party Computation for the Masses
Multi-Party Computation for the Masses
David Evans
 
Proof of Reserve
Proof of ReserveProof of Reserve
Proof of Reserve
David Evans
 
Silk Road
Silk RoadSilk Road
Silk Road
David Evans
 
Blooming Sidechains!
Blooming Sidechains!Blooming Sidechains!
Blooming Sidechains!
David Evans
 
Useful Proofs of Work, Permacoin
Useful Proofs of Work, PermacoinUseful Proofs of Work, Permacoin
Useful Proofs of Work, Permacoin
David Evans
 

More from David Evans (20)

Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!
 
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for CypherpunksTrick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
 
Hidden Services, Zero Knowledge
Hidden Services, Zero KnowledgeHidden Services, Zero Knowledge
Hidden Services, Zero Knowledge
 
Anonymity in Bitcoin
Anonymity in BitcoinAnonymity in Bitcoin
Anonymity in Bitcoin
 
Midterm Confirmations
Midterm ConfirmationsMidterm Confirmations
Midterm Confirmations
 
Scripting Transactions
Scripting TransactionsScripting Transactions
Scripting Transactions
 
How to Live in Paradise
How to Live in ParadiseHow to Live in Paradise
How to Live in Paradise
 
Bitcoin Script
Bitcoin ScriptBitcoin Script
Bitcoin Script
 
Mining Economics
Mining EconomicsMining Economics
Mining Economics
 
Mining
MiningMining
Mining
 
The Blockchain
The BlockchainThe Blockchain
The Blockchain
 
Becoming More Paranoid
Becoming More ParanoidBecoming More Paranoid
Becoming More Paranoid
 
Asymmetric Key Signatures
Asymmetric Key SignaturesAsymmetric Key Signatures
Asymmetric Key Signatures
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
Class 1: What is Money?
Class 1: What is Money?Class 1: What is Money?
Class 1: What is Money?
 
Multi-Party Computation for the Masses
Multi-Party Computation for the MassesMulti-Party Computation for the Masses
Multi-Party Computation for the Masses
 
Proof of Reserve
Proof of ReserveProof of Reserve
Proof of Reserve
 
Silk Road
Silk RoadSilk Road
Silk Road
 
Blooming Sidechains!
Blooming Sidechains!Blooming Sidechains!
Blooming Sidechains!
 
Useful Proofs of Work, Permacoin
Useful Proofs of Work, PermacoinUseful Proofs of Work, Permacoin
Useful Proofs of Work, Permacoin
 

Recently uploaded

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

Flash! (Modern File Systems)

  • 1. Image: Mathias Krumbholz (wikipedia commons)
  • 2. Plan for Today Recap: Unix System 5 File System Creating a File Better File Systems: ZFS, RAID Flash Memory 1 PS4 is due 11:59pm Sunday, 6 April Exam 2 Redo: posted on course site, due 11:69pm
  • 3. 2 0 1 2 … 9 10 11 12 Disk Block (1K bytes) Indirect Disk Block (1K bytes) 4 bytes for each = 256 pointers Disk Block (1K bytes) Disk Block (1K bytes) Disk Block (1K bytes) Double Indirect Disk Block Indirect Disk Block (1K bytes) Indirect Disk Block (1K bytes) D ( D (1 D ( Diskmap (Unix System 5)
  • 4. Directories are Files Too! 3 Filename Inode . 494211 .. 494205 .DS_Store 494212 class0 6565946 class1 6565826 class10 1467012 class11 2252968 … … class16 5649155 class2 494218 … … ls -ali
  • 5. How do you create a new file? 4
  • 6. Finding a Free Block 5 Data I-List (inodes) Superblock Boot block Not to scale! 0 1 … 98 99 List of free disk blocks 0 1 … 98 99
  • 7. Finding a Free inode 6 Data I-List (inodes) Superblock Boot block Not to scale! 0 0 1 1 2 0 3 0 … … Superblock keeps a cache of free inodes
  • 8. Finding a Free inode 7 Data I-List (inodes) Superblock Boot block Not to scale! 0 0 1 1 2 0 3 0 … … Superblock keeps a cache of free inodes Lots more to do! Need to select disk blocks, update directory, etc. Read the OSTEP chapter.
  • 9. Modern File Systems 8 IBM 350 Disk Storage (1956) 118,000 in3, 5MB, 600ms seek Seagate HDD (2013) 23 in3, 4TB (4M MB), 5ms seek
  • 10. What should a modern file system do that Unix S5FS doesn’t? 9
  • 11. 10
  • 12. 11 ZFSDeveloped for Solaris, 2005 Now open source: http://open-zfs.org/
  • 13. 12 “MacZFS is free data storage and protection software for all Mac OS users. It’s for people who have Mac OS, who have any data, and who really like their data. Whether on a single-drive laptop or on a massive server, it’ll store your petabytes with ragingly redundant RAID reliability, and it’ll keep the bit-rotted bleeps and bloops out of your iTunes library.”
  • 15. Block Checksums 14 0 1 2 … 9 10 11 12 Disk Block (1K bytes) S5FS Block Checksum (SHA-256) 0 40a3dc… 1 2c5829d… 2 955d253… … … ZFS How do you check the checksums?
  • 16. Hashing the Hashes 15 Block 1 Block 2 Block 3 Block 4 Hash(B1) Hash(B2) Hash(B3) Hash(B4)
  • 17. Merkle Tree 16 Ralph Merkle Block 1 Block 2 Block 3 Block 4 Hash(B1) Hash(B2) Hash(B3) Hash(B4)
  • 18. Recovery 17 copies = 2 One Copy Copy 1 Copy 2 Keep 2 copies of every block: if checksum fails for first copy read, try reading second copy.
  • 19. 18 copies = 3 One Copy Copy 1 Copy 2 For the truly paranoid… Copy 3
  • 20. RAID 19 For the fairly paranoid but cheap… Redundant Arrays of Inexpensive DisksACM SIGMOD 1988 whitehouse.gov
  • 22. 21
  • 24. 23
  • 25. Improving Performance 24 Cache (64MB DRAM) Adaptive Replacement Cache
  • 26. Adaptive Replacement Cache 25 T1: Recent Cache Entries Accessed Again T2: Frequently-Used Blocks Size of T1 adapts B1: Evicted from T1 (LRU) B2: Evicted from T2 (LRU) How should relative size of T1 and T2 be adjusted? BlocksinCache“Ghost”Entries
  • 27. Adaptive Replacement Cache 26 T1: Recent Cache Entries Accessed Again T2: Frequently-Used Blocks Size of T1 adapts B1: Evicted from T1 (LRU) B2: Evicted from T2 (LRU) BlocksinCache“Ghost”Entries Hit in B1: should increase size of T1, drop entry from T2 to B2 Hit in B2: should increase size of T2, drop entry from T1 to B1
  • 29. Do you actually have a disk like this on your EC2 node/main computing device? 28 Cache (64MB DRAM)
  • 32. Drain How NAND Flash Works 31 Oxide Layer Adapted from http://computer.howstuffworks.com/flash-memory1.htm Word Line BitLine Control gate Floating gate stores electrons Source 1 Uncharged State
  • 33. Drain How NAND Flash Works 32 Oxide Layer Adapted from http://computer.howstuffworks.com/flash-memory1.htm Word Line BitLine Control gate Floating gate stores electrons Source 0 Charged State ----------------------------------------
  • 34. Flash Memory Non-volatile preserves state without any power Solid State no moving parts larger than electrons Fast (compared to disk) random read time ~10,000ns 33
  • 35. Summary: Storage Systems 34 Device Example Time to Access Cost per Bit Mercury (Gin) Delay Line UNIVAC (1951) 220,000ns (average) $ 0.38 (1968) (a bazillion n$) DRAM Kingston KVR16N11/4 4GB DDR3 ($40) 13.75ns 1.16 n$ SSD Samsung 500GB ($300) ~10,000 ns (for random read) 0.075 n$ Disk Drive Seagate Desktop HDD 4 TB SATA 6Gb/s NCQ 64MB 5,000,000ns 0.0046 n$
  • 36. Challenges of Flash Writing (1  0) is expensive Erasing (0  1) is super expensive: Apply electric field to release charge Can only erase a full block (often 128K) at a time Cells wear out after 10,000-1M erasings Reading disturbs nearby cells Cannot read same cell too many times 35 But: no seek time – time to access every cell is the same!
  • 37. How should we design a file system for flash memory? 36
  • 38. 37 UVa Mathematics (1984) Berkeley CS PhD Stanford Professor
  • 39. Log-Structured File System 38 Write sequentially: never overwrite data File 1 File 2 Updated File 1 Disk April Fool’s? What’s wrong with this picture?
  • 40. Where does the meta-data go? 39 Block 0 Disk Block 1 Block 2 InodeA
  • 41. When should we do the writes? 40 Block 0 Disk Block 1 Block 2 InodeA
  • 42. When should we do the writes? 41 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 In-Memory Buffer Block 6 Block 7 InodeB
  • 43. When should we do the writes? 42 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 In-Memory Buffer Block 6 Block 7 InodeB
  • 44. Updating a File 43 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Suppose the contents of Block 1 are modified?
  • 45. Updating a File 44 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update
  • 46. Updating a File 45 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’
  • 47. Finding an Inode 46 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’
  • 48. Recap: how did we do this for S5FS? 47 Filename Inode . 494211 .. 494205 .DS_Store 494212 class0 6565946 class1 6565826 … … class16 5649155 class2 494218 … …
  • 49. Recap: how did we do this for S5FS? 48 Filename Inode . 494211 .. 494205 .DS_Store 494212 class0 6565946 class1 6565826 … … class16 5649155 class2 494218 … …
  • 50. Finding an Inode 49 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’
  • 51. 50 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’ imap 0 1 2 Pointer to most recent version of inode.
  • 52. 51 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’ imap 0 1 2 Pointer to most recent version of inode. Where should we store the imap?
  • 53. 52 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block InodeB Block 7 Block 1 - update InodeA’ imap 0 1 2 Pointer to most recent version of inode. At the end of each write! (when necessary) – its small (4 bytes * number of inodes), and sequential writes are cheap!
  • 54. 53 Block 0 Disk Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block 7InodeB Block 7 Block 1 - update InodeA’ imap Block 8 Block 0 - update … Won’t the disk fill up with lots of old junk? Block 5 - update InodeA’ InodeB’ imap
  • 56. Garbage Collection in LSFS 55 Block 0 Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block 7 InodeB Block 7 Block 1 - update InodeA’ imap Block 8 Block 0 - update …Block 5 - update InodeA’ InodeB’ imap
  • 57. Garbage Collection in LSFS 56 Block 0 Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block 7 InodeB Block 7 Block 1 - update InodeA’ imap Block 8 Block 0 - update …Block 5 - update InodeA’ InodeB’ imap Segment
  • 58. Garbage Collection in LSFS 57 Block 0 Block 1 Block 2 InodeA Block 3 Block 4 Block 5 Disk, continued Block 6 Block 7 InodeB Block 7 Block 1 - update InodeA’ imap Block 8 Block 0 - update …Block 5 - update InodeA’ InodeB’ imap Segment
  • 59. Garbage Collection in LSFS 58 Block 6 Block 7 InodeB Block 7 Block 1 - update InodeA’ imap Block 8 Block 0 - update …Block 5 - update InodeA’ InodeB’ imap Segment A full clean segment! Block 2 Block 3 Block 4 InodeA’ InodeB’ imap …
  • 62. Differences with Flash No need for sequential writes Just need to find unused blocks Can do 1  0 rewrites! Maintain a bitmap of used blocks at fixed block Lots of complexities: Bits wear out, read disruption, etc. 61 Who should deal with those complexities?
  • 63. 62 2GB microSD card Andrew “bunnie” Huang
  • 64. 63 2GB microSD card Andrew “bunnie” Huang ARM Processor!
  • 65. 64
  • 66. Summary: Storage Systems 65 Device Example Time to Access Cost per Bit Mercury (Gin) Delay Line UNIVAC (1951) 220,000ns (average) $ 0.38 (1968) (a bazillion n$) DRAM Kingston KVR16N11/4 4GB DDR3 ($40) 13.75ns 1.16 n$ SSD Samsung 500GB ($300) ~10,000 ns (for random read) 0.075 n$ Disk Drive Seagate Desktop HDD 4 TB SATA 6Gb/s NCQ 64MB 5,000,000ns 0.0046 n$ ModernHardDrive
  • 67. Relevance to PS4? 66 Not expected to implement any of this – a very simple filesystem in memory is fine (but feel free to surprise us!) Your filesystem is in memory: no need to deal with complexities of interfacing with persistent media (but doing this could be a good post-PS4 project!).