week 13: Reliable Storage 1

week 13: Reliable Storage 1

Reliability != Availability

 

간단한 VFS의 명령이 Physical level에서는 굉장히 복잡하고 많은 operation들이 되기도 한다. 그 와중에 crash가 일어난다면 어떻게 reliability를 보장할 것인가?

 

Transaction: a group of operations do on database(or storage) that meet ACID properties

  • Atomic
  • Consistency: moves the system from one legal state to another legal state. (legal state is the state database(or storage) is available)
  • Isolation: other transations do not see results of earlier transactions until they are committed
  • Durability: operations that complete stay completed. Future failures do not corrupt previously stored data.

 

FAT, FFS(Unix)에서 normal operation, recovery막 적어놓은 슬라이드 뭔지 모르겠다.

FFS: Move and Grep (Need to update below with ppt)
$ ls -r
x have file
y have nothing

Process A: mv x/file y
Process B: gr file x y

grep may fail

 

지난시간에 cylinder전후로 배웠던것들도 필기해야함

 

Copy on Write / Write Anywhere:
괜찮은듯 어느 한 프로세스가 파일을 업데이트 하는 중에도 다른 프로세스가 그 부분을 읽어달 수 있겠다.

 

CoW: CoW에서 쓰이는 내부의 new allocation은 inode등 필요한 block들을 sequential하게 alloocate 할 가능성이 높기 때문에 write에는 유리하지만 read에는 불리하다 (지금 졸려서 뭔말인지 정확히는 모르겠음. )
Pros: correct behavior
Cons:

 

많이 졸리면 양 눈이 따로노네. 개신기

 

Journaling / Logging File Systems
Intention list
Journaling:
Logging

Leave a Reply