Cluster Debugging via Just-in-Time Debugger Activation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cluster computing systems lack effective debugging mechanisms, making it difficult for users to diagnose and analyze job failures, as they only receive generic failure notifications without detailed information about the cause of job crashes.

Innovation Solution

Implementing a just-in-time debugging system within a cluster processing network that activates a debugger on compute nodes upon unhandled suspension events, allowing for notification and analysis of process failures, with features like memory dumping and symbolic debugger attachment for detailed analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a cluster computing system is deployed to improve performance and availability, then the system can handle more jobs and processes, but debugging and diagnosing job failures becomes more difficult

Engineering Contradiction:
Improvejob processing capacityVSAvoidjob failure diagnosis
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements a feedback mechanism where the debugger sends notifications back to the job monitor about suspension events. This creates a closed-loop system that automatically reports debugging-related information about job failures, making the previously hidden failure causes visible to users and administrators.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces a job monitor as an intermediary component between the compute nodes and the user. The job monitor receives notifications from debuggers on compute nodes and presents this information to users, serving as a mediator that bridges the gap between the distributed computing system and the user interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If generic failure notifications are sent to users, then the system remains simple to operate, but users receive insufficient information about why jobs failed

Engineering Contradiction:
Improvesystem simplicityVSAvoidfailure cause information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent performs preliminary action by having the debugger automatically activate and capture suspension event information before the user can investigate the failure. The system proactively collects debugging information and prepares notifications, so that when users receive failure notifications, they already contain useful diagnostic information without having to manually investigate.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debugging system performs self-service by automatically detecting suspension events, activating the debugger, and generating notifications without requiring user intervention. The system serves itself by capturing and reporting failure information autonomously, reducing the burden on users while providing them with the information they need.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8412984B2Debugging in a cluster processing network
Publication Date: 2013.04.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8412984B2 patent drawing
  • US8412984B2 patent drawing
  • US8412984B2 patent drawing

AI summary

A technology is described for debugging in a cluster processing network. A scheduler can dispatch a process that is part of the cluster job for execution. Further, a compute node can be used to execute the process dispatched by the scheduler to the compute node. A debugger can be activated in response to an unhandled suspension event in the process on the compute node. In addition, the debugger can send notification messages regarding the unhandled suspension event. A job monitor can receive a notification from the debugger that an unhandled suspension event has occurred. The notification can be displayed to a user via the job monitor.