IP Library › Granted Patent US 10,380,282
Granted Patent B2
US 10,380,282 · App. 16/054,135 · Granted Aug 13, 2019

Distributable and customizable load-balancing of data-associated computation via partitions and virtual processes

Inventors: Charles Micou (London, GB); Matthew John Reveley Lewis (London, GB); Michal Witkowski (London, GB)
Assignee: Improbable Worlds Ltd
G06F17/5009G06F9/4856G06F9/5061G06F9/5083G06F9/541
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,380,282
App. No.
16/054,135
Granted
Aug 13, 2019
Kind
B2
Abstract

Methods, systems, computer-readable media, and apparatuses for determining partitions and virtual processes in a simulation are presented. A plurality of partitions of a simulated world may be determined, and each partition may correspond to a different metric for entities in the simulated world. A plurality of virtual processes for the simulated world may also be determined. The system may assign a different virtual process to each partition. An indication of the partitions may be sent to one or more partition enforcer services, and an indication of the virtual processes may be sent to a virtual process manager.

Claims (76)

1. An apparatus comprising:

one or more computer processor controlling some operations of the apparatus; and

memory storing computer-executable instructions that, when executed by the one or more computer processor, cause the apparatus to:

determine a plurality of partitions of a simulated world, wherein each partition, of the plurality of partitions, corresponds to a different metric, of a plurality of metrics, for one or more of entities in the simulated world or components of the entities in the simulated world;

determine a plurality of virtual processes for the simulated world;

assign, to each partition of the plurality of partitions, a different virtual process of the plurality of virtual processes;

send, to one or more partition enforcer services, an indication of the plurality of partitions and an assignment for each partition of the plurality of partitions; and

send, to a virtual process manager, an indication of the plurality of virtual processes.

2. The apparatus of claim 1 , wherein:

the plurality of partitions of the simulated world comprise a first partition and a second partition,

the plurality of metrics comprise a first bounded region of the simulated world and a second bounded region of the simulated world,

the first bounded region of the simulated world is different from the second bounded region of the simulated world,

the first partition corresponds to entities in the first bounded region of the simulated world,

the second partition corresponds to entities in the second bounded region of the simulated world, and

entities in the simulated world are capable of moving between different bounded regions of the simulated world.

3. The apparatus of claim 2 , wherein:

the plurality of partitions of the simulated world comprise a third partition,

the plurality of metrics comprise a component type, and

the third partition corresponds to entities having the component type.

4. The apparatus of claim 1 , wherein the virtual process manager is configured to start or stop virtual processes in a virtual process layer based on data received from the apparatus.

5. The apparatus of claim 1 , wherein the plurality of virtual processes comprise a plurality of virtual workers, and wherein the memory stores computer-executable instructions that, when executed by the one or more computer processor, cause the apparatus to:

receive, from an external computing device, a request to replace a first virtual worker, of the plurality of virtual workers, with an external virtual worker running on the external computing device;

send, to a worker layer, a request to disconnect the first virtual worker from a bridge in a bridge layer; and

connect the external virtual worker to the bridge in the bridge layer to replace the first virtual worker.

6. The apparatus of claim 1 , wherein the memory stores computer-executable instructions that, when executed by the one or more computer processor, cause the apparatus to:

receive, from a configuration database, data indicative of configuration data for the simulated world; and

receive, from an external services database, external data,

wherein determining the plurality of partitions of the simulated world is based on the configuration data and the external data.

7. The apparatus of claim 1 , wherein a first partition, of the plurality of partitions, overlaps a second partition of the plurality of partitions.

8. The apparatus of claim 1 , wherein a first partition, of the plurality of partitions, does not overlap a second partition of the plurality of partitions.

9. One or more non-transitory computer readable media storing computer executable instructions that, when executed by a computing device, cause the computing device to:

determining a plurality of partitions of a simulated world, wherein each partition, of the plurality of partitions, corresponds to a different metric, of a plurality of metrics, for one or more of entities in the simulated world or components of the entities in the simulated world;

determining a plurality of virtual processes for the simulated world;

assigning, to each partition of the plurality of partitions, a different virtual process of the plurality of virtual processes;

