본문 바로가기

DB/Postgresql

샤딩을 구현할 때 고려해야할 사항 정리

728x90
반응형

분산 트랜잭션

분산 트랜잭션은 여러 샤드에 걸쳐 있는 데이터베이스 트랜잭션을 일관성 있게 처리하는 방법입니다. 이는 트랜잭션이 여러 데이터베이스 노드에 걸쳐 있을 때, 모든 노드에서 트랜잭션이 성공적으로 완료되거나 모두 실패하도록 보장합니다. 이를 통해 데이터 일관성을 유지할 수 있습니다.

샤딩 키 선택

  • 균등 분배: 샤딩 키는 데이터가 균등하게 분배되도록 선택해야 한다.
  • 쿼리 패턴: 자주 사용되는 쿼리 패턴을 고려하여 샤딩 키를 선택 한다.
  • 변경 가능성: 샤딩 키는 자주 변경되지 않는 값이어야 한다.

데이터 분배 전략

  • 범위 기반 샤딩: 특정 범위의 데이터를 각 샤드에 할당 한다.
  • 해시 기반 샤딩: 해시 함수를 사용하여 데이터를 샤드에 분배 한다.
  • 지리적 샤딩: 지리적 위치에 따라 데이터를 분배 한다.

데이터 일관성 유지

  • 강한 일관성: 모든 샤드에서 동일한 데이터를 보장 한다.
  • 최종 일관성: 일정 시간이 지나면 데이터가 일관성을 갖도록 한다.
  • 분산 트랜잭션: 분산 트랜잭션을 사용하여 데이터 일관성을 유지 한다.

장애 복구 전략

  • 백업 및 복구: 정기적인 백업을 통해 데이터 손실을 방지 한다.
  • 리플리카: 데이터의 복제본을 유지하여 장애 시 빠르게 복구 한다.
  • 자동 장애 조치: 장애 발생 시 자동으로 다른 샤드로 전환 한다.

- 끝 -

728x90
반응형

'DB > Postgresql' 카테고리의 다른 글

RDB 정규화  (0) 2024.08.21
샤딩에서의 SAGA 패턴  (0) 2024.08.21
샤딩에서 데이터 일관성 모델: 강한 일관성, 약한 일관성, CAP 이론  (0) 2024.08.21
샤딩에서의 캐싱  (0) 2024.08.21
복합 인덱스 설정 방법  (0) 2024.08.21