IP Library Granted Patent US 10,360,095
Granted Patent B2
US 10,360,095 · App. 15/086,526 · Granted Jul 23, 2019

Methods and apparatuses for improving failure recovery in a distributed system

Inventors: Albert Hives (Oakland, CA); Dominique Plante (Martinez, CA); Alex Koshta (San Francisco, CA); Evan Schnell (North Oaks, MN); Divya Kosaraju (Dublin, CA); Jordan Liu (Castro Valley, CA); Sherry Bath (San Ramon, CA); John D. Schiffer (San Francisco, CA); Anthony Costello (Union City, CA)
Assignee: CHANGE HEALTHCARE HOLDINGS, LLC
G06F11/0793G06F11/0709G06F11/079G06F11/0751G06F11/0772
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,360,095
App. No.
15/086,526
Granted
Jul 23, 2019
Kind
B2
Abstract

Embodiments are disclosed for improving failure recovery in a distributed system during execution of a processing chain. In the context of a method, an example embodiment includes implementing, by the distributed system, a task coordination state machine corresponding to the processing chain. This example embodiment of the method further includes discovering, using the task coordination state machine, an error occurring during execution of the processing chain. Finally, the example embodiment of the method further includes reporting the error by a failure report generator service and recovering, by a failure recovery service, from the error. Corresponding apparatuses and computer program products are also provided.

Claims (82)

1. A method for providing for failure recovery in a distributed system during execution of a processing chain, the method comprising:

implementing, by the distributed system, a task coordination state machine corresponding to the processing chain, the task coordination state machine storing a set of states in memory;

discovering, using the task coordination state machine, an error caused by an event occurring during execution of the processing chain;

reporting the error by a failure report generator service; and

recovering, by a failure recovery service, from the error by:

calling, by the failure recovery service, a resolution plan selector for selection of one or more resolvers to recover from the error;

retrieving, by the resolution plan selector, one or more resolvers responsive to one or more reason codes identified by an incident associated with the error;

executing, by a resolution plan executor, the one or more resolvers to rehydrate one or more data fields in memory; and

transitioning, by the distributed system, the task coordination state machine to a particular working state that was in effect prior to occurrence of the error, thereby rehydrating the event that caused the error.

2. The method of claim 1 , wherein the task coordination state machine comprises:

the set of states, wherein the set of states includes the error state and a state corresponding to each unit of work in the processing chain;

a set of state transitions, each of which illustrates a logical connections between two states in the set of states; and

a set of events defining changes in a context of the processing chain that correspond to each state transition.

3. The method of claim 1 , wherein discovering the error using the task coordination state machine includes:

in response to occurrence of the error,

transitioning the task coordination state machine from the particular working state into an error state, and

generating a notification based on the error.

4. The method of claim 3 , wherein the notification identifies a reason code, a time stamp, a type of the error, a severity of the error, and a criticality of the error.

5. The method of claim 1 , wherein reporting the error by the failure report generator service includes:

generating an incident based on a notification generated during discovery of the error, wherein the generated incident identifies an incident context and one or more reason codes describing one or more failures that caused the error;

storing the incident in an incident repository; and

notifying applications affected by the incident.

6. The method of claim 5 , wherein reporting the error by the failure report generator service further includes:

causing presentation, by a user device, of the incident, wherein the presentation includes a reason code associated with the incident, a summary of the incident, and information regarding how to recover from the incident; and

awaiting instructions, from the user device, to initiate a failure recovery service to recover from the incident.

7. The method of claim 5 , wherein the incident further identifies a correlation identifier that can be used to stitch together events in the system, and wherein the incident context identifies at least one of a source unit of work, a target unit of work, and an initiating system or user that initiated processing that caused the error.

8. An apparatus for providing for failure recovery in a distributed system during execution of a processing chain, the apparatus comprising at least one processor and at least one memory storing computer-executable instructions, that, when executed by the at least one processor, cause the apparatus to:

implement a task coordination state machine corresponding to the processing chain, the task coordination state machine storing a set of states in memory;

