Egres는 PostgreSQL 호환 데이터베이스로, 대규모 멀티테넌트 작업을 겨냥한다. 각 테이블과 인덱스를 별도의 로그 구조 병합 트리(LSM tree)와 SSTable로 관리하며, 데이터베이스는 이런 트리들의 집합으로 구성된다.
Egres 설명에 따르면 디스크에서 데이터가 서로 섞이지 않아 테이블을 읽을 때 해당 테이블의 파일만 접근한다. 테넌트별 트리는 서로 겹치지 않고, 압축(compaction)은 여유 용량이 있는 노드에서 트리별로 진행한다. 브랜치는 부모의 파일을 가리키는 새 트리 집합으로 만들어진다.
행 ID는 64비트이며, 보조 인덱스는 해당 ID를 담은 Roaring 비트맵으로 표현한다. Egres는 이 방식이 공간을 절약하고 교집합 연산을 빠르게 한다고 설명한다.
Egres가 공개한 ZDB의 6억 행 데이터 측정 결과에서는 디스크 사용량이 46% 적고 기록한 바이트 수가 23% 적었다고 한다. 측정 수치
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요