데이터ㆍ분석 / 애플리케이션

5G를 위한 새로운 DBMS, 'NewSQL DBMS'가 온다

자료제공 | 선재소프트 2018.09.28


RDBMS의 동작 과정을 살펴보면, 대용량 데이터 처리 성능이 떨어질 수밖에 없는 구조라는 지적이다. 일반적으로 RDBMS는 데이터를 행(Row) 중심으로 저장하며, 저장된 데이터는 일정한 크기의 데이터 블록으로 묶여 하드디스크에 저장된다. 데이터베이스 시스템이 하드디스크에서 데이터를 읽으면 메인 메모리에 있는 캐시인 버퍼풀(buffer pool)에 저장하고, 멀티스레드와 관련된 오류 방지를 위해 레코드 레벨 잠금(record level lock)를 이용한다. 또한 인덱스 구현에는 비트리(B-tree)를, 질의문 작성에는 SQL을, 최적의 성능 구현을 위해 내부적으로 쿼리 옵티마이저(query optimizer)를 이용한다.


RDBMS의 시초인 인그레스(Ingres)를 개발한 스톤 브레이커 MIT 교수는 어느 한 방송에서 RDBMS가 가장 핵심적인 동작인 데이터 레코드를 찾아 '읽고 쓰는데' 소모하는 시간은 10%인데 반해 메모리에서 버퍼풀을 관리하거나 멀티스레딩과 관련된 동작을 제어하는데 90%의 시간을 할애하는 구조여서 RDBMS 성능 저하가 발생할 수밖에 없다고 지적한 바 있다. 데이터 크기가 커질수록 성능은 느려질 수밖에 없는 태생적 한계를 극복하는 새로운 솔루션의 출현은 필연적이었다.

해결책 1. 스케일 업 방식의 어플라이언스
점차 중요성이 커지는 성능과 확장성 이슈에 대해 RDBMS 업계에서 내놓은 대응책은 장비에 RDBMS를 탑재한 스케일 업(Scale up) 방식의 어플라이언스였다. 스케일 업은 서버 내 CPU와 RAM를 추가하는 방식으로 하드웨어 자체를 증강시킴으로써 처리 능력을 향상하는 것이다.

일정 수준까지 성능 확장이 가능하지만, 그 이상의 성능 향상은 기대하기 어렵다. 또한 단일 서버에 부하가 집중되므로, 장애 발생 시 위험성이 매우 크다는 단점도 있다. 특히 초기 도입 시 높은 사양의 하드웨어 비용 부담 역시 고객의 몫이어서 크게 확산되지는 못했다.


그림 2. 스케일 업 vs 스케일 아웃의 개념 및 장단점 비교 분석 (출처. 선재소프트)

해결책 2. 트랜잭션 대신 뛰어난 확장성을 제공하는 NoSQL
NoSQL은 비 RDBMS 진영에서 찾은 해결책이다. NoSQL은 Not Only SQL의 약자로, 초대용량 데이터 처리 등 성능에 특화된 목적 달성을 위해 전통적인 RDBMS의 본질을 규정하는 핵심 기능인 ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션을 과감하게 포기하고, 비관계형 데이터 저장소에 비구조적인 데이터를 저장하는 분산 저장 시스템이다.

1998년 발표됐을 당시에는 큰 반향을 얻지 못하다가, 2000년 중반 SNS의 급속한 발전에 힘입어 재조명받기 시작했다. 트위터, 페이스북 등 SNS 기업들이 대용량 데이터의 동시 처리 용도로 채택하면서 관련 산업계의 큰 호응을 얻게 됐다. 현존하는 150여 개 제품 중 실제 사용자층을 확보하고 꾸준한 기술지원과 관리를 제공하는 제품은 몽고DB, 카산드라(Cassandra), H베이스(Hbase), 카우치DB(CouchDB) 등 10개 내외인 것으로 알려져 있다.

