IP Library Granted Patent US 10,742,761
Granted Patent B2
US 10,742,761 · App. 15/949,454 · Granted Aug 11, 2020

Inter-process communication fault detection and recovery system

Inventors: Michael Emery Brown (Austin, TX); Santosh Kumar Bidaralli (Cedar Park, TX)
Assignee: Dell Products L.P.
H04L67/2809G06F9/547G06F11/0709G06F11/0757G06F11/0793H04L43/10H04L67/10
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 10,742,761
App. No.
15/949,454
Granted
Aug 11, 2020
Kind
B2
Abstract

An inter-process communication (IPC) system, includes a first client engine, a first server engine, and a broker engine that is coupled to the first client engine. The broker engine initiates a first timer that is configured to reset when traffic is received from the first server engine while the first server engine is registered with the broker engine and coupled to the broker engine via a communication channel. The traffic that causes the first timer to reset includes at least one of: traffic generated by the first client engine to complete a request, and a first server-to-broker heartbeat message generated by the first server engine. The broker engine determines that the first timer has reached a predefined time amount, and in response, removes the registration of the first server engine and removes the communication channel between the broker engine and the first server engine.

Claims (43)

1. An inter-process communication (IPC) system comprising an Information Handling System (IHS) comprising a communication system, a processing system coupled to the communication system, and a memory system coupled to the processing system, the IHS being configured to implement:

a first client engine;

a first server engine; and

a broker engine that is coupled to the first client engine, wherein the broker engine is configured to:

initiate a first timer that is configured to reset when traffic is received from the first server engine while the first server engine is registered with the broker engine and coupled to the broker engine via a communication channel, wherein the traffic that causes the first timer to reset includes at least one of: traffic generated by the first client engine to complete a request, and a first server-to-broker heartbeat message generated by the first server engine; and

determine that the first timer has reached a predefined time amount, and in response, remove the registration of the first server engine and remove the communication channel between the broker engine and the first server engine;

provide, to the first server engine, a broker-to-server heartbeat message while the first server engine is registered with the broker engine and the communication channel is established;

wherein the first server engine is configured to:

initiate a second timer that is configured to reset when traffic is received from the broker engine while the broker engine is registered with the first server engine and coupled to the first server engine via the communication channel, wherein the traffic that causes the second timer to reset includes at least one of: a request generated by the first client engine, and the broker-to-server heartbeat message provided by the broker engine; and

determine that the second timer has reached a predefined time amount and, in response, provide a registration request to the broker engine.

2. The IPC system of claim 1 , wherein at least one of the broker-to-server heartbeat message and the first server-to-broker heartbeat message includes a sequence number, and wherein the first server engine is configured to utilize the sequence number to determine whether the broker engine has failed, and wherein the broker engine is configured to utilize the sequence number to determine whether the first server engine has failed.

3. The IPC system of claim 1 , wherein the broker engine is further configured to:

receive a second server-to-broker heartbeat message subsequent to removing the registration of the first server engine and removing the communication channel and, in response, provide a not-registered message to the first server engine; and

receive a registration request from the first server engine and, in response, re-register the first server engine and reestablish the communication channel between the first server engine and the broker engine.

4. The IPC system of claim 1 , wherein the broker engine is configured to:

provide, to the first client engine in response to receiving a client request and the first timer reaching the predefined time amount, a notification that the first server engine is unavailable.

5. The IPC system of claim 1 , wherein the first server-to-broker heartbeat message is generated by the first server engine when the traffic generated by the first client engine to complete the request is not received by the broker engine for a predefined time period.

6. An information handling system (IHS), comprising:

a communication system;

a processing system coupled to the communication system; and

a memory system coupled to the processing system and including instructions that, when executed by the processing system, cause the processing system to provide a broker engine that is configured to:

initiate a first timer that is configured to reset when traffic is received from a first server engine while the first server engine is registered with the broker engine and coupled to the broker engine via a communication channel provided by the communication system, wherein the traffic that causes the first timer to reset includes at least one of: traffic generated by a first client engine coupled to the broker engine through the communication system to complete a request, and a first server-to-broker heartbeat message generated by the first server engine;