discover, using the task coordination state machine, an error caused by an event occurring during execution of the processing chain;

report the error; and

recover from the error by:

retrieving one or more resolvers responsive to one or more reason codes identified by an incident associated with the error;

executing the one or more resolvers to rehydrate one or more data fields in memory; and

transitioning the task coordination state machine to a particular working state that was in effect prior to occurrence of the error, thereby rehydrating the event that caused the error.

9. The apparatus of claim 8 , wherein the task coordination state machine comprises:

the set of states, wherein the set of states includes the error state and a state corresponding to each unit of work in the processing chain;

a set of state transitions, each of which illustrates a logical connections between two states in the set of states; and

a set of events defining changes in a context of the processing chain that correspond to each state transition.

10. The apparatus of claim 8 , wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to discover the error using the task coordination state machine by causing the apparatus to:

in response to occurrence of the error,

transition the task coordination state machine from the particular working state into an error state, and

generate a notification based on the error.

11. The apparatus of claim 10 , wherein the notification identifies a reason code, a time stamp, a type of the error, a severity of the error, and a criticality of the error.

12. The apparatus of claim 8 , wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to report the error by causing the apparatus to:

generate an incident based on a notification generated during discovery of the error, wherein the generated incident identifies an incident context and one or more reason codes describing one or more failures that caused the error;

store the incident in an incident repository; and

notify applications affected by the incident.

13. The apparatus of claim 12 , wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to report the error by causing the apparatus to:

cause presentation, by a user device, of the incident, wherein the presentation includes a reason code associated with the incident, a summary of the incident, and information regarding how to recover from the incident; and

await instructions, from the user device, to initiate a failure recovery service to recover from the incident.

14. The apparatus of claim 12 , wherein the incident further identifies a correlation identifier that can be used to stitch together events in the system, and wherein the incident context identifies at least one of a source unit of work, a target unit of work, and an initiating system or user that initiated processing that caused the error.

15. A computer program product comprising at least one non-transitory computer-readable storage medium for providing for failure recovery in a distributed system during execution of a processing chain, the at least one non-transitory computer-readable storage medium storing computer-executable instructions that, when executed, cause an apparatus to:

implement a task coordination state machine corresponding to the processing chain;

discover, using the task coordination state machine, an error caused by an event occurring during execution of the processing chain, the task coordination state machine storing a set of states in memory;

report the error; and

recover from the error by:

calling a resolution plan selector for selection of one or more resolvers to recover from the error;

retrieving, by the resolution plan selector, one or more resolvers responsive to one or more reason codes identified by an incident associated with the error;

executing, by a resolution plan executor, the one or more resolvers to rehydrate one or more data fields in memory; and

transitioning the task coordination state machine to a particular working state that was in effect prior to occurrence of the error, thereby rehydrating the event that caused the error.

16. The computer program product of claim 15 , wherein the computer-executable instructions, when executed, cause the apparatus to report the error by causing the apparatus to:

generate an incident based on a notification generated during discovery of the error, wherein the generated incident identifies an incident context and one or more reason codes describing one or more failures that caused the error;

store the incident in an incident repository; and

notify applications affected by the incident.

17. The computer program product of claim 16 , wherein the computer-executable instructions, when executed, cause the apparatus to report the error by causing the apparatus to:

cause presentation, by a user device, of the incident, wherein the presentation includes a reason code associated with the incident, a summary of the incident, and information regarding how to recover from the incident; and

await instructions, from the user device, to initiate a failure recovery service to recover from the incident.

18. The computer program product of claim 15 , wherein the computer-executable instructions, when executed, cause the apparatus to recover from the error by causing the apparatus to:

retrieve one or more resolvers responsive to one or more reason codes identified by an incident associated with the error;

execute the one or more resolvers to rehydrate the event; and

transition the task coordination state machine to the particular working state that was in effect prior to occurrence of the error.

19. A method for providing for failure recovery in a distributed system during execution of a processing chain, the method comprising:

