IP Library Granted Patent US 11,301,359
Granted Patent B2
US 11,301,359 · App. 16/736,364 · Granted Apr 12, 2022

Remote debugging parallel regions in stream computing applications

Inventors: Henry Chiu (San Jose, CA); Bradley William Fawcett (Byron, MN); Jingdong Sun (Rochester, MN); Jason A. Nikolai (Rochester, MN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/3628G06F11/3664
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,301,359
App. No.
16/736,364
Granted
Apr 12, 2022
Kind
B2
Abstract

A method, system and computer program product for facilitating remote debugging of parallel regions in stream computing applications. A stream computing management server (SCMS) communicates a list of processing elements to a debugging interface. Responsive to setting a debugging breakpoint for a processing element of the list of processing elements, the SCMS receives a command to enable remote debugging for the selected processing element. In this regard, the processing element is a part of a parallel channel in a distributed processing environment. The SCMS maps the processing element to an attachment information in the distributed environment. The SCMS dynamically attaches a remote debugger to the processing element based on the attachment information.

Claims (43)

1. A method comprising:

communicating, by a stream computing management server (SCMS), a list of processing elements to a debugging interface;

receiving, by the SCMS, a command to enable remote debugging for a processing element of the list of processing elements, wherein the processing element is a part of a parallel channel in a parallel region of a distributed processing environment, the parallel region having replicated operators;

mapping, by the SCMS, the processing element to an attachment information in the distributed environment; and

attaching dynamically, by the SCMS, a remote debugger to the processing element based on the attachment information; and

reattaching automatically, responsive to detecting a change in a state of runtime execution of the processing element, the remote debugger to the processing element, wherein the processing element has relocated from a first distributed location to a second distributed location after the change in the state.

2. The method of claim 1 , further comprising:

communicating to the debugging interface a consolidation of a set of active processing elements of a stream computing application to cause a single-pane view of the set of active processing elements in a distributed stream computing application executed across a plurality of mutually remote processing nodes.

3. The method of claim 1 , wherein the attachment information comprises at least one of a location of the processing element and a debugging port of the processing element.

4. The method of claim 1 , further comprising:

determining that the processing element is replicated into a set of identical operators:

sending a notification of a replicated state of the processing element; and

receiving a selection of at least one identical operator from the set of identical operators for selectively attaching the remote debugger to a subset of the plurality of identical operators.

5. The method of claim 1 , wherein the change in the state of the runtime execution of the processing element includes at least one of an abnormal termination of the processing element, a runtime refusion of processing elements, and a change in a number of parallel channels of a parallel region.

6. The method of claim 1 , wherein the reattaching occurs without the SCMS communicating the attachment information to the user.

7. The method of claim 1 , wherein the distributed processing environment includes a plurality of computing host devices, each computer host device characterized as at least one member from a set comprising a physical machine, a virtual machine, or a container.

8. A computer system, the computer system comprising one or more processors, one or more computer-readable memories, and one or more computer-readable storage devices, and program instructions stored on at least one of the one or more computer-readable storage devices for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, the stored program instructions comprising:

program instructions to communicate, by a stream computing management server (SCMS), a list of processing elements to a debugging interface;

program instructions to receive, by the SCMS, a command to enable remote debugging for a processing element of the list of processing elements, wherein the processing element is a part of a parallel channel in a parallel region of a distributed processing environment, the parallel region having replicated operators;

program instructions to map, by the SCMS, the processing element to an attachment information in the distributed environment; and

program instructions to attach dynamically, by the SCMS, a remote debugger to the processing element based on the attachment information; and

program instructions to reattach automatically, responsive to detecting a change in a state of runtime execution of the processing element, the remote debugger to the processing element, wherein the processing element has relocated from a first distributed location to a second distributed location after the change in the state.

9. The computer system of claim 8 , further comprising: further comprising:

program instructions to communicate to the debugging interface a consolidation of a set of active processing elements of a stream computing application to cause a single-pane view of the set of active processing elements in a distributed stream computing application executed across a plurality of mutually remote processing nodes.

10. The computer system of claim 8 , wherein the attachment information comprises at least one of a location of the processing element and a debugging port of the processing element.

11. The computer system of claim 8 , further comprising:

program instructions to determine that the processing element is replicated into a set of identical operators;

program instructions to send a notification of a replicated state of the processing element; and

program instructions to receive a selection of at least one identical operator from the set of identical operators for selectively attaching the remote debugger to a subset of the plurality of identical operators.

12. The computer system of claim 8 , wherein the change in the state of the runtime execution of the processing element includes at least one of an abnormal termination of the processing element, a runtime refusion of processing elements, and a change in a number of parallel channels of a parallel region.

13. The computer system of claim 8 , wherein the reattaching occurs without the SCMS communicating the attachment information to the user.

14. The computer system of claim 8 , wherein the distributed processing environment includes a plurality of processing nodes, each processing node characterized as at least one member from a set comprising a physical machine, a virtual machine, or a container.

15. A computer program product comprising one or more computer-readable storage devices, and program instructions stored on at least one of the one or more computer-readable storage devices, the stored program instructions comprising:

program instructions to communicate, by a stream computing management server (SCMS), a list of processing elements to a debugging interface;

program instructions to receive, by the SCMS, a command to enable remote debugging for a processing element of the list of processing elements, wherein the processing element is a part of a parallel channel in a parallel region of a distributed processing environment, the parallel region having replicated operators;

program instructions to map, by the SCMS, the processing element to an attachment information in the distributed environment; and

program instructions to attach dynamically, by the SCMS, a remote debugger to the processing element based on the attachment information; and

program instructions to reattach automatically, responsive to detecting a change in a state of runtime execution of the processing element, the remote debugger to the processing element, wherein the processing element has relocated from a first distributed location to a second distributed location after the change in the state.

16. The computer program product of claim 15 , the stored program instructions further comprising program instructions to communicate to the debugging interface a consolidation of a set of active processing elements of a stream computing application to cause a single-pane view of the set of active processing elements in a distributed stream computing application executed across a plurality of mutually remote processing nodes.

17. The computer program product of claim 15 , the stored program instructions further comprising:

program instructions to determine that the processing element is replicated into a set of identical operators;

program instructions to send a notification of a replicated state of the processing element; and

program instructions to receive a selection of at least one identical operator from the set of identical operators for selectively attaching the remote debugger to a subset of the plurality of identical operators.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2020
From: CHIU, HENRY; FAWCETT, BRADLEY WILLIAM; SUN, JINGDONG; NIKOLAI, JASON A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051439/0647 →
Continuity (1)
Related Publication 20210209001A1 · Jul 8, 2021