DevOps BootCamp/데이터베이스

레플리카

cloudmaster 2023. 3. 29. 10:54

★ 많은 사용자가 발생함에 따른 문제를 해결하기 위한 방법

 

레플리카(replica : 복제서버) : 데이터베이스의 복사본을 저장하는 각각의 노드

 > 원본이 되는 데이터베이스와 같은 데이터를 다른 위치에 존재하는 여러 노드에 유지하는 방식

 > 데이터의 중복성이 발생, 이 중복성으로 인해서 얻을 수 있는 장점이 존재하며, 그에 따라 해결해야하는 문제점들 역시 존재

레플리카의 장점

 > 시스템 장애시 동작할 수 있는 가용성 확보

  > 일부 노드가 사용불가능 상태라면 해당 데이터는 남은 다른 노드를 통해 여전히 제공할 수 있다는 장점

  > 리더 데이터베이스에 화재, 지진, 네트워크 오류 등의 장애 상황이 발생하더라도 레플리카 중 하나를 새로운 리더로 지정하고 사용자의 요청을 새로운 리더로 연결

 

 > 읽기 쿼리 제공 장비 수를 확장, 처리량 늘림

   >더에서는 읽기와 쓰기 처리를 한번에 처리하면서, 쓰기 처리가 발생할 경우 각 레플리카에도 데이터를 저장해서, 동기화를 진행

 

 > 지연시간 감소

 

★ 레플리카 활용 시 고렿래야할 사항

  > 리더 데이터베이스에 저장되어야 함은 물론, 모든 레플리카에도 똑같이 저장

  > 동기식 복제(synchronous)과 비동기식 복제(Asynchronous)

 

동기식 복제

> 레플리카 구조에서는 리더의 데이터 처리와 별개로 레플리카에서의 데이터 처리까지 모두 완료되어야만 프로세스가 진행

> 레플리카와 리더 데이터베이스가 일관성 있게 최신 데이터 복사본을 가지고 있는 것을 보장

 but 네트워크 문제나, 다른 이유로 레플리카가 정상적으로 데이터처리 작업을 완료할 수 없는 경우 응답을 받지 못한 리더 데이터베이스 역시 프로세스를 진행 x

 

비동기식 복제

 > 리더가 레플리카의 처리 응답을 기다리지 않습니다. 리더는 레플리카에 데이터 처리를 요청한 후 자신의 작업을 완료하면 사용자의 요청에 바로 응답

 > 리더 데이터베이스에 문제가 없다면, 레플리카의 상태와 무관하게 사용자에게 서비스를 계속해서 제공

반동기식 복제(semi-synchronous)

 > 하나의 레플리카는 동기식 복제를 사용하고, 다른 레플리카들은 비동기식으로 사용

 

'DevOps BootCamp > 데이터베이스' 카테고리의 다른 글

캐싱  (0) 2023.03.29
파티셔닝  (0) 2023.03.29
낮은 검색 성능 - 인덱싱  (0) 2023.03.29
SQL - INSERT, UPDATE, DELETE  (0) 2023.03.29
SQL - SELECT  (0) 2023.03.29