반응형
CAP 이론이란?
- 컴퓨터과학 분야에서 분산 컴퓨터 시스템을 설명하는데 사용되는 이론.
- Consistency, Availability, Partition Tolerance 을 동시에 지원하는 분산 컴퓨터 시스템은 없다. 라고 정의됨.
- 2000년에 전산학자 에릭 브루어가 가설을 제시하였고, 2002년에 세스 길버트와 낸시 린치가 증명함.
- 참고페이지
- http://en.wikipedia.org/wiki/CAP_theorem
-
In theoretical computer science, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer, states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees.
-
-
https://blog.nahurst.com/visual-guide-to-nosql-systems
-
As you can see, there are three primary concerns you must balance when choosing a data management system: consistency, availability, and partition tolerance.
- Consistency means that each client always has the same view of the data.
- Availability means that all clients can always read and write.
- Partition tolerance means that the system works well across physical network partitions.
-
According to the CAP Theorem, you can only pick two.
-
- Consistency
- 일관성 or 동시성 or 동일성
- Every read receives the most recent write or an error
- 다중 클러스터에서 같은 시간에 조회하는 데이터는 항상 동일한 데이터임을 보증하는 것을 의미함.
- 관계형 데이터베이스가 지원하는 가장 기본적인 기능이기도하나, NoSQL에서는 빠른 분산처리를 위하여 해당 일관성을 희생할 수 도 있음.
- 대부분 시간이 지남에 따라 수정된 내용이 다른 노드로 전파되어 반영됨.
- 이를 최종일관성(Eventual Consistency) or 궁극적인 일관성이라고 부름
- NoSQL 솔루션
- 많은 NoSQL 솔루션은 읽기와 쓰기의 성능 향상을 위해 데이터를 메모리에 임시로 기록후 클라이언트에 응답
- 백그라운드 스레드 or 프로세스로 해당 데이터를 디스크에 기록함.
- 장점
- 빠른 응답속도 및 데이터변경에따른 수정비용이 적게듬.
- 단점
- 정전과 같은 하드웨어 장애발생 시 데이터 유실이 발생됨.
- 잠깐!, 여기서 Redis의 대응책에 대해서 알아볼께요..^^;
- Redis 는 AOF를 사용하여 데이터 유실을 방지함.
- AOF(Append Only File)
- Redis가 변경 커맨드를 받을 때마다, AOF 파일에 커맨드를 추가(append)함.
- Redis에서 AOF를 사용하는 것으로 변경한 후, Redis를 재시작하면, Redis는 AOF의 나열된 모든 커맨드를 순서대로 실행하여 복구할 수 있음.
- AOF(Append Only File)
- 많은 NoSQL 솔루션은 읽기와 쓰기의 성능 향상을 위해 데이터를 메모리에 임시로 기록후 클라이언트에 응답
- 일관성 or 동시성 or 동일성
- Availability
- 가용성 or 내고장성
- Every request receives a (non-error) response, without the guarantee that it contains the most recent write
- 모든 클라이언트의 읽기와쓰기 요청에 대해서 항상 응답이 가능해야 함을 보증하는 것.
- 내고장성을 가진 NoSQL은 클러스터 내에서 몇개의 노드가 망가지더라도 정상적인 서비스가 가능함.
- 시스템 아키텍처 설계에서 말하는 고가용성(High Availability)과 유사한 개념.
- NoSQL 솔루션
- 가용성을 보장하기 위해 데이터 복제를 사용함.
- 동일한 데이터를 다중 노드에 중복 저장하고, 그 중 몇대의 노드가 고장 나도 데이터가 유실되지 않도록 하는 방법임.
- 가용성을 위한 데이터 중복 저장 방법
- master-slave
- 동일한 데이터를 가진 저장소를 하나 더 생성하는 방법
- 보통, 관계형 데이터베이스 시스템에서 고가용성을 지원하기위한 솔루션.
- Peer to Peer
- 데이터 단위로 중복 저장하는 방법.
- master-slave
- 가용성을 보장하기 위해 데이터 복제를 사용함.
- 가용성 or 내고장성
- Partition Tolerance
- 분할 허용성
- The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes
- 지역적으로 분할된 네트워크 환경에서 동작하는 시스템에서 두 지역 간의 네트워크가 단절되거나 네트워크 데이터의 유실이 일어나더라도 각 지역 내의 시스템은 정상적으로 동작해야함을 의미함.
- 분할 허용성
- 대부분의 NoSQL은 기본적으로 분산환경에서 잘 동작하도록 설계됨.
- NoSQL은 일관성, 가용성, 분할허용성가운데 두가지 속성만 을 지원하고, 나머지 한 속성은 특정 조건에만 만족하게됨.
- 바로 이것이 CAP 정리의 핵심 중 핵심임.
- NoSQL의 특징에 따라 달라짐.
- 바로 이것이 CAP 정리의 핵심 중 핵심임.
- NoSQL은 일관성, 가용성, 분할허용성가운데 두가지 속성만 을 지원하고, 나머지 한 속성은 특정 조건에만 만족하게됨.
- Consistency, Availability, Partition Tolerance 을 동시에 지원하는 분산 컴퓨터 시스템은 없다. 라고 정의됨.
분산시스템이란?
- 분산시스템을 구성하는 각각의 하드웨어 or 소프트웨어를 노드(Node)라도 부름.
- 분산시스템은 하나 or 그 이상의 다중 클러스터로 구성될 수 있음.
- 클러스터 란?
- 동일한 기능을 수행하는 노드들의 모음.
- 다중 클러스터는 동일 지역 or 지역적으로 떨어진 위치에 존재가능함.
- 클러스터간 연결은 네트워크를 기반으로 함.
- 클러스터 란?
결론
- CAP 이론이란, 분산 컴퓨터 시스템을 설명하는데 사용되는 이론임.
- NoSQL은 기본적으로 분산환경에서 잘동작하도록 설계되었으며, 일관성, 가용성, 분할허용성 가운데 2가지 속성만 지원하고 나머지 한 속성은 특정 조건에 만족하게 되어있음.
- 신규 시스템 구현 시 NoSQL을 선택하고자 할때, 선택하려는 NoSQL에 대해서 충분히 공부 및 이해하고 시스템에 적용해야 문제가 없을듯...
300x250
'좋아하는 것_매직IT > 9.redis' 카테고리의 다른 글
7.Redis, 그러면..언제 NoSQL을 사용해야 할까요? ^-^ (0) | 2021.01.13 |
---|---|
6.Redis, NoSQL를 한번 분류해볼께요. ^^ (0) | 2021.01.12 |
4.Redis, NoSQL에 대해서 전반적으로 알아볼께요. (0) | 2021.01.11 |
3.Redis, 레디스의 성능 측정에 대해서 간단하게 알아볼께요? (0) | 2021.01.11 |
2.Redis, 레디스의 기본명령어에 대해서 알아볼까요? (0) | 2021.01.06 |