Distributed System Process Scheduling via Breakpoint Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed systems in cloud infrastructure face challenges in testing due to non-deterministic execution ordering, making it difficult to reproduce errors and debug issues effectively.

Innovation Solution

A control server manages processes in a distributed system by scheduling them using a scheduling algorithm that utilizes breakpoints, allowing for deterministic serialization of processes and recreation of error conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processes execute in parallel in a distributed system, then system productivity is improved, but execution ordering becomes non-deterministic making debugging difficult

Engineering Contradiction:
Improvesystem throughputVSAvoiderror reproduction difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system performs preliminary actions by inserting breakpoints into processes before execution and recording their expected execution order. This allows the system to prepare test scenarios in advance where the execution order can be controlled and predetermined, enabling deterministic error reproduction while maintaining parallel execution capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A control server acts as an intermediary between the distributed processes and the testing framework. It receives breakpoint information from processes, determines the execution order, and coordinates the testing process. This intermediary enables the system to maintain parallel execution for productivity while introducing deterministic ordering for debugging purposes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual testing is performed to debug distributed systems, then testing coverage can be increased, but time consumption and complexity increase

Engineering Contradiction:
Improvetesting coverageVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements self-service by automatically inserting breakpoints into processes and recording their execution information without requiring manual intervention. The control server autonomously collects breakpoint data from multiple processes, determines execution order, and generates test results, significantly reducing the time and effort required for debugging while maintaining comprehensive testing coverage.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical debugging processes with an automated control mechanism. Instead of developers manually tracing through code and coordinating process execution, the control server automatically manages breakpoint insertion, process coordination, and error reproduction, transforming a labor-intensive manual process into an automated system.

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

3Reliability

If physical execution ordering is controlled to reproduce errors, then error reproduction becomes deterministic, but system complexity and control overhead increase

Engineering Contradiction:
Improveerror reproduction determinismVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system changes the parameter of process execution from completely autonomous parallel execution to controlled execution based on breakpoint information. By introducing a new parameter (breakpoint order) that determines execution sequence, the system achieves deterministic error reproduction while keeping the control mechanism relatively simple - processes only need to report their breakpoint status to the control server.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20250138840A1Testing for distributed systems
Publication Date: 2025.05.01 SALESFORCE INC
  • US20250138840A1 patent drawing
  • US20250138840A1 patent drawing
  • US20250138840A1 patent drawing

AI summary

Techniques are disclosed relating to controlling the ordering of a set of processes executing as part of a distributed computing system on different execution nodes of a computer system. A computer system may track status information relating to execution of the set of processes. The computer system receives a call from a process indicating that the process has reached a code breakpoint. The computer system updates the status information to indicate that the process is in a blocked state and is waiting to be scheduled by the control server. The computer system deterministically selects, from a group of the set of processes that are in the blocked state, a particular process executing on a particular execution node to be executed next in a serial execution order. The computer system responds to a call from the particular process by indicating that the particular process is to unblock and resume execution.