发明名称 一种分布式数据同步系统及方法
摘要 本发明涉及一种分布式数据同步系统及方法,包括通过网络连接的多个节点,其中每个节点均包括数据库、节点状态表以及数据同步模块,数据同步模块具体包括:节点上线初始化模块、节点状态维护模块、节点类型选择模块、同步请求生成模块、同步请求发送模块、串行化调度模块、决策调控模块、同步更新接收模块、同步更新重发模块、同步更新执行模块。本发明还提供了利用所述系统实现数据同步的方法。本发明提出的分布式数据同步系统及方法在无中心节点的网络环境中,可以实现实时、并发操作的分布式数据同步,保证在任意节点可以随时上线或下线的情况下,网络中每个节点数据库中的数据实时一致。
申请公布号 CN102088489B 申请公布日期 2013.05.22
申请号 CN201010624118.3 申请日期 2010.12.31
申请人 北京理工大学 发明人 李侃;包成刚
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 代理人
主权项 一种分布式数据同步系统,其特征在于,包括通过网络连接的多个节点,其中每个节点均包括数据库、节点状态表以及数据同步模块,其中节点状态表包括网络中每个节点的IP地址、最高版本号和节点类型,最高版本号在节点第一次上线时设置为0,每执行一次对数据库的修改操作最高版本号加1,节点类型分为决策节点、备份节点和普通节点;网络中每个节点包括的数据库均拥有相同的数据库名、数据表名和数据表结构;数据同步模块具体包括:节点上线初始化模块:负责在节点新上线时通过节点类型选择模块,确定新上线节点类型,然后向网络中其他节点发送上线消息,上线消息包括本节点的IP地址、最高版本号和节点类型;在节点状态表中增加本节点信息;节点状态维护模块:负责接收网络中其它节点的上线消息,修改节点状态表,并每隔一定时间在网络中广播本节点的IP地址、最高版本号和节点类型;节点类型选择模块:根据设置的节点类型选择策略确定本节点的节点类型,所述节点类型选择策略为:当网络中有新上线节点时,新上线节点首先接收获得其他节点的状态信息,修改本地节点状态表;当节点状态表中没有发现决策节点时即表示只有自身节点在线,则将本节点定义为决策节点;当节点状态表中只存在决策节点时,则将本节点定义为备份节点;当节点状态表中已经存在决策节点和备份节点时,则将本节点定义为普通节点;当网络中已有决策节点以及备份节点和其他普通节点的环境下:当决策节点下线,备份节点自动升级成决策节点,其他在线节点在本地节点状态表中删除已下线的决策节点信息,并广播当前本节点状态;当决策节点在线,备份节点下线时,选择IP地址中最大的节点作为新的备份节点,各在线节点在本地节点状态表中删除已下线的备份节点信息,并广播当前本节点状态;当决策节点和备份节点同时下线时,选择在线节点中IP地址最大的节点为当前的决策节点,选择在线节点中IP地址次大的节点为备份节点,各在线节点在本地节点状态表中删除已下线的决策节点和备份节点信息,并广播当前本节点状态;当普通节点下线时,不发生决策节点、备份节点的变更,各在线节点在本地节点状态表中删除已下线普通节点的信息,并广播当前本节点状态;同步请求生成模块:在本节点有数据同步请求时,生成数据同步操作序列;同步请求发送模块:负责向网络中其他在线节点发送本节点的数据同步操 作序列;串行化调度模块:负责接收网络中所有节点的数据同步操作序列,并将这些操作序列串行化,形成串行化操作序列,序列中每个操作均对应一个版本号;决策调控模块:如果是决策节点,则在有新上线节点且其最高版本号与决策节点不一致时,向该节点发送使其最高版本号与决策节点一致的串行化操作序列;在网络中有数据同步请求时,将决策节点最高版本号之后的串行化操作序列发送给网络中其他节点;同步更新接收模块:接收从决策节点发送来的串行化操作序列;同步更新重发模块:负责向决策节点发送重发串行化操作序列的请求,决策节点也使用该模块接收其他节点发送的重发串行化操作序列的请求;同步更新执行模块:网络中的节点根据接收的决策节点发送来的串行化操作序列执行本地数据库操作,并更新最高版本号以及本地的串行化操作序列。
地址 100081 北京市海淀区中关村南大街5号