云计算AWS之Dynamo成员资格及错误检测 - 新闻中心 - 福州哈唐网络-福建IDC企业!专注云主机及服务器租用托管13年!

新闻中心

首页 > 新闻中心 > 行业新闻 >

云计算AWS之Dynamo成员资格及错误检测

时间:2017-01-05 10:36:44   阅读:

  Dynamo中的每个节点就是Dynamo的一个成员,Amazon为了使系统间数据的转发更加迅速(减少数据传送时延、增加响应速度),规定每个成员节点都要保存其他节点的路由信息。由于机器或人为的因素,系统中成员的加入或撤离时常发生,为了保证每个节点保存的都是Dynamo中最新的成员信息,所有节点每隔固定时间(1秒)利用—种类似于Gossip (闲聊)协议的方式从其他节点中任意选择一个与之通信的节点。如果连接成功,双方交换各自保存的信息(包括存储数据情况、路由信息)。为了避免新加入的节点之间不能及时发现对方的存在,Dynamo中设置了一些种子节点(Seed Node)。种子节点 所有的节点都有联系,当新节点加入时,它扮演一个中介的角色,使新加入节点之间互相感知,这种基于Gossip协议的成员资格检测机制如图3-9所示。
 
\
 
  在节点之间交换信息的过程中,如果节点失效,则会产生无效的传送信息,加重系统的传输负担,因此引入错误检测机制是很有必要的。Dynamo采用的错误检测机制非常简单、实用。一旦发现对方没有回应,就认为该节点失效,立刻选择别的节点进行通信。同时定期向失效节点发出消息,如果对方有回应则可以重新建立通信。假如一新节点加入节点总数为N的系统,并以最优的方式进行传播(即每次通信的两个节点都是第一次交换新节点信息),那么将新节点信息传遍整个系统需要的时间复杂度为logn,如图3-10所示。每一层代表一次随机通信,第一层节点1将信息交换给节点2;第二层节点1和2同时开始随机选择其他节点交换信息,比如节点1向节点3发送信息,节点2向节点4发送信息;依此类推直到全部W个节点全部传遍,整个过程形成一个倒的二叉树,树高为logn。很明显当N很大时,时间复杂度会变得很大,所以Dynamo的节点数不能太多。根据Amazon的实际经验,当节点数在数千时,Dynamo的效率是非常高的,但当节点数增加到数万后,效率就会急剧下降。如何解决这个问题呢,Amazon给出了分层Dynamo结构,有兴趣的读者可以进一步关注我们的内容。
 
\


闽公网安备 35010002000114号