US 12,242,900 B2
Event synchronization in a clustered environment using a distributed timer
Kunal Anand Ekawde, Bengaluru (IN); Abhay Balappanavar, Gadag (IN); Michael Anthony Brown, McKinney, TX (US); Ronald Mark Parker, Manchester, MA (US); Anupama Raghavan, Acton, MA (US); Dhananjaya Eadala, Acton, MA (US); Rama Krishna Prasad Mangalaparthi, Hyderabad (IN); and Mark Gordon Libby, Groton, MA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed on Aug. 30, 2021, as Appl. No. 17/460,797.
Prior Publication US 2022/0382596 A1, Dec. 1, 2022
Int. Cl. G06F 9/50 (2006.01); H04L 67/62 (2022.01)
CPC G06F 9/5077 (2013.01) [G06F 9/5038 (2013.01); H04L 67/62 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A method for providing, by a central timer service, an event timer for event synchronization across multiple clusters in a cloud computing environment, the cloud computing environment comprising a plurality of computing devices executing a plurality of Kubernetes clusters comprising one or more containers, the event timer configured to provide event synchronization on behalf of microservice instances executing in the cloud computing environment, the method comprising:
receiving, from a first microservice instance, a request for an event timer for a timed event, the request defining a duration for the event timer;
in response to the request, determining whether the requested event timer for the timed event has been started for a second microservice instance;
in response to determining that the requested event timer for the timed event has been started, sending a state of the requested event timer for the timed event to the first microservice instance;
in response to determining that the requested event timer has not been started, instantiating the requested event timer for the timed event and storing a state of the instantiated event timer in a database, wherein the instantiated event timer for the timed event executes independently of the first and second microservice instances; and
in response to an expiration of the event timer, generating a single callback for processing of the event regardless of a number of microservice instances that have requested the event timer for the timed event;
wherein only one event timer for the timed event is generated for the number of microservice instances that have requested the event timer for the timed event; and
wherein the event timer is globally available for multiple pods of the plurality of Kubernetes clusters.