💾 Stoarge
1. 캐시
- volatile
- 가장 빠르고 가장 비쌈
- 컴퓨터 시스템 하드웨어가 관리함
2. 메인 메모리
- volatile
- 빠름(10 - 100 nanoseconds)
- 모든 데이터베이스를 저장하기에는 너무 작거나 너무 비싸
3. Flash 메모리
- non-volatile
- 읽는 거는 메인 메모리만큼 빠름, 근데 쓰고 지우는게 느림
- 디지털 카메라, 핸드폰, USB와 같은 곳에 자주 쓰임
4. Magnetic 디스크
- non-volatile
- power failure 이나 system crash에 살아 남음. 가~끔 가다가 disk failure가 data destroy 할 수도 있음
- 데이터를 spinning disk에 저장, 그리고 읽고 쓰는 걸 magnetic하게
자기장의 방향에 따라서 , 자기장의 방향으로 표현
- 메인 메모리보다 훨씬 느림
- 데이터에 access하기 위해서는 디스크에 있는 걸 메인 메모리에 올리고 다시 스토리지에 올림
- 전체 데이터베이스를 저장
- Direct access : 디스크에 있는 데이터를 어떤 순서든 상관없이 읽어올 수 있음
5. Optical 디스크
- non-volatile
- 위의 마그네틱과 다르게 얘는 laser를 사용해서 읽음
- CD, DVD, 블루레이 => Write once - Read Many (WORM)과 같은 archival data에 주로 사용
- 읽고 쓰는게 마그네틱 디스크보다 느림
6. 테이프
- non-volatile
- 용량 개쩜
- 백업에 자주 사용 + archival data
- Sequential access : 디스크보다 훨씬 느림
✅ Hierarchy
- Primary storage
= 젤 빠른 거 + volatile ( 캐시 ~ 메인 메모리 )
- Secondary storage
= 그 다음으로 빠른 거 + non-volatile ( 플래시 메모리 ~ 마그네틱 디스크 )
- Tetiary storage
= 느리고 + non-volatile ( Optical 디스크 ~ 테이프 )
💿 Magnetic Disk
Read-write head
- 플래터 표면을 돌아다니면서 정보를 읽음
- Encoded 정보를 magnetically 읽고 씁니다
Track
- 플래터의 표면은 동그란 트랙들로 나뉘어져 있음
Sector
- 각 트랙들은 섹터로 나눠져 있음
- 읽거나 쓸 수 있는 데이터의 가장 작은 unit
- 512 bytes
Disk Controller
- 컴퓨터 시스템과 디스크 하드웨어 사이의 인터페이스
- 데이터가 잘 read back 되는 것을 보장할 수 있도록 체크섬 계산해서 붙여둠
- 좋지 않은 섹터들을 remapping
✅ 퍼포먼스
✔️ Seek Time
Arm을 제대로 된 트랙까지 옮기는 데 걸리는 시간
✔️ Rotational Latency Time
플래터가 돌아서 제대로 된 섹터가 헤드 밑에 오게 되는 시간
✔️ Access Time
= Seek Time + Rotational Latency Time
Read나 Write 리퀘스트가 시작된 순간부터 ~ 데이터 전송이 시작되는 시간