Efficiently receiving messages across a large number of messaging entities

US10002033B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10002033-B2
Application numberUS-201213368107-A
CountryUS
Kind codeB2
Filing dateFeb 7, 2012
Priority dateFeb 7, 2012
Publication dateJun 19, 2018
Grant dateJun 19, 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.

A messaging service is described that facilitates the efficient receipt of messages by a client from across a large number of messaging entities hosted by different messaging hosts within a distributed messaging system. A gateway in the distributed messaging system forwards a request for an available message or set of related messages from the client to each of the messaging hosts. Each messaging host provides a response to a request if a messaging entity hosted thereby includes at least one available message or set of related messages. The messaging host manages the order in which responses from different messaging entities are provided to ensure fairness. The gateway forwards a selected one of the responses to the consumer, while caching the other responses to service future requests from the consumer.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a messaging host in a distributed messaging system, comprising: receiving a request from a gateway for any available message or set of related messages contained in any of a plurality of messaging entities hosted by the messaging host; identifying a subset of the plurality of messaging entities that contain at least one available message or set of related messages; assembling an ordered list of the messaging entities in the subset of the plurality of messaging entities; determining a particular messaging entity in the subset that is at the beginning of the ordered list; servicing the request from the particular messaging entity; locking a particular message or set of related messages contained by the particular messaging entity until expiration of a time period; and sending, to the gateway, a response that indicates that the particular message or set of related messages can be accessed by a client that caused the request to be issued, the response being cached by the gateway and then expired therefrom upon expiration of the same time period. 2. The method of claim 1 , wherein receiving the request comprises: receiving a request for any available message or set of related messages contained in any of a plurality of queues or subscriptions hosted by the messaging host. 3. The method of claim 1 , wherein determining the particular messaging entity in the subset that is at the beginning of the ordered list comprises determining that the particular messaging entity in the subset is at the head of a first-in-first-out (FIFO) data structure. 4. The method of claim 1 , further comprising: moving the particular messaging entity in the subset to an end of the ordered list in response to determining that the particular messaging entity still contains at least one available message or set of related messages after the request has been serviced. 5. The method of claim 1 , further comprising: maintaining a data structure that identifies the subset of the plurality of messaging entities that contains at least one available message or set of related messages and that identifies the available message(s) or set(s) of related messages for each identified messaging entity; and wherein identifying the subset of the plurality of messaging entities that contains the at least one available message or set of related messages comprises determining that the subset of the plurality of messaging entities is identified in the data structure. 6. The method of claim 5 , further comprising: removing the particular message or set of related messages from the data structure. 7. The method of claim 6 , further comprising: adding the particular message or set of related messages back to the data structure in response to determining that the particular message or set of related messages is still available after the request has been serviced. 8. A method performed by a gateway in a distributed messaging system, comprising: receiving a first request for any available message or set of related messages from a client; sending a second request for any available message or set of related messages to each of a plurality of messaging hosts in response to receiving the first request from the client, each of the plurality of messaging hosts hosting a plurality of messaging entities; receiving a response from each of one or more of the messaging hosts indicating that a message or set of related messages is available for access by the client, the available message or set of related messages being contained in a messaging entity of the plurality of messaging entities hosted by the respective messaging host; forwarding a response received from one of the one or more of the messaging hosts to the client; and storing at least one of the one or more responses received from the one or more of the messaging hosts in an at least one entry of a cache managed by the gateway for servicing future requests for any available message or set of related messages until expiration of a time period, a lock being placed on a message or set of related messages identified by the at least one entry, until expiration of the same time period, by a messaging host that hosts a messaging entity that contains the identified message or set of related messages. 9. The method of claim 8 , wherein receiving a response from each of one or more of the messaging hosts comprises receiving a response from each of two or more of the messaging hosts; and wherein forwarding the response comprises forwarding a first response received from the two or more of the messaging hosts to the client. 10. The method of claim 9 , wherein storing at least one of the one or more responses received from the one or more of the messaging hosts in at least one entry of a cache managed by the gateway comprises: storing all responses received from the two or more of the messaging hosts other than the first response in one or more entries of the cache managed by the gateway. 11. The method of claim 10 , wherein storing a response in at least one entry of the cache comprises: creating the at least one entry that includes at least a first message in a set of related messages identified by the response, a state associated with the set of related messages identified by the response, and an identifier of the messaging entity that contains the set of related messages identified by the response. 12. A distributed messaging system that provides a messaging service, the distributed messaging system comprising: a client that issues a first request for any available message or set of related messages; a gateway that receives the first request from the client and, in response thereto, issues a second request for any available message or set of related messages to each of a plurality of messaging hosts; and the plurality of messaging hosts, each of which hosts a corresponding plurality of messaging entities, each of which services a corresponding one of the second requests from a particular one of the corresponding plurality of messaging entities only in response to determining that the particular messaging entity contains at least one available message or set of related messages and that the particular messaging entity is at a beginning of an ordered list of messaging entities containing at least one available message or set of related messages, the at least one available message or set of related messages in the particular messaging entity being locked by the particular messaging entity until expiration of a time period, the gateway storing at least one response received from at least one of the plurality of messaging hosts indicating that a message or set of related messages is available for access by the client in a cache managed by the gateway, the at least one response being stored in the cache and then expired therefrom upon expiration of the same time period. 13. The system of claim 12 , wherein each messaging entity may comprise one of a queue or a subscription. 14. The system of claim 12 , wherein each messaging host determines that the particular messaging entity is at the beginning of the ordered list of messaging entities by determining that the particular messaging entity is at the head of a first-in-first-out (FIFO) data structure. 15. The system of claim 12 , wherein each messaging host maintains a corresponding data structure that identifies each of the corresponding plurality of messaging entities that contains at least one available message or set of related messages and that identifies the available message(s) or set(s) of related messages for each

Assignees

Inventors

Classifications

  • Remote · CPC title

  • G06F9/542Primary

    Event management; Broadcasting; Multicasting; Notifications · 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 US10002033B2 cover?
A messaging service is described that facilitates the efficient receipt of messages by a client from across a large number of messaging entities hosted by different messaging hosts within a distributed messaging system. A gateway in the distributed messaging system forwards a request for an available message or set of related messages from the client to each of the messaging hosts. Each messagi…
Who is the assignee on this patent?
Srivastava Manu, Paramasivam Kartik, Krishnaprasad Murali, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/542. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 19 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).