[IT에 한 걸음 더 다가가기] SMAC의 대량 데이터 처리를 위한 DBMS기술! (3편)

1
2

지난 제2편에서는 NoSQL에 대해 알아보았습니다. [관련기사 바로가기 : NoSQL이란?] 이번에 다루고자 하는 주제는 NewSQL입니다. 지난 편에서 알아본 것들을 간단하게 복습해 보면, SQL(Structured Query Language)은 관계형 DBMS에서 데이터를 조회, 수정, 삭제하거나 DBMS를 조작하는 데 사용되는 언어이고NoSQL은 Not Only SQL의 약자로, 초대용량 데이터 처리 등 성능에 특화된 목적을 위해 비관계형 데이터 저장소에 비구조적인 데이터를 저장하기 위한 분산 저장 시스템입니다.

NoSQL은 Twitter나 Facebook 등과 같은 대량의 데이터를 동시에 처리할 수 있는 시스템에 활용되면서 확장성 있는 데이터 처리에 있어서 산업계에서 큰 호응을 받게 되었습니다. 반면, 기존의 관계형 DBMS진영에서도 자체의 확장성과 성능의 한계를 극복하고자 하는 흐름이 나타나게 되었는데, 이번 편에서 다루는 주제는 NoSQL의 확장성과 성능을 보장하면서도 데이터 무결성과 SQL 인터페이스를 지원하는 특성을 갖는 기존 RDBMS에서 확장되고 있는 새로운 접근방법인 “NewSQL DBMS”입니다.

\

1: DBMS기술의 개념과 Trend

2: NoSQL이란?

제 3편 : NewSQL이란?

제 4편 : In-Memory DBMS이란?

제 5편 : Polyglot Persistence란?

3
4

NewSQL은  New + SQL의 합성어입니다. 여기서 SQL은 기존의 관계형 DBMS를 의미하므로 단어들의 조합으로 추정해 보면 기존에 지원하지 않던 새로운 것들을 추가한 RDBMS라고 의미를 유추할 수 있습니다. 다시 말해, NewSQL은 NoSQL의 성공에 기인하여 관계형 DBMS진영에서 발전시킨 기술로, 기존의 안정적인SQL기반의 RDBMS 기술 기반하에 새로운 인터넷 서비스에서 활용되면서 기술적으로 성숙 단계에 접어든NoSQL의 장점들을 추가한 DBMS 제품들을 말합니다.

NewSQL는 ‘11년 4월 “451 Group” 이라는 DBMS 리서치 업체의 Matt Aslett라는 컨설턴트가 “NewSQL”이라는 용어를 처음으로 사용했고 NoSQL처럼 높은 확장성과 성능을 갖춘 RDBMS를 “NewSQL”로 명명했습니다. 401 Group에서 NewSQL을 정의한 원문을 살펴보면, “A DBMS that delivers the scalability and flexibility promised by NoSQL while retaining the support for SQL queries and/or ACID, or to improve performance for appropriate workloads.” 인데요. 해석해 보면, RDBMS가 갖고 있는 장점인 SQL 지원, ACID 준수, 적정한 부하에 대한 성능 개선을 갖고 있으며, 동시에 NoSQL이 갖고있는 확장성과 유연성을 보유한 DBMS를 말합니다.

5

이미 NewSQL의 정의에서도 주요한 특징들이 설명되었지만, Open source DBMS인 PostgreSQL를 만든 것으로도 유명한 MIT의 Michael Stonebraker 교수가 NewSQL에 대해 정의한 글이 있는데, 여기서 NewSQL의 주요 특성들을 명백하게 찾아볼 수 있습니다.

1)    SQL as the primary mechanism for application interaction

응용프로그램들과 DBMS의 연계(조회, 삭제 등)에서 SQL을 사용한다.

2)    ACID support for transactions

RDBMS에서 가장 중요시하고 있는 Transaction완결성을 유지하기 위한 조건들인 ACID (원자성, 일관성, 고립성, 지속성)를  지원해야 한다.

3)    Non-locking concurrency control

데이터 무결성 처리를 위한 Transaction동시 제어 Locking처리에 있어서 기존의 방식과 다른 Non-locking 구조를 가져야 한다. (* 단, NewSQL 제품마다 구현의 차이가 있을 수 있는 항목임 )

4)    High per-node performance

(기존 NoSQL제품에서 가지고 있는 대표적인 특성인 분산처리에서) 각 단일 DBMS 서버에서(node에서) 고성능을 보장해야 한다.

5)    Parallel, shared-nothing architecture

데이터 처리에서 병렬적으로 수행해서 고성능 처리를 할 수 있어야 하고, 분산 처리 시 데이터가 각 서버에 중복되지 않고 독립적으로 존재해야 한다.

 

위에 설명해 드린 용어들이 다소 어렵습니다만, 다시 한 번 정리해보면 NewSQL은 기존의 관계형 DBMS에서 갖고 있던 SQL 지원, 트랜잭션 완결성 지원 등의 장점들을 지원하면서 대용량 데이터 처리, 확장성 등 성능에 특화된 목적을 위해 비관계형 데이터 저장소에 비구조적인 데이터를 저장하기 위한 분산 저장 시스템인 NoSQL의 특성을 함께 가지고 있는 제품이라고 볼 수 있습니다.

