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 |