728x90
클러스터를 사용할 때의 성능
- 클라이언트가 MOVED 에러에 대해 재요청을 해야하는 문제
- 클라이언트(라이브러리)는 key-node 맵을 캐싱하므로 대부분의 경우 발생하지 않음
- 클라이언트는 단일 인스턴스의 REdis를 이용할때 와 같은 성능으로 이용 가능
- 분산 시스템에서 성능은 데이터 일관성(Consistency)과 trade-off가 있음
- Redis Cluster는 고성능의 확장성을 제공하면서 적절한 수준의 데이터 안정성과 가용성을 유지하는 것을 목표로 설계
클러스터의 데이터 일관성
- Redis Cluster는 Strong consistency를 제공하지 않음
- 높은 성능을 위해 비동기 복제를 하기 때문
클러스터의 가용성 - auto failover
- 일부 노드(master)가 실패(또는 네트워크 단절) 하더라도 과반수 이상의 master가 남아있고, 사라진 master의 replica들이 있다면 클러스터는 failover되어 가용한 상태가 된다.
- node timeout동안 과반수의 master와 통신하지 못한 master는 스스로 error state로 빠지고 write요청을 받지 않음
- 예) master1과 replica2가 죽더라도, 2/3의 master가 남아있고, master1이 커버하던 hash slot은 replica1이 master로 승격되어 커버 할수 있다.
클러스터의 가용성 - replica migration
- replica가 다른 master로 migrate해서 가용성을 높인다.
- 예) master3은 replica 1개를 빼도 1개가 남기 때문에 replica3-2는 다른 master로 migrate가능
728x90
'DB' 카테고리의 다른 글
[MySql] 성능 개선에 관하여_해결 해 보자_1_explain (0) | 2024.08.06 |
---|---|
[MySql] 성능 개선에 관하여_고찰 (0) | 2024.08.06 |
[Redis] 확장성과 가용성을 위한 클러스터_뭔 말 인지 모르겠다. (0) | 2024.03.18 |
[Redis] Redis Cluster 데이터 분산과 Key 관리_뭔 말 인지 모르겠다. (0) | 2024.03.12 |
[Redis] Redis Cluster (0) | 2024.03.12 |