IP Library Granted Patent US 10,248,487
Granted Patent B1
US 10,248,487 · App. 15/003,512 · Granted Apr 2, 2019

Error recovery for multi-stage simultaneously running tasks

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,248,487
App. No.
15/003,512
Granted
Apr 2, 2019
Kind
B1
Abstract

A method of managing a server is described where a service performed by a task executing on the server is configured into a plurality of sub-tasks, which may be further configured into a plurality of subsidiary tasks. When a subsidiary task executes, the completion thereof is determined to be either a successful or an unsuccessful completion. The completion status of the ensemble of subsidiary tasks is assessed on each completion of a subsidiary task, and the failure of any subsidiary task to successfully complete is deemed to be a failure to complete of the server task. The failure to complete is reported to the requesting application without waiting for the completion of any pending subsidiary task.

Claims (26)

1. A method of managing a server with a stateless connection to a user, the method comprising:

providing a server computer having a communications interface with a user computer; and

a memory system,

wherein responding to a request for a service from the user computer comprises:

receiving a user request from the user computer over a communications interface;

executing a task by the server computer to respond to the user request, the task comprising a supervisory task and a number of sub-tasks, each sub-task of the number of sub-tasks having one or more subsidiary tasks; and

configuring each sub-task to report a completion status of each subsidiary task and completion of the sub-task to the supervisory task each time a subsidiary task completes;

wherein a completion status of a subsidiary task is one of success or error, and the supervisory task determines the completion status of each subsidiary task at the completion time of the subsidiary task prior to completion of the sub-task and,

the supervisory task is configured to report an error in completion of the subsidiary task of the sub-task to the user computer if the completion status of the subsidiary task is error, wherein the error terminates or aborts execution and completion of the sub-task and other sequential subsidiary tasks of the sub-task;

wait for another completion status change when a number of completed sub-tasks is less than the number of sub-tasks; and

respond to the user request over the communications interface when a number of successfully completed sub-tasks is equal to the number of sub-tasks.

2. A computer program product, stored on a machine-readable non-transitory medium, comprising:

instructions executable by a computer to determine a status of a task program,

wherein the task program is configured as a plurality of sub-tasks and the sub-tasks are configured as a number of subsidiary tasks, which execute contemporaneously;

a supervisory sub-task of the task program monitors a completion status of each subsidiary task and the completion status is one of successful completion or error; and

wherein completion of each subsidiary task of the plurality of subsidiary tasks results in an evaluation of the completion status of the completed subsidiary task by the supervisory sub-task; and, the supervisory sub-task is configured to:

report the completion status of the task program as a failure when the completion status of error is reported by the subsidiary task, wherein the failure terminates or aborts execution of the supervisory task and any other subsidiary tasks of the supervisory task;

complete the task program when a number of subsidiary reporting successful completion is equal to the number of subsidiary tasks; and

wait for another completion status change when a number of subsidiary tasks reporting successful completion is less than the number of subsidiary tasks.

3. The method of claim 1 , wherein the subsidiary tasks are further configured to:

set completion flags in a status matrix when the subsidiary tasks are successfully completed; and

set error flags in the status matrix when an error is detected in the subsidiary tasks.

4. The method of claim 3 , wherein any set error flags in the status matrix terminates or aborts uncompleted sub-tasks.

5. The method of claim 3 , wherein the supervisory task is further configured to:

check the status matrix after completion of each of the sub tasks subsidiary tasks; and

terminate the task when any of the error flags are set in the status matrix.

Assignments (5)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2016
From: GARG, AMIT; RATNA, VIKAS
To: VIOLIN MEMORY INC.
Reel/Frame 037606/0141 →