Milvus, 재정의된 데이터 관리와 향상된 저장 용량을 위해 MMap 도입
Milvus는 오픈 소스 벡터 데이터베이스 중 가장 빠른 솔루션으로, 높은 성능 요구 사항을 가진 사용자에게 적합합니다. 그러나 사용자 요구의 다양성은 그들이 다루는 데이터만큼이나 다양합니다. 일부 사용자는 순수한 속도보다 예산 친화적인 솔루션과 확장 가능한 스토리지를 우선시합니다. 이러한 수요의 스펙트럼을 이해한 Milvus는 MMap 기능을 도입하여, 기능성을 희생하지 않으면서 비용 효율성을 약속하고 대용량 데이터를 처리하는 방식을 재정의합니다.
MMap이란 무엇인가요?
MMap은 memory-mapped files의 약자로, 운영 체제 내에서 파일과 메모리 사이의 간극을 메워 줍니다. 이 기술을 통해 Milvus는 대용량 파일을 시스템의 메모리 공간에 직접 매핑하여 파일을 연속적인 메모리 블록으로 변환할 수 있습니다. 이러한 통합은 명시적인 읽기 또는 쓰기 작업의 필요성을 없애며, Milvus가 데이터를 관리하는 방식을 근본적으로 바꿉니다. 대용량 파일이나 사용자가 파일에 무작위로 접근해야 하는 상황에서 원활한 접근과 효율적인 저장을 보장합니다.
MMap의 혜택을 받는 사용자는 누구인가요?
벡터 데이터베이스는 벡터 데이터의 저장 요구 사항 때문에 상당한 메모리 용량을 필요로 합니다. MMap 기능을 사용하면 제한된 메모리 내에서 더 많은 데이터를 처리하는 것이 현실이 됩니다. 그러나 이러한 향상된 처리 능력에는 성능 비용이 따릅니다. 시스템은 메모리를 지능적으로 관리하여 부하와 사용량에 따라 일부 데이터를 제거합니다. 이러한 제거를 통해 Milvus는 동일한 메모리 용량 내에서 더 많은 데이터를 처리할 수 있습니다.
테스트 중 충분한 메모리가 있는 경우, 워밍업 기간 후 모든 데이터가 메모리에 상주하여 시스템 성능이 유지되는 것을 확인했습니다. 그러나 데이터 볼륨이 증가함에 따라 성능은 점진적으로 감소합니다. 따라서 성능 변동에 덜 민감한 사용자에게 MMap 기능을 권장합니다.
Milvus에서 MMap 활성화: 간단한 구성
Milvus에서 MMap을 활성화하는 것은 놀라울 정도로 간단합니다. milvus.yaml 파일을 수정하기만 하면 됩니다. queryNode 구성 아래에 mmapDirPath 항목을 추가하고 유효한 경로를 값으로 설정하세요.
균형 맞추기: 성능, 스토리지, 시스템 한계
데이터 접근 패턴은 성능에 큰 영향을 미칩니다. Milvus의 MMap 기능은 지역성을 기반으로 데이터 접근을 최적화합니다. MMap을 사용하면 Milvus는 순차적으로 접근되는 데이터 세그먼트에 대해 스칼라 데이터를 디스크에 직접 쓸 수 있습니다. 문자열과 같은 가변 길이 데이터는 평탄화 과정을 거치며 메모리의 offsets 배열을 사용해 인덱싱됩니다. 이 접근 방식은 데이터 접근 지역성을 보장하고 각 가변 길이 데이터를 별도로 저장하는 오버헤드를 제거합니다. 벡터 인덱스에 대한 최적화는 세심하게 이루어집니다. MMap은 벡터 데이터에 선택적으로 사용되는 한편, 인접 리스트는 메모리에 유지하여 성능을 저하시키지 않으면서 상당한 메모리를 절약합니다.
또한 MMap은 메모리 사용량을 최소화하여 데이터 처리를 극대화합니다. QueryNode가 전체 데이터셋을 복사하던 이전 Milvus 버전과 달리, MMap은 개발 과정에서 간소화된 복사 없는 스트리밍 프로세스를 채택합니다. 이 최적화는 메모리 오버헤드를 크게 줄입니다.
내부 테스트 결과에 따르면 MMap을 활성화하면 Milvus가 두 배의 데이터 볼륨을 효율적으로 처리할 수 있습니다.
앞으로의 방향: 지속적인 혁신과 사용자 중심 개선
MMap 기능은 베타 단계에 있지만, Milvus 팀은 지속적인 개선에 전념하고 있습니다. 향후 업데이트는 시스템의 메모리 사용량을 개선하여 Milvus가 단일 노드에서 훨씬 더 큰 데이터 볼륨을 지원할 수 있도록 할 것입니다. 사용자는 MMap 기능에 대해 더 세분화된 제어를 기대할 수 있으며, 컬렉션에 대한 동적 변경과 고급 필드 로딩 모드를 사용할 수 있게 됩니다. 이러한 개선 사항은 전례 없는 유연성을 제공하여 사용자가 특정 요구 사항에 맞게 데이터 처리 전략을 조정할 수 있도록 합니다.
결론: Milvus MMap으로 데이터 처리 우수성 재정의하기
Milvus 2.3의 MMap 기능은 데이터 처리 기술에서 중요한 도약을 의미합니다. 성능, 비용, 시스템 한계 사이에서 섬세한 균형을 이룸으로써, Milvus는 사용자가 방대한 양의 데이터를 효율적이고 비용 효율적으로 처리할 수 있도록 지원합니다. Milvus가 계속 발전함에 따라, 혁신적인 솔루션의 최전선에 서서 데이터 관리에서 달성 가능한 것의 경계를 재정의하고 있습니다.
Milvus가 비할 데 없는 데이터 처리 우수성을 향한 여정을 계속해 나가는 동안, 더 많은 획기적인 발전을 기대해 주세요.
계속 읽기

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
Discover DeepRAG, an advanced retrieval-augmented generation (RAG) model that improves LLM accuracy by retrieving only essential data through step-by-step reasoning.



