이제 사용자의 ID 문자열을 이용하여 해시 함수를 실행합시다. 해시 함수는 여러분이 일반적으로 많이 사용하는 형태면 됩니다.
int Hash(string userID, int shardCount) { int x = 0; foreach(ch in userID) { x ^= ch; // XOR 연산으로 조합한다. } return x % shardCount; // MOD 연산 }
Tip
이 해시 함수 예제에서는 샤드가 255개를 넘을 수 없습니다. 최소 문자열 2개 이상을 이용해서 XOR 연산을 하세요. 이 함수는 여러분 이해를 돕기 위해 최대한 간단하게 만든 것입니다.
이 함수가 리턴한 값은 몇 번째 샤드인지를 가리키는 인덱스가 될 것입니다. 이제 해당하는 샤드에 질의를 던집시다. 우리가 분산 서버를 구성하기 전에 했던 것과 똑같이 하면 됩니다.