NewSQL

SQL과 ACID는 유지하고, 저장과 복제는 분산한다

애플리케이션은 여전히 관계형 데이터베이스처럼 사용하지만, 내부에서는 여러 노드가 데이터를 나눠 저장하고 같은 커밋 상태를 맞춥니다.

1
앱이 보는 것 개발 경험은 RDB에 가깝습니다.

기존 관계형 사용 방식을 크게 바꾸지 않습니다.

SQL 익숙한 질의와 ORM을 계속 사용
스키마 테이블 구조와 제약을 명확하게 관리
ACID 트랜잭션 여러 작업을 하나의 일관된 커밋으로 처리
2
NewSQL이 하는 일 관계형 요청을 분산 실행으로 바꿉니다.

내부 계층이 SQL 요청을 여러 노드의 안전한 작업으로 나눠 처리합니다.

샤드로 라우팅 어느 노드가 어떤 데이터 범위를 맡는지 찾아 병렬 실행
분산 트랜잭션 조정 여러 노드의 쓰기를 한 번의 커밋처럼 맞춤
복제와 합의 유지 장애가 나도 같은 상태를 이어가도록 복제본 동기화
3
실제 저장 방식 데이터는 여러 노드에 나뉘어 있습니다.
논리적 관점: 애플리케이션은 하나의 데이터베이스에 연결한 것처럼 보지만, 실제 데이터와 복제본은 클러스터 전체에 분산되어 있습니다.
노드 A
리더 샤드 1 처리
복제본 샤드 3 보유
노드 B
리더 샤드 2 처리
복제본 샤드 1 보유
노드 C
리더 샤드 3 처리
복제본 샤드 2 보유
개발 관점 기존 SQL과 트랜잭션 모델을 유지해 관계형처럼 다룰 수 있습니다.
운영 관점 샤딩과 복제로 수평 확장과 장애 대응을 확보합니다.