티스토리 뷰

development

데이터베이스 이론: CAP와 BASE

주먹불끈 2024. 7. 5. 00:25

개요

데이터베이스 이론에서 CAP와 BASE는 분산 시스템의 특성과 관련한 중요한 개념이다. CAP와 BASE에 대해 정리해본다.

기본 개념

CAP

2000년 Eric Brewer에 의해 제안되었으며, 분산 데이터베이스 시스템의 다음 세 가지 주요 특성 중 두 가지만 동시에 만족할 수 있다고 주장한다.

  1. 일관성 (Consistency): 모든 클라이언트가 동일한 데이터를 볼 수 있도록 보장한다. 즉, 데이터베이스에 쓰기 작업이 완료되면, 모든 읽기 작업이 최신 데이터를 반환해야 한다.
  2. 가용성 (Availability): 모든 읽기 및 쓰기 요청이 항상 응답을 받을 수 있도록 보장한다. 즉, 시스템이 항상 동작하며, 일부 노드가 실패하더라도 서비스가 지속적으로 제공되어야 한다.
  3. 네트워크 분할 허용 (Partition Tolerance): 네트워크 장애로 일부 노드간 통신이 끊어져도 시스템이 동작할 수 있도록 보장한다. 즉, 네트워크의 일부가 통신 불가능한 상태가 되더라도, 시스템은 계속 작동해야 한다.

BASE

분산 데이터베이스의 특성을 설명하는 또 다른 모델로서, CAP 이론에서 일관성을 희생하는 대신 가용성과 네트워크 분할 허용을 선택하는 시스템을 설명해준다. BASE는 다음과 같은 특징을 가진다.

  1. 기본적으로 사용 가능함 (Basically Available): 시스템은 항상 사용 가능하며, 부분 실패가 발생해도 기본적인 기능은 제공된다.
  2. 소프트 상태 (Soft state): 시스템이 항상 일관성을 유지하지는 않는다.
  3. 최종적 일관성 (Eventual consistency): 모든 업데이트가 시스템에 전파되어 결국에는 모든 노드가 일관된 상태를 가지게 된다.

CAP와 BASE

  • CAP 이론은 분산 시스템의 설계에서 세 가지 주요 특성 중 두 가지를 선택해야 하는 딜레마를 말한다.
  • BASE는 CAP 이론의 틀 안에서 가용성과 네트워크 분할 허용을 선택하고, 시스템의 일관성은 잠시 맞지 않더라도 최종적 일관성은 보장해주는 전략을 설명한다.

CAP의 실제 사례

1. CP (일관성 + 네트워크 분할 허용)

CP 시스템은 일관성을 유지하면서 네트워크 분할을 허용한다. 네트워크 분할이 발생하면 시스템의 가용성을 희생하더라도 일관성을 유지한다.

사례. HBase

  • Hadoop 분산 파일 시스템(HDFS) 위에 구축된 분산 데이터 저장소이다.
  • 네트워크 분할이 발생하면 일관성을 유지하기 위해 일부 요청을 차단하거나 지연시키면서까지 시스템의 일관성을 유지한다.

2. CA (일관성 + 가용성)

CA 시스템은 일관성과 가용성을 유지하지만 네트워크 분할을 허용하지 않는다. 단일 노드 시스템이나 네트워크 분할이 거의 없는 환경에서 적합하다.

사례. 관계형 데이터베이스 관리 시스템(RDBMS) (단일 노드 설정)

  • 전통적인 RDBMS 시스템(예: MySQL, PostgreSQL)은 단일 노드 설정에서 일관성과 가용성을 모두 제공한다.
  • 네트워크 분할이 없을 때에 일관성과 가용성을 유지할 수 있다.

3. AP (가용성 + 네트워크 분할 허용)

AP 시스템은 가용성을 유지하면서 네트워크 분할을 허용합니다. 네트워크 분할이 발생해도 시스템이 계속 동작하게 하는 대신, 일관성을 일시적으로 희생할 수 있다.

사례. Cassandra

  • 분산 데이터베이스 시스템으로, 네트워크 분할이 발생해도 가용성을 유지한다.
  • 노드가 분할된 상태에서도 요청을 처리하며, 최종적으로 일관성을 달성하도록 설계되었다.

사례. DynamoDB

  • 분산 키-값 저장소로, 가용성과 네트워크 분할 허용을 중시한다.
  • 네트워크 분할 중에도 데이터를 계속 접근할 수 있으며, 일관성은 최종적 일관성을 보장한다.

BASE의 실제 사례

BASE의 가장 큰 목표는 시스템이 항상 사용 가능하도록 하는 것이다. 다음 데이터베이스들은 BASE의 요건을 만족하여 가용성을 보장해준다.

1. Cassandra

Apache Cassandra는 BASE 원칙을 따르는 분산 데이터베이스이다.

  • 기본적으로 사용 가능함 (Basically Available): Cassandra는 여러 데이터 센터에 걸쳐 데이터를 분산 저장하여 높은 가용성을 보장하며, 노드가 일부 실패하더라도 시스템은 여전히 동작한다.
  • 소프트 상태 (Soft state): 데이터는 일관성을 유지하지 않는 순간이 발생할 수 있다.
  • 최종적 일관성 (Eventual consistency): 일정 시간이 지나면 모든 노드가 일관된 상태를 가지게 된다.

2. DynamoDB

Amazon DynamoDB는 분산 키-값 데이터 저장소로, BASE 원칙을 따른다.

  • 기본적으로 사용 가능함: DynamoDB는 고가용성을 제공하며, 데이터는 여러 지역에 복제된다.
  • 소프트 상태: 데이터 업데이트가 모든 복제본에 즉시 반영되지는 않는다.
  • 최종적 일관성: 클라이언트는 일시적으로 일관성이 없는 데이터를 볼 수 있지만, 최종적으로는 모든 데이터가 일관된 상태를 유지하게 된다.

3. Amazon S3

Amazon S3는 객체 스토리지 서비스로, BASE 원칙을 일부 따른다.

  • 기본적으로 사용 가능함: S3는 높은 가용성을 제공하며, 데이터를 여러 지역에 분산 저장하여 노드 실패 시에도 접근이 가능하다.
  • 소프트 상태: 새로운 데이터 쓰기나 기존 데이터 업데이트가 즉시 모든 복제본에 반영되지 않을 수 있다.
  • 최종적 일관성: 시간이 지나면서 모든 복제본이 일관된 상태를 유지하게 된다. 예를 들어, 새로운 객체를 업로드하면 몇 초 내에 모든 요청에서 해당 객체를 볼 수 있게 된다.

4. Riak

Riak은 분산 키-값 저장소로, BASE 원칙을 따른다.

  • 기본적으로 사용 가능함: Riak은 여러 노드에 데이터를 분산 저장하여 높은 가용성을 보장한다.
  • 소프트 상태: 데이터 업데이트가 모든 노드에 즉시 반영되지 않으며, 그 결과로 일시적으로 일관성이 없을 수 있다.
  • 최종적 일관성: 시간이 지나면서 모든 노드가 일관된 상태를 가지게 된다.
반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함