determine that the first timer has reached a predefined time amount, and in response, remove the registration of the first server engine and remove the communication channel between the broker engine and the first server engine;

provide, to the first server engine via the communication system, a broker-to-server heartbeat message while the first server engine is registered with the broker engine and the communication channel is established;

receive, from the first server engine, a registration request, wherein the registration request is received in response to the first server engine initiating a second timer that is configured to reset when traffic is received from the broker engine while the broker engine is registered with the first server engine and coupled to the first server engine via the communication channel provided by the communication system, wherein the traffic that causes the second timer to reset includes at least one of: a request generated by the first client engine, and the broker-to-server heartbeat message provided by the broker engine, and determining that the second timer has reached a predefined time amount and, in response, providing a registration request to the broker engine.

7. The IHS of claim 6 , wherein at least one of the broker-to-server heartbeat message and the first server-to-broker heartbeat message includes a sequence number, and wherein the first server engine is configured to utilize the sequence number to determine whether the broker engine has failed, and wherein the broker engine is configured to utilize the sequence number to determine whether the first server engine has failed.

8. The IHS of claim 6 , wherein the broker engine is further configured to:

receive a second server-to-broker heartbeat message subsequent to removing the registration of the first server engine and removing the communication channel and, in response, provide a not-registered message to the first server engine; and

receive a registration request from the first server engine and, in response, re-register the first server engine and reestablish the communication channel between the first server engine and the broker engine.

9. The IHS of claim 6 , wherein the broker engine is configured to:

provide, to the first client engine in response to receiving a client request and the first timer reaching the predefined time amount, a notification that the first server engine is unavailable.

10. The IHS of claim 6 , wherein the first server-to-broker heartbeat message is generated by the first server engine when the traffic generated by the first client engine to complete the request is not received by the broker engine for a predefined time period.

11. A method of fault detection in an inter-process communication system, comprising:

initiating, by a broker engine, a first timer that is configured to reset when traffic is received from a first server engine coupled to the broker engine while the first server engine is registered with the broker engine and coupled to the broker engine via a communication channel, wherein the traffic that causes the first timer to reset includes at least one of: traffic generated by a first client engine coupled to the broker engine to complete a request, and a first server-to-broker heartbeat message generated by the first server engine;

determining, by the broker engine, that the first timer has reached a predefined time amount, and in response, remove the registration of the first server engine and remove the communication channel between the broker engine and the first server engine;

providing, by the broker engine to the first server engine, a broker-to-server heartbeat message while the first server engine is registered with the broker engine and the communication channel is established;

receiving, by the broker engine, registration request, wherein the registration request is provided to the broker engine by the first server engine in response to the first server engine initiating a second timer that is configured to reset when traffic is received from the broker engine while the broker engine is registered with the first server engine and coupled to the first server engine via the communication channel, wherein the traffic that causes the second timer to reset includes at least one of: a request generated by the first client engine, and the broker-to-server heartbeat message provided by the broker engine, and the first server engine determining that the second timer has reached a predefined time amount.

12. The method of claim 11 , wherein at least one of the broker-to-server heartbeat message and the first server-to-broker heartbeat message includes a sequence number, and wherein the first server engine is configured to utilize the sequence number to determine whether the broker engine has failed, and wherein the broker engine is configured to utilize the sequence number to determine whether the first server engine has failed.

13. The method of claim 11 , further comprising:

receiving, by the broker engine, a second server-to-broker heartbeat message subsequent to removing the registration of the first server engine and removing the communication channel and, in response, provide a not-registered message to the first server engine; and

receiving, by the broker engine, a registration request from the first server engine and, in response, re-register the first server engine and reestablish the communication channel between the first server engine and the broker engine.

14. The method of claim 11 , further comprising:

providing, by the broker engine to the first client engine in response to receiving a client request and the first timer reaching the predefined time amount, a notification that the first server engine is unavailable.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2018
From: BROWN, MICHAEL EMERY; BIDARALLI, SANTOSH KUMAR
To: DELL PRODUCTS L.P.
Reel/Frame 045493/0886 →