Automatic cross-data center rotation of active processes

US10127078B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10127078-B2
Application numberUS-201615362613-A
CountryUS
Kind codeB2
Filing dateNov 28, 2016
Priority dateNov 28, 2016
Publication dateNov 13, 2018
Grant dateNov 13, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for rotating leadership among processes in multiple data centers are provided. A first process of a program in a first data center determines whether the first process is a leader process among multiple processes of the program. Each process of the multiple processes executes in a different data center of the multiple data centers. In response to determining that the first process is the leader process, the first process performs a particular task. After performing the particular task, the first process causes leadership data to be updated to indicate that the first process is no longer the leader process. After the leadership data is updated, a second process (of the multiple processes) in a second data center determines whether the second process is the leader process. The second process performs the particular task only if the second process determines that the second process is the leader process.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more processors; one or more storage media storing instructions which, when executed by the one or more processors, cause: determining, by a first process of a program in a first data center of a plurality of data centers, whether the first process is a leader process among a plurality of processes of the program, wherein each process of the plurality of processes of the program executes in a different data center of the plurality of data centers; in response to determining that the first process is the leader process, performing, by the first process, a particular task; after performing the particular task, causing, by the first process, leadership data to be updated to indicate that the first process is no longer the leader process; after the leadership data is updated, determining, by a second process, in the plurality of processes, that is different than the first process and that executes in a second data center of the plurality of data centers, whether the second process is the leader process; wherein the second process performs the particular task only if the second process determines that the second process is the leader process. 2. The system of claim 1 , wherein determining whether the first process is the leader process among the plurality of processes comprises: initiating, by the first process, a first call to a leader election component associated with the first process; determining, by the leader election component, whether the first process is the leader process; in response to determining that the first process is the leader process, sending, by the leader election component, to the first process, leadership data that indicates that the first process is the leader process. 3. The system of claim 2 , wherein determining, by the leader election component, whether the first process is the leader process comprises initiating, by the leader election component, a second call to a storage service that is distributed among the plurality of data centers, wherein the second call includes, as a parameter of the second call, a program indicator that indicates the program. 4. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause, prior to causing the leadership data to be updated: determining whether the particular task failed; wherein causing the leadership data to be updated is performed in response to determining that the particular task failed. 5. The system of claim 4 , wherein determining whether the particular task failed comprises determining that at least a threshold number of errors occurred as a result of the first process performing the particular task. 6. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause, prior to causing the leadership data to be updated: determining, by the first process, based on one or more criteria, whether to update the leadership data to indicate that the first process is no longer the leader process; wherein causing the leadership data to be updated is performed in response to determining that the one or more criteria are satisfied; wherein the one or more criteria is (a) a length of time that the first process has been the leader process or (b) a number of times that the first process has performed one or more tasks. 7. The system of claim 1 , wherein causing the leadership data to be updated comprises: moving a first data center indicator that indicates the first data center from in a first position in a list of data center indicators to a second position in the list of data center indicators, wherein the first position is different than the second position, or replacing a first timestamp that is associated with the first data center with a second timestamp that is different than the first timestamp. 8. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: in response to the leadership data being updated in the first data center, replicating, to other instances of the leadership data in each other data center of the plurality of data centers, a change reflected in an update to the leadership data. 9. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: upon startup of each process in the plurality of processes, causing, by said each process, the leadership data to be updated to indicate the data center corresponding to said each process; wherein an order in which the plurality of processes update the leadership data indicates which process of the plurality of processes will be the leader process. 10. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: determining that a particular data center of the plurality of data centers is unavailable; in response to determining that the particular data center of the plurality of data centers is unavailable, removing, from the leadership data, data that is associated with the particular data center. 11. The system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause: storing first leadership data for a first program that executes in each data center of the plurality of data centers; storing second leadership data for a second program that executes in each data center of the plurality of data centers; in response to determining that the particular data center of the plurality of data centers is unavailable: removing, from the first leadership data, first data that is associated with the particular data center; removing, from the second leadership data, second data that is associated with the particular data center. 12. A method comprising: determining, by a first process of a program in a first data center of a plurality of data centers, whether the first process is a leader process among a plurality of processes of the program, wherein each process of the plurality of processes of the program executes in a different data center of the plurality of data centers; in response to determining that the first process is the leader process, performing, by the first process, a particular task; after performing the particular task, causing, by the first process, leadership data to be updated to indicate that the first process is no longer the leader process; after the leadership data is updated, determining, by a second process, in the plurality of processes, that is different than the first process and that executes in a second data center of the plurality of data centers, whether the second process is the leader process; wherein the second process performs the particular task only if the second process determines that the second process is the leader process; wherein the method is performed by one or more computing device. 13. The method of claim 12 , wherein determining whether the first process is the leader process among the plurality of processes comprises: initiating, by the first process, a first call to a leader election component associated with the first process; determining, by the leader election component, whether the first process is the leader process; in response to determining that the first process is the leader process, sending, by the leader election component, to the first process, leadership data that indicates that the first process is the leader process. 14. The method of claim 13 , wherein determining, by the leader election component, whether the first process is the leader process comprises initiating, by t

Assignees

Inventors

Classifications

  • G06F9/485Primary

    Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · CPC title

  • within a central processing unit [CPU] · CPC title

  • by exceeding a count or rate limit, e.g. word- or bit count limit · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10127078B2 cover?
Techniques for rotating leadership among processes in multiple data centers are provided. A first process of a program in a first data center determines whether the first process is a leader process among multiple processes of the program. Each process of the multiple processes executes in a different data center of the multiple data centers. In response to determining that the first process is…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/485. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 13 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).