
앤드루 크로티(Andrew Crotty), 빅토르 라이츠(Viktor Leis), 앤디 파블로(Andy Pavlo)는 메모리 매핑 파일 입출력(MMAP)이 현대 데이터베이스 관리 시스템(DBMS)의 전통적인 버퍼 풀을 대체하기에 적합하지 않다고 경고한다. 논문은 MMAP의 정확성·성능 문제를 설명하고, 실험 분석에서 성능 한계를 확인했다고 밝힌다.
MMAP은 보조 저장장치의 파일 내용을 프로그램 주소 공간에 매핑해 포인터로 접근하게 하는 운영체제 기능이다. 운영체제가 프로그램의 참조에 맞춰 페이지를 불러오고 메모리가 부족하면 내보내므로, DBMS 개발자가 버퍼 풀을 직접 구현하지 않아도 되는 간편한 대안으로 여겨져 왔다.
그러나 저자들은 MMAP을 올바르고 효율적으로 사용하기 어렵다고 지적한다. 일부 인기 DBMS는 메모리보다 큰 데이터베이스를 지원하기 위해 처음에 MMAP을 사용했지만, 숨겨진 문제에 부딪힌 뒤 상당한 엔지니어링 비용을 들여 파일 입출력을 직접 관리하는 방식으로 전환했다고 설명한다. 논문은 MMAP을 파일 입출력에 고려할 수 있는 경우도 제시한다고 밝혔지만, 소개 자료에는 구체적인 권고 조건이 담겨 있지 않다.
논문은 2022년 CIDR에서 발표됐다. 벤치마크 소스 코드는 GitHub 저장소에서 확인할 수 있으며, 논문 전문도 공개돼 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요