发明名称 一种提供复制特性的分布式NOSQL数据库
摘要 本发明公开了一种提供复制特性的分布式NOSQL数据库。在每台复制组的主机上运行复制系统软件RepDB并与编程开发接口库Rep_client通过环回地址localhost实现进程间通信,RepDB在一个固定的端口上监听,RepDBclient使用TCP协议连接这个端口。RepDB与Rep_client之间有控制和数据两条通信链路。复制组中所有主机中RepDB的配置文件相同。主机间通过心跳报文进行信息传递,心跳信息在接收后立即处理。本机数据库有数据更新时将数据传递给组中的每个主机。在所有RepDB中选举一个协调者。用哈希树实现对各个RepDB的数据之间版本比较。本发明实现了多机间数据的复制与数据的一致性,具有较强的容错性,用于高可靠、高性能的环境中。
申请公布号 CN102012944A 申请公布日期 2011.04.13
申请号 CN201010591236.9 申请日期 2010.12.16
申请人 四川川大智胜软件股份有限公司 发明人 胡术;莫思特;邱敦国;黄戈;李晓峰;刘舒;刘宇
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 成都和睿达专利代理事务所(普通合伙) 51217 代理人 潘育敏
主权项 一种提供复制特性的分布式NOSQL数据库,其特征在于:在每台复制组的主机上运行复制系统软件RepDB ,系统软件RepDB提供编程开发接口库 Rep_client,RepDB与编程开发接口库 Rep_client进程间通信通过环回地址localhost实现,RepDB在一个固定的端口上监听,Rep_client 使用TCP协议连接这个端口;RepDB与编程开发接口库 Rep_client 之间的通信有两条链路,一条是控制链路,另一条是数据链路;数据链路用于数据库的更新或删除操作,控制链路用于RepDB与Rep_client之间的消息传送;RepDB只有在稳定以后才允许Rep_client与它通信,在RepDB准备好以后,给使用服务的客户端进程通过接口Rep_client发送一个REPDB_IS_READY消息,表示Rep_client可以进行更新数据的操作,当本机数据发生改变时,RepDB通知Rep_client提醒进程读取,每个RepDB 客户端都可以更新数据库中的数据;复制组中所有主机使用相同的配置文件,配置文件中指定了包括复制组主机间心跳的时间间隔、版本比较时间、监听端口的心跳信息,心跳信息使用UDP或链路层协议进行传输,每隔一段时间发送一次;主机之间通过心跳报文进行信息传递,心跳信息在接收后立即处理;心跳报文除了在每个时间间隔到达时发送心跳包之外,在本机数据库有数据时,还将数据的相关信息传递给组中的每个主机;在所有RepDB中选举唯一一个协调者master,master在担当的协调者的同时,同样完成普通RepDB能完成的工作;对于各个RepDB的数据之间的版本的比较通过哈希树来实现;哈希树叶子节点的个数预先确定,计算某个叶子节点的hash值由key值计算得到;数据持久存储使用Berkely DB创建的Key‑Value数据库,在存储时,Value使用ver_num + value的方式组成,其中ver_num为版本信息,value为数据的实质部分;在系统启动时,将Berkely DB中的除实质数据外的Key和ver_num全部载入到RepDB进程的内存中,在更新数据的时候既要修改Berkely DB中的数据,也要修改内存中的数据。
地址 610045 四川省成都市武侯科技园武科东一路7号