Eventually-consistent data stream consolidation
First Claim
1. A computer-implemented method for updating the state of an application logic to reflect a plurality of update packets entering a local packet stream, each of said plurality of update packets having a packet timestamp, said local packet stream comprising a first plurality of local packets, each of said first plurality of local packets having a packet timestamp, the method comprising:
- (a) calculating an overwrite point, said overwrite point calculated to precede any location in said local packet stream at which one of said plurality of update packets is to be inserted;
(b) supplying, to said application logic, a first plurality of undo records, each of said first plurality of undo records having previously been elicited by one of a second plurality of local packets, each of said second plurality of local packets being after said overwrite point in said local packet stream;
(c) executing a merge operation, said merge operation interleaving said plurality of update packets amongst said second plurality of local packets, said merge operation arranging packets in order of increasing packet timestamp, said merge operation eliminating duplicate packets, said merge operation resulting in an updated local packet stream comprising a third plurality of local packets;
(d) supplying, to said application logic, a fourth plurality of local packets, each of said fourth plurality of local packets being one of said third plurality of local packets, each of said fourth plurality of local packets being after said overwrite point in said updated local packet stream;
(e) obtaining, from said application logic, a second plurality of undo records, each of said second plurality of undo records having been elicited by one of said fourth plurality of local packets.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of a computer-implemented method for eventually-consistent data stream consolidation comprises associating an application-generated undo record with each packet and supplying undo records to the application in order to rewind the application state prior to effecting a merge operation on the packet stream. Other embodiments are described.
10 Citations
17 Claims
-
1. A computer-implemented method for updating the state of an application logic to reflect a plurality of update packets entering a local packet stream, each of said plurality of update packets having a packet timestamp, said local packet stream comprising a first plurality of local packets, each of said first plurality of local packets having a packet timestamp, the method comprising:
-
(a) calculating an overwrite point, said overwrite point calculated to precede any location in said local packet stream at which one of said plurality of update packets is to be inserted; (b) supplying, to said application logic, a first plurality of undo records, each of said first plurality of undo records having previously been elicited by one of a second plurality of local packets, each of said second plurality of local packets being after said overwrite point in said local packet stream; (c) executing a merge operation, said merge operation interleaving said plurality of update packets amongst said second plurality of local packets, said merge operation arranging packets in order of increasing packet timestamp, said merge operation eliminating duplicate packets, said merge operation resulting in an updated local packet stream comprising a third plurality of local packets; (d) supplying, to said application logic, a fourth plurality of local packets, each of said fourth plurality of local packets being one of said third plurality of local packets, each of said fourth plurality of local packets being after said overwrite point in said updated local packet stream; (e) obtaining, from said application logic, a second plurality of undo records, each of said second plurality of undo records having been elicited by one of said fourth plurality of local packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus for updating the state of an application logic to reflect a plurality of update packets entering a local packet stream, each of said plurality of update packets having a packet timestamp said local packet stream comprising a first plurality of local packets, each of said first plurality of local packets having a packet timestamp, said apparatus comprising:
-
(a) a CPU, said said CPU having at least one processor core; (b) a network interface, said network interface being communicatively connected to said CPU, said network interface having previously received said plurality of update packets from a remote computer; (c) a system memory, said system being communicatively connected to said CPU, said system memory storing a plurality of instructions, said plurality of instructions configuring said CPU for; (1) calculating an overwrite point, said overwrite point calculated to precede any location in said local packet stream at which one of said plurality of update packets is to be inserted; (2) supplying, to said application logic, a first plurality of undo records, each of said first plurality of undo records having previously been elicited by one of a second plurality of local packets, each of said second plurality of local packets being after said overwrite point in said local packet stream; (3) executing a merge operation, said merge operation interleaving said plurality of update packets amongst said second plurality of local packets, said merge operation arranging packets order of increasing packet timestamp, said merge operation eliminating duplicate packets said merge operation resulting in an updated local packet stream comprising a third plurality of local packets; (4) supplying, to said application logic, a fourth plurality of local packets, each of said fourth plurality of local packets being one of said third plurality of local packets each of said fourth plurality of local packets being after said overwrite point in said updated local packet stream; (5) obtaining, from said application logic, a second plurality of undo record each of said second plurality of undo records having been elicited by one of said fourth plurality of local packets. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification