PE Notes · DB
분산 데이터베이스 — 투명성과 분할
여러 사이트에 두고도 하나로 보이게 하는 다섯 투명성, 수평·수직·혼합 분할과 복제, 2PC 분산 커밋을 정리합니다.
한 대 서버의 TPS와 디스크는 한계가 있습니다. 는 여러 물리적 위치에 나누고 복제하되, 사용자에게는 하나의 논리 DB로 보이게 합니다. 각 사이트는 자치로 돌고, 전체는 일관과 가용을 같이 노립니다. 일관·가용·분단내성을 동시에 최대로 둘 수는 없습니다.
다섯 투명성
투명성은 분산을 숨기는 약속입니다.
| 투명성 | 숨기는 것 |
|---|---|
| 위치 | 어느 사이트에 있는지 |
| 중복 | 복제본이 몇 개인지 |
| 분할 | 행·열이 어떻게 잘렸는지 |
| 장애 | 한쪽이 죽어도 서비스가 이어짐 |
| 병행 | 여러 사용자가 동시에 써도 직렬처럼 보임 |
이 빠지면 애플리케이션이 서버 주소를 외워야 합니다.
분할
은 행을 나눕니다. 범위, 해시, 목록이 기준입니다. 서울 사이트는 고객 1~100만, 부산은 그다음처럼 두고 UNION으로 원본을 만듭니다. 샤딩과 같은 방향입니다.
은 열을 나눕니다. 기본키는 모든 조각에 남기고, 급여 열과 인사 열을 사이트별로 둡니다. 원본은 키로 JOIN합니다. 혼합은 둘을 겹칩니다.
| 원칙 | 뜻 |
|---|---|
| 완전성 | 원본의 모든 값이 어디엔가 있음 |
| 재구성 | 조각을 합치면 원본이 됨 |
| 비중복 | 수평 조각끼리 행이 겹치지 않음(수직은 키 제외) |
복제는 전체·부분·없음으로 가용과 갱신 비용을 바꿉니다. 동기 복제는 강한 일관과 높은 지연, 비동기는 반대입니다.
2PC
여러 사이트에 걸친 트랜잭션은 모두 커밋되거나 모두 롤백되어야 합니다. 는 조정자가 참여자에게 준비 여부를 묻고, 전원 YES면 커밋, 하나라도 NO면 롤백합니다. 원자성은 지키지만 조정자가 멈추면 참여자가 기다립니다.
| 축 | 분산 | 중앙 |
|---|---|---|
| 확장 | 수평 | 수직 위주 |
| 장애 | 일부 사이트 생존 가능 | 단일 점 |
| 설계 | 투명성·분할·2PC | 단순 |
기술사 답안 포인트
관련 용어
관련 토픽
DB
NoSQL, CAP, BASE, PACELC
분산에서 C·A·P를 동시에 못 지키는 CAP, 분단 없을 때의 지연 트레이드오프 PACELC, AP 쪽 BASE와 네 데이터 모델, ACID를 지키는 NewSQL을 한 줄로 잇습니다.
DB
FD·4NF·5NF와 샤딩·파티셔닝·쿼리 오프로딩
암스트롱 공리와 다치·조인 종속, 4NF·5NF, 단일 서버 파티셔닝과 다중 서버 샤딩, 읽기 복제 오프로딩을 정리합니다.
DB
DBMS 전환과 HA
상용에서 오픈소스 DBMS로 옮길 때 SQL 방언과 이중화를 가르고, Patroni 스트리밍 복제와 Galera 다중 마스터를 RAC와 같은 비교표에 올립니다.