一种强一致性的分布式键值数据库系统及其读写方法技术方案

技术编号:9087015 阅读:138 留言:0更新日期:2013-08-28 23:35
本发明专利技术公开了一种分布式键值数据库系统,包括客户端和数据服务器集群,客户端包括哈希模块、定位模块和转发模块,数据服务器集群包括多个数据区间,每个数据区间包括一个主节点和多个从节点,主节点包括第一读模块、写模块、第一恢复模块、第一日志模块、第一决议模块和第一存储引擎模块,哈希模块用于接收从客户发来的写请求,并根据写请求的键将该写请求定位到数据区间,每个写请求都具有一个系统自动分配的编号,定位模块用于将写请求定位到数据区间的主节点,转发模块用于将写请求发送到主节点的写模块。本发明专利技术实现了在较小的开销的情况下,提供数据副本之间的强一致性。

【技术实现步骤摘要】

【技术保护点】
一种强一致性的分布式键值数据库系统,包括客户端和数据服务器集群,客户端包括哈希模块、定位模块和转发模块,数据服务器集群包括多个数据区间,每个数据区间包括一个主节点和多个从节点,主节点包括第一读模块、写模块、第一恢复模块、第一日志模块、第一决议模块、第一存储引擎模块,从节点包括第二读模块、第二决议模块、第二日志模块、第二恢复模块、第二存储引擎模块,其特征在于,哈希模块用于接收从客户发来的写请求,并根据写请求的键将该写请求定位到数据区间,每个写请求都具有一个系统自动分配的编号;定位模块用于将写请求定位到数据区间的主节点;转发模块用于将写请求发送到主节点的写模块;主节点的写模块用于将写请求发送到第一日志模块和第一决议模块;第一日志模块用于将写请求写入日志;第一决议模块用于将写请求发送到多个从节点的第二决议模块;从节点的第二决议模块用于将写请求发送到第二日志模块,并将应答信息发送到主节点的第一决议模块;第二日志模块用于将写请求写入日志;第一决议模块还用于统计来自从节点的第二决议模块的应答信息的数量,并判断其是否大于从节点数量的一半,如果大于则表示该写请求可以被继续执行,将写请求写入主节点的第一存储引擎模块,否则过程结束;第一决议模块还用于定时将提交信息发送到从节点的第二决议模块;第二决议模块还用于根据接收到的提交信息将写请求写入第二存储引擎模块;哈希模块还用于接收从客户发来的读请求,并根据读请求的键值将该读请求定位到相应的数据区间;定位模块还用于判断读请求是否需要读取最新的数据,若是则将该读请求定位到数据区间的主节点,否则将该读请求定位到数据空间的主节点或任意从节点;转发模块还用于将读请求发送到定位模块所定位到的主节点的第一读模块或者从节点的第二读模块;第一读模块用于从转发模块接收读请求,并从第一存储引擎模块中读取所需数据,并将数据返回给客户端;第二读模块用于从转发模块接收读请求,并从第二存储引擎模块中读取所需数据,并将数据返回给客户端。...

【技术特征摘要】

【专利技术属性】
技术研发人员:冯丹党永兴谭支鹏孙建良徐鹏刘景宁
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1