Dynamic adjustment of entity assignment in a multi-data center environment

US10182111B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10182111-B2
Application numberUS-201615370143-A
CountryUS
Kind codeB2
Filing dateDec 6, 2016
Priority dateDec 6, 2016
Publication dateJan 15, 2019
Grant dateJan 15, 2019

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 handling the dynamic reassignment of entities among multiple data centers are provided. In one technique, for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers, an entity identifier that is associated with the task is identified. A call to an entity routing service is initiated, where the call includes the entity A response to the call is received from the entity routing service, where the response indicates a particular data center. An entity processor that is different than the entity routing service processes the task only if the particular data center is the first data center. If the particular data center is different than the first data center, then a data structure that stores the task is updated to indicate the particular data center and the task is eventually processed in the particular data center.

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 one or more processors, cause: for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers: identifying an entity identifier that is associated with said each task; initiating a call to an entity routing service, wherein the call includes the entity identifier; receiving, from the entity routing service, a response that indicates a particular data center; processing, by an entity processor that is different than the entity routing service, said each task only if the particular data center is the first data center; wherein the particular data center is the first data center, wherein the instructions, when executed by the one or more processors, further cause: retrieving the plurality of tasks from a queue that is replicated across the plurality of data centers; wherein the queue contains one or more tasks that are associated with a second data center, of the plurality of data centers, that is different than the first data center; wherein prior to inserting a particular task to the queue, the particular task is associated with a particular entity identifier that is associated with the first data center; after the particular task is inserted into the queue and prior to initiating, based on the particular entity identifier, a particular call to the entity routing service, updating a mapping accessible to the entity routing service to indicate that the particular entity identifier is associated with a third data center that is different than the first data center. 2. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: for each task that is processed by the entity processor, causing an update to be applied to the queue to indicate that said each task has been processed, wherein the update is replicated to the plurality of data centers. 3. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: initiating the particular call to the entity routing service, wherein the particular call includes the particular entity identifier; determining, by the entity routing service, that the particular entity identifier is associated with the third data center; receiving, from the entity routing service, a particular response that indicates that the particular entity identifier is associated with a data center that is different than the first data center; determining, based on the particular response, not to process the particular task. 4. The system of claim 3 , wherein the instructions, when executed by the one or more processors, further cause: in response to determining not to process the particular task, causing an update to be applied to the queue, in the first data center, from which the plurality of tasks are retrieved; wherein the update indicates that the particular task is associated with the second data center; wherein updates to the queue are automatically replicated to other data centers in the plurality of data centers. 5. The system of claim 1 , wherein the particular data center is the first data center, wherein processing said each task comprises: based on the entity identifier of said each task, identifying a particular row in a table that is replicated across the plurality of data centers; applying one or more changes to the particular row based on said task; wherein, after the one or more changes are applied to the particular row, the one or more changes are replicated to each other data center, of the plurality of data centers, that is different than the first data center. 6. The system of claim 1 , wherein identifying the entity identifier, initiating the call, and receiving the response are performed by a queue handler, wherein processing said each task is performed by one or more entity processors. 7. The system of claim 6 , wherein the instructions, when executed by the one or more processors, further cause: determining, by the queue handler, based on a particular response from the entity routing service, that a second particular entity identifier of a second particular task is associated with the first data center; in response to determining that the second particular entity identifier is associated with the first data center, selecting a particular entity processor from among a plurality of entity processors that execute in the first data center; processing, by the particular entity processor, the second particular task. 8. A system comprising: one or more processors; one or more storage media storing instructions which, when executed by one or more processors, cause: updating data center assignment data to indicate that a first data center, of a plurality of data centers, is to process tasks that are related to entities that were assigned to a second data center, of the plurality of data centers, that is different than the first data center; based on the data center assignment data, retrieving a plurality of tasks that are related to entities that are assigned to the first data center or the second data center; for each task of the plurality of tasks: identifying an entity identifier that is associated with said each task; initiating a call that is associated with an entity routing service, wherein the call includes the entity identifier; receiving, based on the call, a response that indicates a particular data center; processing said each task only if the particular data center is the first data center or the second data center; wherein: initiating and receiving are performed by a first process; initiating the call comprises initiating a third call to a second process that is different than the first process and that receives the entity identifier; the instructions which, when executed by the one or more processors, further cause, prior to the first process receiving the response: initiating, by the second process, a second call to the entity routing service, wherein the second call includes the entity identifier; receiving, by the second process, from the entity routing service, a first response that indicates the particular data center; determining, by the second process, whether the particular data center is indicated in a list of data center indicators. 9. The system of claim 8 , wherein the instructions, when executed by the one or more processors, further cause, prior to receiving the response: making a determination, based on the data center assignment data, whether the particular data center is indicated in the list of data center indicators; wherein the response is based on the determination. 10. The system of claim 9 , wherein the second process is a wrapper function on the entity routing service. 11. A method comprising: for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers: identifying an entity identifier that is associated with said each task; initiating a call to an entity routing service, wherein the call includes the entity identifier; receiving, from the entity routing service, a response that indicates a particular data center; processing, by an entity processor that is different than the entity routing service, said each task only if the particular data center is the first data center; wherein the method is performed by one or more computing devices; wherein the particular data center is the first data center, the method further comprising: retrieving the plurality of tasks from a queue that is replicated across the plurality of da

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • User profiles · 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 US10182111B2 cover?
Techniques for handling the dynamic reassignment of entities among multiple data centers are provided. In one technique, for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers, an entity identifier that is associated with the task is identified. A call to an entity routing service is initiated, where the call includes the entity A respo…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L67/1095. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 15 2019 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).