Manticore Search 24.4.0에서 RT 테이블 병렬 청크 병합
Manticore Search 24.4.0에서 RT 테이블 압축이 이제 병렬로 실행됩니다. 디스크 청크 병합이 동시에 시작되며, 각 작업은 2개 이상의 청크를 결합할 수 있습니다. 주요 매개변수: parallel_chunk_merges는 병렬 병합 작업 수를 제어하고, merge_chunks_per_job는 작업당 청크 수를 설정합니다. OPTIMIZE 명령은 N-way 병합을 지원하는 백그라운드 워커 풀을 활용합니다.
이 기능은 지속적인 데이터 로드에서 낮은 optimize_cutoff로 인한 압축 지연 문제를 해결합니다. 테이블은 삽입 직후 검색 가능하지만, 목표 청크 수로의 완전 최적화는 이전에 수 분이 걸렸습니다.
1천만 문서 벤치마크
id bigint, name text (10–100단어), type int, optimize_cutoff='16' 필드를 가진 RT 테이블로 테스트했습니다. Manticore Load Emulator를 사용한 로딩:
manticore-load \
--cache-gen-workers=5 \
--drop \
--batch-size=1000 \
--threads=5 \
--total=10000000 \
--init="CREATE TABLE test(id bigint, name text, type int) optimize_cutoff='16'" \
--load="INSERT INTO test(id,name,type) VALUES(<increment>,'<text/10/100>',<int/1/100>)" \
--wait
기존 모드 (parallel_chunk_merges=1, merge_chunks_per_job=2):
- 1천만 문서 로딩: 1:18.
- 완전 압축: 3:23.
- 1:18 시점: 53개 청크.
신규 모드 (parallel_chunk_merges=3, merge_chunks_per_job=5):
- 로딩: 1:18.
- 완전 압축: 1:31.
- 1:18 시점: 23개 청크.
성과: 총 시간 55% 단축, 병합 꼬리 지연 90% 감소.
저장 방식 비교
| 저장 방식 | 최적 설정 | 시간 | 최악 설정 | 시간 | 개선 배율 |
|-----------|-----------------------------------|-------|--------------------------------|--------|-----------|
| 행 지향 | parallel_chunk_merges=4, merge_chunks_per_job=5 | 14:35 | parallel_chunk_merges=1, merge_chunks_per_job=2 | 67:15 | 4.61배 |
| 열 지향 | parallel_chunk_merges=4, merge_chunks_per_job=5 | 15:10 | parallel_chunk_merges=1, merge_chunks_per_job=2 | 99:14 | 6.80배 |
최적 값: parallel_chunk_merges=4–5, merge_chunks_per_job=4–5. 신규 기본값으로 동일 1천만 문서 기준 1:57.
주요 튜닝 요소:
- 낮은
merge_chunks_per_job는 더 많은 병렬 작업 가능. - 높은 값은 개별 병합 속도 향상하나 병렬성 제한.
- I/O와 작업 부하에 따라 균형 조정.
매개변수 균형
parallel_chunk_merges는 여러 작업을 동시에 시작합니다. merge_chunks_per_job는 작업당 부하를 결정합니다. 청크가 많을 때 가벼운 작업(낮은 merge_chunks_per_job)은 병렬성을 높여 자원 효율화. 무거운 작업은 단계 줄이지만 워커 풀 독점.
벤치마크 결과 양 매개변수 3–5로 설정 시 시간 최소화. 벌크 삽입 RT 작업에서 최적화 대기 시간 대폭 단축, 삽입 속도 영향 없음.
주요 요약:
- 데이터 즉시 검색 가능; 압축은 백그라운드 실행.
- 병렬 병합으로 꼬리 지연 90% 감소 (2:05 → 0:13).
- 열 지향 저장에서 최대 6.8배 속도 향상.
- 신규 기본값 기존 모드比 40% 빠름.
- 로딩 중 청크 수 감소 (23 vs 53).
튜닝 권장사항
- Manticore Search 24.4.0 기본값부터 시작.
- 로딩 중 청크 수와 I/O 모니터링.
- 여유 CPU 시
parallel_chunk_merges4–5로 증가. - 대형 RT 테이블에서
merge_chunks_per_job=4–5테스트. - 배치 후 OPTIMIZE로 강제 압축.
낮은 optimize_cutoff의 연속 삽입 스트림에서 테이블 안정성 유지, 장기 백그라운드 작업 없음.
— Editorial Team
아직 댓글이 없습니다.