저장 장치

컴퓨터에는 크게 중앙처리장치(CPU), 주기억장치(RAM, ROM 등), 보조기억장치(HDD, SSD) 등이 있다.

On-Board Cache는 L3 캐시, On-chip Cache는 L1, L2 캐시에 사용된다. RAM(흔히 메인 메모리)이 주 작업공간이 될 것이다. 현대엔 SSD(Flash)가 주 저장장치로 사용되는데, 성능 좋은 SSD는 캐시로 사용되기도 한다.

Untitled

Disks

많은 DB가 아직도 자기 디스크(Magnetic Disk)를 사용한다. 디스크의 데이터를 읽고 쓰기 위해선 read / write 시스템콜을 사용한다. 아주 느리기 때문에, 이런 디스크 I/O를 줄이는 것이 DBMS의 주 목표이다. I/O는 “페이지(=블럭)” 단위로 실행된다 (최근엔 64KB~128KB).

  • read: 디스크 → RAM 으로 데이터 페이지를 읽어온다.
  • write: RAM → 디스크 로 데이터 페이지를 저장한다.

Untitled

Disk Space Management

  • 파일의 디스크에서의 physical organization 을 관리한다.
    • 메모리의 page를 디스크의 바이트 주소에 맵핑
    • 디스크의 page를 메모리에 로드
    • page를 다시 디스크에 write
  • 상위 레이어가 파일 레이어에게 할 수 있는 request는:
    • 특정 page# 에 해당하는 부분을 디스크에서 읽어와라/써라
    • 새로운 page를 할당/dealloc해라
  • 디스크를 읽는 방법:
    1. 저장 장치에 바로 접근하는 방법
      • 빠르지만, 디바이스를 잘 알아야 하고 디바이스가 바뀌면 사용하지 못함
    2. 파일 시스템(FS)을 사용하는 방법
      • Allocate single large “contiguous” file on a empty disk.

Overall File Representations

대략적으로, 테이블 및 레코드는 실제 디스크에 다음과 같이 저장된다. 레코드의 모음을 페이지라 하고, 페이지의 모음을 파일이라 하고, 파일의 모음을 데이터베이스라 하는 것이다. DB(files(pages(records)))

💡 다시 한번 강조하자면, Relational DB에 대한 내용이다

Untitled