IP Library Patent Application 14885720
Patent Application
App. No. 14/885,720

CLIENT SIDE QUEUE SHARDING

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/885,720
Abstract

Methods and systems for routing messages are described. In one embodiment, the method includes generating a plurality of message exchanges of a message broker, generating a plurality of message queues of the message broker, and generating a first queue shard of a plurality of queue shards. In some embodiments, generating a first queue shard includes binding a first message exchange from the plurality of message exchanges with a first message queue from the plurality of message queues. In some embodiments, the method includes dedicating a first message server to the first queue shard. In some cases, the first message server includes a shared-nothing architecture.

Claims (56)

1 . A method for routing messages, comprising:

generating, by a processor associated with a message broker, a plurality of message exchanges of the message broker;

generating, by the processor, a plurality of message queues of the message broker;

generating, by the processor, a first queue shard, generating the first queue shard comprising binding a first message exchange from the plurality of message exchanges with a first message queue from the plurality of message queues; and

dedicating, by the processor, a first message server to the first queue shard, wherein the first message server comprises a shared-nothing architecture.

2 . The method of claim 1 , comprising:

identifying a plurality of messages from a plurality of message producers; and

distributing the received messages across the plurality of queue shards.

3 . The method of claim 2 , comprising:

assigning a first message from the plurality of messages to the first queue shard.

4 . The method of claim 3 , comprising:

sending the first message to the first queue shard.

5 . The method of claim 4 , comprising:

identifying a no response from the first queue shard after sending the first message to the first queue shard, the no response indicating the first queue shard is unavailable.

6 . The method of claim 5 , comprising:

generating a second queue shard, generating the second queue shard comprising binding a second message exchange from the plurality of message exchanges with a second message queue from the plurality of message queues.

7 . The method of claim 6 , comprising:

dedicating a second message server to the second queue shard, wherein the second message server comprises a shared-nothing architecture.

8 . The method of claim 6 , comprising:

after receiving the no response from the first queue shard, sending the first message to the second queue shard.

9 . The method of claim 5 , comprising:

after receiving the no response from the first queue shard, waiting a predetermined amount of time; and

sending a transport layer communication to the first queue shard after the predetermined amount of time lapses.

10 . The method of claim 9 , comprising:

upon receiving a response to the transport layer communication, sending a message subsequent to the first message to the first queue shard.

11 . An apparatus for an automation system, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable by the processor to perform the steps of:

generating a plurality of message exchanges in relation to a message broker;

generating a plurality of message queues in relation to the message broker;

generating a first queue shard, generating the first queue shard comprising binding a first message exchange from the plurality of message exchanges with a first message queue from the plurality of message queues; and

dedicating a first message server to the first queue shard, wherein the first message server comprises a shared-nothing architecture

12 . The apparatus of claim 11 , the instructions being executable by the processor to perform the steps of:

identifying a plurality of messages from a plurality of message producers; and

distributing the received messages across the plurality of queue shards.

13 . The apparatus of claim 12 , the instructions being executable by the processor to perform the step of:

assigning a first message from the plurality of messages to the first queue shard.

14 . The apparatus of claim 13 , the instructions being executable by the processor to perform the step of:

sending the first message to the first queue shard.

15 . The apparatus of claim 14 , the instructions being executable by the processor to perform the step of:

identifying a no response from the first queue shard after sending the first message to the first queue shard, the no response indicating the first queue shard is unavailable.

16 . The apparatus of claim 15 , the instructions being executable by the processor to perform the step of:

generating a second queue shard, generating the second queue shard comprising binding a second message exchange from the plurality of message exchanges with a second message queue from the plurality of message queues.

17 . The apparatus of claim 16 , the instructions being executable by the processor to perform the step of:

dedicating a second message server to the second queue shard, wherein the second message server comprises a shared-nothing architecture.

18 . The apparatus of claim 16 , the instructions being executable by the processor to perform the step of:

after receiving the no response from the first queue shard, sending the first message to the second queue shard.

19 . The apparatus of claim 15 , the instructions being executable by the processor to perform the steps of:

after receiving the no response from the first queue shard, waiting a predetermined amount of time; and

sending a transport layer communication to the first queue shard after the predetermined amount of time lapses.

20 . A non-transitory computer-readable medium storing computer-executable code for an automation system, the code executable by a processor to perform the steps of:

generating a plurality of message exchanges of a message broker;

generating a plurality of message queues of the message broker;

generating a first queue shard, generating the first queue shard comprising binding a first message exchange from the plurality of message exchanges with a first message queue from the plurality of message queues; and

dedicating a first message server to the first queue shard, wherein the first message server comprises a shared-nothing architecture.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 049283, FRAME 0566 Recorded Nov 11, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VIVINT, INC.
Reel/Frame 069334/0137 →
RELEASE (REEL 047029/ FRAME 0304) Recorded Nov 1, 2024
From: BANK OF AMERICA, N.A.
To: VIVINT LLC (F/K/A VIVINT, INC.)
Reel/Frame 069289/0468 →
RELEASE OF SECURITY INTEREST Recorded Jul 12, 2021
From: BANK OF AMERICA, N.A.
To: VIVINT, INC.
Reel/Frame 056832/0824 →
SECURITY AGREEMENT Recorded May 23, 2019
From: VIVINT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049283/0566 →
SUPPL. NO. 2 SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA N.A.
Reel/Frame 047024/0048 →
SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 047029/0304 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2015
From: ROBINSON, JARED
To: VIVINT, INC.
Reel/Frame 036814/0181 →