IP Library Patent Application 15159447
Patent Application
App. No. 15/159,447

EFFICIENT MESSAGE EXCHANGE SYSTEM

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.
15/159,447
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving from a plurality of origination processes a plurality of messages, identifying a respective destination node and a destination process on the destination node associated with each of the messages, storing each of the messages in a respective buffer for the destination process and destination node associated with the message, identifying one or more of the buffers wherein an aggregate size of all messages stored in each of the identified buffers exceeds a threshold, and for each identified buffer, sending all messages stored in the buffer in bulk to the destination process on the destination node associated with the messages stored in the buffer.

Claims (55)

1 . A computer-implemented method comprising:

receiving from a plurality of origination processes a plurality of messages;

identifying a respective destination node and a destination process on the destination node associated with each of the messages;

storing each of the messages in a respective buffer for the destination process and destination node associated with the message;

identifying one or more of the buffers wherein an aggregate size of all messages stored in each of the identified buffers exceeds a threshold; and

for each identified buffer, (i) sending all messages stored in the buffer in bulk to the destination process on the destination node associated with the messages stored in the buffer, and (ii) de-allocating the buffer.

2 . The method of claim 1 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on a first node that is different from the particular destination node.

3 . The method of claim 1 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on the particular destination node.

4 . The method of claim 1 , wherein a particular destination node is a virtual machine.

5 . The method of claim 1 , wherein sending all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer comprises:

assembling all messages stored in the buffer in a first message; and

sending the first message to the destination process on the destination node.

6 . The method of claim 1 , further comprising:

identifying a particular buffer wherein an amount of time has passed since any messages where sent from the particular buffer; and

sending all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer.

7 . The method of claim 1 , wherein each buffer stores messages of one of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages.

8 . The method of claim 7 , wherein an origination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

9 . The method of claim 7 , wherein a destination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

10 . A system comprising:

one or more computer processors programmed to perform operations to:

receive from a plurality of origination processes a plurality of messages;

identify a respective destination node and a destination process on the destination node associated with each of the messages;

store each of the messages in a respective buffer for the destination process and destination node associated with the message;

identify one or more of the buffers wherein an aggregate size of all messages stored in each of the identified buffers exceeds a threshold; and

for each identified buffer, (i) send all messages stored in the buffer in bulk to the destination process on the destination node associated with the messages stored in the buffer, and (ii) de-allocate the buffer.

11 . The system of claim 10 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on a first node that is different from the particular destination node.

12 . The system of claim 10 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on the particular destination node.

13 . The system of claim 10 , wherein a particular destination node is a virtual machine.

14 . The system of claim 10 , wherein to send all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer, the one or more computer processors programmed to comprises:

assemble all messages stored in the buffer in a first message; and

send the first message to the destination process on the destination node.

15 . The system of claim 10 , wherein the one or more computer processors further programmed to:

identify a particular buffer wherein an amount of time has passed since any messages where sent from the particular buffer; and

send all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer.

16 . The system of claim 10 , wherein each buffer to store messages of one of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages.

17 . The system of claim 16 , wherein an origination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

18 . The system of claim 16 , wherein a destination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

19 . An article comprising a non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more computer processors, perform operations to:

receive from a plurality of origination processes a plurality of messages;

identify a respective destination node and a destination process on the destination node associated with each of the messages;

store each of the messages in a respective buffer for the destination process and destination node associated with the message;

identify one or more of the buffers wherein an aggregate size of all messages stored in each of the identified buffers exceeds a threshold; and

for each identified buffer, (i) send all messages stored in the buffer in bulk to the destination process on the destination node associated with the messages stored in the buffer, and (ii) de-allocate the buffer.

20 . The article of claim 19 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on a first node that is different from the particular destination node.

21 . The article of claim 19 , wherein a first buffer that stores messages associated with a particular destination process and a particular destination node resides on the particular destination node.

22 . The article of claim 19 , wherein a particular destination node is a virtual machine.

23 . The article of claim 19 , wherein to send all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer, the one or more computer processors to:

assemble all messages stored in the buffer in a first message; and

send the first message to the destination process on the destination node.

24 . The article of claim 19 , having further instructions stored that, when executed by the one or more computer processors further perform operations to:

identify a particular buffer wherein an amount of time has passed since any messages where sent from the particular buffer; and

send all messages stored in the buffer in bulk to the destination process and destination node associated with the messages stored in the buffer.

25 . The article of claim 19 , wherein each buffer to store messages of one of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages.

26 . The article of claim 25 , wherein an origination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

27 . The article of claim 25 , wherein a destination process is associated with a respective second buffer that stores messages of a particular channel according to the order and comprises a respective time-to-live.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: COMERICA BANK
To: SATORI WORLDWIDE, LLC
Reel/Frame 052707/0769 →
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
To: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
Reel/Frame 052706/0917 →
SECURITY INTEREST Recorded May 22, 2018
From: SATORI WORLDWIDE, LLC
To: COMERICA BANK
Reel/Frame 046215/0159 →
NOTICE OF SECURITY INTEREST -- PATENTS Recorded Feb 2, 2018
From: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
To: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
Reel/Frame 045237/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: MACHINE ZONE, INC.
To: SATORI WORLDWIDE, LLC
Reel/Frame 044428/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2016
From: WALKIN, LEV; LINDER, FREDRIK ERIK; MILYAKOV, IGOR
To: MACHINE ZONE, INC.
Reel/Frame 039028/0860 →