发明名称 基于时间戳的树型结构数据同步方法
摘要 本发明涉及面向树型结构的数据同步,公开了基于时间戳的树型结构数据同步方法,包括数据中心服务器集群和客户端,数据中心服务器集群包括多个服务器,数据中心服务器集群和客户端采用星型拓扑结构,包括以下具体步骤:客户端向服务器注册、客户端发起同步、服务端响应同步、客户端确认。本发明的优点在于,充分考虑了树形结构数据的结构特征,减少了同步过程中的通讯数据,提高了同步效率,具有较高的应用价值。
申请公布号 CN103297529A 申请公布日期 2013.09.11
申请号 CN201310222898.2 申请日期 2013.06.06
申请人 浙江大学 发明人 尹建伟;严皓亮;李莹;吴健;邓水光;吴朝晖
分类号 H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 杭州裕阳专利事务所(普通合伙) 33221 代理人 应圣义
主权项 1.一种基于时间戳的树型结构数据同步方法,包括数据中心服务器集群和客户端,数据中心服务器集群包括多个服务器,数据中心服务器集群和客户端采用星型拓扑结构,包括以下具体步骤:1)客户端向服务器注册:客户端通过用户名和/或密码的方式向中心服务器注册,所述中心服务器为星形拓扑结构的中央节点,每一个注册的客户端以(user,client)二元组的形式在服务器保存,并通过状态管理服务器对二元组进行管理;2)客户端发起同步:当客户端到达同步时间窗口、客户端数据发生变更或者客户端经过长时间静默后产生突发的数据访问时,客户端将对服务器保存的数据进行同步;3)服务端响应同步:服务器收到客户端的同步请求后,对同步请求进行处理,具体包括以下步骤:3.1)身份验证:身份验证包括用户身份验证和用户权限认证,所述用户身份验证为验证客户端的同步请求是否为合法用户的同步请求,所述用户权限认证为验证同步请求是否在用户的权限范围内,对客户端的身份验证由权限管理器完成;3.2)时间戳检查:通过身份验证后,服务器检查同步时间戳,服务器分别为每个(user,client)二元组保存了一个Last时间戳,Last时间戳用以标识用户和客户端之间最后一次正常完成的同步请求时间;如果同步请求中不包括上一次同步请求的Last时间戳,但服务器存在,则表示上一次同步请求中服务器的反馈信息未得到客户端确认,该上一次同步请求无效,服务器返回错误信息和上一次同步请求的Last时间戳;如果同步请求中包含有上一次同步请求的Last时间戳,则服务器对比服务器上保存的上一次同步请求的Last时间戳与同步请求中包含的上一次同步请求的Last时间戳,若两者一致,则确认完成,否则服务器向客户端返回错误信息;客户端的同步日志管理器通过对同步日志的时序保证,确定在前一次同步请求的操作完成并得到服务器确认后,才进行下一次同步请求;3.3)处理同步请求:服务器检查同步请求中客户端的节点ID与该节点的Last时间戳,如果客户端的节点的Last时间戳与服务器中相应节点的Last时间戳一致,服务器返回数据未改变信息,并附加该次请求的Next时间戳,标识该次同步请求已完成;如果服务器相应节点的Last时间戳晚于客户端的节点的Last时间戳,服务器将此相应节点的节点信息以及该节点的所有子节点的节点信息返回给客户端,并将客户端的节点和服务器中相应节点的状态设置为数据已更改,节点信息包括节点ID、数据和Last时间戳,子节点的节点信息包括节点ID和Last时间戳;服务器发送反馈请求后,将服务端对应的Last时间戳更新为同步请求的Next时间戳,用于下一次同步请求的时间戳检查步骤;4)客户端确认:客户端收到服务器返回信息后,比对返回信息中的Next时间戳和同步请求中的Next时间戳,如果两者一致,表示同步已经完成,更新同步日志中本次同步的状态为已完成,更新同步日志中状态为已完成的上一次同步的状态为已确认;其中,客户端通过以下步骤确定同步时间窗口:2.1)客户端启动时,初始化时间t<sub>0</sub>为当前时刻,将Count与Avg进行初始化为0,将t初始化为预设的初始值,其中,Count表示时间间隔t内客户端对服务器的同步请求的次数,Avg表示客户端对服务器的同步请求的平均次数,t为两个同步时间窗口的间隔时间;2.2)在t<sub>0</sub>至t<sub>0</sub>+t的时间段内,如果客户端发起同步请求,则更新Count和Avg的数值;2.3)根据以下公式计算并重新确定t,确定下一个同步时间窗口:<img file="2013102228982100001DEST_PATH_IMAGE001.GIF" wi="" he="" />,<img file="688178DEST_PATH_IMAGE002.GIF" wi="" he="" />,其中u为预设值,k为常量;2.4)间隔时间t届满时,重复步骤2.1。
地址 310027 浙江省杭州市浙大路38号浙大计算机学院曹光彪东楼505