NoSQL DBMS는 ▲키 밸류 방식(Key-Value Database) ▲도큐먼트 방식(Document Database) ▲빅 테이블 방식(Big Table Database) ▲그래프 방식(Graph Database) 4가지로 구분한다. 기술적 혁신에 의한 분류라기보다는 트랜잭션 처리 기능을 제외하고 과거 등장했던 ISAM, 네트워크형 DBMS, XML DBMS, 컬럼 스토어 DBMS 등에서 아이디어를 차용해 특정 서비스에 최적화된 데이터 처리 플랫폼의 역할 수행을 목적으로 탄생했다는 견해가 지배적이다.

RDBMS가 클라이언트/서버 환경에 적합한 데이터 저장 기술로서, NoSQL은 클라우드 환경에 맞는 데이터 저장 기술로 존재하면서 일정부분 교집합을 이루며 상호보완재로 작용할 가능성이 크다.

NoSQL의 가장 큰 장점은 많은 서버로의 확장, 즉 스케일 아웃(Scale Out)이 가능하다는 점이다. No SQL은 데이터 중복이 생기더라도 가급적 테이블을 쪼개지 않고 하나의 큰 테이블에 모두 담아 저장한다. 한 테이블을 여러 서버에 나누어 저장하는 샤딩(Sharding)이 가능하다. 키-밸류 방식으로 밸류 내부에 사용자가 원하는 방식으로 데이터 저장이 가능해 키 값에 따른 샤딩도 쉽다. 서비스 업데이트 주기가 짧아지고 SNS처럼 다양한 비정형 데이터 유형을 다루는 서비스가 증가하면서 이러한 데이터 유연성은 큰 장점으로 주목받고 있다.

반면 다양하고 복잡한 데이터 쿼리가 불가능하다는 점은 NoSQL의 치명적인 단점이자, RDBMS를 대체할 수 없는 가장 큰 이유이기도 하다. NoSQL은 앞서 언급한 것처럼 샤딩(sharding) 방식으로 큰 테이블을 여러 서버에 나눠 저장하는데, 폴트 톨러런스(fault tolerance, 내고장성)를 위해 데이터는 반드시 두 개 이상 서버에 저장된다.

이 때 어떤 데이터에 갱신(update)이 발생한다고 가정해 보자. RDBMS는 데이터 또는 행에 락(lock)을 걸어 읽기만 가능하게 하고 갱신은 새롭게 생성한 튜플(tuple)에 반영함으로써 데이터 일관성을 보장하는 데 반해, NoSQL은 중복으로 저장된 모든 서버에 해당 갱신이 반영되기까지는 대기 시간이 발생한다. 연결된 서버 대수가 많으면 많을수록 올드 데이터를 제공하는 서버의 수는 늘어나게 된다. 데이터 일관성도 항상 보장할 수 없다는 점도 확산을 막는 걸림돌로 작용하고 있다.

해결책 3. RDBMS와 NoSQL의 환상 조합, NewSQL
기존의 RDBMS 진영에서 자체의 확장성과 성능의 한계를 극복하려는 흐름이 나타나기 시작했는데, NoSQL의 확장성과 성능을 보장하면서도 RDBMS의 데이터 무결성과 SQL 인터페이스를 지원하는 특성을 갖는 NewSQL이다. NewSQL의 개별적인 특성은 새로울 것이 없지만, 편의성과 안정성, 성능과 확장성을 모두 아우르는 데이터베이스의 등장이라는 점에서 새롭다는 평가다.

다만 NewSQL은 역사가 짧은 만큼, 시장에 정착되고 고도화되려면 많은 새로운 아키텍처 설계와 업계의 자구책 마련이 필요하다. 다음 회에는 NewSQL 기반 DBMS의 개요와 정의, 장단점 등과 함께 업계 동향을 간략하게 살펴볼 계획이다. editor@itworld.co.kr
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.