핵심 요약
- 기존에 단일 쓰기만 가능했던 SQLite의 한계를 넘기 위해 수십 개의 동시 쓰기를 지원하는 백엔드 'HC-tree' 프로토타입이 공개되었습니다.
- 낙관적 행 레벨 락과 내장 복제(Replication) 기능을 지원하며, 데이터베이스 최대 용량도 1EiB 수준까지 대폭 확장하는 것을 목표로 합니다.
- 현재는 POSIX 환경 및 단일 프로세스 내 접근 등 일부 제약이 있는 시험용 프로토타입 단계입니다.
요약 SQLite 프로젝트에서 동시 쓰기 성능을 대폭 개선하기 위한 새로운 백엔드 프로토타입인 'HC-tree(hctree)' 프로젝트를 공개했습니다.
기존 순정 SQLite는 기본적으로 단일 쓰기(single concurrent writer)만 지원하는 한계가 있었습니다. 이를 극복하기 위해 `begin-concurrent` 확장 기능 등이 쓰이기도 했으나, 낙관적 페이지 레벨 락(optimistic page-level locking) 방식 특성상 독립된 트랜잭션 간에도 충돌이 감지되거나 COMMIT 연산의 직렬화가 불가피했습니다. 이번에 개발 중인 HC-tree는 낙관적 행 레벨 락(optimistic row-level locking)을 채택해 수십 개의 동시 쓰기 작업을 최고 속도로 처리할 수 있도록 설계되었습니다.
또한 분산 환경을 위한 복제(Replication) 지원도 백엔드 차원에서 내장되었습니다. 기존 세션 확장 기능을 활용하는 것과 달리, 팔로워 데이터베이스에 트랜잭션을 적용할 때 유효성 검증 단계를 생략할 수 있어 리더 데이터베이스보다 더 빠르고 높은 동시성으로 데이터를 동기화할 수 있습니다. 용량 면에서도 32비트 페이지 번호로 인해 16TiB로 제한되던 기존 규격에서 48비트 페이지 번호 지원을 목표로 설정해 이론상 최대 1EiB(약 100만 TiB)까지 확장을 꾀하고 있습니다.
다만 현재 공개된 프로토타입은 완전한 완성형은 아닙니다. 단일 프로세스 내에서만 접근이 가능하고, POSIX 환경에서만 구동되며, 대용량 트랜잭션 메모리 처리나 정전 등 시스템 비정상 종료 시 데이터 복구 기능이 지원되지 않는 등 명확한 제약 사항들이 존재해 개발 및 성능 벤치마크 실험 목적으로 제공되고 있습니다.
Sponsored · 광고