Manticore Search 27.1.5: 인증, 샤딩된 테이블, 대화형 검색 및 더 빠른 벡터 검색
요약
Manticore Search 27.1.5 버전이 출시되었습니다. 이번 업데이트에는 내장 인증 및 권한 부여 기능, 샤딩된 테이블 지원, 대화형 검색 기능이 포함되었습니다.
핵심 포인트
- 내장된 인증(Auth) 및 권한 부여(Authz) 기능 추가
- 샤딩된 테이블 및 대화형 검색 지원
- HNSW 빌드 속도 개선 및 벡터 검색 성능 향상
- 복제 저장 레이아웃 변경에 따른 주의사항 안내
Manticore Search 27.1.5가 출시되었습니다. 이번 릴리스에는 내장된 인증 (Authentication) 및 권한 부여 (Authorization), 샤딩된 테이블 (Sharded tables), 대화형 검색 (Conversational search), 더 빠른 HNSW 빌드, 개선된 패싯 (Faceting) 및 집계 (Aggregations), 그리고 KNN, 복제 (Replication), 프로토콜 호환성 및 기타 분야에 걸친 긴 수정 사항 목록이 포함되어 있습니다.
이 포스트는 25.0.1부터 27.1.5까지 출시된 모든 사항을 정리한 것입니다.
업그레이드 노트
업그레이드하기 전에 다음 사항을 검토하십시오:
- 27.0.0 버전에서 내장된 인증/권한 부여 (Auth/Authz) 기능이 추가되었으며, 이를 활성화하면 액세스 가정이 변경됩니다. 인증은 기본적으로 활성화되어 있지 않지만, 일단 활성화하면 익명 액세스 (Anonymous access)가 더 이상 작동하지 않습니다. 단계적으로 배포하십시오: 먼저 원격 에이전트 (Remote agents)와 복제 피어 (Replication peers)를 업그레이드한 다음, 이들을 쿼리하거나 관리하는 마스터 (Masters)를 업그레이드하고, 전체 토폴로지 (Topology)가 새 버전에 올라간 후에만 인증을 활성화하십시오. 분산된 원격 에이전트 및 복제 관련 작업은 참여하는 데몬 (Daemons) 간에 일치하는 저장된 인증 데이터가 필요합니다. 성공적인
JOIN CLUSTER는 참여하는 노드의 로컬 인증 데이터를 제공하는 클러스터의 인증 데이터로 교체합니다. (Issue #2833, PR #3648) - 26.0.0 버전에서 복제 저장 레이아웃 (Replication storage layout)이 변경되었습니다. 들어오는 복제된 테이블은 이제 클러스터
path대신 일반적인data_dir/<table>레이아웃 아래에 위치합니다. 사용자 정의path를 사용하여 복제 클러스터를 실행하는 경우, 업그레이드 후 복제된 테이블을 이동하거나 다시 동기화해야 할 수도 있습니다. 다운그레이드는 새로운 레이아웃이 채택되기 전까지만 안전합니다.
- MCL을 데몬(daemon)과 별도로 관리하는 경우, Manticore와 함께 업그레이드하십시오. 이번 릴리스 라인은 벡터 성능 개선부터 멀티스레드 HNSW 빌드, 그리고 이후의 안정성 수정에 이르기까지 여러 MCL 업데이트를 포함합니다. 오래된 라이브러리와 최신 데몬을 혼용하는 것은 권장되지 않습니다. (25.2.0, 25.15.0, 26.0.3, 26.3.2, 27.1.0)
주요 특징 (Highlights)
내장된 인증 및 권한 부여 (Built-in authentication and authorization)
Manticore는 이제 MySQL, HTTP/HTTPS, 분산 원격 에이전트(distributed remote agents) 및 복제 관련 작업 전반에 걸쳐 사용자, 비밀번호, 베어러 토큰(bearer tokens) 및 세분화된 권한(fine-grained permissions)을 지원합니다. 이를 통해 액세스 제어(access control)가 항상 데이터베이스 외부에서 처리해야 하는 작업이 아닌, 제품의 핵심 기능(first-class part)이 되었습니다.
샤딩된 테이블 (Sharded tables)
Manticore는 이제 샤딩된 테이블(sharded tables)을 생성 및 관리하고, 샤드(shard) 간에 삽입(insert)을 분산하며, 주변 수명 주기(lifecycle)의 더 많은 부분을 한 곳에서 처리할 수 있습니다. 이를 통해 쓰기 집약적인(write-heavy) 대규모 배포를 더 쉽게 운영할 수 있으며, 엔진 외부에서 유지해야 하는 샤딩 관련 로직의 양을 줄일 수 있습니다.
대화형 검색 (Conversational search)
이번 릴리스에서는 Manticore Search에 대화형 검색 (Conversational search) 기능이 추가되었습니다. 이 기능은 CREATE CHAT MODEL 및 CALL CHAT을 통해 제공되므로, 동일한 데이터에 대해 별도의 검색 레이어 (retrieval layer)를 구축하는 대신 기존의 벡터화된 테이블 (vectorized table)을 대상으로 직접 질문을 던질 수 있습니다.
내부적으로 Manticore Search는 FLOAT_VECTOR 필드에서 KNN을 실행하고, 해당 필드의 from='...' 소스 컬럼으로부터 LLM 컨텍스트 (context)를 구축하며, conversation_uuid를 통해 대화 기록을 유지하고, 답변과 이를 뒷받침하는 sources를 모두 반환합니다. 이미 Manticore에 임베딩 (embeddings)을 저장하고 있다면, 문서 Q&A 및 지원형 어시스턴트 (support-style assistants)를 훨씬 쉽게 연결할 수 있습니다.
더 빠른 벡터 구축 및 KNN 개선 사항
벡터 검색은 이번 사이클 내내 지속적으로 개선되었습니다.
Manticore는 KNN 성능을 개선하고, 로컬 ONNX 임베딩 (embeddings) 지원을 추가했으며, ONNX 추론 (inference) 속도를 높였습니다. 또한 멀티스레드 인덱스 구축 (multithreaded index construction)을 통해 HNSW 구축 및 재구축 (build and rebuild) 속도를 훨씬 빠르게 만들었습니다.
이러한 작업의 주요 단계는 다음과 같습니다:
- 25.1.0에서 KNN 거리 계산 (distance calculation) 및 AVX-512 로딩을 개선했습니다.
- 25.2.0에서 MCL에 로컬 ONNX 임베딩 (embeddings) 지원을 추가하고 벡터 검색 (vector-search) 성능을 더욱 향상시켰습니다.
- 25.14.0 및 25.15.0에서 필요한 라이브러리 지원과 함께 멀티스레드 HNSW 구축을 추가했습니다.
여기서 가장 큰 실질적인 개선 사항은 훨씬 빠른 자동 임베딩 (auto-embedding)과 대규모 벡터 테이블에 대한 짧아진 구축 및 재구축 시간입니다. 초기 KNN 구축, 청크 병합 (chunk merges), 그리고 ALTER TABLE ... REBUILD KNN 작업이 모두 이 영향을 받습니다.
더 나은 패싯 (faceting) 및 집계 (aggregations)
패싯 (faceting) 및 집계 (aggregations) 기능 또한 더욱 유용해졌습니다.
facet_filter_mode를 통해 활성 필터링 상태에서도 선택됨, 사용 가능, 사용 불가능한 버킷을 유지하는 이커머스 스타일의 필터를 더 쉽게 구축할 수 있습니다.
분석 측면에서는 다음과 같은 변화가 있습니다:
date_histogram()에time_zone및offset기능이 추가되었습니다.- OpenSearch Dashboards를 지원합니다.
- Manticore에
percentiles,percentile_ranks,mad와 같은 통계적 집계 (statistical aggregations) 기능이 추가되었습니다.
기타 주목할 만한 개선 사항
이번 릴리스 라인에는 작지만 유용한 여러 기능들이 포함되어 있습니다:
searchd --check를 통해 부작용 없이 시작 전 설정을 검증할 수 있습니다.EXIT CLUSTER를 사용하면 노드를 재시작하지 않고 온라인 상태에서 복제 클러스터 (replication cluster)를 떠날 수 있습니다.dict=keywords_32k를 통해 해시(hash)나 메시지 ID와 같이 매우 긴 기계 생성 토큰을 조용한 절단 (silent truncation) 없이 인덱싱할 수 있습니다.- 내장된 우크라이나어 표제어 추출기 (Ukrainian lemmatizer)가 추가되어 우크라이나어 텍스트 검색을 위한 네이티브 형태론 (morphology) 지원이 확장되었습니다.
- Systemd
Type=notify가 시작 및 종료 감독 (supervision) 기능을 개선합니다. - systemd 관리 하의
searchd프로세스가 이제systemd저널 (journal)에 로그를 기록합니다. JOIN쿼리가 이제 명시적인 왼쪽 테이블 컬럼 접두사 (left-table column prefixes)를 지원합니다.- OpenSearch Dashboards를 지원합니다.
manticore-load에 멀티 쿼리 (multi-query) 지원이 추가되었습니다.
버그 수정
이번 릴리스 라인에는 changelog에 나열된 65개의 수정 사항이 포함되어 있습니다. 최신 후속 릴리스 중 언급할 만한 몇 가지 추가 수정 사항은 다음과 같습니다:
- 27.1.5 버전에서 컬럼형 (columnar)
float_vector속성을 가져올 때 발생하던 크래시 (crash)를 수정했습니다. - 27.1.4 버전에서
dict='keywords'에서dict=keywords_32k로의 단방향 업그레이드 시ALTER TABLE ... RECONFIGURE및SHOW CREATE TABLE관련 문제를 수정했습니다. - 27.1.3 버전에서 Buddy를 4.0.1로 업데이트하고, 인증 (auth) 하에서의 Queue-plugin 변이 (mutation) 권한 처리를 강화했습니다.
doc_id기반의 KNN 쿼리가 이제offset및max_matches를 올바르게 유지합니다.- KNN 재점수화 (rescoring) 순서가 수정되어, 명시적인
ORDER BY타이브레이커 (tie-breakers)가 다시 정상 작동합니다. - 컬럼형 테이블에서
GROUP BY를 사용하는 하이브리드 융합 쿼리 (Hybrid fused queries)의 크래시 문제를 해결했습니다. - 복제 (Replication) 및 노드 재가입 (node-rejoin) 크래시 경로를 추가로 정리했습니다.
- 25.12.1 버전에서 바이너리 MySQL 프로토콜 (Binary MySQL protocol) 동작을 수정하였으며, 이는 실제 클라이언트 호환성을 기대하는 통합 환경에서 중요합니다.
- Fluent Bit 벌크 인제스트 (bulk-ingest) 상호 운용성 문제를 수정하여, 성공적인 응답이 중복 삽입 (duplicate inserts)으로 재실행되는 것을 방지했습니다.
- 27.1.2 버전에서 여러
source블록으로 구축된 일반 인덱스에 대한sql_attr_multi처리를 수정했습니다.
전체 목록은 changelog를 참조하세요.
도움이 필요하거나 연결하고 싶으신가요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기