예전에 정리한 문서지만 공유차원에서 올려봅니다.^^
데이터베이스와 밀접한 관련이 있는 데이터 저장매체 인 디스크구조 및 동작방식에 대해 알아보자.
디스크는 자기 디스크 플래터로 구성돼있으며 데이터를 트랙에 자기적으로 저장한다.
디스크 안팎으로 움직이는 전기자에 끝에 부착된 헤드가 회전하는 디스크를 읽고 쓰는데
플래터당 하나의 헤드가 존재해 플래터 집합인 디스크는 여러 헤드(전기자에 부착된)를
가질 수 있다. 또한 헤드와 전기자는 모두 연결돼있어 모든 헤드는 데이터를 동시에 트랙에
읽고 쓴다.
디스크 헤드가 섹터의 데이터를 읽기 위해서는 섹터가 헤드 바로 아래에 있어야 하는데,
디스크는 항상 회전하므로 섹터가 그 위치에 올 때까지 기다려야 한다. 이때 디스크가
데이터를 읽을 수 있는 위치로 회전하는데 걸리는 시간이 회전 대기 시간(Rotation latency)이다.
보통 15000rpm 디스크의 평균 회전 대기 시간은 약 2ms 정도이다.
위 회전 대기 시간외에 헤드가 데이터가 존재하는 곳 즉 디스크 전기자가 요청된 데이터를
가지는 실린더로 이동하는 시간을 탐색시간(seek time)이라 한다.
(실린더는 디스크 플래터들의 동일한 트랙 집합이다.)
디스크 동작을 완료하는데 걸리는 시간은 다음의 총합이며
-데이터를 가지는 트랙으로 이동하는데 걸리는 탐색시간(Seek Time)
-데이터를 헤드 아래로 회전시키기 위해 필요한 회전 대기시간(Rotational latency)
-디스크 드라이브에서 디스크 컨트롤러로 데이터를 전자적으로 전송하기 위해 필요한 시간
I/O 완료는 여기에 시스템 오버헤드(매우 포괄적인)를 더한 시간이다.
디스크I/O완료에 걸리는 시간은 요청된 I/O가 순차 방식인지 임의 방식인지에 따라 영향을
받으며 순차적 I/O성능은 트랙간 탐색 시간에, 임의I/O성능은 평균 탐색시간에 의해 좌우된다.
순차적 I/O(Sequential I/O)
디스크의 인접한 데이터의 액세스로 임의 I/O보다 트랙간 탐색 시간이 빨라 더 많은 양을
보다 빨리 처리할 수 있다.
임의 I/O(Random I/O)
디스크의 서로 다른 부분으로부터 액세스될 때 발생하며, 임의의 헤드이동이 발생해 성능을
감소시킨다.