Slide 46
Slide 46 text
● バックエンドの数が変わっても均一にしたい
Maglev Hashing (Consistent Hashingの応用)
● https://blog.acolyer.org/2016/03/21/maglev-a-fast-and-reliable-software-network-load-balancer/
offset = hash1(hostname) mod M
skip = hash2(hostname) mod (M-1) + 1
(M = 100より大きい素数)
// offset = 3, skip = 4のとき
B0 = [
3, // (3 + 0 * 4) mod 7
0, // (3 + 1 * 4) mod 7
4, // (3 + 2 * 4) mod 7
1, // (3 + 3 * 4) mod 7
5, // (3 + 4 * 4) mod 7
2, // (3 + 5 * 4) mod 7
6, // (3 + 6 * 4) mod 7
]