US 12,323,378 B2
Watermark-based message queue
Yi Cui, Palo Alto, CA (US); Subir Jhanb, Cupertino, CA (US); and Thomas R. Kennedy, III, Alviso, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Jul. 14, 2023, as Appl. No. 18/352,689.
Application 18/352,689 is a continuation of application No. 17/187,866, filed on Feb. 28, 2021, granted, now 11,736,433.
Application 17/187,866 is a continuation of application No. 16/297,033, filed on Mar. 8, 2019, granted, now 10,951,572, issued on Mar. 16, 2021.
Application 16/297,033 is a continuation of application No. 14/537,075, filed on Nov. 10, 2014, granted, now 10,230,670, issued on Mar. 12, 2019.
Prior Publication US 2023/0362122 A1, Nov. 9, 2023
Int. Cl. H04L 51/23 (2022.01); G06F 9/54 (2006.01)
CPC H04L 51/23 (2022.05) [G06F 9/546 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method when executed by data processing hardware causes the data processing hardware to perform operations comprising:
receiving, at a message queue of a message queue system, a plurality of messages, each message of the plurality of messages associated with a respective index value indicating an order the respective message was received;
establishing a first connection session with the message queue;
after establishing the first connection session with the message queue, processing the plurality of messages in an order that the plurality of messages were received;
determining that the first connection session has ended prior to processing each of the plurality of messages in the message queue;
based on determining that the first connection session has ended, identifying an oldest message remaining in the message queue after the first connection session has ended;
determining a watermark based on a buffered timestamp of the oldest message remaining in the message queue, the buffered timestamp indicating a fixed amount of time after the oldest message was received at the message queue;
determining a starting message from the plurality of messages based on the watermark, the starting message corresponding to the oldest message of the plurality of messages that was not processed prior to an end of the first connection session;
determining an identifier for the starting message, the identifier comprising the respective index value of the starting message;
establishing a second connection session with the message queue; and
in response to establishing the second connection session with the message queue:
identifying the starting message using the identifier; and
processing, from the starting message, the plurality of messages in the order that the plurality of messages were received.