US 11,914,482 B2
System and method for robust, efficient, adaptive streaming replication application protocol with dancing recovery for high-volume distributed live subscriber datasets
Arun K. Krishna, Bangalore (IN); and Pramod K. Prabhakar, Bangalore (IN)
Assigned to Pelatro PTE. LTD., Singapore (SG)
Filed by Pelatro Pte. Ltd., Singapore (SG)
Filed on Nov. 22, 2021, as Appl. No. 17/532,024.
Claims priority of provisional application 63/116,425, filed on Nov. 20, 2020.
Prior Publication US 2022/0164260 A1, May 26, 2022
Int. Cl. G06F 11/14 (2006.01); G06F 16/27 (2019.01); G06F 11/34 (2006.01); G06F 11/10 (2006.01); G06F 16/2455 (2019.01); G06F 16/28 (2019.01); G06F 16/22 (2019.01)
CPC G06F 11/1464 (2013.01) [G06F 11/1004 (2013.01); G06F 11/1469 (2013.01); G06F 11/3452 (2013.01); G06F 16/2246 (2019.01); G06F 16/2255 (2019.01); G06F 16/24568 (2019.01); G06F 16/273 (2019.01); G06F 16/283 (2019.01); G06F 16/285 (2019.01)] 19 Claims
OG exemplary drawing
 
1. A system for an adaptive streaming replication of a first at least one computing device to a plurality of computing devices, the system comprising:
the first at least one computing device having a first processor, a first memory, a first non-transitory computer readable medium, and a first connection to a network, said first at least one computing device is configured to:
receive, via said first connection to said network, a primary plurality of data in a series of data packets from a plurality of data sources;
store said plurality of data on said non-transitory computer readable medium; and
transmit a secondary plurality of data to a device on said network via said first connection to said network;
the plurality of computing devices, each having a processor, a memory, a non-transitory computer readable medium, and a connection to said network, said plurality of computing devices are configured to receive, via said second connection to said network, said secondary plurality of data from at least said first at least one computing device; and
a streaming replication application installed thereon said first non-transitory computer readable medium and said second non-transitory computer readable medium, which in combination with said first processors and said processors and said network are configured to:
maintain on each of the plurality of computing devices a sliding window of “N” packets received by any of the first at least one computing device and the plurality of computing devices, said sliding window of “N” packets is a subset of said series of data packets;
compute a checksum at the first at least one computing device according to each of said series of data packets prior to transmission to said network;
add said checksum to a header of each of said series of data packets and transmit each of said series of data packets in an order of receipt to said network;
broadcast each of said series of data packets, having said checksum in said header, to the plurality of computing devices via said network in order of receipt by the first at least one computing device;
receive each of said series of data packets, each having said header with said checksum, at each of the plurality of computing devices;
for a next-in-line packet received at any of the plurality of computing devices, determine whether said next-in-line data packet exists within said sliding window of “N” packets;
add said next-in-line packet to said sliding window of “N” packets only when said checksum does not exist within said sliding window;
calculate a link score of the first at least one computing device, said link score is calculated by adding a link speed contribution score, a link effectiveness contribution score, a link reliability contribution score, and a link stability contribution score; and
instruct each of the plurality of computing devices to subscribe to the first at least one computing device when said link score is above a threshold.