MongoDB의 성능 저하, 가스 부족

MongoDB의 성능이 여전히 문제인가요?

Avalon은 작년에 Couchbase Server와 MongoDB를 벤치마킹했으며, 그 이후로 많은 변화가 있었습니다. Couchbase Server 4.0은 SQL 기반 쿼리 언어인 N1QL을 도입했습니다. Couchbase Server 4.1에서는 준비된 문과 커버링 인덱스가 추가되었고 쿼리 성능이 향상되었습니다.

Couchbase Server 4.5에는 메모리 최적화 인덱스, 배열 인덱싱 및 인덱스 조인뿐만 아니라 스토리지(순환 쓰기) 및 일관성(읽기-자신만의 쓰기) 개선 사항이 추가되었습니다. Couchbase Server는 더 강력한 쿼리 엔진을 가지고 있지만, 이러한 개선 사항으로 가장 빠를까요?

이번에는 Avalon에서 읽기/쓰기 성능과 쿼리 성능을 모두 벤치마킹했습니다.

읽기/쓰기 결과는 놀랍지 않을 것입니다.

카우치베이스 서버가 몽고DB보다 읽기/쓰기 처리량이 6배 더 높다고요? 어떻게? 왜 그럴까요?

이는 아키텍처, 리소스 활용도, 효율성으로 요약됩니다.

쓰기 성능과 관련하여, MongoDB는 레거시 마스터/슬레이브 아키텍처로 인해 어려움을 겪고 있습니다. 모든 서버에서 기본 노드와 보조 노드가 실행되고 쓰기가 기본 노드로 제한되기 때문에 서버 리소스의 절반만 쓰기에 활용할 수 있습니다.

읽기 성능과 관련해서는 메모리 중심 아키텍처의 이점을 누릴 수 있습니다. 모든 데이터를 디스크에 쓰는 동안 관리되는 개체 캐시에 가능한 한 많은 문서를 유지하므로 파일 데이터 블록을 캐싱하는 것보다 훨씬 더 효율적입니다.

쿼리 결과는 의외일 수 있습니다.

카우치베이스 서버가 몽고DB보다 쿼리 처리량이 3배 더 많다고요? 어떻게? 왜 그럴까요?

앞서 말했듯이 아키텍처, 리소스 활용도, 효율성으로 요약됩니다.

몽고DB는 로컬 인덱스에 의존하기 때문에 모든 노드에서 모든 쿼리를 실행하며, 모든 노드에는 인덱스의 일부만 포함되어 있습니다. 따라서 쿼리 성능은 단일 노드의 성능으로 제한됩니다. 예를 들어, 단일 노드가 초당 7,500개의 쿼리를 실행할 수 있다면 노드를 더 추가해도 도움이 되지 않습니다. 모든 노드는 여전히 초당 동일한 7,500개의 쿼리를 실행해야 하기 때문입니다.

카우치베이스 서버는 메모리 최적화된 글로벌 인덱스는 물론 데이터 읽기 및 쓰기, 인덱싱, 쿼리를 위한 독립적인 서비스를 제공합니다.

스캔 대기 시간과 관련하여, Couchbase Server는 인덱스 서비스가 인덱스의 일부가 아닌 전체 인덱스를 유지하는 글로벌 보조 인덱스(GSI)를 활용할 수 있습니다. 이를 통해 쿼리 서비스는 한 번의 인덱스 스캔으로 반환할 문서를 식별하여 반환할 문서가 하나 이상 포함된 노드로만 가져오기 요청을 제한할 수 있습니다. 메모리 최적화 스토리지를 사용하면 전체 인덱스가 메모리에 저장될 뿐만 아니라 잠금 없는 스킵 목록에 저장되므로 디스크에 최적화된 데이터 구조인 B-tree보다 훨씬 더 효율적입니다.

삽입 대기 시간과 관련하여, Couchbase Server는 격리의 이점을 제공합니다. 인덱스와 데이터 서비스는 서로 다른 노드에서 실행되든 아니든 간에 인덱스가 비동기적으로 업데이트되어 격리되어 있습니다. 그 결과, MongoDB 삽입 지연 시간은 쿼리의 영향을 많이 받았지만, Couchbase Server 삽입 지연 시간은 그렇지 않았습니다.

자세한 내용은 보고서 작성.

if (사용자가 100명 이상) 반환 "Couchbase Server"; 그렇지 않으면 "MongoDB"를 반환합니다;

해커 뉴스에서 토론하기

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Shane Johnson, 제품 마케팅 담당 이사, Couchbase

셰인 K 존슨은 Couchbase의 제품 마케팅 디렉터였습니다. Couchbase에 입사하기 전에는 Java 및 분산 시스템에 대한 배경 지식을 바탕으로 개발 및 전도 분야에서 다양한 역할을 수행했습니다. 그는 금융, 소매, 통신 및 미디어 업계의 조직과 컨설팅을 통해 데이터 및 분석을 위해 분산 시스템에 의존하는 아키텍처의 초안을 작성하고 구현했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.