2020년 7월 27일
NewSQL
I. RDBMS와 NoSQL 장점 제공, NewSQL의 개념 및 특징
가. NewSQL의 개념
- RDBMS의 ACID 특성을 유지하며 OLTP 워크로드에 NoSQL의 확장성을 제공하는 데이터베이스 관리 시스템
나. NewSQL의 특징
특징 | 특징 설명 |
---|---|
신규 아키텍처 | – 비공유 노드 클러스터를 사용, 각 노드는 데이터의 하위 집합 관리 – 분산 동시성 제어, 흐름 제어 및 분산 쿼리 처리 |
SQL 최적화 및 확장성 | – SQL에 최적화 된 스토리지 엔진 – SQL과 동일 인터페이스 및 확장성 제공 |
투명한 샤딩 | – Raft 또는 Paxos 합의 알고리즘을 사용 – 데이터베이스를 여러 노드로 자동 분할 |
II. NewSQL의 주요 기능 및 핵심 기술
가. NewSQL의 주요 기능
구분 | 주요 기능 | 기능 설명 |
---|---|---|
SQL 관리 측면 | SQL 기반 상호작용 | – APP와 DBMS의 입력/조회/갱신/삭제 시 SQL 사용 |
트랜잭션 ACID 지원 | – 트랜잭션 커밋 시 원자성/일관성/독립성/영속성 | |
비잠금 동시성 제어 | – 데이터 무결성 처리 위해 Non-locking 구조 지원 | |
아키텍처 측면 | 노드 단위 고성능 | – 각 단일 DBMS 서버 노드 단위로 확장, 고성능 보장 |
병렬, 비공유 아키텍처 | – 병렬 수행, 고성능, 데이터가 각 서버에 독립적 존재 |
나. NewSQL의 핵심 기술
구분 | 핵심 기술 | 세부 설명 |
---|---|---|
RDBMS 측면 | 인덱싱 | – 데이터베이스 검색 속도 향상, 테이블 연관, 독립적인 저장공간 |
MVCC | – 트랜잭션의 다중 버전 동시성 제어로 트랜잭션 직렬화 | |
샤딩 | – 동일 테이블 스키마의 데이터를 다수 데이터베이스에 분산 저장 | |
NoSQL 측면 | 스키마리스 | – 테이블과 컬럼 스키마 없이 Key-Value 기반 단순 검색, 추가 용이 |
인메모리 | – 고성능, 저지연 서비스, 버퍼 관리 불필요 | |
DB 스케일링 | – Scale-Out 방식의 유연한 데이터 구조 |
III. NewSQL과 유사 DBMS 비교
비교 항목 | NewSQL | RDBMS | NoSQL |
---|---|---|---|
스키마 | 스키마 제약 없음 | 연관 스키마, 테이블 | 스키마 없음 |
확장성 | 읽기/쓰기 확장성 | 읽기 확장성 제공 | 읽기/쓰기 확장성 제공 |
고가용성 | 고가용성 내장 | 별도 구성 필요 | 고가용성 내장 |
ACID 특성 | ACID 특성 제공 | ACID 특성 제공 | ACID 특성 미제공 |
BASE 특성 | BASE 특성 제공 | BASE 특성 미제공 | BASE 특성 제공 |
성능오버헤드 | 낮음 | 중간 | 높음 |
보안성 | 높음 | 높음 | 낮음 |
적용 제품 | Google Spanner, VoltDB | Oracle, MSSQL, MySQL, IBM DB2 | MongoDB, HBASE Redis, Cassandra |
활용 분야 | 게임, E-커머스, Telco. | 금융, CRM, HR, APP | 빅데이터, IoT, SNS |
[참고]
- 위키백과, “NewSQL”, 2020. 4
- Google Spanner, “A NewSQL Journey or Beginning of the End of the NoSQL Era”, 2018. 10