Riak はクラスタ全体で共有するデータ、例えばメンバーシップ管理やバケットプロパティの通信にゴシッププロトコルを使います。ゴシッププロトコルはノード障害やネットワーク障害が発生した場合でも安定して動作するという利点を持っています。しかし、冗長性の裏返しとして、不要なメッセージ通信が多数発生する欠点があります。例えば、数千のバケットに対してカスタムのプロパティが設定されるとメッセージのサイズが大きくなり、通信コストが無視できなくなります。 そこで Riak 2.0 では新しい通信プロトコルとして、主にツリー状の経路のみを使って通信する機能が追加されます。各ノードがツリーのリンクに従って通信することで、クラスタが安定している場合には冗長なメッセージを極力減らすことができます。そして障害時に備えて冗長な経路も持っておくという2段構えの構造をしています。 この機能は次の Plumtree の論文