Scalable, real-time messaging system

US9843640B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9843640-B2
Application numberUS-201715436217-A
CountryUS
Kind codeB2
Filing dateFeb 17, 2017
Priority dateAug 7, 2015
Publication dateDec 12, 2017
Grant dateDec 12, 2017

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.

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a write request from a publisher comprising a channel name wherein the channel identified by the channel name comprises an ordered plurality of messages stored in buffers, each buffer having a predetermined time-to-live and being assigned to a respective node, identifying a first node and a first buffer stored on the first node based on the channel name of the request that has available storage for storing messages and wherein the first buffer has a time-to-live that has not expired, and sending a write grant to the publisher wherein the grant comprises identification of the first node and the first buffer, and wherein the publisher is configured to send messages to the first node for storage in the first buffer based on the grant until the first buffer is full or its time-to-live has expired.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired. 2. The method of claim 1 , comprising: granting a read request to a subscriber to read one or more messages from the first buffer before the time-to-live for the first buffer expires. 3. The method of claim 2 , wherein granting the read request to the subscriber comprises: providing the subscriber with an identification of the first node and the first buffer. 4. The method of claim 2 , wherein the subscriber is configured to receive messages from the first buffer. 5. The method of claim 1 , comprising: granting read requests to a plurality of subscribers to concurrently read one or more messages from the first buffer before the time-to-live for the first buffer expires. 6. The method of claim 1 , wherein granting the write request to the publisher comprises: providing the publisher with an identification of the first node and the first buffer. 7. The method of claim 1 , wherein the publisher is configured to send one or more messages to the first node for storage in the first buffer. 8. The method of claim 1 , wherein selecting the second node comprises: identifying the second node as a least-loaded node among the plurality of nodes. 9. The method of claim 1 , comprising: maintaining a list of active buffers for the channel, wherein each buffer stores messages that are available to be read by one or more subscribers to the channel. 10. The method of claim 1 , wherein the first node and the second node reside on different physical computers. 11. A system, comprising: one or more computer processors programmed to perform operations comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired. 12. The system of claim 11 , wherein the operations comprise: granting a read request to a subscriber to read one or more messages from the first buffer before the time-to-live for the first buffer expires. 13. The system of claim 12 , wherein the operation of granting the read request to the subscriber comprises: providing the subscriber with an identification of the first node and the first buffer. 14. The system of claim 12 , wherein the subscriber is configured to receive messages from the first buffer. 15. The system of claim 11 , wherein the operations comprise: granting read requests to a plurality of subscribers to concurrently read one or more messages from the first buffer before the time-to-live for the first buffer expires. 16. The system of claim 11 , wherein the operation of granting the write request to the publisher comprises: providing the publisher with an identification of the first node and the first buffer. 17. The system of claim 11 , wherein the publisher is configured to send one or more messages to the first node for storage in the first buffer. 18. The system of claim 11 , wherein the operation of selecting the second node comprises: identifying the second node as a least-loaded node among the plurality of nodes. 19. The system of claim 11 , wherein the operations comprise: maintaining a list of active buffers for the channel, wherein each buffer stores messages that are available to be read by one or more subscribers to the channel. 20. An article, comprising: a non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the computer processors to perform operations comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired.

Assignees

Inventors

Classifications

  • Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange · CPC title

  • H04L67/142Primary

    Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms · CPC title

  • Queue scheduling · CPC title

  • Electricity · mapped topic

  • for unicast · 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 US9843640B2 cover?
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a write request from a publisher comprising a channel name wherein the channel identified by the channel name comprises an ordered plurality of messages stored in buffers, each buffer having a predetermined time-to-live and being assigned to a respective node, identifying a first nod…
Who is the assignee on this patent?
Machine Zone Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/142. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 12 2017 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).