🏫CS/데이터베이스
Replication 과 Clustering
김진한
2023. 5. 7. 17:06
Replication
: 2개 이상의 DBMS 시스템을 수직적(master: 쓰기 / slave: 읽기)로 나눠서 동일한 데이터를 저장
- 읽기 작업이 DB의 주 성능이라 good!
- 지연 시간 X(비동기)
- 동기화 X (일관성 x)
- master 노드가 다운될 시 그것은 죽음 뿐,,,,,ㅠㅠ
* 처리 순서
1) Master Node
- 쓰기 트랜잭션 수행
2) Master Node
- 데이터 저장
- 쓴 트랜잭션을 로그 파일에 저장
3) Slave Node
- io 스레드는 로그 파일을 file에 복사
4) Slave Node
- SQL 스레드는 파일을 한 줄씩 읽으면서 데이터에 저장
Clustering
: 여러 DBMS를 수평적으로 구축하는 방식으로, 동기 방식으로 노드들 간의 데이터 동기화(데이터 무결성 검사)
- 노드들 간의 동기화로 일관된 데이터 구축
- 1개 죽어도 다른 노드가 있으니까 다행
- 동기화 시간이 길다
* 처리 순서
1) 1개 노드에 쓰기 트랜잭션 수행 -> commit
2) 다른 노드로 데이터 복제 요청
3) 복제 요청 수락 -> 디스크에 쓰기
4) 다른 노드들로부터 수락 신호받으면 실제 디스크에 데이터 저장