★ 많은 사용자가 발생함에 따른 문제를 해결하기 위한 방법
레플리카(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 |