홍카나의 공부방

[데이터베이스] 하드 디스크의 구조 본문

Data Engineering/Database

[데이터베이스] 하드 디스크의 구조

홍문관카페나무 2023. 5. 14. 18:27

데이터베이스의 저장

  • 데이터베이스는 일반적으로 하드 디스크, SSD에 저장된다.
  • 만약 하드 디스크에 저장된다고 한다면, 하드 디스크가 데이터를 저장하고 접근하는 방식을 알아야 DB를 사용할 때 어떻게 데이터를 빠르게 read & write할지 결정할 수 있다. ( 디스크는 느려서, 저장 방식을 알아야 한다. )
  • 그래서 하드 디스크의 데이터 저장 방식을 먼저 알아본다.

 


Hard Disk의 구조

하드 디스크의 구조

 

  • 하드 디스크는 수많은 플랫터로 구성되어 있다. 그리고 플랫터의 중심축 부분을 스핀들이라고 한다.
  • 한 플랫터는 양면으로 있고, 플랫터에는 수많은 트랙들이 있다.
  • 트랙을 또 나눌 수 있는데, 위 그림처럼 트랙을 나눈 부분을 섹터라고 부른다. 보통 섹터는 512바이트로 나눈다.
  • 같은 위치의 트랙을 실린더라고 한다. 보통 데이터를 읽을 때 플랫터 마다 존재하는 여러 디스크 헤드가 같은 위치의 트랙을 동시에 읽는다.

 

디스크 헤드와 암

  • 하드 디스크는 스핀들이 도는 방식이다. 그래서 디스크 헤드와 디스크 암이 위치를 바꾸면서 데이터를 읽는다.
  • 디스크 접근 시간은 디스크 헤드가 원하는 위치를 찾는 시간을 의미한다.
  • 디스크 헤드가 특정 트랙까지 움직이는 시간을 탐구 시간(Seek time)이라고 한다.
  • 이후, 데이터를 읽어야 하는 섹터까지 스핀들이 회전하는 시간을 회전 지연 시간(Rotational delay)이라고 한다.
  • 그리고 해당 섹터에서 데이터를 전송하는 시간을 데이터 전송 시간(Transfer Time)이라고 한다.
  • 디스크 접근 시간은 위 3단위의 시간을 합친 시간이다.
  • 저 3시간 중에서 SEEK TIME이 가장 오래 걸린다. 즉, 디스크 헤드가 트랙 사이를 왔다 갔다 하는 시간이 가장 오래 걸린다.

 

입체 구조

  • 그래서 데이터를 저장할 때 같은 실린더에 두면, 읽는 시간을 엄청나게 줄일 수 있다. 디스크 헤드가 움직일 소요가 감소하면서 Seek time도 감소하기 때문이다. 물론 디스크 암/헤드가 움직이지 않으면 Best.
  • 그리고 한꺼번에 읽어야 한다. 1바이트를 write 할 때 마다 디스크 접근해버리면 성능이 떨어져서 못쓴다. 이게 메모리에 dirty data가 있는 이유다.
  • 동일 실린더, 횟수는 최소화!

 

반응형