IP Library Granted Patent US 9,477,490
Granted Patent B2
US 9,477,490 · App. 14/589,760 · Granted Oct 25, 2016

Milestone based dynamic multiple watchdog timeouts and early failure detection

Inventor: Samuel Liddicott (Wafkefield West Yorkshire, GB)
Assignee: DELL SOFTWARE INC.
G06F9/4423G06F11/3419
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 9,477,490
App. No.
14/589,760
Granted
Oct 25, 2016
Kind
B2
Abstract

A dynamic, milestone-based solution for managing computer operations, as may be embodied by various systems, methods, and non-transitory computer-readable storage media, may involve analyzing a computer operation invoked by an invoking module. The solution may involve identifying and classifying discrete steps or phases within the invoked operation and applying context-specific watchdog timers and operational milestones based on the detected phases. The solution may involve monitoring the progress of the operation and terminating the operation when an operational milestone is not achieved before an applied watchdog timer expires during a given phase.

Claims (57)

1. A dynamic, milestone-based method for managing a plurality of computer operations, the method comprising:

executing an invoking module, the invoking module including a plurality of executable instructions stored in a memory of a computing device, wherein executing the invoking module invokes a computer operation of the plurality of computer operations; and

executing a monitoring engine, the monitoring engine including a plurality of executable instructions stored in the memory of the computing device, wherein executing the monitoring engine:

classifies a first phase of the invoked computer operation;

selects a first watchdog timer, a first watchdog timer timeout value, and a first milestone for the first phase based on the classification of the first phase and a priority of the invoked computer operation;

activates the first watchdog timer;

monitors progress of the first phase;

compares the progress to the first milestone;

terminates the operation when the progress fails to meet the first milestone before the first watchdog timer reaches the timeout value; and

permits the operation to progress to a second phase when the progress meets the first milestone before the first watchdog timer reaches the timeout value.

2. The method of claim 1 , wherein further execution of the monitoring engine:

classifies a second phase of the invoked computer operation;

selects a second watchdog timer, a second watchdog timer timeout value, and a second milestone for the second phase based on the classification of the second phase and the priority of the invoked computer operation;

activates the second watchdog timer;

monitors progress of the second phase;

compares the progress of the second phase to the second milestone; and

terminates the operation when the progress of the second phase fails to meet the second milestone before the second watchdog timer reaches the second watchdog timeout value.

3. The method of claim 1 , wherein further execution of the invoking module deactivates the monitoring engine when the operation completes.

4. The method of claim 1 , wherein monitoring progress of the first phase includes examining process messages.

5. The method of claim 4 , wherein examining process messages includes examining process messages at Standard Out or Standard Error.

6. The method of claim 1 , wherein monitoring progress of the first phase includes examining log messages.

7. The method of claim 1 , wherein monitoring progress of the first phase includes detecting when the operation creates a predetermined file.

8. The method of claim 7 , wherein the predetermined file is a temporary file.

9. The method of claim 1 , wherein monitoring progress of the first phase includes detecting when the computing device has received a predetermined threshold level of data of a file being received.

10. The method of claim 1 , wherein monitoring progress of the first phase includes examining kernel activity.

11. The method of claim 10 , wherein examining kernel activity includes examining syscalls using a ptrace function.

12. The method of claim 1 , wherein monitoring progress of the first phase includes examining packet traffic.

13. The method of claim 12 , wherein examining packet traffic includes analyzing packet traffic for the presence of a predetermined packet.

14. The method of claim 12 , wherein examining packet traffic includes analyzing packet traffic for the absence of a predetermined packet.

15. The method of claim 12 , wherein examining packet traffic includes comparing characteristics of real-time packet traffic to an expected packet traffic data of the invoked operation.

16. The method of claim 1 , wherein monitoring progress of the first phase includes intercepting a library function call made by the invoked operation.

17. The method of claim 16 , wherein intercepting the library function call includes:

creating a mirror library that includes the same functions present in a standard library used by the invoked operation;

specifying the mirror library during preload such that function calls made by the invoked operation are sent to the mirror library instead of the standard library used by the invoked operation;

receiving a function call from the invoked operation;

determining a level of progress made by the invoked operation based on the received function call; and

passing the function call to the standard library used by the invoked operation.

18. The method of claim 1 , wherein monitoring progress of the first phase includes using debug mode.

19. The method of claim 1 , wherein monitoring progress of the first phase includes:

performing a minor operation identical to the invoked operation;

monitoring progress of a first phase of the minor operation; and

deeming the progress of the mirror operation as identical to progress of the invoked operation.

20. A non-transitory computer-readable storage medium having a computer program embodied thereon, the computer program executable by a processor to perform a dynamic, milestone-based method for managing a plurality of computer operations, the method comprising:

invoking a computer operation of the plurality of computer operations;

classifying a first phase of the invoked computer operation;

selecting a first watchdog timer, a first watchdog timer timeout value, and a first milestone for the first phase based on the classification of the first phase and a priority of the invoked computer operation;

activating the first watchdog timer;

monitoring progress of the first phase;

comparing the progress to the first milestone;

terminating the operation when the progress fails to meet the first milestone before the first watchdog timer reaches the timeout value; and

when the progress meets the first milestone before the first watchdog timer reaches the timeout value:

classifying a second phase of the invoked computer operation;

selecting a second watchdog timer, a second watchdog timer timeout value, and a second milestone for the second phase based on the classification of the second phase and the priority of the invoked computer operation;

activating the second watchdog timer;

monitoring progress of the second phase;

comparing the progress of the second phase to the second milestone; and

terminating the operation when the progress of the second phase fails to meet the second milestone before the second watchdog timer reaches the second watchdog timeout value.

Assignments (15)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 059912/0097 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2016
From: LIDDICOTT, SAMUEL
To: DELL SOFTWARE INC.
Reel/Frame 037488/0178 →
Continuity (1)
Related Publication 20160196149A1 · Jul 7, 2016