# US 10,455,041 B2 · Stateful service with partial replication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,455,041 B2
- Document ID: US10455041B2
- Status: Granted
- Kind: B2
- Application number: 14/184,738
- Filed: 2014-02-20
- Published: 2015-08-20
- Granted: 2019-10-22
- Earliest claimed: 2014-02-20
- Assignees: Rovio Entertainment Ltd
- Applicants: Rovio Entertainment Ltd.
- Inventors: Ankit Nigam; Petri Seppänen; Kai Cao; Antti Virtanen
- Web page: https://patentgrep.com/patent/US10455041B2

## CPC

- H04L 67/563: Data redirection of data network streams
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5088: {involving task migration}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to an example embodiment of the present invention, there is provided an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to cause at least one first node to be provided with software and initialized with data, cause the at least one first node to be set to a slave mode, cause a load balancer to be updated with information concerning the at least one first node, and terminate at least one second node, and in connection with terminating the at least one second node, set the at least one first node to an active mode.

## Claims

### Claim 1

An apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to:
cause at least one first node to be provided with software and initialized with data, wherein the data is comprised within a message queue of at least one second node for duplicating in the at least first node any one of an application state or an actor state in the at least one second node, but not duplicating the at least one second node's entire data, wherein the message queue comprises a master message queue and a slave message queue that are similar to each other, and wherein the message queue comprises messages arriving at the at least one second node via a transaction node before the at least one second node is terminated, and wherein the messages are retained at the transaction node in the message queue in connection with forwarding the messages to the at least one second node;
cause the at least one second node to be set to a standby mode, wherein the at least one second node in the standby mode subscribes to the master message queue, and wherein the at least one second node in the standby mode does not send any acknowledgment messages;
cause the at least one first node to be set to a slave mode after being initialized with the data, wherein the at least one first node in the slave mode subscribes to the slave message queue, and wherein the at least one first node in the slave mode does not send any acknowledgement messages;
cause a load balancer to be updated with information concerning the at least one first node in the slave mode; and
terminate the at least one second node, and set the at least one first node to an active mode after terminating the at least one second node, wherein the at least one second node in the active mode subscribes to the master message queue, and wherein the at least one second node in the active mode sends acknowledgment messages.

### Claim 2 (depends on 1)

An apparatus according to claim 1, wherein the data comprises data from the at least one second node.

### Claim 3 (depends on 1)

An apparatus according to claim 1, wherein at least one of the at least one first node and the at least one second node comprises a virtual node.

### Claim 4 (depends on 1)

An apparatus according to claim 1, wherein the software provided to the at least one first node comprises an updated version of software running in the at least one second node.

### Claim 5

A method, comprising:
causing at least one first node to be provided with software and initialized with data, wherein the data is comprised within a message queue for duplicating in the at least first node any one of an application state or an actor state in at least one second node, but not duplicating the at least one second node's entire data, wherein the message queue comprises a master message queue and a slave message queue that are similar to each other, wherein the message queue comprises messages arriving at the at least one second node via a transaction node before the at least one second node is terminated, and wherein the messages are retained at the transaction node in the message queue in connection with forwarding the messages to the at least one second node;
causing the at least one second node to be set to a standby mode, wherein the at least one second node in the standby mode subscribes to the master message queue, and wherein the at least one second node in the standby mode does not send any acknowledgment messages;
causing the at least one first node to be set to a slave mode after being initialized with the data, wherein the at least one first node in the slave mode subscribes to the slave message queue, and wherein the at least one first node in the slave mode does not send any acknowledgement messages;
causing a load balancer to be updated with information concerning the at least one first node in the slave mode; and
terminating the at least one second node, and setting the at least one first node to an active mode after terminating the at least one second node, wherein the at least one second node in the active mode subscribes to the master message queue, and wherein the at least one second node in the active mode sends acknowledgment messages.

### Claim 6 (depends on 5)

A method according to claim 5, wherein the data comprises data from the at least one second node.

### Claim 7 (depends on 5)

A method according to claim 5, wherein at least one of the at least one first node and the at least one second node comprises a virtual node.

### Claim 8 (depends on 5)

A method according to claim 5, wherein the software provided to the at least one first node comprises an updated version of software running in the at least one second node.

### Claim 9

An apparatus, comprising:
means for causing at least one first node to be provided with software and initialized with data, wherein the data is comprised within a message queue for duplicating in the at least first node any one of an application state or an actor state in at least one second node, but not duplicating the at least one second node's entire data, wherein the message queue comprises a master message queue and a slave message queue that are similar to each other, wherein the message queue comprises messages arriving at the at least one second node via a transaction node before the at least one second node is terminated, and wherein the messages are retained at the transaction node in the message queue in connection with forwarding the messages to the at least one second node;
means for causing the at least one second node to be set to a standby mode, wherein the at least one second node in the standby mode subscribes to the master message queue, and wherein the at least one second node in the standby mode does not send any acknowledgment messages;
means for causing the at least one first node to be set to a slave mode after being initialized with the data, wherein the at least one first node in the slave mode subscribes to the slave message queue, and wherein the at least one first node in the slave mode does not send any acknowledgement messages;
means for causing a load balancer to be updated with information concerning the at least one first node in the slave mode;
means for terminating the at least one second node; and
means for setting the at least one first node to an active mode after terminating the at least one second node, wherein the at least one second node in the active mode subscribes to the master message queue, and wherein the at least one second node in the active mode sends acknowledgment messages.

### Claim 10

A non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, at least:
causes at least one first node to be provided with software and initialized with data, wherein the data is comprised within a message queue for duplicating in the at least first node any one of an application state or an actor state in at least one second node, but not duplicating the at least one second node's entire data, wherein the message queue comprises a master message queue and a slave message queue that are similar to each other, wherein the message queue comprises messages arriving at the at least one second node before the at least one second node via a transaction node is terminated, and wherein the messages in the message queue are retained at the transaction node in connection with forwarding the messages to the at least one second node;
causes the at least one second node to be set to a standby mode, wherein the at least one second node in the standby mode subscribes to the master message queue, and wherein the at least one second node in the standby mode does not send any acknowledgment messages;
causes the at least one first node to be set to a slave mode after being initialized with the data, wherein the at least one first node in the slave mode subscribes to the slave message queue, and wherein the at least one first node in the slave mode does not send any acknowledgement messages;
causes a load balancer to be updated with information concerning the at least one first node in the slave mode; and
terminates at least one second node, and sets the at least one first node to an active mode after terminating the at least one second node, wherein the at least one second node in the active mode subscribes to the master message queue, and wherein the at least one second node in the active mode sends acknowledgment messages.
