发明名称 一种用于多副本分布式系统的计算机数据读写方法
摘要 本发明涉及一种用于多副本分布式系统的计算机数据读写方法,属于计算机网络技术和计算机数据存储技术领域。在本发明方法中,用户针对分布式系统的读写过程采用时间信息与数据信息相分离的方式,首先向分布式系统发送或读取时间戳信息,根据时间戳信息,分布式系统确定接受到的数据的最新状态,以此来保证每份数据的多个副本间的数据一致性,之后用户再与分布式系统进行数据交互。本发明方法步骤简单实用,易于实施。
申请公布号 CN103530362B 申请公布日期 2017.01.04
申请号 CN201310475697.3 申请日期 2013.10.12
申请人 清华大学 发明人 汪东升;王占业;鞠大鹏
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 一种用于多副本分布式系统的计算机数据读写方法,多副本分布式系统内的每份数据有N个副本,N为奇数,定义N个副本中的任意一个副本为主副本,主副本用于接受计算机用户的写请求,N份副本用于接受读请求,其特征在于该方法中的数据写操作包括以下步骤:(1)计算机用户向多副本分布式系统发起一个写请求,写请求数据的标识记为K,并将写请求发送至标识为K的数据的主副本所在计算机节点;(2)主副本所在计算机节点接收到写请求后,调用多副本分布式系统的接口,该接口利用网络时间协议,从本计算机节点中读取当前时间,记为操作时间戳ts,并将操作时间戳ts与标识K发送给标识为K的数据的其余N‐1份副本所在的计算机节点,N‐1份副本所在的计算机节点接收到操作时间戳ts与标识K后,向主副本所在计算机节点发出接收确认;(3)主副本所在计算机节点接收到(N‐1)/2份接收确认后,将标识为K的数据写入成功的信息通知计算机用户;(4)主副本所在计算机节点生成一个与操作时间戳ts数值相同的数据时间戳ts_data,调用多副本分布式系统的接口,向其余N‐1份副本所在的计算机节点发送标识K、数据时间戳ts_data以及请求写入的标识为K的数据;(5)除主副本外其余N‐1份副本所在计算机节点接收到主副本所在计算机节点发出的标识K、数据时间戳ts_data以及请求写入的标识为K的数据,写操作结束;数据读操作包括以下步骤:(6)计算机用户向多副本分布式系统发起一个读请求,读请求数据的标识记为J,计算机用户调用多副本分布式系统的接口,向标识为J的数据的所有N份副本所在计算机节点发送一个读取请求,并等待N份副本所在计算机节点的接收确认;(7)标识为J的数据的副本所在计算机节点接收到计算机用户的上述读请求后,从本计算机节点内检索标识为J的数据的操作时间戳ts和数据时间戳ts_data,若操作时间戳ts与数据时间戳ts_data同时被检索出,则向计算机用户发送操作时间戳ts作为确认信息,若操作时间戳ts与数据时间戳ts_data中的任意一个未被检索出,则向计算机用户发送一个字符串“Null”作为确认信息;(8)计算机用户接收到(N+1)/2份标识为J的数据的副本所在计算机节点发送的确认信息后,根据确认信息进行如下动作:若接收到的(N+1)/2份确认信息全部为“Null”字符串,则调用多副本分布式系统的接口,从标识为J的数据的主副本所在计算机节点读取数据标识为J的数据的副本,若接收到的(N+1)/2份确认信息中,有一个或一个以上为操作时间戳ts,则计算机用户从所有操作时间戳ts中选出最新的操作时间戳ts,并调用多副本分布式系统的接口,从发送最新操作时间戳ts的计算机节点读取数据标识为J的数据的副本;(9)计算机用户接收标识为J的数据的副本,读操作结束。
地址 100084 北京市海淀区清华园1号