Remote data object publishing/subscribing system having a multicast key-value protocol
First Claim
Patent Images
1. A system comprising:
- a data source computing device including a first nontransitory memory containing instructions for a publishing process using a key-value protocol;
a first electronic communications channel including a first communications protocol, wherein the first channel is a broadcast channel;
a second electronic communications channel including a second communications protocol, wherein the second channel is a host-to-host retransmit request channel; and
a query computing device coupled to the data source computing device via the first electronic communications channel and the second electronic communications channel, the query computing device including a second nontransitory memory containing instructions for a subscriber process using the key-value protocol,wherein the instructions for the publishing process stored in the first nontransitory memory include instructions that, when executed by the data source computing device, cause the data source computing device to perform publishing operations including;
receiving, at the data source computing device, an indication of new data available, wherein the new data includes at least one key-value pair;
updating, at the data source computing device, a sequence identifier value to generate an updated sequence identifier value for the at least one key-value pair;
packaging, at the data source computing device, at least a portion of the new data into a publisher message including the at least one key-value pair and the updated sequence identifier value;
broadcasting, from the data source computing device, the publisher message via the first electronic communication channel;
receiving, at the data source computing device, a retransmit request from the query computing device via the second electronic communications channel;
selecting a retransmit electronic communications channel from a plurality of available channels, the retransmit electronic communications channel being different than the second electronic communications channel; and
transmitting, from the data source computing device, requested retransmit data to the query computing device via the selected retransmit electronic communication channel,wherein the instructions for the subscriber process stored in the second nontransitory memory include instructions that, when executed by the query computing device, cause the query computing device to perform subscriber operations including;
receiving, at the query computing device, a request for a first group of keys from a first remote query processor;
transmitting, from the query computing device via the second electronic communications channel, a request for current key-value data for the first group of keys from the data source computing device;
adding, at the query computing device, the current key-value data to a key-value map;
receiving, at the query computing device, a received key-value protocol broadcast message;
for each respective key of one or more keys in the received key-value protocol broadcast message that are in the key-value map;
evaluating, at the query computing device, a sequence identifier (ID) in the received key-value protocol broadcast message to determine a most recent data for the respective key, andupdating the value for that the respective key in the key-value map with the most recent data;
generating an updated data object based on current key-value data and/or the key-value protocol broadcast message;
propagating changes, using the subscriber process, based on the updated data object to one or more dependent objects according to an update propagation graph of data object dependencies to update an in-memory table of a subscriber system associated with the subscriber process;
transmitting, from the query computing device via the second electronic communications channel, a request for retransmit data from the data source computing device; and
receiving, at the query computing device, the requested retransmit data from the data source computing device via the retransmit electronic communication channel selected by the data source computing device,wherein the first electronic communication channel and the second electronic communications channel are different channels.
3 Assignments
0 Petitions
Accused Products
Abstract
Described are methods, systems and computer readable media for data object publishing/subscribing via a multicast key-value protocol.
-
Citations
27 Claims
-
1. A system comprising:
-
a data source computing device including a first nontransitory memory containing instructions for a publishing process using a key-value protocol; a first electronic communications channel including a first communications protocol, wherein the first channel is a broadcast channel; a second electronic communications channel including a second communications protocol, wherein the second channel is a host-to-host retransmit request channel; and a query computing device coupled to the data source computing device via the first electronic communications channel and the second electronic communications channel, the query computing device including a second nontransitory memory containing instructions for a subscriber process using the key-value protocol, wherein the instructions for the publishing process stored in the first nontransitory memory include instructions that, when executed by the data source computing device, cause the data source computing device to perform publishing operations including; receiving, at the data source computing device, an indication of new data available, wherein the new data includes at least one key-value pair; updating, at the data source computing device, a sequence identifier value to generate an updated sequence identifier value for the at least one key-value pair; packaging, at the data source computing device, at least a portion of the new data into a publisher message including the at least one key-value pair and the updated sequence identifier value; broadcasting, from the data source computing device, the publisher message via the first electronic communication channel; receiving, at the data source computing device, a retransmit request from the query computing device via the second electronic communications channel; selecting a retransmit electronic communications channel from a plurality of available channels, the retransmit electronic communications channel being different than the second electronic communications channel; and transmitting, from the data source computing device, requested retransmit data to the query computing device via the selected retransmit electronic communication channel, wherein the instructions for the subscriber process stored in the second nontransitory memory include instructions that, when executed by the query computing device, cause the query computing device to perform subscriber operations including; receiving, at the query computing device, a request for a first group of keys from a first remote query processor; transmitting, from the query computing device via the second electronic communications channel, a request for current key-value data for the first group of keys from the data source computing device; adding, at the query computing device, the current key-value data to a key-value map; receiving, at the query computing device, a received key-value protocol broadcast message; for each respective key of one or more keys in the received key-value protocol broadcast message that are in the key-value map; evaluating, at the query computing device, a sequence identifier (ID) in the received key-value protocol broadcast message to determine a most recent data for the respective key, and updating the value for that the respective key in the key-value map with the most recent data; generating an updated data object based on current key-value data and/or the key-value protocol broadcast message; propagating changes, using the subscriber process, based on the updated data object to one or more dependent objects according to an update propagation graph of data object dependencies to update an in-memory table of a subscriber system associated with the subscriber process; transmitting, from the query computing device via the second electronic communications channel, a request for retransmit data from the data source computing device; and receiving, at the query computing device, the requested retransmit data from the data source computing device via the retransmit electronic communication channel selected by the data source computing device, wherein the first electronic communication channel and the second electronic communications channel are different channels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for subscription comprising:
-
receiving, at a query computing device, a request for a first group of keys from a first remote query processor; transmitting, from the query computing device via a second electronic communications channel in a first communication protocol, a request for current key-value data for the first group of keys to a data source computing device; adding, at the query computing device, the current key-value data to a key-value map; receiving, at the query computing device, a key-value protocol broadcast message; for each respective key of one or more keys in the received key-value protocol broadcast message that are in the key-value map; evaluating, at the query computing device, a sequence identifier (ID) in the received key-value protocol broadcast message to determine a most recent data for the respective key, and updating the value for the respective key in the key-value map with the most recent data; generating an updated object based on the current key-value data and/or the key-value protocol broadcast message; propagating changes, using a subscriber process, based on the updated data object to one or more dependent objects according to an update propagation graph of data object dependencies to update an in-memory table of a subscriber system associated with the subscriber process; receiving, at a data source computing device, a retransmit request from the query computing device via the second electronic communications channel; selecting, by the data source computing device, a selected retransmit electronic communications channel from a plurality of available channels, the retransmit electronic communications channel being different than the second electronic communications channel; transmitting, from the data source computing device, requested retransmit data to the query computing device via the selected retransmit electronic communication channel; and receiving, at the query computing device, the requested retransmit data from the data source computing device via the retransmit electronic communication channel selected by the data source computing device. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a data source computing device including a first nontransitory memory containing instructions for a publishing process using a key-value protocol; a first electronic communications channel including a first communications protocol, wherein the first channel is a broadcast channel; a second electronic communications channel including a second communications protocol, wherein the second channel is a host-to-host retransmit request channel; and a query computing device coupled to the data source computing device via the first electronic communications channel and the second electronic communications channel, the query computing device including; a second nontransitory memory containing instructions for a subscriber process using the key-value protocol, one or more remote query processors, and a shared memory device having a memory location accessible by the subscriber process and at least one of the one or more remote query processors, wherein the instructions for the publishing process stored in the first nontransitory memory include instructions that, when executed by the data source computing device, cause the data source computing device to perform publishing operations including; receiving, at the data source computing device, an indication of new data available, wherein the new data includes at least one key-value pair; updating, at the data source computing device, a sequence identifier value to generate an updated sequence identifier value for the at least one key-value pair; packaging, at the data source computing device, at least a portion of the new data into a publisher message including a key-value pair and the updated sequence identifier value; and broadcasting, from the data source computing device, the publisher message via the first electronic communication channel, wherein the instructions for the subscriber process stored in the second nontransitory memory include instructions that, when executed by the query computing device, cause the query computing device to perform subscriber operations including; receiving, at the query computing device, a request for a first group of keys from a first remote query processor; transmitting, from the query computing device via the second electronic communications channel, a request for current key-value data for the first group of keys from the data source computing device; adding, at the query computing device, the current key-value data to a key-value map; receiving, at the query computing device, a key-value protocol broadcast message; for each respective key of one or more keys in the received key-value protocol broadcast message that are in the key-value map; evaluating, at the query computing device, a sequence identifier (ID) in the received key-value protocol broadcast message to determine a most recent data for the respective key, and updating the value for the respective key in the key-value map with the most recent data; generating an updated object based on the current key-value data and/or the key-value protocol broadcast message; propagating changes, using the subscriber process, based on the updated data object to one or more dependent objects according to an update propagation graph of data object dependencies to update an in-memory table of a subscriber system associated with the subscriber process; and writing, from the subscriber process, data to the memory location of the shared memory device, the at least one of the one or more remote query processors being configured to access the same memory location of the shared memory device to read the data written by the subscriber process. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. A method for subscription comprising:
-
receiving, at a query computing device comprising one or more remote query processors, a request for a first group of keys from a first remote query processor; transmitting, from the query computing device via a second electronic communications channel in a first communication protocol, a request for current key-value data for the first group of keys to a data source computing device; adding, at the query computing device, the current key-value data to a key-value map; receiving, at the query computing device, a key-value protocol broadcast message; for each respective key of one or more keys in the received key-value protocol broadcast message that are in the key-value map; evaluating, at the query computing device, a sequence identifier (ID) in the received key-value protocol broadcast message to determine a most recent data for the respective key, and updating the value for the respective key in the key-value map with the most recent data; generating an updated object based on the current key-value data and/or the key-value protocol broadcast message; propagating changes, using a subscriber process, based on the updated data object to one or more dependent objects according to an update propagation graph of data object dependencies to update an in-memory table of a subscriber system associated with the subscriber process; and writing, from a subscriber process being executed by the query computing device, data to a memory location of a shared memory device of the query computing device accessible by the subscriber process and at least one of the one or more remote query processors, the at least one of the one or more remote query processors being configured to access the same memory location of the shared memory device to read the data written by the subscriber process. - View Dependent Claims (24, 25, 26, 27)
-
Specification