Wrapped Message Actor Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The actor model restricts programs to single-threaded data access, making it difficult to implement transactional databases and limiting concurrency and parallelism, as it requires locking mechanisms that can lead to deadlocks.

Innovation Solution

A wrapped message system is introduced, allowing multiple actors to perform operations simultaneously by transmitting a message with a sorted list of recipient actors and an index, ensuring that each actor processes the message sequentially and only after the previous actor has completed, preventing deadlocks and allowing for smaller, more concurrent actors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the actor model is used to ensure thread-safe data manipulation without locks, then internal state manipulation safety is improved, but concurrency and parallelism are limited due to single-threaded execution per actor

Engineering Contradiction:
Improveinternal state manipulation safetyVSAvoidconcurrency and parallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the message handling process by introducing a sorted list of recipient actors with an index pointer. Each actor processes only its designated portion of the message at a specific time step, dividing the overall processing into manageable segments that can be executed in parallel across multiple actors while maintaining thread safety through the structured segmentation approach.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-sorting the list of recipient actors before message distribution. This pre-ordering enables each actor to know in advance its position in the processing sequence, allowing them to prepare and execute their portion of the message handling without requiring locks or synchronization during actual processing, thus improving both safety and concurrency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all data is placed in a single actor to enable transactional database operations, then data consistency is improved, but scaling is harmed as all data access becomes single-threaded

Engineering Contradiction:
Improvedata consistencyVSAvoidscaling capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments data access by distributing different portions of data to different actors, with each actor responsible for specific data segments. The sorted message distribution mechanism ensures that transactions can access data from multiple actors in a controlled sequence, maintaining consistency while enabling parallel access to different data segments, thus improving scaling capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to data access by using the sorted list index as a temporal ordering mechanism. Instead of accessing all data through a single thread, the system adds a time dimension to data access patterns, where actors process data segments in a predetermined sequence across multiple threads simultaneously, enabling both consistency and scaling.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If locking mechanisms are implemented on top of the Actor model to enable transactional databases, then transactional operations are improved, but deadlocks may occur and the benefits of the Actor model are negated

Engineering Contradiction:
Improvetransactional database capabilityVSAvoiddeadlock freedom
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent eliminates deadlocks by performing preliminary ordering of data access through the sorted recipient list. Since all actors know their predetermined position in the access sequence before execution begins, there is no possibility of circular wait conditions that cause deadlocks. This preliminary structuring enables transactional operations without requiring locking mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent substitutes the mechanical locking system with a logical ordering system. Instead of using locks to control access timing, the system uses a pre-established sorted sequence that naturally controls access order. This substitution replaces the complex lock management mechanism with a simpler, deadlock-free ordering approach that maintains transactional integrity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10768902B2Actor model programming
Publication Date: 2020.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10768902B2 patent drawing
  • US10768902B2 patent drawing

AI summary

A method of operating a computer according to an actor model, the method comprising: defining a plurality of actors, each taking form of a data structure comprising respective data and one or more respective functions for operating on the respective data; generating a wrapped message to be transmitted from a transmitting actor to multiple recipient actors, the wrapped message comprising at least one constituent message, a sorted list of the recipient actors, and an index indicating an entry in the list, the index initially being set to indicate the first recipient actor in the list; transmitting the wrapped message from the transmitting actor to the first recipient actor in the list; each of the recipient actors, except the last in the list, upon receiving the wrapped message, advancing the index and forwarding the wrapped message to the next actor in the list as indicated by the advanced index.