用于实现分布式消息传递算法的编程语言

use*_*855 6 java erlang scala consistent-hashing paxos

基本上,我想实现以下算法并分析使用这些算法构建的系统在不同条件下的行为.

  • 八卦协议
  • 多个paxos
  • 一致的散列

我的兴趣在于这些算法.我基本上正在寻找一种编程语言,可以让我快速编写这些算法并深入理解这些算法.

我应该选择哪种语言?Java,Scala,Erlang或其他任何东西.

目前,我了解Java和C++.

aru*_*esh 8

您可以尝试在Erlang中实现协议.

  • 流程通信非常优雅地融入了语言和VM.两个elrang进程之间的异步消息传递,无论是在同一个VM中还是在语义上等效的VM之间.
  • 在erlang中,编写算法的容错方面/重试逻辑等是轻而易举的.将所有内容封装到轻量级进程中,并使用称为管理程序的特殊进程重新启动它们.
  • 序列化Erlang对象非常简单.您不必显式编码序列化逻辑(例如在Java中实现Serializable).
  • Erlang发行版附带了一个名为rpc的模块,它允许您调用远程VM上的功能.
  • Elrang贝壳是真正的神派.您可以将shell附加到任何远程VM.shell允许您分析内部表/数据结构.VM还具有极其复杂的调试和跟踪功能,可通过shell使用.
  • 你可以看看Riak,这是一个用Amazon的Dynamo模拟的Erlang编写的开源 NoSQL数据存储.它实现了Consistent Hashing和Gossip协议.