Skip Graph + Bucket で Mio の速度が向上した

初代 Mio(純粋なSkip Graphのみ) は複数物理ノードで起動した場合に物理ノード間の通信がボトルネックで単体起動と比べて速度が著しく遅かった。
この問題は Erlang 分散勉強会で @takemaru_jp に教えてもらった Skip Graph + Bucket でローカリティを上げるアルゴリズムの実装で解決された。速い。速い。アルゴリズムの解読と実装に苦労したがこの速さに報われる。
Bucket の内部実装を ETS にしたのでその恩恵も受けらたのが予期しなかった副作用。


Erlang は単一代入と gen_server の構造上、ストレージを Pure Erlang で書くのは、ほぼありえないということが今回学習した事。
gb_trees とかありえない。おとなしく ETS か Mneisia を使うべき。