본문 바로가기

2.분석 및 설계

CAP 이론 소개

들어가기

에릭 브루어(Eric Brewer)의 이론으로 분산 시스템의 제약사항에 대한 이론인다. 최근 NoSQL로 빅데이터 처리하는 시스템에서 분산시스템을 분류하거나 특징을 이해하는 좋은 도구이다. 가볍게 살펴보겠습니다.

작성자: ospace114@empal.com, http://ospace.tistory.com/

CAP 이론

에릭 브루어(Eric Brewer)가 분산 시스템의 제약사항을 정리한 이론이다. 이 이론에 따르면 분산 시스템에서 아래 3가지 속성을 동시에 만족하는 것은 불가능하다.

  • Consistency(일관성)
    • 데이터는 항상 일관된 상태유지, 조작 후에 무결성 보장
  • Availability(가용성)
    • 일부 노드가 장애 발생해도 서비스 가능
  • Partitions Tolerance(분리 내구성)
    • 노드간 임의로 많은 메시지 손실이 발생해도 서비스 가능

3가지 속성에서 2가지 속성은 완벽하게 만족할 수 있지만, 나머지 하나는 완벽하게 만족할 수 없다는 의미이다. 즉, 3가지 속성을 모두 만족하는 제품은 없다는 의미이다.

분류

CAP 이론에 3가지 속성에서 만족하는 2가지 속성에 앞문자를 따서 아래 3가지로 분류할 수 있다.

  • AP(Availability-Partition Tolerance)
    • Dynamo, Cassandra, Voldemort, SimpleDB, Tokyo Cabinet, CouchDB, KAI, Riak
  • CP(Consistency-Partition Tolerance)
    • BigTable, Hypertable, Hbase, MongoDB, Terrastore, Scalaris, Berkeley DB, MemcacheDB
  • CA(Consistency-Availability)
    • RDBMs, AsterData, Greenplum, Vertica

우리가 흔히알고 있는 Oracle이나 MySql은 RDBMs로 CA에 속한다. 물론 제품마다 구성방식이나, 확장에 따라서 조금씩 달라질 수 있다. 저도 모든 제품을 일일히 확인하지 못하고 다른 자료에 나온 분류를 참고하거라 정확하지 않을 수 있다.

결론

CAP 이론에도 한계가 있어서 Daniel Abadi가 PACELC 이론을 제시하기도 했다. CAP은 각 시스템 대한 이해를 돕는 정도로 선택시 어떤 부분을 중요한지에 대한 기준을 세울때 참고하는 정도라고 생각하면 될 듯 하다. NoSQL에 모두 같은 특성을 갖고 비슷할 거라고 생각할 수 있지만, 각자 지향하는 바가 틀리기 때문에 이런 기준이 제품을 이해하는데 도움이 될거라고 생각한다. 부족한 글이지만 도움이 되었으면 합니다. 즐프하세요. ospace.

참조

[1] 이승현, 초보자를 위한 CAP 이론, http://hamait.tistory.com/197

반응형

'2.분석 및 설계' 카테고리의 다른 글

전자서명  (0) 2024.03.06
The C10k Problem  (4) 2024.01.13
의사코드(pseudocode) 사용하기  (0) 2023.10.19
glTF 포멧  (0) 2023.06.08
[mybatis] Mybatis 내부동작 흐름  (0) 2022.01.26