다중 마스터 복제
- DB의 auto_increment 기능을 활용하는 방법으로 각 DB의 ID의 값을 서버 개수만큼 크기로 증가시켜 얻는 방법.
- 여러 데이터 센터에 걸쳐 규모를 늘리기 어렵다.
- ID의 유일성은 보장되곘지만 그 값이 시간 흐름에 맞추어 커지도록 보장할 수는 없다.
- 서버를 추가하거나 삭제할 때도 잘 동작하도록 만들기 어렵다.
UUID
- 128비트로 유일성이 보장되는 ID를 만드는 간단한 방법.
- 서버 사이의 조율이 필요 없으므로 동기화 이슈가 없고 규모 확장도 쉽다.
- 시간순으로 정렬할 수 없고, 숫자가 아닌 값이 포함될 수 있다.
티켓 서버
- auto_increment 기능을 갖춘 데이터베이스 서버를 중앙 집중형으로 하나만 사용하는 방법.
- 유일성이 보장되 ID를 쉽게 만들 수 있다.
- 구현하기 쉽고, 중소 규모 애플리케이션에 적합하다.
- 티켓 서버가 SPOF(Single-Point-Of-Failure)가 된다. 티켓 서버를 확장하게 되면 동기화 같은 새로운 문제가 발생한다.
트위터 스노플레이크 접근법

- 사인 비트 : 부호 구별
- 타임스탬프 : 기원 시각 이후로 몇 밀리초가 경과했는지 값
- 데이터센터 ID : 5bit로 2^5=32개 데이터센터를 지원할 수 있다.
- 서버 ID : 5bit로 2^5=32개 데이터센터당 32개 서버를 사용할 수 있다.
- 일련번호 : 각 서버에서 ID를 생성할 때마다 1만큼 증가 시키는 번호, 1밀리초마다 0으로 초기화한다.
'시스템 설계 > 가상 면접 사례로 배우는 대규모 시스템 설계 기초' 카테고리의 다른 글
6장. 키-값 저장소 설계 (0) | 2025.01.24 |
---|---|
5장. 안정 해시 설계 (0) | 2025.01.20 |
4장. 처리율 제한 장치의 설계 (1) | 2025.01.17 |
3장. 시스템 설계 면접 공략법 (1) | 2025.01.12 |
2장. 개략적인 규모 추정 (0) | 2025.01.12 |
댓글