自作 memcached-client に必要だったので、ConsistentHashing - コンシステント・ハッシュ法 の解説を参考に Erlang で Consisten Hashing を実装した。 環状の配置は ETS の orderd_set を利用している。 レプリカを挿入しているところと get_node で next, first を使っているあたりが肝。 -module(chash). %% API -export([new/1, delete/1, add_node/3, remove_node/2, get_node/2]). -define(NUMBER_OF_REPLICAS, 100). %%==================================================================== %% API %%======