IP Library Granted Patent US 9,479,472
Granted Patent B2
US 9,479,472 · App. 14/575,809 · Granted Oct 25, 2016

Local message queue processing for co-located workers

View Patent ↗
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 9,479,472
App. No.
14/575,809
Granted
Oct 25, 2016
Kind
B2
Abstract

Technologies are provided for locally processing queue requests from co-located workers. In some examples, information about the usage of remote datacenter queues by co-located workers may be used to determine one or more matched queues. Messages from local workers to a remote datacenter queue classified as a matched queue may be stored locally. Subsequently, local workers that request messages from matched queues may be provided with the locally-stored messages.

Claims (67)

1. A method to locally process queue requests from co-located workers in a datacenter, the method comprising:

detecting a producer worker at a first server, wherein the producer worker sends a message to a datacenter queue at least partially stored at a second server;

storing the message in a queue cache at the first server;

detecting a consumer worker at the first server, wherein the consumer worker sends a message request to the datacenter queue; and

providing the message to the consumer worker in response to the message request.

2. The method of claim 1 , further comprising:

receiving a signal from a command channel associated with the datacenter queue; and

modifying the message in response to receiving the signal.

3. The method of claim 2 , further comprising:

in response to receiving a delete command from the datacenter queue, deleting the message from the datacenter queue.

4. The method of claim 1 , further comprising:

identifying one or more of: the consumer worker associated with the message request and the datacenter queue associated with the message request.

5. The method of claim 1 , further comprising:

intercepting the message sent by the producer worker prior to storing the message in the queue cache at the second server.

6. The method of claim 1 , further comprising:

executing the producer worker on a first virtual machine; and

executing the consumer worker on a second virtual machine, wherein the first virtual machine is configured to be executed on a first physical hardware and the second virtual machine is configured to be executed on the first physical hardware.

7. A computing device to provide local processing of queue requests from co-located workers, the computing device comprising:

a memory configured to store instructions; and

a processor coupled to the memory, the processor executing a virtual machine manager (VMM) application, wherein the VMM application is configured to:

detect a producer worker at a first server, wherein the producer worker sends a message to a datacenter queue at least partially stored at a second server;

intercept the message sent by the producer worker;

store the message in a queue cache at the first server;

detect a consumer worker at the first server;

provide the message to the consumer worker; and

receive a signal from a command channel associated with the datacenter queue.

8. The computing device of claim 7 , wherein the VMM application is further configured to:

modify the message in response to receiving the signal; and

in response to receiving a delete command from the datacenter queue, delete the message from the first server.

9. The computing device of claim 7 , wherein the VMM application is further configured to:

detect a message request sent from the consumer worker executing a virtual machine; and

identify one or more of the consumer worker associated with the message request and the datacenter queue associated with the message request.

10. The computing device of claim 7 , wherein the VMM application is further configured to:

observe network traffic through a network connection to identify the producer worker associated with the message.

11. The computing device of claim 7 , wherein the VMM application is further configured to:

observe network traffic through a network connection to detect the datacenter queue associated with the message.

12. The computing device of claim 7 , wherein the VMM application is further configured to:

construct a queue user table based on observed queue usage information, wherein the observed queue usage information includes one or more of producer worker information, consumer worker information, datacenter queue information associated with the producer worker, and datacenter queue information associated with the consumer worker.

13. The computing device of claim 12 , wherein the VMM application is further configured to:

update the queue user table based on the observed queue usage information.

14. The computing device of claim 12 , wherein the VMM application is further configured to:

determine matching producer worker and consumer worker pairs through use of the queue user table through a process to:

identify a message that includes matching the producer worker to another datacenter queue, and

identify a message request that includes matching the consumer worker to the other datacenter queue.

15. The computing device of claim 14 , wherein the VMM application is further configured to:

in response to an identification of the matching producer and consumer worker pairs, provide matched queue information to an intercept module of the VMM application, wherein the intercept module increases a speed of handling a second message between the producer worker and the consumer worker.

16. The computing device of claim 15 , wherein the intercept module of the VMM application is configured to:

intercept the message sent by the producer worker;

store the message in the queue cache; and

provide the intercepted message to the consumer worker in response to the message request.

17. A non-transitory computer-readable storage device with instructions stored thereon to locally process queue requests from co-located workers in a datacenter, the instructions, when executed by a processor, comprise:

detecting a producer worker at a first server, wherein the producer worker sends a message to a datacenter queue at least partially stored at a second server;

intercepting the message sent by the producer worker;

storing the message in a queue cache at the first server;

detecting a consumer worker at the first server, wherein the consumer worker sends a message request to the datacenter queue;

providing the message to the consumer worker in response to the message request;

receiving a signal from a command channel associated with the datacenter queue; and

modifying the message in response to receiving the signal.

18. The non-transitory computer-readable storage device of claim 17 , wherein the instructions, when executed by the processor, further comprise:

constructing a queue user table based on observed queue usage information, wherein the observed queue usage information includes one or more of producer worker information, consumer worker information, datacenter queue information associated with the producer worker, and datacenter queue information associated with the consumer worker; and

updating the queue user table based on the observed queue usage information.

19. The non-transitory computer-readable storage device of claim 18 , wherein the instructions, when executed by the processor, further comprise:

determining matching producer worker and consumer worker pairs through use of the queue user table through a process to:

identify a message that includes matching the producer worker to another datacenter queue, and

identify a message request that includes matching the consumer worker to the other datacenter queue.

20. The non-transitory computer-readable storage device of claim 17 , wherein the instructions, when executed by the processor, further comprise:

identifying one or more of: the consumer worker associated with the message request and the datacenter queue associated with the message request.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2021
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: INVINCIBLE IP LLC
Reel/Frame 055594/0500 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2020
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 054129/0627 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2014
From: ARDENT RESEARCH CORPORATION
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 034588/0946 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2014
From: KRUGLICK, EZEKIEL
To: ARDENT RESEARCH CORPORATION
Reel/Frame 034588/0942 →