Skip to content

Latest commit

 

History

History
23 lines (15 loc) · 2.05 KB

File metadata and controls

23 lines (15 loc) · 2.05 KB

30. CAP 이론과, Eventual Consistency에 대해서 설명해주세요.

CAP 이론

CAP 이론은 데이터 일관성(Consistency), 가용성(Availability), 파티션 감내(Partition tolerance)라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다라는 정리입니다.

  • Consistency: 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했냐에 관계없이 일관된 데이터를 봐야한다.
  • Availability: 분산 시스템에 접속하는 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
  • Partition tolerance: 노드간 네트워크에 문제가 생기더라도 시스템이 계속 동작해야함을 의미한다.

MySQL을 그냥 사용했을 때는 CA에 속합니다. main이 되는 master 노드가 있고, 그 노드를 복제해 사용하는 slave 패러다임이 있기 때문입니다. 만약 cluster 설정을 하면 MySQL은 CP를 만족하는 시스템이 됩니다. data

대부분의 시스템은 CP와 AP 중간쯤 존재합니다. 이런 부정확함을 극복하기 위해 PACELC 이론이 나왔습니다

Eventual Consistency

여러 노드에 다중화된 데이터는 동기화가 되어야 합니다. 이떄 데이터의 일관성을 맞춰야 하는데 강한 일관성 / 약한 일관성이 있습니다. 강한 일관성은 모든 읽기 연산이 가장 최근에 갱신된 결과를 보장하는 것입니다. 약한 일관성은 최근에 갱신된 결과를 반환하지 못할 수 있는 것입니다.

최종 일관성(eventual consistency)는 약한 일관성의 한 형태로, 갱신 결과가 결국에는 모든 사본에 반영되는 모델입니다. 최종 일관성 모델을 따를 경우 쓰기 연산이 병렬적으로 발생하면 시스템에 저장된 값의 일관성이 깨질 수 있는데, 이 문제는 클라이언트가 해결해야 합니다. 클라이언트 측에서 데이터의 버전 정보를 활용해 일관성이 깨진 데이터를 읽지 않도록 해야합니다.