Multi-datacenter message queue

US2016337465A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016337465-A1
Application numberUS-201615154141-A
CountryUS
Kind codeA1
Filing dateMay 13, 2016
Priority dateMay 15, 2015
Publication dateNov 17, 2016
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.

Approaches are disclosed for distributing messages across multiple data centers where the data centers do not store messages using a same message queue protocol. In some embodiment, a network element translates messages from a message queue protocol (e.g., Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ) to an application layer messaging protocol (e.g., XMPP, MQTT, WebSocket protocol, or other application layer messaging protocols). In other embodiments, a network element translates messages from an application layer messaging protocol to a message queue protocol. Using the new approaches disclosed herein, data centers communicate using, at least in part, application layer messaging protocols to disconnect the message queue protocols used by the data centers and enable sharing messages between messages queues in the data centers. Consequently, the data centers can share messages regardless of whether the underlying message queue protocols used by the data centers (and the network devices therein) are compatible with one another.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method comprising: receiving from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; and transmitting, utilizing the application layer messaging protocol, the translated message to a server, wherein the translated message update a second message queue, the second message queue being encoded in a second message queue protocol. 2 . The method of claim 1 , further comprising: determining whether a connection to the server is active; and dynamically adjusting a size of a buffer for the first message queue based on whether the connection to the server is active. 3 . The method of claim 2 , wherein the dynamically adjusting the size of the buffer for the first message queue based on whether the connection to the server is active comprises: when it is determined that the connection is active, increasing the size of the buffer, and when it is determined that the connection is not active, decreasing the size of the buffer. 4 . The method of claim 2 , wherein the determining whether a connection to the server is active comprises receiving, from the server, an instruction to stop transmitting messages associated with the second message queue. 5 . The method of claim 4 , further comprising: when it is determined that the connection is not active: storing messages in the buffer, and stopping transmission to the server of messages associated with the second message queue; when it is determined that the connection is active: transmitting, to the server from the buffer, messages associated with the second message queue. 6 . The method of claim 2 , wherein each of the first message queue protocol and the second message queue protocol is a message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ. 7 . The method of claim 6 , wherein the first queue protocol is a different message queue protocol than the second queue protocol. 8 . The method of claim 1 , wherein the translated message by translating the message from the first message queue protocol to the application layer messaging protocol comprises: translating the message from an APACHE Kafka message encoding to an Extensible Messaging and Presence Protocol (XMPP) message encoding. 9 . An apparatus comprising: a network interface, the network interface being configured to receive, from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; a memory element to store code; at least one processor coupled to the memory element and network interface, wherein the at least one processor is to execute the code to perform operations comprising: generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; and transmitting, utilizing the application layer messaging protocol and the network interface, the translated message to a server, wherein the translated message is to update a second message queue encoded in a second message queue protocol. 10 . The apparatus of claim 9 , further comprising: a buffer configured to store messages, and wherein the operations further comprise: determining whether a connection to the server is active; and dynamically adjusting a size of a buffer for the first message queue based on whether the connection to the server is active. 11 . The apparatus of claim 10 , wherein the dynamically adjusting the size of the buffer for the first message queue based on whether the connection to the server is active comprises: when it is determined that the connection is active, increasing the size of the buffer, and when it is determined that the connection is not active, decreasing the size of the buffer. 12 . The apparatus of claim 9 , wherein the determining whether the connection to the server is active comprises receiving, from the server, an instruction to stop transmitting messages associated with the second message queue. 13 . The apparatus of claim 12 , wherein the operations further comprise: when it is determined that the connection is not active: stopping transmission to the server of messages associated with the second message queue, and storing, in the buffer, the messages associated with the second message queue; and when it is determined that the connection is active: transmitting, to the server from the buffer, the messages associated with the second message queue. 14 . The apparatus of claim 9 , wherein the generating the translated message by translating the message from the first message queue protocol to the application layer messaging protocol comprises: translating the message from a APACHE Kafka message encoding to an Extensible Messaging and Presence Protocol (XMPP) message encoding. 15 . A computer-readable non-transitory medium comprising instructions, that when executed by at least one processor configure the at least one processor to perform operations comprising: receiving from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; and transmitting, utilizing the application layer messaging protocol, the translated message to a server, wherein the translated message update a second message queue, the second message queue being encoded in a second message queue protocol. 16 . The computer-readable non-transitory medium of claim 15 , further comprising: determining whether a connection to the server is active; and dynamically adjusting a size of a buffer for the first message queue based on whether the connection to the server is active. 17 . The computer-readable non-transitory medium of claim 16 , wherein the dynamically adjusting the size of the buffer for the first message queue based on whether the connection to the server is active comprises: when it is determined that the connection is active, increasing the size of the buffer, and when it is determined that the connection is not active, decreasing the size of the buffer. 18 . The computer-readable non-transitory medium of claim 16 , wherein the determining whether a connection to the server is active comprises receiving, from the server, an instruction to stop transmitting messages associated with the second message queue. 19 . The computer-readable non-transitory medium of claim 18 , further comprising: when it is determined that the connection is not active: storing messages in the buffer, and stopping transmission to the server of messages associated with the second message queue; when it is determined that the connection is active: transmitting, to the server, from the buffer, messages associated with the second message queue. 20 . The computer-readable non-transitory medium of claim 15 , wherein the translated message by translating the message from the first message queue protocol to the application layer messaging protocol comprises: translating the message from a APACHE Kafka message encoding to an Extensible Messaging and Presence Protocol (XMPP) message encoding.

Assignees

Inventors

Classifications

  • Arrangements for program control, e.g. control units (program control for peripheral devices G06F13/10) · CPC title

  • using dynamic buffer space allocation · CPC title

  • 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

  • Electricity · mapped topic

  • in the application layer [OSI layer 7] · 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 US2016337465A1 cover?
Approaches are disclosed for distributing messages across multiple data centers where the data centers do not store messages using a same message queue protocol. In some embodiment, a network element translates messages from a message queue protocol (e.g., Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ) to an application layer messaging protocol (e.g., XMPP, MQTT, WebSocket protocol, or other ap…
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/2823. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Nov 17 2016 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).