ARCHIVES

NewSQL에 대하여

(주)비트나인 2015. 11. 20. 18:10



이 글은 NewSQL이라는 용어에 대해 정리한 것이다.

 

1.    NewSQL 개요

 

최근 인터넷과 스마트폰의 폭발적인 성장으로 인해 용량이 크고 다양한 속성의 데이터가 늘어나면서 기존의 RDBMS NoSQL로 처리하는 데에는 한계가 나타나게 되었다. 그래서 대용량 데이터 처리와 높은 수준의 데이터 정합성이 필요로 하는 분야에서는 NewSQL이 부상하고 있다.

 

기존 RDBMS NoSQL의 한계는 이러한 것들이 있다. RDBMS의 경우에는 대용량 데이터로 인한 데이터 워크로드가 발생하여 성능을 초과할 수 있으며, 데이터웨어하우스에서도 처리 시간이 일반적으로 수십 분이라서 실시간 분석에 적합하지 않는다는 문제가 있다. NoSQL의 경우에는 트랜잭션 기능을 지원하지 않아 높은 수준의 데이터 정합성이 필요한 분야에서는 사용할 수 없으며, SQL과 같은 표준 언어가 없다는 문제가 있다.

 

다시 말해서, 대규모 트랜잭션을 감당할 수 있는 분산 처리 기술과 분산 아키텍처의 확장성을 갖춘 새로운 분산 데이터베이스 시스템이 필요로 하게 되었다. 이러한 필요성 때문에 RDBMS의 트랜잭션 기능을 포용하고, NoSQL의 확장성과 가용성을 갖춘 NewSQL이 등장하게 되었다.

 


2.    NewSQL 정의

 

NewSQL이라는 용어의 정의는 451 그룹과 스톤브레이커 교수가 언급한 내용이 많이 사용된다.

 

451 그룹의 정의

RDBMS 과점에서 SQL 지원, ACID 준수, 성능 개선을 가지고 NoSQL의 특징인 확장성과 가용성을 갖춘 DBMS

 

스톤브레이커 교수의 정의

SQL 기반 상호 작용, 트랜잭션에 대한 ACID 지원, 비공유 구조, 비잠금 동시성 제어, Node 단위의 고성능을 갖춘 DBMS

 

*용어 정리

-SQL 기반 상호 작용 : 서버와 응용프로그램은 SQL 언어로 상호 작용한다는 의미

-비공유 구조 : CPU, RAM, DISK 같은 하드웨어 자원을 서로 공유하지 않고 개별적으로 사용한다는 의미

-비잠금 동시성 제어 : 락을 걸지 않고 단일 스케줄을 통해 동시성 제어를 한다는 의미

-Node 단위의 고성능 : 네트워크를 통한 처리가 없다는 의미하고 Node 단위로 확장하여 성능을 높일 수 있어서 성능이 좋아짐

 


3.    RDBMS, NoSQL, NewSQL 비교

 

구분

RDBMS

NoSQL

NewSQL

Scale-out

X

O

O

HA

X

O

O

Replication

X

O

O

Performance

X

O

O

SQL 지원

O

X

O

Relational

O

X

O

Join

O

X

O

ACID

O

X

O

 


4.    NewSQL 솔루션


DB

Spanner

VoltDB

MySQL Cluster

ScaleDB

Drizzle

ClustrixDB

MemSQL

NuoDB

회사명

Google

VoltDB

Oracle

ScaleDB

Drizzle

Clustrix

MemSQL

NuoDB

라이선스

독점

오픈소스

오픈소스

오픈소스

오픈소스

독점

독점

독점

최초버전

2012.9

2010.5

2005.6

2009.5

2008

2010

2012.6

2012.11

최종버전

?

5.1(2015.3)

7.4.8(2015.10)

15.10(2015.10)

7.2.4(2012.9)

7.0(2015.8)

4.1(2015.9)

2.3.3(2015.10)

스토리지

FILE

RAM

HYBRID

FILE

FILE

SSD

RAM

FILE

파생 DB

자체개발

H-Store

MySQL 5.0

MySQL 6.0

MySQL 6.0

자체개발

자체개발

자체개발

맵리듀스

YES

YES

NO

?

YES

NO

NO

?

공간연산

?

NO

YES

?

NO

NO

?

NO

 


5.    구글의 NewSQL 그리고 오픈소스 진형

 

빅데이터 기술들은 구글의 논문으로부터 시작되었다. 구글은 빅데이터 환경에서 트랜잭션을 처리하기 위해 2012년에 새로운 분산 데이터베이스인 Spanner를 공개하였다. Spanner는 빅데이터 환경에서 NoSQL을 사용할 수 없는, 이를테면 트랜잭션 처리가 필요한 통신, 인터넷서비스, 유비쿼터스, 금융, 실시간 처리 등의 분야에서 사용되고 있거나 적용될 예정이다.

구글의 NewSQL 공개로 인해 오픈소스 진형에서도 변화가 생길 것으로 예상이 된다. 먼저 기존의 변화에 대해 정리한 자료는 다음과 같다.

 

구분

Google

Apache

설명

파일 시스템

2003

GFS

2006

HDFS

분산 파일 시스템

2010

Colossus

?

?

GFS 단점 보완

데이터 처리

2004

 MapReduce

2006

MapReduce

분산병렬처리

2005

Sawzall

2008

Pig, Hive

빅데이터 쿼리(일괄처리)

2009

Pregel

2012

Giraph

대규모 그래프 데이터 처리

2010

Dremel

2012

Impala

실시간 빅데이터 쿼리

2014

Drill

데이터베이스

2006

BigTable

2008

Hbase

Schemaless NoSQL DB

2012

Spanner

?

?

빅데이터 트랜잭션 처리

서버 관리

2006

Chubby

2008

Zookeeper

서버 락(Lock) 서비스

 

구글의 Spanner 공개로 오픈소스 진형에서도 곧 Spanner를 모방한 오픈소스 프로젝트가 진행될 것으로 예상이 된다. 이렇게 추측하는 이유는 위의 표에서 보는 바와 같이 구글이 빅데이터 처리를 위한 기술을 발표할 때마다 곧이어 오픈소스 프로젝트가 진행되었기 때문이다.

 


6.    마무리

 

NewSQL에 대한 대략적인 특징을 살펴보았고, 이러한 특징으로 인해 NewSQL RDBMS NoSQL 보다 뛰어난 점이 있다는 것을 알아보았다. 하지만 모든 면에서 뛰어난 것은 아니며 단점도 존재할 것이다. 예를 들어 NewSQL SQL은 다른 RDBMS NoSQL에 비해 복잡하다.

다양한 장점을 갖춘 NewSQL이 나왔다고 해서 RDBMS NoSQL이 없어지는 일은 없을 것으로 생각이 되며, 각자가 필요한 분야에서 발전할 것이다.






Posted by Bitnine(비트나인)