sending, to one or more partition enforcer services, an indication of the plurality of partitions and an assignment for each partition of the plurality of partitions; and

sending, to a virtual process manager, an indication of the plurality of virtual processes.

10. The one or more non-transitory computer readable media of claim 9 , wherein:

the plurality of partitions of the simulated world comprise a first partition and a second partition,

the plurality of metrics comprise a first bounded region of the simulated world and a second bounded region of the simulated world,

the first bounded region of the simulated world is different from the second bounded region of the simulated world,

the first partition corresponds to entities in the first bounded region of the simulated world,

the second partition corresponds to entities in the second bounded region of the simulated world, and

entities in the simulated world are capable of moving between different bounded regions of the simulated world.

11. The one or more non-transitory computer readable media of claim 10 , wherein:

the plurality of partitions of the simulated world comprise a third partition,

the plurality of metrics comprise a component type, and

the third partition corresponds to entities having the component type.

12. The one or more non-transitory computer readable media of claim 9 , wherein the virtual process manager is configured to start or stop virtual processes in a virtual process layer based on data received from the computing device.

13. The one or more non-transitory computer readable media of claim 9 , wherein the plurality of virtual processes comprise a plurality of virtual workers, and wherein the one or more non-transitory computer readable media stores computer executable instructions that, when executed by the computing device, cause the computing device to:

receiving, from an external computing device, a request to replace a first virtual worker, of the plurality of virtual workers, with an external virtual worker running on the external computing device;

sending, to a worker layer, a request to disconnect the first virtual worker from a bridge in a bridge layer; and

connecting the external virtual worker to the bridge in the bridge layer to replace the first virtual worker.

14. The one or more non-transitory computer readable media of claim 9 , storing computer executable instructions that, when executed by the computing device, cause the computing device to:

receiving, from a configuration database, data indicative of configuration data for the simulated world; and

receiving, from an external services database, external data,

wherein determining the plurality of partitions of the simulated world is based on the configuration data and the external data.

15. The one or more non-transitory computer readable media of claim 9 , wherein a first partition, of the plurality of partitions, overlaps a second partition of the plurality of partitions.

16. The one or more non-transitory computer readable media of claim 9 , wherein a first partition, of the plurality of partitions, does not overlap a second partition of the plurality of partitions.

17. A method comprising:

determining, by a computing device, a plurality of partitions of a simulated world, wherein each partition, of the plurality of partitions, corresponds to a different metric, of a plurality of metrics, for one or more of entities in the simulated world or components of the entities in the simulated world;

determining, by the computing device, a plurality of virtual processes for the simulated world;

assigning, by the computing device and to each partition of the plurality of partitions, a different virtual process of the plurality of virtual processes;

sending, to one or more partition enforcer services, an indication of the plurality of partitions and an assignment for each partition of the plurality of partitions; and

sending, to a virtual process manager, an indication of the plurality of virtual processes.

18. The method of claim 17 , wherein:

the plurality of partitions of the simulated world comprise a first partition and a second partition,

the plurality of metrics comprise a first bounded region of the simulated world and a second bounded region of the simulated world,

the first bounded region of the simulated world is different from the second bounded region of the simulated world,

the first partition corresponds to entities in the first bounded region of the simulated world,

the second partition corresponds to entities in the second bounded region of the simulated world, and

entities in the simulated world are capable of moving between different bounded regions of the simulated world.

19. The method of claim 18 , wherein:

the plurality of partitions of the simulated world comprise a third partition,

the plurality of metrics comprise a component type, and

the third partition corresponds to entities having the component type.

20. The method of claim 17 , wherein the virtual process manager is configured to start or stop virtual processes in a virtual process layer based on data received from the computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2018
From: MICOU, CHARLES; LEWIS, MATTHEW JOHN REVELEY; WITKOWSKI, MICHAL
To: IMPROBABLE WORLDS LIMITED
Reel/Frame 046750/0003 →
Continuity (4)
Continuation In Part 16008125 · Jun 14, 2018
Continuation 15361874 · Nov 28, 2016
Provisional Application 62378715 · Aug 24, 2016
Related Publication 20180341728A1 · Nov 29, 2018