Reducing latency when synchronizing access to a multi-user database over a network
First Claim
1. A method of reducing latency in accessing in a master database stored in a node of a network having a plurality of nodes including a first node and a second node, the first node including a first event server and the second node including a second event server, the first event server and the second event server each having a status as a master event server or a slave event server with respect to network events, the event server having the status of master event server sequencing node commands to the master database, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the method comprising the steps of:
- (a) changing the status of the first event server from master event server to slave event server based on a network latency criterion; and
(b) assigning the status of master event server to the second event server based on the network latency criterion.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for reducing network latency during execution of a multiple-player game across a computer network are provided. A master database represents a world model for the game, and a master event server sequences user inputs, or events, for updating the master database. The master event server and the master database are initially located on a particular node in the network. Every other node that is used by a player in the game has a slave event server and a slave database. Slave event servers are responsible for updating their local slave database, sending events from their local node to the master event server, and forwarding events to and from other slave servers. In the method, a determination is made of which player in the game has a role in the game requiring the least latency of any role and which node in the network is being used by that player. The master event server and the master database are then migrated to that node by changing the status of the slave server of that node to that of master event server. Once the master event server has been migrated, other slave servers can establish a direct connection with the new master event server.
287 Citations
59 Claims
-
1. A method of reducing latency in accessing in a master database stored in a node of a network having a plurality of nodes including a first node and a second node, the first node including a first event server and the second node including a second event server, the first event server and the second event server each having a status as a master event server or a slave event server with respect to network events, the event server having the status of master event server sequencing node commands to the master database, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the method comprising the steps of:
-
(a) changing the status of the first event server from master event server to slave event server based on a network latency criterion; and (b) assigning the status of master event server to the second event server based on the network latency criterion. - View Dependent Claims (2)
-
-
3. A method of reducing latency in accessing in a master database stored in a node of a network having a plurality of nodes, the plurality of nodes including a local node and a plurality of remote nodes, a first one of the remote nodes having a master database and a master event server for sequencing commands to the master database, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and only one database in the network can have the status of master database, and wherein each node in the network processes events received from the master event server differently than events received from slave event servers, the method comprising the steps of:
-
(a) migrating the master database from the first remote node to the local node; (b) migrating the master event server from the first remote node to the local node; and (c) inputting slave events from one or more remote nodes to the migrated master event server for execution by the local node against the migrated master database. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of implementing a machine executable game for a plurality of players, the game being playable over a network including a first node in communication with a plurality of other nodes, the game being generated based on a master database and a master event server, the master event server receiving a plurality of slave events and sequencing the received slave events for updating the master database, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the master event server and the master database being initially stored in the first node, each player using one of said other nodes to perform one of a plurality of roles in the game, the method comprising the steps of:
-
(a) determining one of said other nodes to which the master event server will be migrated based on a network latency criterion associated with at least one of the roles; and (b) migrating the master event server to said one of said other nodes. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of reducing latency in a network during execution of computer program code embodying a multiple-player game, the network having a first node and a second node coupled to a third node, a first player of the multi-player game participating in the game using the first node and a second player of the multi-player game participating in the game using the second node, the game being characterized by a master event server receiving and storing user inputs and a database representing a game environment in response to the user inputs, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the master event server and the database being initially stored on the third node, the method comprising the steps of:
-
(a) determining which of the players has a role in the game requiring a lowest level of latency; (b) identifying which one of the first node and the second node is used by the player having the role requiring the lowest level of latency; and (c) migrating the master event server to said one of the first node and the second node that is used by the player having the role requiring the lowest level of latency. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. An apparatus for reducing latency in a network having a plurality of processing systems, the apparatus comprising:
-
(a) a first processing system generating a first portion of a multi-player game, the first processing system having stored therein an event server, the event server receiving and storing user inputs for controlling the game, the first processing system further having stored therein a database representing a game environment responsive to the user inputs; (b) a second processing system coupled to the first processing system, the second processing system generating a second portion of the multi-player game operable by a first player of the multi-player game, the first player performing a first role in the multi-player game, the first role having a first latency requirement; (c) a third processing system coupled to the first processing system, the third processing system generating a third portion of the multi-player game operable by a second player of the multi-player game, the second player performing a second role in the multi-player game, the second role having a second latency requirement; and (d) the first processing system evaluating the first latency requirement and the second latency requirement and, in response, migrating the event server to either the second memory or the third memory according to a relationship between the first latency requirement and the second latency requirement. - View Dependent Claims (32, 33, 34, 35, 36, 37)
-
-
38. An apparatus for reducing latency in accessing a database in a network having a plurality of nodes, the plurality of nodes including a local node and a plurality of remote nodes, at least one of the remote nodes including the database and a master event server for sequencing commands for the database, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the apparatus comprising:
-
(a) means for migrating a master copy of the database to the local node; (b) means for migrating the master event server to the local node; and (c) means for forwarding slave events from the remote nodes to the migrated master event server for sequencing the forwarded slave events for execution by the local node against the copy of the database migrated to the local node. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A machine-readable program storage medium tangibly embodying a program of instructions, the instructions executable by a server computer to perform method steps for implementing a game using a computer network, the computer network including the server computer and a plurality of client computers, the game having a plurality of players, each player having a different role in the game by using a different one of said client computers, the game characterized by a master event server storing user inputs for updating a master database, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, the method steps comprising the steps of:
-
(a) providing a latency criterion for at least one of the roles in the game; (b) determining, for at least one of the roles having a latency criterion, which of the client computers in the network is associated with said role; (c) identifying a first one of the client computers that is used by a player having the role with the most restrictive latency criterion of all the roles; and (d) migrating the master event server from the server computer to the first one of the client computers. - View Dependent Claims (51, 52, 53, 54, 55)
-
-
56. A method of communicating events in a network including a plurality of nodes, each network node having a status as a master event server or a slave event server with respect to network events, wherein at any given time only one node in the network can have the status of master event server and each node in the network processes events received from the master event server differently than events received from slave event servers, one of the plurality of nodes having a master database and the master event server stored therein, the master event server sequencing slave commands to the master database, the method comprising the steps of:
-
(a) inputting to a first one of the nodes a slave event received from a second one of the remote nodes; (b) determining whether the master event server resides within the first one of the nodes; (c) if the master event server does not reside within the first one of the nodes, identifying a third one of the plurality of nodes in which the master event server resides and forwarding the slave event to the master event server in the third one of the nodes. - View Dependent Claims (57, 58, 59)
-
Specification