Iot partition management and load balancing

US2020322425A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020322425-A1
Application numberUS-201916378207-A
CountryUS
Kind codeA1
Filing dateApr 8, 2019
Priority dateApr 8, 2019
Publication dateOct 8, 2020
Grant date

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.

A system includes a plurality of servers, a control plane to determine a first partition of a plurality of devices and to determine a subset of the plurality of servers to assign as candidate servers for the first partition, and a common data store comprising a first stream and a second stream. The control plane is to store, in the first stream, a first message indicating the first partition, the candidate servers, the second stream, and a first message tag, the candidate servers elect a primary server of the first partition from the candidate servers using the first stream, and the elected primary server inserts read and write updates associated with the plurality of devices of the first partition into the second stream.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented system comprising: a plurality of devices comprising a first partition; a first server system comprising a first data store; a second server system comprising a second data store; and a common data store storing a first data structure accessible to the first server system and to the second server system, the first data structure storing a first message indicating the first partition and a first message tag; the first server system to store a second message in the first data structure, the second message indicating the first partition, the first server system, the first message tag and a second message tag, the second server system to store a third message in the first data structure, the third message indicating the first partition, the second server system, the first message tag and a third message tag, the first server system to read the second message, to compare the first message tag of the first message to the first message tag of the second message, and, in response to the comparison, store a first record in the first data store associating the first partition, the first server system and the second message tag, and the first server system to read the third message, to compare the third message tag to the second message tag of the first record stored in the first data store, and, in response to the comparison, determine that the third message is invalid. 2 . A computer-implemented system according to claim 1 , the second server system to read the second message, to compare the first message tag of the first message to the first message tag of the second message, and, in response to the comparison, store a second record in the second data store associating the first partition, the first server system and the second message tag, and the second server system to read the third message, to compare the third message tag to the second message tag of the second record stored in the second data store, and, in response to the comparison, determine that the third message is invalid. 3 . A computer-implemented system according to claim 2 , further comprising: a third server system comprising a third data store storing a third record associating the first partition, the first server and the second message tag, the third server system to store a fourth message in the first data structure, the fourth message indicating the first partition, the third server system, the second message tag and a fourth message tag, the first server system to read the fourth message, to compare the second message tag of the first record stored in the first data store to the second message tag of the fourth message, and, in response to the comparison, store a fourth record in the first data store associating the first partition, the third server system and the fourth message tag. 4 . A computer-implemented system according to claim 1 , further comprising: a third server system comprising a third data store storing a second record associating the first partition, the first server and the second message tag, the third server system to store a fourth message in the first data structure, the fourth message indicating the first partition, the third server system, the second message tag and a fourth message tag, the first server system to read the fourth message, to compare the second message tag of the first record stored in the first data store to the second message tag of the fourth message, and, in response to the comparison, store a third record in the first data store associating the first partition, the third server system and the fourth message tag. 5 . A computer-implemented system according to claim 1 , the common data store storing a second data structure accessible to the first server system and to the second server system, the second data structure to store updates received from the plurality of devices of the first partition. 6 . A computer-implemented system according to claim 5 , the first server system and the second server system to periodically store heartbeat messages in the first data structure. 7 . A computer-implemented system according to claim 1 , the second server system to determine to add the second server system as a secondary server system of the first partition and, based on the determination, to store a third message in the first data structure indicating the first partition, the first server system, the second message tag, and the second server system as a secondary server system. 8 . A computer-implemented system according to claim 7 , wherein the determination to add the second server system as a secondary server system comprises determination of a load on the second server system. 9 . A computer-implemented system according to claim 7 , wherein the determination to add the second server system as a secondary server system comprises determination of a fault domains of each other secondary server system of the first partition. 10 . A computer-implemented system according to claim 1 , wherein the first server system and the second server system are two of three or more candidate server systems associated with the first partition and indicated in the first message stored in the first data structure. 11 . A computer-implemented system according to claim 10 , wherein each of the candidate server systems periodically stores a respective server health record in the first data structure. 12 . A computer-implemented method comprising: storing a first message in a first data structure of a common data store, the first message indicating a first partition of a plurality of devices and a first message tag; storing, by a first server system, a second message in the first data structure, the second message indicating the first partition, the first server system, the first message tag and a second message tag, storing, by a second server system, a third message in the first data structure, the third message indicating the first partition, the second server system, the first message tag and a third message tag, comparing, by the first server system, the first message tag of the first message to the first message tag of the second message, and, in response to the comparison, storing a first record in the first data store associating the first partition, the first server system and the second message tag, and comparing, by the first server system, the third message tag to the second message tag of the first record stored in the first data store, and, in response to the comparison, determining that the third message is invalid. 13 . A computer-implemented method according to claim 12 , further comprising: comparing, by the second server system, the first message tag of the first message to the first message tag of the second message, and, in response to the comparison, storing a second record in the second data store associating the first partition, the first server system and the second message tag, and comparing, by the second server system, the third message tag to the second message tag of the second record stored in the second data store, and, in response to the comparison, determine that the third message is invalid. 14 . A computer-implemented method according to claim 13 , further comprising: storing, in a third data store of a third server system, a third record associating the first partition, the first server and the second message tag, storing, by the third server system, a fourth message in the first data structure, the fourth message indicating the first partition, the third server system, the second message tag and a fourth message tag, comp

Assignees

Inventors

Classifications

  • Techniques for rebalancing the load in a distributed system · CPC title

  • G06F9/505Primary

    considering the load · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • Performance evaluation by statistical analysis · CPC title

  • in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems · 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 US2020322425A1 cover?
A system includes a plurality of servers, a control plane to determine a first partition of a plurality of devices and to determine a subset of the plurality of servers to assign as candidate servers for the first partition, and a common data store comprising a first stream and a second stream. The control plane is to store, in the first stream, a first message indicating the first partition, t…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/505. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Oct 08 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).