分布式系统中的数据一致性检查技术方案

技术编号:18894591 阅读:38 留言:0更新日期:2018-09-08 11:00
扫描和重新扫描检测存储库中或分布式计算环境的其他组件中的数据实体之间的状态不一致性。首先,实体基于截止时间T0被扫描。不希望进行状态比较的实体被放置在跳过的实体列表中。报告在其他实体中找到的任何不一致性。然后随后重新扫描获取状态,并且尝试削减跳过的实体列表。重新扫描可以被限制。在不需要从更新数据实体状态的服务要求停工时间的情况下,可以检测不一致性,并且可以避免不一致性的错误报告。

Data consistency checking in distributed system

Scanning and rescanning detect state inconsistencies between data entities in the repository or other components of a distributed computing environment. First, entities are scanned based on the deadline T0. Entities that do not want to make state comparisons are placed in skipped entity lists. Report any inconsistencies found in other entities. It then restates the state and tries to reduce the list of skipped entities. Re scanning can be restricted. Inconsistency can be detected without requiring downtime from the service that updates the state of the data entity, and error reporting of inconsistency can be avoided.

【技术实现步骤摘要】
分布式系统中的数据一致性检查
技术介绍
在云计算环境或其他分布式系统中,数据可以跨越不同的存储库散布。然而,对健康系统或其他约束的追求可以支持或需要不同存储库中的数据彼此一致。这可以是具有挑战性的。
技术实现思路
本文描述的一些技术涉及验证跨越数据存储库的数据一致性的技术活动。一些技术具体地涉及跨越数据存储库验证数据一致性,同时在数据一致性检查期间减少或避免服务停工时间。一些技术具体涉及跨越数据存储库验证数据一致性,同时在数据更新时减少或避免不一致的假警报。与本文的教导相关的其他技术活动对于本领域技术人员也将是显而易见的。所给出的实施例仅仅是示例性的。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。相反,本
技术实现思路
被提供来以简化的形式介绍在下面的具体实施方式中进一步描述的一些技术概念。该创新由权利要求限定,并且在本
技术实现思路
与权利要求冲突的情况下,应当以权利要求为准。附图说明将参考附图给出更具体的描述。这些附图仅图示所选择的方面,并且因此不完全确定覆盖或范围。图1是图示分布式环境中的计算机系统的框图,计算机系统具有在软件的控制下彼此交互的至少一个处理器和至少一个存储器,并且还图示了一些配置的存储介质示例;图2是图示一致性检查系统的方面的框图;图3是图示一致性检查算法的流程图;图4是图示数据实体的方面的框图;图5是图示了一些处理和配置的存储介质示例的方面的流程图;图6是图示一些一致性检查软件的方面的框图;以及图7至图9是图示一些一致性检查过程分析的方面的时间线图。具体实施方式概述分布式软件系统可以包括由相应的服务连接的多个数据存储库。由给定的服务维护或更新的存储库中的数据可以在服务启动和运行时,间歇地或间隔地保持更新。不同存储库中的数据可能需要彼此一致,以满足健康、操作的、相互作用的或其他约束。在某些情况下,诸如在恢复之后,服务管理员可能希望或需要验证跨越数据存储库的数据一致性。所呈现的问题可以包括如何避免在数据一致性检查期间的服务停工时间,以及如何避免需要报告的假警报或者否则如果在数据更新时出现则需要处理的假警报。一种常见的方法是在数据一致性检查期间使服务离线。这种方法可以避免假警报,因为将被检查的数据在检查期间不会被修改。缺点是该方法增加了服务停工时间。数据量越大,停工时间就越长。如果数据量很大,停工时间可能相当长,甚至达到违反服务水平协议的点。另一种常见的方法是将所有数据存储库放置在单个数据存储装置上。该方法可以保证所有数据可以备份到单个时间点,因此其避免了以后还原中的一致性问题。但是其牺牲了系统可扩展性,并且对于分布式系统可能是不可接受的。本文所描述的一些实施例可以在更广泛的上下文中来看。例如,诸如可用性、比较、一致性和存在的概念可以与特定的实施例相关。然而,它不由广泛的上下文的可用性推断,其中在本文中排他性的权利正在被寻找用于抽象的想法;它们不是。相反,本公开集中于提供适当的特定的实施例,其技术效果完全地或部分地解决特定的技术问题。涉及可用性、比较,一致性或存在的其他介质、系统和方法在本范围之外。因此,在适当地理解本公开的情况下,也避免了模糊性、纯粹的抽象性、缺乏技术特性和伴随的证明问题。本文描述的实施例的技术特征对于本领域的普通技术人员将是明显的,并且以几种方式对于大范围的注意的读者也将是明显的。例如,一些实施例解决基于分布式系统计算技术的技术活动,诸如,跨越分布式存储库的数据一致性,以及减少或避免分布式计算系统中的服务停工时间。此外,本领域技术人员将认识到,本文描述的一致性检查不能智力地或通过铅笔和纸执行,而必须改为利用由以计算速度操作的处理器硬件执行的软件来使用存储在数字存储设备中的数字数据来执行比较和计算。此外,由一些实施例提供的技术效果包括在没有不必要的假阳性报告的情况下、并且在没有先前方法的单个数据存储和数据大小成比例的停工时间限制的情况下,数据不一致性的有效检查。从所提供的描述,其他优点和技术特征对于本领域技术人员也是显而易见的。缩略词和缩写词一些缩略词和缩写词定义如下。其他缩略词和缩写词可以在本文别处定义或者不需要定义来使技术人员理解。ALU:算术和逻辑单元API:应用程序接口APP:应用CD:压缩光盘CPU:中央处理单元DVD:数字通用光盘或数字视频盘FPGA:现场可编程门阵列FPU:浮点处理单元GPU:图形处理单元GUI:图形用户界面IDE:集成开发环境,有时也称为“交互式开发环境”MPI:消息传递接口OS:操作系统RAID:廉价磁盘的冗余阵列,或独立磁盘的冗余阵列RAM:随机存取存储器ROM:只读存储器附加术语本文参考诸如附图中所示的示例性实施例,以及在本文中使用特定语言来描述它们。但是在本文中所示的特征的变化和进一步修改,以及由本文中的特定的实施例所示出的抽象原理的附加技术应用(其可以被相关领域的并且拥有本公开的技术人员想到)应当被认为在权利要求的范围内。在本公开中阐明了术语的含义,因此应当仔细地注意这些说明来阅读权利要求。给出了具体的示例,但是相关领域的技术人员将理解,其他示例也可以落入所使用的术语的含义内、并且在一个或多个权利要求的范围内。在这里,术语不一定具有它们在一般使用中(特别是在非技术使用中)、或在特定行业的使用中、或在特定字典或字典集合中具有的相同的含义。附图标记可以与各种短语一起使用,以帮助示出术语的宽度。从给定的文本段省略附图标记不一定意味着文本不讨论附图的内容。专利技术人维护并行使他们自己的词典学的权利。引用的术语是明确定义的,但是术语也可以隐含地定义而不使用引号。这里,术语可以明确地或隐含地在详细的描述中和/或在应用文件的其他地方被定义。如本文所使用的,“计算机系统”可以包括例如一个或多个服务器、主板、处理节点、个人计算机(便携式或非便携式)、个人数字助理、智能手机、智能手表、智能带、蜂窝或移动电话、具有至少一个处理器和存储器的其他移动设备、和/或提供至少部分地由指令控制的一个或多个处理器的其他设备。指令可以是存储器和/或专用电路中的固件或其他软件的形式。具体地,尽管可能发生许多实施例在服务器计算机上运行,但是其他实施例可以在其他计算设备上运行,并且任何一个或多个这样的设备可以是给定实施例的一部分。“多线程”计算机系统是支持多个执行线程的计算机系统。术语“线程”应当被理解为包括能够或者服从调度(并且可能到同步)的任何代码,并且还可以被称为诸如“任务”、“进程”或“协同程序”之类的另一个名称。线程可以并行地运行、顺序地运行或以并行执行(例如,多处理)和顺序执行(例如,时间分片)的组合来运行。多线程环境已经在各种配置中被设计。执行线程可以并行地运行,或者线程可以被组织用于并行执行,但实际上依次顺序执行。多线程可以例如通过在多处理环境中的不同核上运行不同的线程来实现、通过在单个处理器核上对不同线程进行时间分片来实现、或者通过时间分片和多处理器线程的某种组合来实现。线程上下文切换可以例如由内核的线程调度器、用户空间信号或用户空间和内核操作的组合来发起。例如,线程可以轮流对共享数据操作,或者每个线程可以对其自身的数据操作。“逻辑处理器”或“处理器”是单个独立的硬件线程处理单元(诸如,同时多线程实现中的核)。作为本文档来自技高网...

