링
링ring은 파티션을 구성하는 논리 구조다. 링은 원형 패턴으로, 서버에서 실행 중인 키-값 데이터베이스 소프트웨어의 서버나 인스턴스가 인접한 두 대의 서버나 인스턴스와 연결되어 있는 것을 말한다. 각 서버나 인스턴스는 파티션 키를 기준으로 일정 범위의 데이터를 관리하는 책임을 지고 있다.
예를 들어 cust:8983:firstName이라는 문자열을 0과 95 사이의 숫자로 구성된 파티션 키와 연결하는 간단한 해시 함수가 있다고 해보자. 노드 여덟 개로 구성된 클러스터에서 각 서버를 서버1, 서버2, …, 서버8이라고 하면 표 4-1에 나온 것처럼 서버 여덟 대와 해시 값 96개로 파티션과 서버를 매핑할 수 있다.
▼ 표 4-1 서버와 파티션 매핑
서버 이름 |
파티션 범위 |
서버 1 |
0–11 |
서버 2 |
12–23 |
서버 3 |
24–35 |
서버 4 |
36–47 |
서버 5 |
48–59 |
서버 6 |
60–71 |
서버 7 |
72–83 |
서버 8 |
84–95 |
이 모델에서 서버2는 서버1, 서버3과 연결되며 서버3은 서버2, 서버4와 연결된다. 서버1은 서버8, 서버2와 연결된다. 이러한 링 아키텍처를 도식화한 게 그림 4-7이다.