6

현재 시장에서는 Start-Up 중심으로 혁신적인 아이디어와 성능들을 기반으로 한 다양한 NewSQL솔루션들이 출시되고 있습니다. 특히 MySQL, PostgreSQL 등의 Open Source DBMS를 기반으로 새로운 아키텍처와 기능들을 추가한 제품들이 출시되고 있습니다.

 

NewSQL제품들은 아래와 같이 특성에 따라 분류될 수 있습니다.

 

 

11

–        VoltDB  (in-memory database) : http://voltdb.com/

–        MemSQL (in-memory database) : http://www.memsql.com/

22

–        GenieDB (based on MySQL) : http://www.geniedb.com/

–        ScaleDB (MySQL scalability) : http://scaledb.com/

–        Tokutek/TokuDB (MySQL/MariaDB scallability): http://www.tokutek.com/

33

–      JustoneDB (built upon PostgreSQL) : http://www.justonedb.com/

– Postgres XL (Scalable Open Source PostgreSQL-based Database Cluster) : http://www.postgres-xl.org/

44

–        ScaleArc (SQL traffic manager ) :  http://www.scalearc.com/

–        ClustrixDB (distributed peer-to-peer SQL database) : http://www.clustrix.com/

–        NuoDB (distributed database management) : http://www.nuodb.com/

각 제품마다 고유한 기능과 제품의 특성이 있으므로 상세한 내용은 해당 각 web 사이트에서 확인해 보세요.7

대표적인 NewSQL 제품에 대해서는 Gartner에서 ‘14년 10월에 조사한 자료를 인용합니다. 이래 Gartner의 리서치에 리스트업 된 VoltDB, NuoDB, Clustrix, Pivotal, FairCom사의 제품이 현재 시장에서 Reference를 넓혀 가고 있는 가장 주목할 만한 제품들입니다. 하지만 그림에서의 위치에서도 알 수 있듯이 이들은 절대적인 시장의 강자로 Leader군으로 표시된 Oracle, Microsoft, SAP, IBM에 비해 아직은 Niche Player로 평가하고 있습니다. 즉 새로운 아키텍처와 기술적인 특성으로 시장에 출시되었지만 아직은 새로운 시장을 모색하고 있는 단계라고 볼 수 있습니다.

 

Gartner외에 Information week이라는 정보지에서는 ‘14년 6월에 주목해야 할 NoSQL, NewSQL제품으로 16개를 선정하여 각 제품들의 특성과 시장에서의 Feedback을 다루었는데, 여기서 NewSQL제품으로는Clustrix, memSQL, NuoDB, Splice Machine, Trans Lattice, VoltDB가 선정되었습니다.

 

8

NewSQL은 이제 시장에 막 진입하여 비즈니스에 활용되기 시작한 솔루션들입니다. 현재 시장에서 새로운 다양한 Use Case를 찾고 있는 단계로, 그중 주목할 만한 Use Case로는 Big Data Analytics와 연계하여 실시간으로 대용량의 데이터를 처리하고 SQL의 풍부한 연산기능을 활용하여 의사결정을 내릴 수 있는 Insight를 찾아주는 곳에 활용되고 있습니다. 각 제품들을 실제 비즈니스에 적용하기 위해서는 사전에 철저한 PoC(Proof of Concept)등을 통해 검증이 필요합니다.

어떤 분들은 NewSQL의 등장으로 기존 NoSQL이 조만간 시장에서 퇴장할 것이라고 극단적인 예측을 하기도 합니다만, 당장 NewSQL의 기술적인 특성으로 상호 중복되는 영역이 있을 수는 있으나, 상당 기간 상호 보완하는 역할을 가져갈 것으로 생각됩니다.

앞에서 잠깐 언급했던 Stonebraker 교수가 최근 “One size does not fit all”이라는 화두를 던지며, “하나의 시스템에 하나의 DBMS가 모든 요구사항을 만족하게 할 수 없다, 즉 하나의 시스템에 Natural Fit한 다수의DBMS를 활용해야 한다”는 의견을 제시한 바 있듯이, 최근의 다양한 비즈니스 요구 사항과 혁신적인 흐름은 새로 등장한 NewSQL이 기존의 DBMS를 대체하는 것이 아니라, 해당 솔루션의 특성을 살릴 수 있는 하나의 대안으로 당분간 자리매김할 것으로 생각됩니다.

 

NewSQL DBMS의 기본 개념과 Trend에 대한 소개는 여기까지입니다. 다음 연재에서는 Data를 저장하는 방식에 있어서 기존의 Disk에서 Memory로 전환하여 혁신적인 성능 개선을 가능케 하는 “In-Memory DBMS”에 대해 상세하게 소개해 드리도록 하겠습니다.

 

 

<참고자료>

http://en.wikipedia.org/wiki/NewSQL, 위키피디아

http://www.gartner.com/home, 가트너

https://451research.com/, 451 Group

http://www.informationweek.com, Information Week

9
공유하기