分散への考察その2−Entity分割方式

全点数を一つのインスタンスに格納するのではなく、適当な点数の範囲毎にインスタンスを分けて分散させるアイデアです。
今回試しに実装したものは0〜10万点の範囲で作成していますが、これを4096点毎に25個のインスタンスに分けて実装したのが↓です。
http://tetz-lab.appspot.com/ranking/?trn=gtx&type=divided


ランキング計算にかかる時間は初回は600〜900ミリ秒程度、2回目以降は70〜150ミリ秒程度でした。更新は80〜150ミリ秒程度。Entityが小さくなった分、若干更新が早いみたいです。


しかしこの方式だと特定の点数に負荷が集中するとスケールしないので、Entityへの負荷が高まってきたらそのEntityを分散カウンタ方式で分割する、といった対処も考えた方がよさそうです。