피드로 돌아가기
Dev.toDatabase
원문 읽기
Raw BSON과 Mutable BSON의 분리를 통한 O(1) 필드 접근 최적화
Mutable BSON and Oracle OSON
AI 요약
Context
Serialization format과 Runtime memory structure의 혼동으로 인한 부적절한 벤치마크 수행 상황 발생. Disk 저장 효율을 극대화한 Raw BSON을 직접 쿼리하여 발생하는 O(n) 순차 탐색의 성능 저하 문제 분석.
Technical Solution
- Disk-Network 전송 최적화를 위해 메타데이터를 제거한 Compact한 Raw BSON Serialization 적용
- 데이터 로드 시 RAM 최적화를 위해 포인터 기반의 Mutable BSON 구조로 변환 수행
- 필드 접근 시간 단축을 위해 Elements Vector를 도입한 O(1) 복잡도의 필드 액세스 구현
- 효율적인 필드 네비게이션을 위한 Skiplist 구조의 In-memory 인덱싱 적용
- OS Filesystem Cache 활용도 극대화를 위해 단일 I/O 기반의 문서 읽기/쓰기 전략 채택
- WiredTiger Storage Engine을 통한 In-memory 구조와 On-disk 포맷의 명확한 역할 분리
실천 포인트
- 데이터 포맷 설계 시 Disk 저장용(Serialization)과 Memory 처리용(Runtime) 구조를 분리하여 각각의 목적에 맞게 최적화했는지 검토 - 필드 탐색 비용을 줄이기 위해 순차 스캔 대신 인덱스 벡터나 포인터 기반의 맵핑 구조 도입 고려 - 외부 벤치마크 분석 시 테스트 대상이 실제 런타임 엔진의 최적화 경로를 통과하는지 검증