2016-11-01 2 views
0

카산드라에 대한 기사를 읽었는데 카산드라가 어떻게 데이터를 써야하는지 노드를 결정하는 방법을 이해할 수 없습니다.카산드라의 쓰기 노드 결정하기

내가 알기로는 Cassandra가 파티션 키를 해싱하여 토큰을 얻으려면 기본 키, 특히 파티션 키 및 파티션 도구 일부를 사용하므로 해당 토큰이 바인딩 된 노드/vnode입니다. 이제 클러스터에 2 개의 노드가 있고 각 노드에는 256 개의 노드가 있고 클러스터링 키는 사용하지 않고 간단한 PK와 간단한 열을 사용한다고 가정 해 보겠습니다. 해시 파티션 키는 데이터가 어디로 가야하는지 명확하게 결정합니다. 이 논리에 따라 저장 용으로 512 개의 고유 레코드 만 사용할 수 있습니다. 사실이라면 재미있을 것입니다. 그래서 나는 분배기 부분에서 잘못 되었습니까?

답변

1

기본 사례를 고려하십시오. 단 하나의 노드이며 단일 토큰이 있습니다. 당신이 이야기 할 수 있다고 생각하십니까 단 하나의 기록? 당연히 아니지.

해시는 행이 이동할 노드를 결정합니다. 그러나 기본 키는 노드에서 행이 저장 될 위치를 결정합니다. 많은 서로 다른 기본 키가 동일한 해시를 초래할 수 있지만 모두 노드별로 별도로 저장됩니다.