Read Preference(읽기 설정)
읽기 설정 - 데이터베이스 매뉴얼 - MongoDB Docs
read preference는 MongoDB 클라이언트가 Replica Set 환경에서 어떤 노드에서 데이터를 읽을지를 결정하는 설정이다.
애플리케이션의 필요에 따라 데이터 일관성, 가용성, 낮은 지연 시간 사이의 균형을 맞출 수 있다.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Primary │ │ Secondary │ │ Secondary │
│ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
▲ ▲ ▲
│ │ │
└─── ReadPreference가 어디서 읽을지 결정 ────┘
Read Preference Modes
| 모드 | 설명 | 사용 사례 |
|---|---|---|
primary | Primary에서만 읽기 (기본값) | 항상 최신 데이터가 필요한 경우 |
primaryPreferred | Primary 우선, 불가능하면 Secondary | 최신 데이터 선호 + 고가용성 |
secondary | Secondary에서만 읽기 | 읽기 부하 분산, Primary 보호 |
secondaryPreferred | Secondary 우선, 불가능하면 Primary | 읽기 부하 분산 + 고가용성 |
nearest | 네트워크 지연 시간이 가장 짧은 노드 | 지연 시간 최소화가 중요한 경우 |
추가 옵션
tags: 특정 태그가 있는 노드에서만 읽기(예: 특정 지역이나 데이터센터의 노드)maxStaleness: 최대 허용 지연 시간 - 데이터가 얼마나 오래됐는지 허용하는 한계(예: 90초 이내로 복제된 노드에서만 읽기)
주의사항
- Secondary에서만 읽으면 최신 데이터가 아닐 수 있음
- 트랜잭션 내부에서는
primary모드만 사용 가능