Process State Serialization for Distributed Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently managing session state during client-server interactions, particularly in request/response frameworks, where server-side processes may idle waiting for input, leading to resource consumption issues and limitations in suspending execution without data loss.

Innovation Solution

A method is introduced to serialize the execution state of a process, including session state, into a byte string, allowing for suspension and subsequent deserialization to resume execution on a different device, enabling flexible resource management and load balancing across distributed systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If server-side processes are maintained as active and executing processes while waiting for input from client devices, then the processes can immediately respond when input is received, but computing resources are consumed unnecessarily during idle periods

Engineering Contradiction:
Improveresponse timeVSAvoidcomputing resource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system dynamically transitions server-side processes between active and suspended states based on workload conditions. When no client input is pending, processes are suspended to free resources; when input arrives, processes are restored to continue execution, optimizing the balance between response time and resource consumption

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The execution state of server-side processes is serialized to a byte string representation, allowing the process to be suspended and later restored with its state intact. This parameter transformation enables the process to preserve its ready-to-execute state while consuming minimal resources during suspension

Inventive Principle:
Principle #35Parameter changes

2Use of energy by moving object

If server-side processes are suspended to free computing resources, then resource consumption is reduced during idle periods, but the ability to maintain session state and resume execution seamlessly is challenged

Engineering Contradiction:
Improvecomputing resource consumptionVSAvoidsession state integrity
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The execution state of the server-side process is copied into a serialized byte string representation before suspension. This copy contains all necessary session state information, allowing the process to be restored exactly as it was before suspension, maintaining complete session state integrity while freeing computing resources

Inventive Principle:
Principle #26Copying

Solution Approach 2:

Before suspending the server-side process, the system performs the preliminary action of serializing the execution state to a byte string. This ensures that all session state is properly captured and preserved before the process enters the low-resource suspended state, guaranteeing reliability upon restoration

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple client devices are served by multiple server-side processes, then load distribution is improved, but managing session state across process suspensions and restorations becomes more complex

Engineering Contradiction:
Improveload distribution efficiencyVSAvoidsession state management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The session state management is segmented and encapsulated within each server-side process's execution state, which is serialized as a byte string. Each process independently manages its own client sessions through this serialization mechanism, simplifying multi-process state management while maintaining load distribution efficiency across multiple server-side processes

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11321090B2Serializing and/or deserializing programs with serializable state
Publication Date: 2022.05.03 POSH DEV LLC
  • US11321090B2 patent drawing
  • US11321090B2 patent drawing
  • US11321090B2 patent drawing

AI summary

Described herein are techniques for suspending execution of a process, including through serializing execution state of the process. Through serializing the execution state, the execution state can be converted to a byte string for output. In some embodiments, an executing process that has been suspended may be resumed, through deserializing the execution state. For example, a byte string that is a serialized execution state of a suspended process may be deserialized to generate one or more data objects for the execution state of the suspended process, and a process may be configured with the data objects resulting from the deserializing. By configuring the process with the data objects resulting from the deserializing, the process may take on the execution state of the suspended executing process and resume execution from the point of suspension. The process that may be suspended may be an instance of a request/response application.