- 디스크 메니저
- B+트리를 파일에 저장하는 형태로 만들었습니다.
- 버퍼 메니저
- LRU 정책에 따르는 B+트리 구조의 페이지 중 자주 쓰이는 페이지를 버퍼에 올려놓습니다.
- 버퍼의 사이즈는 사용자가 정할 수 있습니다.
- 버퍼는 여러 사용자가 접근할 수 있는 영역이며 그렇기에 멀티 스레드를 사용하였고 이를 성능의 개선을 위해 read-write lock을 frame마다 걸 수 있도록 하고 버퍼에도 LRU 정책에 따른 페이지의 교체를 대비하는 lock을 만들었습니다.
- Join
- 성능 개선을 위해서 페이지마다 가지고 메타 데이터에 가지고 있는 값의 최댓값과 최솟값을 두어 마치 세그먼트 트리와 같은 형식을 갖추게 하여 필요 없는 페이지는 버퍼에 올리지 않을 수 있도록 구성하였습니다.