SQL과 NoSQL의 장점을 결합한 NewSQL에 대해
2018.06.21 17:04
SQL과 NoSQL의 장점을 결합한 NewSQL에 대해
기존 SQL기반의 RDB의 장점을 포용하고, 이젠 많은 서비스에서 활용되고 있고 기술적으로도 어느 정도 성숙 단계에 든 NoSQL의 장점들을 가미한 NewSQL이란 새로운 용어에 대해 살펴볼까 한다. 이젠 NewSQL도 많은 솔루션들이 나와 있어 현재 시점에서 그 가치를 알아볼 좋은 기회인것 같다.
그리고 일본의 DeNA에서 상용 버전으로 사용중인 직접 InnoDB를 액세스하는 HandlerSocket. 750,000 QPS가 나온다니 정말 성능이 획기적으로 증가했다.
PostgreSQL 9.1에 탑재된 Unlogged tables. 특정 테이블에 대해 로깅을하지 않음으로써 오버헤드를 없애고 NoSQL 같은 빠른 데이터 액세스를 제공한다. 로그를 취하지 않는 것은 그 테이블에 대해 트랜잭션 처리에 의한 안전성을 일부 희생하는 대신에 빠른 액세스를 제공한다는 의미로 NoSQL을 의식한 구현일지 모르겠다.
그리고 NewSQL를 서비스로 제공하는 "NewSQL-as-a-service"로 분류되는 것은 Amazon Relational Database Service, SQL Azure, Xeround, Database.com, FathomDB 등이 있다.

참고로 "NoSQL, NewSQL and Beyond" 아티클에서 Matthew Aslett는 현재 DB 업계의 3개 트렌드가 존재한다고 한다.
혹자는 NoSQL의 끝이 보인다고 이야기하지만, 서로의 영역에서 겹치는 부분이 있을지는 몰라도 NoSQL과 newSQL의 영역은 서로의 자리를 매김할 것으로 보인다.
[참고 사이트]
RDB 진영에서 일어나고 있는 일들
MySQL의 차기 버전인 MySQL 5.6에 탑재 예정인 Memcached API. 응용 프로그램에서 Memcached API를 통해 InnoDB로 직접 액세스할 수 있으며 SQL 파서 기능을 제외해서 성능이 좋아졌다.그리고 일본의 DeNA에서 상용 버전으로 사용중인 직접 InnoDB를 액세스하는 HandlerSocket. 750,000 QPS가 나온다니 정말 성능이 획기적으로 증가했다.
PostgreSQL 9.1에 탑재된 Unlogged tables. 특정 테이블에 대해 로깅을하지 않음으로써 오버헤드를 없애고 NoSQL 같은 빠른 데이터 액세스를 제공한다. 로그를 취하지 않는 것은 그 테이블에 대해 트랜잭션 처리에 의한 안전성을 일부 희생하는 대신에 빠른 액세스를 제공한다는 의미로 NoSQL을 의식한 구현일지 모르겠다.
NewSQL이라는 용어 등장
451 group의 Matt Aslett가 "NewSQL"아란 용어를 만들었고, 그 내용은 NoSQL 처럼 높은 확장성과 성능을 갖춘 관계형 데이터베이스를 "NewSQL"로 명명하고 있다. 'What we talk about when we talk about NewSQL' 포스트를 통해 확인할 수 있다."NewSQL"is our shorthand for the various new scalable/high performance SQL database vendors. "NewSQL"는 다양한, 새로운 확장성과 고성능을 갖춘 SQL 데이터베이스(공급 업체)를 위한 표기이다.451 Group에서 정의한 내용
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.Stonebraker가 정의한 내용
RDB관점에서 SQL 지원, ACID 준수, 성능 개선을 가지고 NoSQL의 특성인 확장성과 유연성을 가미한 DBMS를 말한다.
1) SQL as the primary mechanism for application interaction : SQL기반 인터엑션451 group에서는 기존에는 "ScalableSQL"이라는 용어를 언급했었는데, 이 용어가 수평적인 확장성을 함축하기 때문에, 모든 제품의 꼭 필요한 특성이 아니기 때문에, 새 보고서에서 "NewSQL"이란 용어를 적용했다. 여기서 밝힌 NewSQL으로 한 데이터베이스로는 VoltDB, RethinkDB, ScaleDB, Akiban, CodeFutures, ScaleBase, Translattice, NimbusDB, Drizzle, MySQL Cluster with NDB, MySQL with HandlerSocket, Gizzard 등이 있다.
2) ACID support for transactions : ACID 지원
3) Non-locking concurrency control : 락 프리한 동시제어
4) High per-node performance : 노드단위의 고성능
5) Parallel, shared-nothing architecture : 병렬이면서 shared-nothing 구조
그리고 NewSQL를 서비스로 제공하는 "NewSQL-as-a-service"로 분류되는 것은 Amazon Relational Database Service, SQL Azure, Xeround, Database.com, FathomDB 등이 있다.

참고로 "NoSQL, NewSQL and Beyond" 아티클에서 Matthew Aslett는 현재 DB 업계의 3개 트렌드가 존재한다고 한다.
- NoSQL 데이터베이스 : 분산 아키텍처의 확장성 등의 요구 사항을 충족하며, 스키마 없는 데이터 관리 요구 사항에 부합하도록 설계됨.
- NewSQL 데이터베이스 : 분산 아키텍처의 확장성 등의 요구 사항을 충족하거나 혹은 수평 확장을 필요로하지 않지만 성능을 개선은 되도록 설계됨.
- Data Grid/Cache 제품 : 응용 프로그램 및 데이터베이스 성능을 높이기 위해 메모리에 데이터를 저장하도록 설계됨.
미래는?
NoSQL처럼 newSQL도 특정한 비즈니스의 요구사항에 충족하는 자신만의 강점을 가지고 갈 가능성이 크다. 특히 MySQL등의 RDB를 사용하고 있는 DBA나 프로그래머들에게는 newSQL의 추이를 지켜볼 필요가 있다.혹자는 NoSQL의 끝이 보인다고 이야기하지만, 서로의 영역에서 겹치는 부분이 있을지는 몰라도 NoSQL과 newSQL의 영역은 서로의 자리를 매김할 것으로 보인다.
[참고 사이트]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

