kumofsはなぜスケールするか - 古橋貞之の日記(情報元のブックマーク数)

kumofsのわかりやすい技術説明。

kumofsは、サーバを追加するとほぼ線形に性能が向上していきます。今のところ、60台まではスムーズに性能が向上していくことを確認しています(これ以上は試したことがありません^^;)。
このスケーラビリティを得るためにkumofsでは、データを保存する担当のサーバを決める方法に、ハッシュ関数を使っています。データを保存したり取り出したりするときには、キーにハッシュ関数を適用して得られた値から、どのサーバが担当するかを計算します。

kumofsはなぜスケールするか - Blog by Sadayuki Furuhashi

スケールアウトに必須なライブで増設交換。

kumofsは、システムを動かしたままサーバを追加することができます。サーバを追加すると自動的にデータが再分配されるので、新しいサーバを接続したら、すぐに性能を向上させることができます。
これを実現するために、double-hash-space と命名したアルゴリズムを実装しています。新しいサーバを追加してデータを再分配している最中でも、読み書きを正常通りに行えるようにする仕組みです。

kumofsはなぜスケールするか - Blog by Sadayuki Furuhashi

追加はアプリ再起動不要。ところで、縮小対応というのはどうなるんだろ・・・

kumofsは、サーバを追加しても、追加している作業中でも、kumofsを利用しているアプリケーションには一切影響しないように設計しています。アプリケーションを再起動したり再設定することなく、いつでもサーバを追加できます。

kumofsはなぜスケールするか - Blog by Sadayuki Furuhashi

screenshot