데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

MongoDB의 새로운 WiredTiger StorageEngine

데이터 이야기
작성자
dataonair
작성일
2016-03-15 00:00
조회
9264


MongoDB의 새로운 WiredTiger StorageEngine



안녕하세요 오랜 만에 MongoDB 관련 최근 추세와 기술 현황에 대해 연재 글을 올리게 되었습니다. MongoDB는 관계형 데이터베이스를 대체할 수 있는 차세대 Database Management System으로 최근 국내 많은 기업들이 관심 가지고 있으며 급부상하고 있는 NoSQL 기술 중에 하나입니다. 다음과 같이 Database Model별(RDB, NoSQL 등) 사용 추이 현황을 순위로 제공하는 www.db-engines.com의 통계 결과를 통해 확인해 볼 수 있습니다.

dbin_518.jpg

위와 같이, 상위 20위 내에는 MongoDB, Casandra, Redis, HBase, Neo4J 등과 같은 NoSQL 제품들이 무료 7개가 약진하고 있는 것을 보면 사용자들의 관심 정도를 미루어 짐작해 볼 수 있을 것 입니다. 이 중에 MongoDB는 대표적인 Document-Store DB이며 2015년 12월 경 3.2 버전으로 최종 업그레이드된 상태입니다.

이번 연재 기사에서는 3.0 버전부터 제공하고 있는 차세대 WiredTiger Storage-Engine의 주요 특징에 대해 설명 드리도록 하겠습니다.



1. WiredTiger StorageEngine 구조

MongoDB는 2.6 버전 때까지 Memory Mapping Storage-Engine을 기본 저장 구조로 제공했으며 빅데이터의 빠른 쓰기와 읽기를 중점적으로 처리할 수 있는 아키텍처 구조였습니다. 하지만, 대부분의 사용자들이 관계형 데이터베이스를 사용하고 있는 현 시점에 빅데이터 처리용 DBMS 기능 만으로는 기술 활용에 많은 어려운 점들이 있을 수밖에 없기 때문에 보다 다양한 트랜잭션 중심의 비즈니스 환경에서 고효율적으로 활용할 수 있는 데이터 저장 기술이 필요하게 된 것입니다. 이러한 사용자 요구사항에 맞는 저장 기술이 WiredTiger Storage-Engine 입니다.

다음은 WiredTiger Storage-Engine의 주요 특징입니다.
1) Document-Level Lock을 제공하며 이로 인한 데이터 동시성을 제공한다
2) Memory Mappign 저장 엔진에 비해 DBMS의 Performance 향상을 제공한다.
3) Memory Mapping 구조는 단일 CPU 중심의 프로세싱 구조라면 WiredTiger 저장 엔진은 Multi- Core를 활용할 수 있는 시스템 구조이다.
4) CheckSums 기능을 통해 시스템 장애 또는 저장 장치 장애로부터 발생하는 데이터 유실을 최소화할 수 있다. (File System Corrupt 상태 분석)
5) Compression 기능을 통해 저장 공간의 최소화가 가능하다. (Compact file, Big-Block IO 최소화)
6) 기존 Memory Mapping 구조는 DBMS 지속성을 위해 Journaling 기능을 제공 하였지만, WiredTiger 구조는 Journaling 기능을 제공하지 않는다.

다음은 WiredTiger Storage-Engine의 아키텍처 구조입니다.

dbin_519.jpg



2. 압축 및 암호화 기능

Memory Mapping Storage-Engine과 비교했을 때 WiredTiger Storage-Engine의 대표적인 특징 중에 하나는 데이터 압축(Compression) 기능과 데이터 암호화(Encryption) 기능이다. 이를 통해, 비즈니스 환경에서 발생하는 빅데이터의 저장공간을 최소화 시킬 수 있으며, 암호화를 통해 데이터의 안전한 보관과 관리가 가능할 수 있도록 제공되고 있다.

다음은 압축(Compression) 기능과 관련된 주요 특징이다.

1) 기본적으로 Snappy Compression과 Zlib Compression 2가지 압축 방법을 제공한다.
2) Compression 알고리즘 타입의 유형
- Snappy : 기본 압축 기능이며 압축율이 좋고 오버헤드가 적게 발생한다.
- Zlib : Snappy 압축 방법에 비해 매우 높은 압축율을 제공되지만 CPU 오버헤드가 발생한다.
3) Index에 대해서도 압축(Compression) 기능을 제공한다.

다음은 MMAP와 WiredTiger Storage-Engine 환경에서 압축율을 비교 분석한 결과이다. dbin_520.jpg

위 결과에서 왼쪽은 Memory Mapping Storage-Engine 기반의 MongoDB에 저장되어 있는 데이터 와 인덱스 크기이며, 오른쪽 결과는 WiredTiger Storage-Engine 기반에서 Snappy 타입과 Zlib 타입의 압축 기능을 통해 저장했을 때 결과입니다. 약 60GB Storage Size의 데이터는 Snappy 타입인 경우 8GB Storage Size로, Zlib 타입인 경우에는 불과 3GB Storage Size 만으로도 동일한 데이터를 저장할 수 있습니다.



* 위 글의 저작권은 ㈜플랜정보기술에 있으며 무단 복사 및 링크는 금지합니다. 해당 글에 대한 문의사항은 아래로 연락 주시기 바랍니다.

㈜플랜정보기술 주 종 면
- MongoDB inc. (MongoDB 개발 및 기술지원 업체) 한국 공식 파트너
- DBMS 컨설팅/유지보수/판매
jina6678@daum.net
010-3864-1858

www.pitmongo.co.kr
www.mongodb-korea.org



출처 : 한국데이터베이스진흥원

제공 : 데이터 전문가 지식포털 DBguide.net