콘텐츠로 이동

2024 12 11

2024-12-11

DB sharding

참고: https://techblog.woowahan.com/2687/

  • 개요
    • DB 트래픽 분산의 목적
    • 특정 DB의 장애가 전면 장애로 이어지지 않는다
    • 모듈러샤딩/레인지샤딩 중 정할 수 있으며, DB마다 예측 가능한 데이터 성질에 따라 선택 추천
  • 요구사항
    • 모듈러/레인지 샤딩 둘다...
      1. 라우팅을 위해 구분할 수 있는 유일한 키값이 있을 것
      2. 올바른 DB를 찾을 수 있도록 라우팅이 될 것
      3. 설정으로 쉽게 증설이 가능할 것
  • 모듈러 샤딩
    • PK를 모듈러 연산결과로 DB 특정
    • 데이터 량이 일정 수준에서 유지될 것으로 예상 (데이터 균일 분산)
    • 적재 속도가 그리 빠르지 않다면 모듈러 분산 처리 고려해볼만 함
  • 레인지 샤딩
    • PK 범위 기반으로 DB 특정
      • 장점: 모듈러에 비해 증설에 재정렬 비용 X
      • 단점: 일부 DB에 데이터 몰릴 수 있음

DB partitioning

Slick transaction

Akka with play framework