일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- csr
- e2e
- vue3
- msw
- typeScript
- SSR
- Cypress
- http3
- CSS
- CloudFlare
- aws
- 선택자
- Testing
- TLS
- svelte
- 비동기
- vue
- ViTE
- QUIC
- api test
- caching
- ts error
- import.meta.env
- vue-cli
- custom command
- https
- web vital
- JavaScript
- devtools
- rendering
- Today
- Total
Develop Note by J.S.
[DataBase] Replication - 데이터 정합성 본문
DB Replication Sync Issue(데이터 정합성) 발생 원인 분석 및 조치 방법입니다.
1. 복제지연 가능성
1) SBR(query기반 복제) 인지 RBR (row기반 복제) 인지 체크
- 한번의 트랜잭션이 영향을 미치는 row의 개수가 적을 수록 RBR이 더 좋음.
2) Write 쿼리량 증가 - master의 Multi-Threaded Replication 설정의 worker 스레드 개수 (16개 이상은 차이가 없다고 함)
3) Slave 로드 증가 - Slave에서 실행되는 Select(조회) 트래픽으로 인해 처리 성능이 지연되면서 복제 지연이 발생하는 경우
2. 조치방법
1) 반동기 복제방식 (Semi-Sync Replication)
- Master에 write commit 시 Slave와 통신하여 ACK 신호(트랜잭션 수신 신호, update relay log)를 받을 때 까지 대기하는 방식
- Master에서 Slave로 트랜잭션이 정확하게 복사되는 건 보장하지만 실제로 반영되었는지는 보장되지 않음
- 기존의 비 동기 복제보다는 정합성을 더 가져갈 수 있지만, 성능에 영향을 미침
- 위험요소 1 : 얼마나 성능이 저하되는지에 따라 리플리케이션의 의미가 없을 수 있음
- 위험요소 2 : Slave의 오류가 Master에 영향을 미칠 위험성이 있음
2) 데이터 정합성이 중요한 내용은 Master에서 조회하도록 변경
3) 성능 향상을 위한 쿼리 수정
참고사이트
https://m.blog.naver.com/sory1008/221600878238
https://sarc.io/index.php/mariadb/1078-replication
https://mystria.github.io/archivers/fail-case-replica-lag-when-scale-down