The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Feb. 21, 2023
Filed:
Feb. 12, 2019
Microsoft Technology Licensing, Llc, Redmond, WA (US);
Bradley Gene Calder, Bellevue, WA (US);
Niranjan Nilakantan, Redmond, WA (US);
Shashwat Srivastav, Seattle, WA (US);
Jiesheng Wu, Redmond, WA (US);
Abdul Rafay Abbasi, Redmond, WA (US);
Shane Mainali, Duvall, WA (US);
Padmanabha Chakravarthy Uddaraju, Bellevue, WA (US);
Ju Wang, Redmond, WA (US);
Hemal Khatri, Redmond, WA (US);
Arild Skjolsvold, Kenmore, WA (US);
Harshawardhan Gadgil, Redmond, WA (US);
MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US);
Abstract
Presented herein are methods of replicating versioned and hierarchical data structures, as well as data structures representing complex transactions. Due to interdependencies between data entities and a lack of guaranteed message ordering, simple replication methods employed for simple data types cannot be used. Operations on data structures exhibit dependencies between the messages making up the operations. This strategy can be extended to various types of complex transactions by considering certain messages to depend on other messages or on the existence of other entries at the data store. Regardless of origin, these dependencies can be enforced by suspending the processing of messages with unsatisfied dependencies until all of its dependencies have been met. Alternately, transactions can be committed immediately, creating entities that include versioned identifiers for each of their dependencies. These entities can then be garbage collected of the parent objects are not subsequently created.