Distributed components in computing clusters
AssigneeMicrosoft Corporation
InventorsPhilip A. Bernstein, Sergey I. Bykov, Jose Manuel Faleiro, Gabriel Kliot, Muntasir Raihan Rahman
Life of this patent
Estimating the term…
Abstract
The subject disclosure is directed towards components in different server clusters, e.g., comprising software components such as components of a distributed computing system. Components are available for use by distributed computing system applications, yet managed by the distributed computing system runtime such that only a single instance can be activated and exist within communicating (non-partitioned) clusters. Also described is recovery from a situation in which no longer partitioned clusters each have created the same component.
Claims20
A method in a geographically-distributed computing environment comprising, providing a single-instance component in a multi-cluster distributed system, in which the component is always addressable by applications via an identity of the component, the component addressable for applications including when clusters are partitioned from one another.
A system comprising, a distributed computing system including a plurality of clusters, each cluster having a runtime executing in at least one server memory on at least one processor, the runtime configured to prevent race conditions in which two or more clusters are concurrently attempting to activate a component, and the runtime further configured to allow duplicate components to exist when clusters are partitioned, including to associate state data with each possible duplicate indicating the possibly duplicate state, and to evaluate the state data when clusters are no longer partitioned to remove any duplicate component to have only one component survive for any duplicate that existed.
One or more machine-readable storage media having machine-readable instructions, which when executed perform operations, comprising, attempting, in an attempting cluster, to determine if a component is already activated in any other cluster with which the attempting cluster can communicate, and if so, using the already-activated component, and if not already activated, determining whether a partition exists between at least two clusters, and if a partition exists, activating the component and associating the component with state data indicating that the activated component is a possible duplicate.
Dependencies are inferred from the claim text.