
Noir: 메일검색 서버를 반의 반으로 줄여준 신규 검색엔진 제작기
코드너리 | 2023. 03. 18
검색 플랫폼
사용된 기술:
관련 기술 스택이 없습니다 🙄
개요:
본 세션에서는 full scan 방식을 적용한 새로운 검색엔진을 소개합니다.
메일, 메신저 등의 개별데이터 검색서비스는 문서 유입이 많지만 검색요청은 상대적으로 적은 특징을 보입니다. 이러한 개별데이터 검색서비스를 일반적인 역색인 엔진으로 서빙하면 시간이 지날수록 색인을 업데이트하고 저장하는 비용이 상당히 증가합니다. 이전에 위 문제를 해결하기 위해 검색단위로 잘게 나눈 색인을 관리하는 방법을 사용하기도 했지만 완벽한 해결법은 아니었습니다.
그래서 신규 검색엔진은 full scan 검색방식을 선택했습니다. full scan 검색방식으로 기존 역색인 방식을 대체할 수 있었던 원리와 그 결과 얻은 고성능 증분 등 추가적인 장점을 소개드리려 합니다. 실제로 서비스에 적용한 결과 비용을 상당히 절감하는것과 동시에 사용성은 높이고 운영공수는 감소한 경험도 공유합니다.
신규 검색엔진의 볼륨 설계와 분산 구조도 소개드리려 합니다. 기본적인 문서 CRUD 외 입력받은 문서를 누락없이 안전하게 서빙하기 위해 엔진단에서 적용한 방법들을 공유합니다. 그 외 실제 서비스의 요구사항을 만족하기 위한 볼륨 샤딩, 전처리 Collation 등의 추가적인 구현 예정 사항들도 말씀드리려고 합니다.
목차
1. 개별데이터 검색서비스와 역색인 검색
- 개별데이터 검색 서비스의 특징
- 기존 역색인 검색방식의 장단점
- 역색인 검색엔진으로 개별데이터 검색서비스 서빙 시 어려움
- 신규 검색엔진 이전에 존재했던 개별 역색인 관리 솔루션의 한계
2. 역색인을 대체하는 Full Scan 검색방식
- full scan 검색방식 소개
- 문서 블록단위 압축으로 full scan 검색성능 끌어올리기
- full scan 검색엔진 MVP버전 성능
- 역색인 검색엔진 대비 장점
- Noir (No information retrieval)
신규 검색엔진 Noir
- full scan 방식을 사용하는 신규 검색엔진
- 실서비스 적용 효과
4. 설계
- Noir 볼륨 설계
- 볼륨 CRUD 방식
- 분산 구조
- 저널링
- 토폴로지 버전 관리
5. 고도화
- Collation
- 볼륨 샤딩