【技术保护点】
1.一种用于检测数据不一致性的计算技术方法,所述方法包括:选择截止时间值T0;扫描相应组件中的数据实体,所述数据实体具有包括状态的数据部分;将存在于两个组件中但在T0之后在一个或两个组件中被修改的任何扫描到的数据实体放入跳过列表中;将存在于所述组件中的仅一个组件中的任何扫描到的数据实体放入所述跳过列表中;比较不处于所述跳过列表中的数据实体的数据部分,并且如果任何经比较的实体在其数据部分中不同,则触发不一致性警报;以及执行一个或多个重新扫描阶段以尝试对处于所述跳过列表中的数据实体的状态的比较。

【技术特征摘要】
1.一种用于检测数据不一致性的计算技术方法,所述方法包括:选择截止时间值T0;扫描相应组件中的数据实体,所述数据实体具有包括状态的数据部分;将存在于两个组件中但在T0之后在一个或两个组件中被修改的任何扫描到的数据实体放入跳过列表中;将存在于所述组件中的仅一个组件中的任何扫描到的数据实体放入所述跳过列表中;比较不处于所述跳过列表中的数据实体的数据部分,并且如果任何经比较的实体在其数据部分中不同,则触发不一致性警报;以及执行一个或多个重新扫描阶段以尝试对处于所述跳过列表中的数据实体的状态的比较。2.根据权利要求1所述的方法,其中所述组件在此被指定为组件A和组件B,其中所述一个或多个重新扫描阶段中的每一个重新扫描阶段以交织顺序从所述组件两次获取数据实体的近期的状态,即,从组件A获取、然后从组件B获取、然后从组件A获取、并且然后从组件B获取,其中对于因为实体存在于两个组件中但在截止时间之后在一个或两个组件中被修改而使所述实体被放入所述跳过列表中的情况,如果所述实体状态在所述获取期间在至少一个组件中未改变,则针对不一致性比较所述实体状态,否则将所述实体留在所述跳过列表中,并且其中对于因为实体仅存在于所述组件的一个组件中而使所述实体被放入所述跳过列表中的情况,如果所述实体状态在所述获取期间在任一组件中均未变化,则针对不一致性比较所述实体状态,否则所述实体被留在所述跳过列表中。3.根据权利要求2所述的方法,其中所述重新扫描阶段由执行时间上限、执行多少重新扫描轮次的上限或两者所限制。4.根据权利要求1所述的方法,其中所述方法被执行而不需要来自更新所述数据实体的任何服务的停工时间。5.根据权利要求1所述的方法,其中所述方法避免假警报,因为仅实际数据的不一致性触发所...

【专利技术属性】
技术研发人员:刘小田肖维梁晟陈春风李展张帆
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1