Systems, methods, and articles of manufacture provide for fault-tolerant timers, such as in an online gaming environment. Fault-tolerant timers may, for example, be provided by implementing specific methods for expiring a timer, such as by utilizing broadcast notices and distributed locks.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method of providing fault-tolerant, elastically scalable timers utilizing distributed timer system nodes, by expiring a timer having contextual information and established in response to a request from a client device, comprising: broadcasting, by a primary node and to a plurality of secondary nodes, a notice to check for expired timers; identifying, by at least a first one of the secondary nodes and in response to the broadcasting, an expired timer; establishing, by the at least first one of the secondary nodes, a distributed lock for the expired timer; removing, by the at least first one of the secondary nodes and from at least a second one of the secondary nodes, the expired timer associated with the distributed lock; releasing, by the at least first one of the secondary nodes, the distributed lock on the expired timer; and notifying, utilizing the contextual information of the expired timer, the client device of the expiration of the expired timer.
A fault-tolerant and scalable timer system, useful in environments like online gaming, utilizes multiple distributed timer nodes. A primary node broadcasts a message to secondary nodes, instructing them to check for timers that have expired. If a secondary node finds an expired timer, which has contextual information associated with it and was created upon a client's request, it obtains a distributed lock for that timer. After securing the lock, the secondary node removes the timer from other secondary nodes in the system. It then releases the lock and uses the timer's contextual information to notify the original client that the timer has expired.
2. The method of claim 1 , wherein the broadcasting of the notice to check for the expired timer to the plurality of secondary nodes includes sending a message to each of the secondary nodes.
In the fault-tolerant timer system where a primary node broadcasts to secondary nodes to check for expired timers, the broadcast mechanism involves the primary node sending a distinct message directly to each of the secondary nodes. This ensures every secondary node receives the notification to begin its process of identifying expired timers, potentially establishing a distributed lock, and notifying the client of the timer's expiration, as described previously. This message-per-node approach is part of the system's approach to expiring timers having contextual information and established in response to a request from a client device.
3. The method of claim 1 , wherein establishing the distributed lock for the expired timer includes creating or obtaining the distributed lock.
In the fault-tolerant timer system's process of handling expired timers, where a secondary node identifies an expired timer and then establishes a distributed lock, establishing the distributed lock for the expired timer involves either creating a new lock if one doesn't already exist, or obtaining an existing lock if one is already in place for that particular timer. This lock is part of the process of broadcasting a notice to check for expired timers to a plurality of secondary nodes and ultimately notifying the client device of the expiration of the timer.
4. The method of claim 1 , wherein the at least first one of the secondary nodes comprises a plurality of the nodes from the plurality of secondary nodes.
In the fault-tolerant timer system where a primary node broadcasts a notice to check for expired timers to a plurality of secondary nodes, the process of identifying, locking, and removing an expired timer isn't limited to just one secondary node. Instead, multiple secondary nodes can simultaneously participate in this process. Therefore, the "at least first one of the secondary nodes" performing these actions can actually be a group of secondary nodes working concurrently to manage expired timers across the distributed system before notifying the client device of the expiration of the expired timer, utilizing the contextual information.
5. The method of claim 1 , wherein the plurality of secondary nodes are adapted to verify that the expired timers do not have an existing lock before attempting to remove the expired timer.
The fault-tolerant timer system, designed with multiple secondary nodes that check for expired timers, incorporates a safety mechanism. Before a secondary node attempts to remove an expired timer from another node, it first verifies that the timer doesn't already have an existing distributed lock associated with it. This prevents race conditions and ensures that only one secondary node is actively managing a specific expired timer at any given time, maintaining data consistency across the distributed system and that the client device is notified appropriately of timer expirations.
6. The method of claim 1 wherein the broadcasting is further conducted by one or more of the secondary nodes.
In the fault-tolerant timer system utilizing primary and secondary nodes, the responsibility for broadcasting the notice to check for expired timers isn't solely limited to the primary node. One or more of the secondary nodes can also participate in broadcasting these notices. This enhances the system's fault tolerance, as the timer expiration process can continue even if the primary node fails and ensures that all secondary nodes are appropriately checking and can remove timers having contextual information and established in response to a request from a client device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
November 21, 2013
August 15, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.