- 학습 목표 1. CAP 이론 복습
DB 시스템은 아래의 세가지 특성을 모두 만족할 수 없다.
-
Consistency(일관성): 2개 이상의 DB가 존재하는 경우, 모든 DB는 요청에 대해 같은 데이터를 반환해야 한다.
-
Availability(가용성): 2개 이상의 DB가 존재하는 경우, 모든 DB는 요청에 대해 무슨 일이 있어도 응답을 보내야 한다.
-
Partition Tolerance(분할 내구성): 2개 이상의 DB가 네트워크상의 분리가 일어난 경우에도, DB는 데이터를 반환할 수 있어야 한다.
-
종류
- CA: 항상 일관성과 가용성을 유지한다. 하지만 네트워크 분리가 일어나면 데이터를 처리할 수 없게 된다.
- CP: 네트워크 분리가 일어나도 데이터는 일관성을 유지한다. 그러나 일부 서버가 응답하지 않을 수도 있다.
- AP: 네트워크 분리가 일어나도 데이터 응답을 반환한다. 하지만 그 데이터는 최신 데이터가 아닐 수도...
DB에서 분산 시스템은 피할 수 없다. 따라서 CA는 사실상 불가능하다고 한다.
자주 사용하는 RDBMS이다.
기본적으로 MySQL을 사용하면 CA에 해당한다. 일관성과 가용성을 보장하지만 네트워크 분리시 데이터를 처리할 수 없다.
그런데! MySql의 Cluster 설정을 통해 CP를 만족하는 시스템으로 사용이 가능하다고 한다.
데이터를 바이너리 JSON (BJSON)으로 관리하는 NoSQL DBMS이다.
mongoDB는 CP에 해당하여, 일관성과 분할 내구성을 보장하지만 가용성을 저하시킨다.
Apache Software Foundation에서 유지 관리하는 오픈 소스 NoSQL DBMS이다.
Casandra는 AP에 해당하여, 가용성과 분할 내구성을 보장하지만 일관성을 저하시킨다.
분산 네트워크에 데이터를 저장할 수 있다.
- 커뮤니티 과제 QA하기
- 지난번 팀원분의 딥다이브 주제였던 CAP Theorem이다. 팀원분의 발표를 흥미롭게 들어서 다시 한 번 복습을 해보았다. 가장 흔하게 사용하고 있던 MySQL이 CA라는 점이 놀라웠고,, 그럼 현업에서는 MySQL Cluster를 이용해서 사용하는 건지 궁금해졌다.