Hierarchical Aggregators for Scalable Simulation Data Propagation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional simulation systems struggle to scale and handle large numbers of objects in real-time, leading to overloading, data loss, and difficulties in fault tolerance and stateful migration, especially when simulating complex scenarios like cities with numerous entities.

Innovation Solution

A distributed and persistent simulation system that uses hierarchical aggregators for load balancing and connection migrations, allowing nodes to dynamically change subscriptions and aggregate queries to optimize data distribution and reduce network traffic, while also managing resources to prevent overload.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single simulation engine is used to simulate the entire simulated world, then correctness and graphical fidelity can be maintained, but the system cannot scale to support very large numbers of objects and real-time interaction

Engineering Contradiction:
Improvesimulation correctnessVSAvoidscaling capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The simulation system is divided into multiple simulation engines distributed across different computing resources, each responsible for specific regions or types of simulated objects. This segmentation allows the system to scale to large numbers of objects while maintaining simulation correctness through coordinated operation of multiple engine instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A gateway device acts as an intermediary between clients and multiple simulation engines, managing connections and coordinating data flow. This mediator enables clients to interact with the distributed simulation system as if it were a single unified system, preserving correctness while enabling scaling through the underlying distributed architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If computing resources are statically assigned to a portion of the simulated world, then initial load distribution is simplified, but simulated objects may congregate on a very small region causing computing resources to be overloaded

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidload balance stability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system implements dynamic load balancing where the gateway device monitors subscription patterns and migrates clients between simulation engines based on current load conditions. This dynamic adjustment prevents resource overload when objects congregate in specific regions while maintaining relatively simple static initial assignments.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The gateway device continuously monitors the distribution of simulated objects and client subscriptions, using this feedback information to make real-time decisions about client migration. This feedback mechanism detects and responds to congestion conditions, redistributing load to prevent overload and maintain system reliability.

Inventive Principle:
Principle #23Feedback

3Device complexity

If state information of the simulation for a region is concentrated on a single computing resource, then data access is simplified, but fault tolerance or recovery from unexpected termination becomes difficult and time-consuming

Engineering Contradiction:
Improvedata access complexityVSAvoidfault tolerance
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system distributes state information across multiple computing resources, with each simulation engine maintaining state for its assigned region or object types. This distribution improves fault tolerance since the failure of one engine does not lose the entire simulation state, while the gateway maintains simplified access by managing client connections to appropriate engines.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The gateway device serves as an intermediary that manages client connections to multiple simulation engines, abstracting the distributed state storage from clients. This allows clients to access simulation data through the gateway without needing to know the underlying distribution, maintaining simple access patterns while benefiting from the fault tolerance of distributed storage.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Device complexity

If the simulation system limits stateful migrations to only players, then system complexity is reduced, but the ability to support stateful migration of other simulated objects across region boundaries is restricted

Engineering Contradiction:
Improvemigration management complexityVSAvoidobject migration capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The gateway device implements a universal client migration mechanism that can handle stateful migration for any type of simulated object, not just players. This multi-functional approach maintains manageable system complexity by using a single migration framework for all object types while significantly increasing adaptability to support diverse migration scenarios across region boundaries.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10643010B2Scalable simulation system with scalable data propagation
Publication Date: 2020.05.05 IMPROBABLE WORLDS LTD
  • US10643010B2 patent drawing
  • US10643010B2 patent drawing
  • US10643010B2 patent drawing

AI summary

Methods, systems, computer-readable media, and apparatuses for grouping bridges in a simulation are presented. In some examples, grouping bridges may result in more efficient usage of data connections in a simulation and less duplicative data being sent during the simulation. The simulation may be performed by receiving an indication of a streaming query for each worker of a plurality of workers in a worker layer. A plurality of bridges in a bridge layer may be run, and the plurality of bridges may be configured to facilitate data communications between the plurality of workers in the worker layer and one or more databases in a database layer. Each worker of the plurality of workers may be assigned to a different bridge of the plurality of bridges. Based on the streaming query for each worker, the plurality of bridges may be grouped into different groups of bridges.