implementing, by the distributed system, a task coordination state machine corresponding to the processing chain, the task coordination state machine storing a set of states in memory;

discovering, using the task coordination state machine, an error caused by an event occurring during execution of the processing chain;

generating an incident based on a notification generated during the discovery of the error, wherein the generated incident identifies an incident context and one or more reason codes describing one or more failures that caused the error;

storing the incident in an incident repository;

notifying applications affected by the incident;

reporting the error by a failure report generator service, wherein reporting the error comprises:

causing presentation, by a user device, of the incident, wherein the presentation includes a reason code associated with the incident, a summary of the incident, and information regarding how to recover from the incident; and

awaiting instructions, from the user device, to initiate a failure recovery service to recover from the incident; and

recovering, by a failure recovery service, from the error by rehydrating one or more data fields in memory to transition the task coordination state machine to a particular working state that was in effect prior to occurrence of the error, thereby rehydrating the event that caused the error.

20. The method of claim 19 , wherein the incident further identifies a correlation identifier that can be used to stitch together events in the system, and wherein the incident context identifies at least one of a source unit of work, a target unit of work, or an initiating system or user that initiated processing that caused the error.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Oct 5, 2022
From: BANK OF AMERICA, N.A.
To: CHANGE HEALTHCARE RESOURCES, LLC (FORMERLY KNOWN AS ALTEGRA HEALTH OPERATING COMPANY LLC); CHANGE HEALTHCARE SOLUTIONS, LLC; CHANGE HEALTHCARE PERFORMANCE, INC. (FORMERLY KNOWN AS CHANGE HEALTHCARE, INC.); CHANGE HEALTHCARE OPERATIONS, LLC; CHANGE HEALTHCARE HOLDINGS, INC.; CHANGE HEALTHCARE TECHNOLOGIES, LLC (FORMERLY KNOWN AS MCKESSON TECHNOLOGIES LLC); CHANGE HEALTHCARE HOLDINGS, LLC
Reel/Frame 061620/0054 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: CHANGE HEALTHCARE LLC
To: CHANGE HEALTHCARE HOLDINGS, LLC
Reel/Frame 046449/0899 →
CHANGE OF ADDRESS Recorded Mar 23, 2017
From: CHANGE HEALTHCARE LLC
To: CHANGE HEALTHCARE LLC
Reel/Frame 042082/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2017
From: PF2 IP LLC
To: CHANGE HEALTHCARE LLC
Reel/Frame 041966/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2017
From: MCKESSON CORPORATION
To: PF2 IP LLC
Reel/Frame 041938/0501 →
SECURITY AGREEMENT Recorded Mar 2, 2017
From: CHANGE HEALTHCARE HOLDINGS, LLC; CHANGE HEALTHCARE, INC.; CHANGE HEALTHCARE HOLDINGS, INC.; CHANGE HEALTHCARE OPERATIONS, LLC; CHANGE HEALTHCARE SOLUTIONS, LLC; ALTEGRA HEALTH OPERATING COMPANY LLC; MCKESSON TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 041858/0482 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: MCKESSON FINANCIAL HOLDINGS UNLIMITED COMPANY
To: MCKESSON CORPORATION
Reel/Frame 041355/0408 →
CHANGE OF NAME Recorded Jan 11, 2017
From: MCKESSON FINANCIAL HOLDINGS
To: MCKESSON FINANCIAL HOLDINGS UNLIMITED COMPANY
Reel/Frame 041329/0879 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2016
From: MCKESSON CORPORATION
To: MCKESSON FINANCIAL HOLDINGS
Reel/Frame 039887/0935 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2016
From: HIVES, ALBERT; PLANTE, DOMINIQUE; KOSHTA, ALEX; SCHNELL, EVAN; KOSARAJU, DIVYA; LIU, JORDAN; BATH, SHERRY; SCHIFFER, JOHN D.; COSTELLO, ANTHONY
To: MCKESSON CORPORATION
Reel/Frame 038254/0582 →
Continuity (1)
Related Publication 20170286208A1 · Oct 5, 2017