发明名称 Geo-verification and repair
摘要 Presented herein are methods of continuously verifying data and repairing errors introduced during replication. In a particular embodiment, a primary data store sends out information sufficient to create a checkpoint together with a checksum for the data being verified at that checkpoint. At the secondary data store, a checkpoint is created in accordance with the checkpointing information, and a checksum is calculated over the indicated data at the created checkpoint. If the calculated checksum disagrees with the received checksum, additional checksums are calculated over subranges of the indicated data and compared with corresponding checksums over the data at the primary data store. The checksums at the primary data store may be requested from the primary data store or calculated locally based on the received overall checksum. Once an erroneous entry is identified, it can then be re-replicated from the primary data store to restore data consistency.
申请公布号 US8762336(B2) 申请公布日期 2014.06.24
申请号 US201113113634 申请日期 2011.05.23
申请人 Microsoft Corporation 发明人 Calder Bradley Gene;Nilakantan Niranjan;Srivastav Shashwat;Wu Jiesheng;Abbasi Abdul Rafay;Mainali Shane;Uddaraju Padmanabha Chakravarthy
分类号 G06F7/00;G06F17/00 主分类号 G06F7/00
代理机构 代理人 Tabor Ben;Andrews David;Minhas Micky
主权项 1. One or more computer storage memories having computer-executable instructions embodied thereon that, when executed, cause a computing device to perform a method of ensuring consistency across a replicated data storage system, the method comprising: receiving, at a secondary data store, a message from a primary data store, said message comprising an identifier for a previous checkpoint, current checkpointing information, and an incremental difference checksum; creating a current local checkpoint in accordance with the current checkpointing information; using said previous checkpoint identifier to load a previous local checkpoint; obtaining an incremental difference set between said previous local checkpoint and said current local checkpoint; calculating a local incremental difference checksum over said incremental difference set; comparing said local incremental difference checksum to the received incremental difference checksum to determine if a discrepancy has been introduced between data stored at the primary data store and data stored at the secondary data store; and determining that said discrepancy exists based on said comparison by: calculating intermediate checkpointing information, said intermediate checkpointing information useable to create a local intermediate checkpoint, said local intermediate checkpoint representing a state of the secondary data store chronologically between said previous local checkpoint and said current local checkpoint;sending the intermediate checkpointing information to said primary data store;receiving, from said primary data store, a second incremental difference checksum;creating said local intermediate checkpoint using said intermediate checkpointing information;calculating a second local incremental difference checksum corresponding to said second received incremental difference checksum;comparing said second local incremental difference checksum to said second received incremental difference checksum to determine whether said discrepancy was introduced before said intermediate checkpoint; andrepeating the steps of calculating intermediate checkpointing information, sending, receiving, creating, calculating, and comparing to further narrow a range of time during which said discrepancy was introduced until said range satisfies a predetermined criterion.
地址 Redmond WA US