본문 바로가기

CS공부

replication과 clustering이란??

Replication

replication은 DB를 이중화, 복제

두 개 이상의 DB를 Master - Slave로 나눠서 저장하는 방식 (DB를 권한에 따라 수직적인 구조)

여러 대의 서버에 데이터를 복제해 안정적인 데이터 접근 및 처리를 보장.

Matser DB에서는 쓰기 작업, Slave DB에서는 읽기 작업만을 처리.

비동기 식으로 노드들 간 데이터를 동기화.


Master DB역할

- 웹 서버로부터 데이터 등록, 수정, 삭제 요청 시 바이너리 로그 생성해 Slave 서버로 전달

 

Slave DB 역할

- Master로 부터 전달받은 바이너리 로그를 데이터에 반영

(바이너리 로그 : 데이터 변경사항들에 대한 정보를 포함하는 로그 파일의 세트)


사용 목적

1. 실시간 data 백업.

2. 여러 대의 DB서버 부하를 분산

 

장·단점

장점

- 쿼리의 대부분은 select가 차지함으로 Slave DB를 생성해 부하를 낮춰 성능 향상 효과

- Master DB가 손상되었을 지라도 Slave DB에 복제된 데이터를 통해 복구 가능

 

단점

- 비동기 방식으로 복제가 되어 일관성에 문제


Clustering

clustering은 동일한 DB를 여러 대의 서버가 관리하도록 클러스터를 구축. (수평적인 구조)

 


사용 목적

- 여러 DB 서버로 부하를 분산시켜 사용자의 요청을 더 많이 수용 가능

- 여러 대의 DB 서버를 가져 높은 가용성 보장

 

장·단점

장점

- 노드들 간 데이터 동기화해 데이터의 일관성

- 1개 노드가 죽어도 다른 노드가 살아 있어 장애없이 운영 가능

 

단점

- 데이터 동기화 시간이 필요해 replication에 비해 쓰기 성능이 떨어짐

- 장애가 전파된 경우 처리가 까다롭고 데이터 동기화에 의해 스케일링에 한계가 있음.

 

 

 

  

 

 

'CS공부' 카테고리의 다른 글

파이썬 파헤치기 - 배열(Array)에 대해서  (0) 2023.05.10
Class란 무엇인가?  (0) 2023.05.04
JVM이란 무엇인가요?  (0) 2023.04.23
B-트리 구조와 B+구조  (0) 2023.04.21
RDBMS의 INDEX란 무엇일까?  (0) 2023.04.18