Skip to content

Latest commit

 

History

History
60 lines (36 loc) · 3.05 KB

2024-11-21.md

File metadata and controls

60 lines (36 loc) · 3.05 KB

🗓️ 2024-11-21

🐌 스크럼

  • 학습 목표 1. CAP 이론 복습

💡 새로 배운 내용

1. CAP 이론

DB 시스템은 아래의 세가지 특성을 모두 만족할 수 없다.

  • Consistency(일관성): 2개 이상의 DB가 존재하는 경우, 모든 DB는 요청에 대해 같은 데이터를 반환해야 한다.

  • Availability(가용성): 2개 이상의 DB가 존재하는 경우, 모든 DB는 요청에 대해 무슨 일이 있어도 응답을 보내야 한다.

  • Partition Tolerance(분할 내구성): 2개 이상의 DB가 네트워크상의 분리가 일어난 경우에도, DB는 데이터를 반환할 수 있어야 한다.

  • 종류

    • CA: 항상 일관성과 가용성을 유지한다. 하지만 네트워크 분리가 일어나면 데이터를 처리할 수 없게 된다.
    • CP: 네트워크 분리가 일어나도 데이터는 일관성을 유지한다. 그러나 일부 서버가 응답하지 않을 수도 있다.
    • AP: 네트워크 분리가 일어나도 데이터 응답을 반환한다. 하지만 그 데이터는 최신 데이터가 아닐 수도...

DB에서 분산 시스템은 피할 수 없다. 따라서 CA는 사실상 불가능하다고 한다.

1-1. MySQL

자주 사용하는 RDBMS이다.
기본적으로 MySQL을 사용하면 CA에 해당한다. 일관성과 가용성을 보장하지만 네트워크 분리시 데이터를 처리할 수 없다.

그런데! MySql의 Cluster 설정을 통해 CP를 만족하는 시스템으로 사용이 가능하다고 한다.

  • 이유: MySQL Cluster는 Synchronous Replication(동기 복제)를 통해 데이터의 변경 사항을 다른 노드에 그 즉시 복제하기 때문이다.

    MySQL cluster

1-2. mongoDB

데이터를 바이너리 JSON (BJSON)으로 관리하는 NoSQL DBMS이다.
mongoDB는 CP에 해당하여, 일관성과 분할 내구성을 보장하지만 가용성을 저하시킨다.

1-3. Casandra

Apache Software Foundation에서 유지 관리하는 오픈 소스 NoSQL DBMS이다.
Casandra는 AP에 해당하여, 가용성과 분할 내구성을 보장하지만 일관성을 저하시킨다. 분산 네트워크에 데이터를 저장할 수 있다.

CAP Triangle

👩🏻‍💻 오늘의 도전 과제와 해결 방법

  • 커뮤니티 과제 QA하기

👏🏻 오늘의 회고

  • 지난번 팀원분의 딥다이브 주제였던 CAP Theorem이다. 팀원분의 발표를 흥미롭게 들어서 다시 한 번 복습을 해보았다. 가장 흔하게 사용하고 있던 MySQL이 CA라는 점이 놀라웠고,, 그럼 현업에서는 MySQL Cluster를 이용해서 사용하는 건지 궁금해졌다.

🔗 참고 자료 및 링크