Database/기타

RDBMS의 한계와 NoSQL을 사용하는 이유 (1) CAP, PACELC 이론

TheWing 2021. 11. 27. 18:27

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (1) CAP, PACELC 이론

사내에서 발표 했던 내용을 정리하여 포스팅 한 것입니다.

CAP 이론

  • 분산 컴퓨팅 환경은 일관성(Consistency), 가용성(Availability), 분할 내성(Partitioning) 세 가지 특징을 가지고 있다, 이중 두 가지만 만족할 수 있다는 이론이다. NoSQL은 대부분 이 CAP 이론을 따른다.

 

CAP 이론

 

 

원문 이미지

  • 일관성 (Consistency)
    • 모든 노드들이 동일 시간 동일 데이터를 사용자에게 보여줘야 하는 것
    • ACID 의 'C'는 데이터는 항상 일관성 있는 상태를 유지해야 하고 데이터의 조작 후에도 무결성을 해치지 말아야 한다는 속성이다.
    • 쓰기 동작이 완료된 후 발생하는 읽기 동작은 마지막으로 쓰여진 데이터를 리턴 해야한다
    • Consistency보단 Atomic 원자성이 더 맞는 특징을 나타낸다고 할 수 있다.
    • 일관성은 동시성, 동일성이라고도 하며 다중 클라이언트 환경에서 같은 시간에 조회하는 데이터는 항상 동일해야한다는 보증을 하는 것을 의미한다.
    • RDBMS가 지원하는 가장 기본적인 기능이지만 일관성을 지원하지않는 NoSQL을 사용한다면 데이터의 일관성이 느슨하게 처리되어 동일한 데이터가 나타나지 않을 수 있다.
    • 느슨하게 처리된다는 것은 데이터의 변경을 시간의 흐름에 따라 여러 노드에 전파하는 것을 말한다.
  • 가용성 (Availability)
    • 특정 노드에 장애가 발생해도 성공적으로 서비스를 지속하는 것
    • 데이터 저장소에 대한 모든 동작(read, write 등) 항상 성공적으로 리턴되어야한다.
  • 분할 내성(Partition Tolerance)
    • 파티션 허용, 분산화 가능 물리적인 네트워크 분산 환경에서도 시스템이 잘 작동해야 만족
    • Availability 와 차이점은 Availability는 특정 노드가 "장애"가 발생한 상황에 대한 것이고 분할 내성은 노드의 상태는 정상이지만 네트워크 등의 문제로 서로간의 연결이 끊긴 상황에 대한 것

DBMS 별 CAP

CAP 이론에 따르면 분산 시스템 이중 2가지만 만족할 수 있다. 단지 특정 데이터베이스가 무조건 CA, CP등 확정되지는 않는다.

RDBMS는 일반적으로 CA를 만족한다.

분산화 특성 보다는 데이터의 일관성과 가용성에 중점을 둔 형태라고 볼 수 있다. 즉, 시스템의 신뢰성이 높다는 특징을 가지게 된다. 분산 구조를 가져가는 것이 가능하지만 Replication 의 경우 퍼포먼스를 고려해야하고 Sharding의 경우 데이터의 관계가 무너질 수 있는 부담감이 있다. 이러한 경우 신뢰성이 깨지는 리스크가 발생할 수 있다.

MySQL의 경우 Master - Slave 관계를 사용할 때 CA를, 클러스터 구성을 할 때 CP를 만족한다. Master - Slave 관계를 사용한다면 Slave중 새로운 마스터를 선택할 때 파티션 허용 오차가 생길 수 있다. 클러스터 구성을 한다면 라이브 노드 개수가 적을 때 클러스터가 종료될 수 있다.

이미지 참고

 

NoSQL은 CP, AP 형태를 가질 수 있다.

  • CP , AP 형태를 선호하는 이유 데이터의 신뢰성 보다는 분산에 중점을 둔 방식 이라 약간의 데이터의 유실, 변형등이 발생할 수 있다 하지만 빠르게 확장을 하여 대규모 데이터를 저장하고 핸들링 할 수 있는 구조를 갖출 수 있도록 한다. 기존의 RDBMS 형태에는 없는 특징을 가져가는 대신 C나 A하나를 포기해야한다.

CP형태를 가지는 NoSQL은 MongoDB, Redis등이 있다.

AP 형태를 가지는 NoSQL은 DynamoDB, cassandra와 CouchDB가 있다. 일관성을 포기하여 데이터의 동기를 보장하지 못하지만 비동기화된 대용량 데이터 처리에 유리할 수 있다.

여러 DB에서 다양한 조합을 살펴보고 CAP 우선순위를 정하여 선택하는 것이 좋다.

CAP 이론의 한계

  • 완벽한 CP , AP 시스템은 사용할 수 없다
  • 대부분 분산 시스템은 CP와 AP의 중간쯤이다
  • 모든 분산 시스템이 파티션을 사용하진 않는다.

PACELC 이론

  • CAP 이론으로 부족한 부분을 보완하기 위해 네트워크 장애 상황과 정상 상황을 나누어서 설명하는 이론이다.
  • P(네트워크 파티션)상황에서 A(가용성)과 C(일관성)의 상충 관계와 E(else, 정상) 상황에서 L(지연시간)과 C(일관성)의 상충 관계를 설명한다.

PACELC 이론에 따른 NoSQL분류

이미지 참고

 

결론적으로 DB를 선택할땐 CAP, PACELC 이론에 맞춰 원하는 DB를 선택하는 것이 좋다.