본문 바로가기
카테고리 없음

CAP이론 - 분산 파일 시스템 ( 하둡 & HBASE )에 관하여

by 흰색남자 2022. 12. 31.

1. CAP 이론

분산 데이터베이스 시스템에서 Consistency(데이터 일관성), Availability(데이터 가용성), Partition tolerance( 네트워크 분할 내구성 / 네트워크 분할 허용 )

 

1-1 .Consistency

모든 데이터를 요청할 때 응답으로 가장 최신의 변경된 데이터를 리턴하는 것

모든 읽기에 대해서 DB 노드가 항상 동일한 데이터를 가지고 있어야 함.

 

1-2. Availability모든 요청에 대해서 정상적인 응답을 하는 것.클러스터의 노드 일부에서 장애가 발생하더라고 READ, WRITE 등 동작은 성공해야 함.

 

1-3. Partition tolerance

노드 간 통신 장애가 발생하더라도 동작해야한다.노드 A,B가 있을 경우 A만으로도 동작해야 함.

----------------------

2. 하둡과 CAP 이론 및 HBASE 사용 이유

하둡은 A와 P를 만족하는 분산 파일 시스템이다. 가용성과 네트워크 분할 내구성을 지원한다.

그래서 C를 만족시키기위해 HBASE라는 NoSQL 데이터베이스를 올려두고 사용한다.

C는 데이터 일관성을 의미한다.

 

HBASE는 C와 P를 만족하는 NoSQL 데이터베이스이다.

HDFS 기반으로 동작하며, 데이터 일관성 (Consistency)과 분할 내구성( Partition tolerance )을 만족한다.

다시 말하면 HBase에 쓰기를 한 후 바로 다른 노드에서 읽기를 한 경우 가장최근에 쓰여진 데이터를 읽는다는 것이 보장된다.

----------------------

ACID와 다른 의미이다.

ACID의 C는 똑같은 데이터 일관성이지만 의미는 다르다.

데이터 조작 후에도 데이터의 무결성을 유지해야한다는 의미이지만, CAP의 C는 “Single request/response operation sequence”를 의미한다. 즉, 쓰기 동작이 완료된 후 발생하는 읽기는 마지막으로 쓰여진 데이터를 리턴해야한다는 말이다.

----------------------------------------------------------------------------------------------------------------------------------------------------------------

  • CP 데이터베이스: CP 데이터베이스는 가용성을 희생하면서 일관성과 파티션 허용을 제공합니다. 두 노드 간에 파티션이 발생하면, 시스템은 파티션이 해결될 때까지 일관되지 않은 노드를 종료(즉, 사용 불가능하게)해야 합니다.
  • AP 데이터베이스: AP 데이터베이스는 일관성을 희생하면서 가용성과 파티션 허용을 제공합니다. 파티션이 발생하면 모든 노드를 사용할 수 있지만, 파티션의 잘못된 끝에 있는 노드는 다른 데이터보다 이전 버전의 데이터를 리턴할 수 있습니다. (파티션이 해결되면, AP 데이터베이스는 일반적으로 시스템의 모든 불일치를 복구하기 위해 노드를 재동기화합니다.)
  • CA 데이터베이스: CA 데이터베이스는 모든 노드에서 일관성과 가용성을 제공합니다. 그러나 시스템에 있는 두 노드 사이에 파티션이 있는 경우 이를 수행할 수 없으므로, 결함 허용을 제공할 수 없습니다.

분산 시스템에서는 파티션을 피할 수 없다는 이유 때문에, 이 유형을 마지막으로 나열했습니다. 따라서 CA 분산 데이터베이스를 이론적으로 논의할 수 있지만, 실제적인 목적으로 CA 분산 데이터베이스는 존재할 수 없습니다. 그러나 이는 하나를 보유한 경우 분산 애플리케이션에 대해 CA 데이터베이스를 보유할 수 없음을 의미하지는 않습니다. 많은 관계형 데이터베이스(예: PostgreSQL)는 일관성과 가용성을 제공하며, 복제를 사용하여 여러 노드에 배치될 수 있습니다.

 

CAP 처럼 완벽한 CP, AP 등 시스템은 없고 애매모호한 경계에 있다.

그래서 극복하기 나온 것이 PACELC 이론이다.

 

 

 

https://www.ibm.com/kr-ko/cloud/learn/cap-theorem

https://eehoeskrap.tistory.com/219

https://blog.embian.com/10

https://sabarada.tistory.com/91

https://osy0907.tistory.com/m/95