BigData

YugabyteDB의 트랜잭션 디자인이 다른 데이터베이스와 비교했을 때 독특한 점

IT오이시이 2025. 4. 21. 08:06
728x90

 

YugabyteDB는

YugabyteDB는 PostgreSQL과 호환되는 고성능 클라우드 네이티브 분산 SQL 데이터베이스입니다. 기존 관계형 데이터베이스의 이점과 NoSQL 시스템의 확장성을 결합하여 트랜잭션 일관성과 대용량 데이터 처리 능력이 모두 필요한 애플리케이션에 적합합니다. 절대적인 데이터 정확성을 요구하고 확장성, 높은 장애 내성, 또는 전 세계적으로 분산된 배포 중 하나 이상을 필요로 하는 클라우드 네이티브 OLTP(즉, 실시간 비즈니스 크리티컬) 애플리케이션에 가장 적합합니다.

 

 

YugabyteDB의 트랜잭션 디자인을 독특하게 만드는 이유

  • 구글 스패너에서 영감을 받은 분산형 ACID 거래
    YugabyteDB의 트랜잭션 모델은 Google Spanner의 아키텍처를 기반으로 하며, 여러 샤드와 노드에 분산된 ACID 트랜잭션을 가능하게 합니다. 이를 통해 분산 일관성 문제로 어려움을 겪는 기존 데이터베이스와 달리 분산 환경에서 강력한 트랜잭션 보장을 제공할 수 있습니다

  • 일관성을 위한 하이브리드 논리적 시계(HLC)
    YugabyteDB는 하이브리드 논리 클럭을 사용하여 분산 트랜잭션을 조정하여 원자 시계와 같은 특수 하드웨어에 의존하지 않고도 전역 순서와 일관성을 보장합니다

  • 복제에 대한 합의 초안 작성
    데이터 복제와 리더 선출은 Raft 합의 프로토콜을 사용하여 관리되며, 노드 장애 발생 시에도 쓰기에 대한 강력한 일관성과 고가용성을 보장합니다

  • 강력한 기본값을 가진 다중 버전 동시성 제어(MVCC)
    YugabyteDB는 MVCC를 구현하고 스냅샷 격리를 기본 격리 수준으로 사용하여 일반적으로 Read Committed와 같은 약한 수준으로 기본 설정되는 많은 관계형 데이터베이스보다 더 강력한 일관성 보장을 제공합니다. 이 설계는 분산 노드에서도 업데이트 손실이나 더티 쓰기와 같은 이상 현상을 방지하는 데 도움이 됩니다.

  • 낙관적 및 비관적 잠금이 있는 유연한 격리 수준
    YugabyteDB는 여러 격리 수준(스냅샷, 직렬화 가능, 읽기 커밋)을 지원하며, 비관적 잠금을 사용하여 읽기 커밋을 고유하게 구현합니다. 한편, 분산 설정에서 확장성을 극대화하기 위해 더 높은 격리 수준에 대해 낙관적인 잠금을 사용합니다

  • 모든 노드가 쓰기를 수락할 수 있습니다.
    단일 기본 시스템과 달리 YugabyteDB는 모든 노드가 각 샤드에 대해 리더를 지정하여 쓰기를 수락할 수 있도록 하여 높은 처리량과 복원력을 제공합니다

요약: 유가바이트DB는 Spanner에서 영감을 받은 기법, 하이브리드 논리 클록, Rafet 합의, 그리고 강력한 기본 격리 기능을 갖춘 강력한 MVCC 구현을 통해 분산되고 일관된 ACID 트랜잭션을 제공함으로써 두드러집니다. 다른 데이터베이스에서는 거의 결합되지 않는 기능들이 있습니다.

 

TL;DR

 

Vendor backup-restore Blue-Green In-place Rollback
YugabyteDB Y Y Online Y
Amazon Aurora PostgreSQL Y Y Offline N
Crunchy Data Y N Offline N
Google Cloud SQL Postgres Y Y Offline N
Heroku Postgres Y N Offline N
Neon Y Y N N
Percona Y Y Offline N
Supabase Y N N N
Tembo Y Y N N
Xata Y Y Offline N

 

 

https://www.yugabyte.com/blog/postgresql-upgrade-framework/

728x90
반응형