发明名称 Dispatching conflicting data changes
摘要 A method for distributing one or more conflicting data changes. The method includes extracting data changes from the source site log, and applying the data changes to the destination site. The method then includes identifying one or more constraints for each data change and generating a hash value for each identified constraint. The method then dispatches the data changes into a plurality of streams based on the hash values. The hash values are used to identify conflicting data changes and determine how the data changes should be sent through the plurality of streams such that data changes are applied in parallel in the plurality of streams without violating any causal consistency constraints. The method then includes committing data changes in the plurality of streams to the destination site in a single transaction, creating a consistent transactional view.
申请公布号 US8756192(B2) 申请公布日期 2014.06.17
申请号 US201012683440 申请日期 2010.01.07
申请人 Microsoft Corporation 发明人 Wang Rui;Habben Michael;Guo Qun;Oks Artem
分类号 G06F17/30 主分类号 G06F17/30
代理机构 代理人 Chen Nicholas;Drakos Kate;Minhas Micky
主权项 1. A method for distributing one or more replication commands, comprising: (a) receiving a log from a source database, wherein the log comprises the replication commands to be applied at a destination database; (b) generating a hash value for a constraint of one of the replication commands; (c) determining whether the hash value exists in a hash table of constraints of replication commands previously dispatched but not yet committed, the hash table storing hash values of constraints of replication commands and associated stream identifiers identifying which of a plurality of streams the associated replication command was transmitted; (d) when the generated hash value exists in the hash table, based on the associated stream identifier associated with the hash value previously stored in the hash table, dispatching the one of the replication commands into a same stream of the plurality of streams as the previously dispatched replication command, wherein the plurality of streams connects the source database to the destination database; and (e) when the generated hash value does not exist in the hash table, dispatching the one of the replication commands into one of the plurality of streams and storing the generated hash value in the hash table along with a stream identifier identifying the one of plurality of streams,wherein generating the hash value comprises: identifying the constraint for the one of the replication commands; identifying a constraint ID for the constraint; generating a constraint value for the constraint ID using a hash algorithm; concatenating the constraint value and the constraint ID into a binary string; and associating the binary string with the one of the replication commands.
地址 Redmond WA US