분산 SQL
Distributed SQL분산 SQL 데이터베이스는 여러 서버에 걸쳐 데이터를 복제하는 단일 관계형 데이터베이스다.분산 SQL 데이터베이스는 매우 일관성이 있으며 대부분의 경우 클라우드 가용성 영역 및 클라우드 지리적 영역을 비롯한 랙, 데이터 센터 및 광역 네트워크 전반에서 일관성을 지원함분산 SQL 데이터베이스는 일반적으로 Paxos 또는 R뗏목 알고리즘을 사용하여 여러 노드에서 합의점을 얻는다.null
분산 SQL 데이터베이스를 NewSQL이라고 부르기도 하지만 NewSQL은 분산 데이터베이스가 아닌 데이터베이스를 포함하는 보다 포괄적인 용어다.null
역사
구글의 스패너는 현대적으로 분산된 SQL 데이터베이스 개념을 대중화했다.구글은 2012년 백서에서 "스패너: 구글의 전세계적으로 분산된 데이터베이스"라고 불리는 데이터베이스와 그 구조를 설명했다.이 논문은 스패너가 빅 테이블과 같은 키 가치 저장소에서 데이터가 "일정화된 반관계 테이블"에 저장되는 임시 다중 버전 데이터베이스로 진화했다고 설명했다."[1]
스패너는 팍소스 알고리즘이 있는 원자 시계를 사용하여 서버들 사이에 분산된 상태에 대한 합의를 달성한다.2010년 및 그 이전 구현에서 ClustrixDB는 하드웨어 어플라이언스에서 Paxos 기반 소프트웨어 데이터베이스로[2] 이동했으며, 이후 MariaDB에[3] Xpand로 인수되어 SaaS 클라우드 제품인 SkySQL에 추가됐다.[4]2015년 구글 엔지니어 2명이 회사를 떠나 원자시계나 맞춤형 하드웨어 없이 래프트 알고리즘을 이용해 비슷한 성과를 내는 바퀴벌레 DB를 만들었다.[5]null
스패너는 주로 트랜잭션 및 시계열 사용 사례에 사용된다.그러나, 구글은 구글 F1에 대한 문서상의 다음 연구 결과를 발표했는데, 그것은 그것이 스패너에 구축된 하이브리드 거래/분석 처리 데이터베이스라고 기술하고 있다.[1]null
건축
분산 SQL 데이터베이스는 다음과 같은 일반적인 특성을 가지고 있다.
- 동기 복제
- 최소 가용성 영역에서 강력한 트랜잭션 일관성(예: 산성 규정 준수)
- 관계형 데이터베이스 프런트 엔드 구조 – 다른 RDB와 유사한 행과 열이 있는 테이블로 표시된 데이터를 의미한다.MS
- 자동으로 조각난 데이터 스토리지
- 기본 키 가치 스토리지[6][1]
- 기본 SQL 구현
CAP 정리 이후 분산 SQL 데이터베이스는 "CP" 또는 일관성이 있고 파티션 내성이 있다.알고리즘적으로 그들은 기본 노드의 실패가 데이터베이스를 쓰기에 사용할 수 없게 만들 수 있다는 점에서 가용성을 희생한다.그러나 가용성은 소프트웨어 및 하드웨어 신뢰성 향상, 새로운 예비선거의 선택 및 경험적 복구 방법을 통해 달성된다.[7]null
모든 분산 SQL 구현에는 일관성을 보장하기 위해 일종의 시간적 동기화가 필요하다.스패너를 제외하고, 대부분은 원자 시계를 제공하기 위해 사용자 지정 하드웨어를 사용하지 않는다.스패너는 쓰기와 시간적 보장을 동기화할 수 있다.사용자 지정 하드웨어가 없는 구현에서는 서버가 클럭 오프셋을 비교하고 잠재적으로 읽기를 재시도해야 한다.[8]null
분산 SQL 구현
| 노점상 | API |
|---|---|
| 아마존 오로라 | PostgreSQL & MySQL |
| 바퀴벌레DB | PostgreSQL 유사 |
| 구글 스패너 | 독점 SQL 유사 |
| 누오DB | 독점 SQL |
| 유가바이트DB | PostgreSQL & Cassandra CQL 유사 |
| 스카이SQL | 마리아DB |
| 테라다 | 독점 SQL 유사 |
NewSQ와 비교l
바퀴벌레DB, 유가바이트DB 등은 자신을 NewSQL 데이터베이스라고 부르기도 했다.Citus와 Vitess와 같은 NewSQL 데이터베이스 중 일부는 근본적으로 다른 아키텍처를 가지고 있지만, 이 용어를 만든 Matthew Aslett에 의해 NewSQL의 예로 인용되었다.[9]본질적으로 분산 SQL 데이터베이스는 기초부터 구축되며 NewSQL 데이터베이스는 Postgre와 같은 기존 클라이언트-서버 관계형 데이터베이스에 추가된 복제 및 샤딩 기술을 포함한다.SQL.[10] 일부 전문가가 분산 정의SQL 데이터베이스는 NewSQL 데이터베이스의 보다 구체적인 하위 집합으로 사용됨.[11]null
참조
- ^ a b c https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41344.pdf
- ^ Higginbotham, Stacey (May 3, 2010). "Clustrix Builds the Webscale Holy Grail: A Database That Scales". gigaom.com.
- ^ "MariaDB acquires Clustrix".
- ^ Baer (dbInsight), Tony. "For MariaDB, it's time to put the pieces together". ZDNet.
- ^ Morgan, Timothy Prickett (February 22, 2017). "Google Spanner Inspires CockroachDB To Outrun It". The Next Platform.
- ^ "The Architecture of a Distributed SQL Database" – via www.youtube.com.
- ^ "DZone". dzone.com.
- ^ "Living Without Atomic Clocks". Cockroach Labs. April 21, 2020.
- ^ "What we talk about when we talk about NewSQL — Too much information".
- ^ "SQL vs. NoSQL Databases: What's the Difference?". www.ibm.com.
- ^ Prabagaren, Gokul (October 30, 2019). "NewSQL — The Next Evolution in Databases". Medium.