CAP이론이란?
"분산 시스템에서는 3개 속성을 모두 가지는 것이 불가능하다!"
Consistency(일관성) : 데이터는 항상 일관성 있는 상태를 유지해야 하고 데이터의 조작 후에도 무결성을 해치지 말아야 한다.
- 즉, 쓰기 동작이 완료된 후 발생하는 읽기 동작은 마지막으로 쓰여진 데이터를 리턴해야 한다는 것을 의미
- 모든 노드가 같은 시간에 같은 데이터를 보여줘야 한다. (저장된 데이터까지 모두 같을 필요는 없음)
Availability(가용성) : 특정 노드가 장애가 나도 서비스가 가능해야 한다.
- 데이터 저장소에 대한 모든 동작(read, write 등)은 항상 성공적으로 리턴되어야 한다.
- CAP을 설명하는 문서들 중 오류가 발생했을때 "Fail"이라고 리턴하는 경우도 성공적인 리턴이라고 설명하기도 한다.
Partitions Tolerance(분리 내구성) : 노드간에 통신 문제가 생겨 메시지를 주고받지 못하는 상황이라도 동작해야 한다.
- 노드의 상태는 정상이지만 네트워크 등의 문제로 서로간의 연결이 끊어진 상황에 대한 것
- Availablity와의 차이점은 Availability는 특정 노드가 “장애”가 발생한 상황에 대한 것이고 Partitons Tolerance(Tolerance to network Partitions)는 노드의 상태는 정상이지만 네트워크 등의 문제로 서로간의 연결이 끊어진 상황에 대한 것이다
현재 DB 들의 지향하는 CAP에 대한 그림
출처: https://hamait.tistory.com/197 [HAMA 블로그]
'Data Engineering > Hadoop' 카테고리의 다른 글
[Hadoop] hadoop의 기본개념 (2) | 2022.05.18 |
---|---|
Hadoop - HDFS HA QJM(Quorum Journal Manager) 과 NFS(Network File System) (2) | 2022.05.18 |