【技术实现步骤摘要】
一种分布式数据库系统及其单调读的实现方法、装置
[0001]本说明书涉及计算机
,尤其涉及一种分布式数据库系统及其单调读的实现方法、装置。
技术介绍
[0002]数据复制是分布式数据库系统中的一项重要机制,用于将同一数据以副本的形式写到分布式数据库系统中的多个节点中。数据复制可以提高系统的可用性,防止单一节点挂起而导致服务终止。同一数据的多个副本之间,不可避免的存在数据一致性问题,即一个副本的数据更新之后,其他副本必须要保持同步,否则可能导致服务出现问题。
[0003]在相关技术中,通过提出针对分布式数据库系统的一致性模型,规避上述的数据不一致性问题。其中,单调读是一种针对客户端角度定义的一致性模型,该单调读一致性模型约束了客户端每次读到的数据不能比之前读到的数据旧,即客户端读到的数据要越来越新。数据的新旧具体可以通过版本号来判断,因而相关技术中的单调读规则为:由分布式数据库系统中的某一固定节点生成单调递增的版本号,该分布式数据库系统中的每个节点在收到客户端的读请求时,都实时向该固定节点询问并获取最新的版本号, ...
【技术保护点】
【技术特征摘要】
1.一种分布式数据库系统,包括版本服务节点和普通节点,所述版本服务节点和所述普通节点分别维护有同一数据对应的副本,其中:所述版本服务节点用于按照预设周期为所述数据生成单调递增的版本号和所述版本号的完整有效时长,所述完整有效时长不大于所述预设周期的周期时长;所述普通节点用于:在任一周期向所述版本服务节点发送版本号获取请求,以获取所述任一周期内生成的目标版本号和所述目标版本号的剩余有效时长,所述剩余有效时长为所述目标版本号的完整有效时长与该目标版本号在所述版本服务节点上的已生效时长之差;以及,根据所述目标版本号的剩余有效时长,确定所述目标版本号在所述普通节点上的失效时刻,且在确定的失效时刻之前基于所述目标版本号对应的数据响应访问方针对所述数据发起的读请求;其中,所述目标版本号在所述普通节点上的失效时刻不晚于在所述版本服务节点上的失效时刻。2.根据权利要求1所述的系统,所述普通节点在本地关联缓存获取的所有版本号和以及各个版本号在所述普通节点上对应的失效时刻;所述普通节点还用于:接收到访问方针对所述数据发起的读请求后,查询本地缓存的版本号及其在所述普通节点上对应的失效时刻;若本地缓存的任一版本号在所述普通节点上对应的失效时刻尚未到达,则基于所述任一版本号响应接收到的读请求;若本地缓存的所有版本号在所述普通节点上对应的失效时刻均已到达,则向所述版本服务节点临时请求新的版本号,以用于响应接收到的读请求。3.根据权利要求1所述的系统,所述普通节点根据所述目标版本号的剩余有效时长,确定所述目标版本号在所述普通节点上的失效时刻,包括:在所述版本号获取请求的发送时刻的基础上,增加所述目标版本号的剩余有效时长,并将得到的时刻确定为所述目标版本号在所述普通节点上的失效时刻。4.根据权利要求1所述的系统,所述版本服务节点用于通过下述方式生成当前周期的版本号:在上一周期发生数据变更的情况下,所述版本服务节点将最近一次发生数据变更时对应的版本号作为当前周期生成的版本号;或,在上一周期未发生数据变更的情况下,所述版本服务节点将上一周期生成的版本号作为当前周期生成的版本号。5.根据权利要求1所述的系统,在所述版本服务节点由所述分布式数据库系统中的第一节点变更为第二节点的情况下,所述第二节点用于:在所述第一节点生成的所有版本号均已失效后,接替所述第一节点按照所述预设周期为所述数据生成单调递增的版本号和所述版本号的完整有效时长。6.根据权利要求5所述的系统,所述第二节点通过下述任一方式确定所述第一节点生成的所有版本号均已失效:所述第二节点在等待至少一个预设周期的周期时长后,确定所述第一节点生成的所有版本号均已失效;或,在所述第一节点在当前周期内生成的最新版本号尚未过期的情况下,在所述第二节点
针对所述最新版本号的接收时刻的基础上增加所述最新版本号对应的剩余有效时长,并将得到的时刻确定为所述第一节点生成的所有版本号的失效时刻。7.一种基于分布式数据库系统的单调读的实现方法,所述分布式数据库系统包括版本服务节点和普通节点,所述版本服务节点和普通节点分别维护有同一数据对应的副本,应用于所述版本服务节点,所述方法包括:按照预设周期为所述数据生成单调递增的版本号和所述版本号的完整有效时长,所述完整有效时长不大于所述预设周期的周期时长;响应于所述普通节点在任一周期内发送的版本号获取请求,向所述普通节点发送所述任一周期内生成的目标版本号和所述目标版本号的剩余有效时长,以使所述普通节点根据所述目标版本号的剩余有效时长,确定所述目标版本号在所述普通节点上的失效时刻,且在确定的失效时刻之前基于所述目标版本号对应的数据响应访问方针对所述数据发起的读请求;其中,所述目标版本号在所述普通节点上的失效时刻不晚于在所述版本服务节点上的失效时刻,所述剩余有效时长为所述目标版本号的完整有效时长与该目标版本号在所述版本服务节点上的已生效时长之差。8.根据权利要求7所述的方法,所述版本服务节点通过下述方式生成当前周期的版本号:在上一周期发生数据变更的情况下,所述版本服务节点将最近一次发生数据变更时对应的版本号作为当前周期生成的版本号;或,在上一周期未发生数据变更的情况下,所述版本服务节点将上一周期生成的版本号作为当前周期生成的版本号。9.一种基于分布式数据库系统的单调读的实现方法,所述分布式数据库系统包括版本服务节点和普通节点,所述版本服务节点和普通节点分别维护有同一数据对应的副本,且所述版本服务节点维护有按照预设周期为所述数据生成的单调递增的版本号和所述版本号的完整有效时长,所述完整有效时长不大于所述预设周期的周期时长,应用于所述普通节点,所述方...
【专利技术属性】
技术研发人员:王万红,韩富晟,高山岩,肖金亮,
申请(专利权)人:北京奥星贝斯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。