이것이 레디스다.(3)

안현수·2021년 11월 2일
0

이것이 레디스다.

목록 보기
3/4

3.1 정의

  1. 대용량 웹 서비스를 위하여 만들어진 데이터 저장소
  2. 관계형 데이터 모델을 지향하며 대량의 분산된 데이터를 저장하고 조회하는 데 특화된 저장소
  3. 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소

3.2 CAP정리

  1. 일관성(Consistency): 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다.
  2. 가용성(Availability): 모든 요청이 성공 또는 실패 결과를 반환할 수 있다.
  3. 네트워크 분할 허용성(Partition tolerance): 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다.

에릭브루어는 CAP를 모두 동시에 지원하는 분산 컴퓨터 시스템은 없다라고 가설을 제시했는데, 세스길버트와 낸시린치가 이를 증명했다.

일반적으로 웹 서버와 DB서버는 각각 다른 하드웨어에 설치한다. 이와 같이 단일 시스템이 아닌 '다중 시스템환경에서 소프트웨어가 작동하는 것'을 분산 컴퓨팅이라 한다.

대부분의 NoSQL은 기본적으로 분산 환경에서 잘 동작하도록 설계되어 있다. 즉 동일한 성격의 데이터가 물리적으로 다른 하드웨어에 저장되고 조회된다. 이때 각 NoSQL은 일관성, 가용성, 분할허용성 가운데 두 가지 속성만을 지원하며, 나머지 한 속성은 특정 조건에서만 만족한다. 이것이 CAP정리의 핵심이다.

CAP정리에 기초한 세 가지 속성 중에서 어떠한 두 속성을 지원하는 지에 따라서 NoSQL의 특징이 달라진다.

분산시스템을 구성하는 각각의 하드웨어 또는 소프트 웨어를 노드, 그 노드들의 모음을 클러스터라고 한다. 분산시스템은 하나 혹은 그 이상의 다중 클러스터로 구성될 수 있다. 다중의 클러스터에서는 각 클러스터는 동일 지역 혹은 지역적으로 떨어진 위치에 존재할 수 있다. 이때 각 클러스터 간의 연결은 네트워크를 기반으로 한다.

profile
백엔드 개발자 안현수입니다.

0개의 댓글