IP Library Granted Patent US 8,522,241
Granted Patent B1
US 8,522,241 · App. 12/893,693 · Granted Aug 27, 2013

Systems and methods for auto-balancing of throughput in a real-time event-driven system

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 8,522,241
App. No.
12/893,693
Granted
Aug 27, 2013
Kind
B1
Abstract

Systems and methods are provided for auto-balancing of throughput in a real-time event-driven system. The systems and methods may include identifying a plurality of processing stages for a real-time event-driven system that receives a system-level event and provides a system-level output, wherein processing stages between a first processing stage and a last processing stage are arranged in a sequential order such that a respective output of an earlier processing stage is provided to a respective request queue of a later processing stage; determining a respective number of requests in each request queue of the plurality of processing stages; comparing the respective determined number of requests to at least one threshold to determine that at least one processing stage is over-utilized, and for the at least one processing stage that is determined to be over-utilized, increasing an allocation of hardware resources to the respective over-utilized processing stage.

Claims (84)

1. A computer-implemented method, comprising:

receiving at a real-time event driven system a healthcare transaction request from a healthcare provider computer associated with a healthcare provider, wherein the healthcare transaction request is associated with a system-level event;

identifying a plurality of processing stages for the real-time event-driven system that receives the system-level event and provides a system-level output,

wherein each processing stage includes a respective request queue for requests to be processed by the respective processing stage,

wherein a first of the plurality of processing stages receives the system-level event in its respective request queue,

wherein a last of the plurality of processing stages provides the system-level output, and

wherein stages between the first processing stage and the last processing stage are arranged in a sequential order such that a respective output of an earlier processing stage is provided to a respective request queue of a later processing stage;

determining a respective number of requests in each request queue of the plurality of processing stages;

comparing the respective determined number of requests to a higher rebalancing threshold amount to determine if the respective determined number of requests is greater than the higher rebalancing threshold amount, wherein a processing stage is considered over-utilized if the determined number of requests for that particular processing stage is greater than the higher balancing threshold amount;

determining that the number of requests in each request queue for all of the plurality of processing stages is above the higher rebalancing threshold amount; and

automatically increasing the higher rebalancing threshold amount for the plurality of processing stages,

wherein the prior steps are performed by executing computer-executable instructions of a module by a computer associated with the event-driven system.

2. The method of claim 1 , wherein the system-level output is associated with communicating at least a portion of the information in the healthcare transaction request to a payor computer.

3. The method of claim 2 , wherein the communications with the payor computer comprise synchronous communications.

4. The method of claim 1 , wherein the healthcare transaction request is one of: (i) an eligibility verification request, (ii) a preauthorization request, or (iii) a claim status request.

5. The method of claim 1 , further comprising the steps of:

comparing the respective determined number of requests to a lower rebalancing threshold amount to determine if the respective determined number of requests is less than the lower rebalancing threshold amount,

wherein the processing stage is considered under-utilized if the determined number of requests for that particular processing stage is less than the lower rebalancing threshold amount, and

wherein the lower rebalancing threshold amount is less than the higher rebalancing threshold amount;

determining that the number of requests in each request queue for all of the plurality of processing stages is above the lower rebalancing threshold amount; and

automatically increasing the lower rebalancing threshold amount for the plurality of processing stages based on the determination,

wherein the prior steps are performed by executing computer-executable instructions of a module by a computer associated with the event-driven system.

6. The method of claim 5 , further comprising the steps of:

determining a total hardware resource utilization level for the real-time event driven system;

comparing the total hardware resource utilization level to a minimum system threshold amount;

determining if the total hardware resource utilization level is less than the minimum system threshold amount; and

increasing the lower rebalancing threshold amount for the plurality of processing stages only if the total hardware resource utilization level is less than the minimum system threshold amount.

7. The method of claim 5 , further comprising the steps of:

comparing the lower rebalancing threshold amount to a maximum threshold value for the lower rebalancing threshold amount; and

increasing the lower rebalancing threshold amount for the plurality of processing stages only if the lower rebalancing threshold amount is less than the maximum threshold value for the lower rebalancing threshold amount.

8. The method of claim 1 , further comprising the steps of:

comparing the higher rebalancing threshold amount to a maximum threshold value for the higher rebalancing threshold amount; and

increasing the higher rebalancing threshold amount for the plurality of processing stages only if the higher rebalancing threshold amount is less than the maximum threshold value for the higher rebalancing threshold amount.

9. A system, comprising:

at least one memory for storing computer-executable instructions; and

at least one processor in communication with the at least one memory, wherein the at least one processor is configured to execute the computer-executable instructions to:

receive at a real-time event driven system a healthcare transaction request from a healthcare provider computer associated with a healthcare provider, wherein the healthcare transaction request is associated with a system-level event;

identify a plurality of processing stages for the real-time event-driven system that receives the system-level event and provides a system-level output,

wherein each processing stage includes a respective request queue for requests to be processed by the respective processing stage,

wherein a first of the plurality of processing stages receives the system-level event in its respective request queue,

wherein a last of the plurality of processing stages provides the system-level output, and

wherein stages between the first processing stage and the last processing stage are arranged in a sequential order such that a respective output of an earlier processing stage is provided to a respective request queue of a later processing stage;

determine a respective number of requests in each request queue of each of the plurality of processing stages;

compare the respective determined number of requests to a higher rebalancing threshold amount to determine if the respective determined number of requests is greater than the higher rebalancing threshold amount, wherein a processing stage is considered over-utilized if the determined number of requests for that particular processing stage is greater than the higher balancing threshold amount;

determine the number of requests in each request queue for all of the plurality of processing stages is above the higher rebalancing threshold amount; and

increase the higher rebalancing threshold amount for the plurality of processing stages.

10. The system of claim 9 , wherein the system-level output is associated with communicating at least a portion of the information in the healthcare transaction request to a payor computer.

11. The system of claim 10 , wherein the communications with the payor computer comprise synchronous communications.

12. The system of claim 9 , wherein the healthcare transaction request is one of: (i) an eligibility verification request, (ii) a preauthorization request, or (iii) a claim status request.

13. A computer-implemented method, comprising:

receiving at a real-time event driven system a healthcare transaction request from a healthcare provider computer associated with a healthcare provider, wherein the healthcare transaction request is associated with a system-level event;

identifying a plurality of processing stages for the real-time event-driven system that receives the system-level event and provides a system-level output,

wherein each processing stage includes a respective request queue for requests to be processed by the respective processing stage,

wherein a first of the plurality of processing stages receives the system-level event in its respective request queue,

wherein a last of the plurality of processing stages provides the system-level output, and

wherein stages between the first processing stage and the last processing stage are arranged in a sequential order such that a respective output of an earlier processing stage is provided to a respective request queue of a later processing stage;

determining a respective number of requests in each request queue of the plurality of processing stages;

comparing the respective determined number of requests to a higher rebalancing threshold amount to determine if the respective determined number of requests is greater than the higher rebalancing threshold amount, wherein a processing stage is considered over-utilized if the determined number of requests for that particular processing stage is greater than the higher balancing threshold amount;

determining that the number of requests in each request queue for all of the plurality of processing stages is below the higher rebalancing threshold amount; and

automatically decreasing the higher rebalancing threshold amount for the plurality of processing stages,

wherein the prior steps are performed by executing computer-executable instructions of a module by a computer associated with the event-driven system.

14. The method of claim 13 , further comprising:

comparing the respective determined number of requests to a lower rebalancing threshold amount to determine if the respective determined number of requests is less than the lower rebalancing threshold amount,

wherein the processing stage is considered under-utilized if the determined number of requests for that particular processing stage is less than the lower rebalancing threshold amount;

wherein the lower rebalancing threshold amount is less than the higher rebalancing threshold amount;

determining that the number of requests in the request queue for at least one of the plurality of processing stages is below the lower rebalancing threshold amount; and

decreasing an allocation of hardware resources to the respective under-utilized processing stage based on the determination,

wherein the prior steps are performed by executing computer-executable instructions of a module by a computer associated with the event-driven system.

15. The method of claim 14 , wherein decreasing the allocation of hardware resources includes removing one or more processing threads for the under-utilized processing stage, or removing one or more operating instances of the under-utilized processing stage.

16. The method of claim 14 , wherein comparing the respective determined number of requests to the lower rebalancing threshold includes determining that at least one but less than all of at least the respective number of requests for the plurality of processing stages are below the lower rebalancing threshold.

17. The method of claim 14 , wherein the hardware resources are associated with at least one of memory resources or processor resources.

18. The method of claim 13 , further comprising the steps of:

comparing the respective determined number of requests to a lower rebalancing threshold amount to determine if the respective determined number of requests is less than the lower rebalancing threshold amount,

wherein the processing stage is considered under-utilized if the determined number of requests for that particular processing stage is less than the lower rebalancing threshold amount, and

wherein the lower rebalancing threshold amount is less than the higher rebalancing threshold amount;

determining that the number of requests in each request queue for all of the plurality of processing stages is below the lower rebalancing threshold amount; and

automatically decreasing the lower rebalancing threshold amount for the plurality of processing stages based on the determination,

wherein the prior steps are performed by executing computer-executable instructions of a module by a computer associated with the event-driven system.

19. The method of claim 18 , further comprising the steps of:

comparing the lower rebalancing threshold amount to a minimum threshold value for the lower rebalancing threshold amount; and

decreasing the lower rebalancing threshold amount for the plurality of processing stages only if the lower rebalancing threshold amount is greater than the maximum threshold value for the lower rebalancing threshold amount.

20. The method of claim 13 , further comprising the steps of:

comparing the higher rebalancing threshold amount to a minimum threshold value for the higher rebalancing threshold amount; and

decreasing the higher rebalancing threshold amount for the plurality of processing stages only if the higher rebalancing threshold amount is greater than the minimum threshold value for the higher rebalancing threshold amount.

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 →
CHANGE OF NAME Recorded Jul 18, 2016
From: MCKESSON FINANCIAL HOLDINGS LIMITED
To: MCKESSON FINANCIAL HOLDINGS
Reel/Frame 039380/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2010
From: VOHRA, ANUJ; SARATHI, NIKHIL; SMITH, MARTY
To: MCKESSON FINANCIAL HOLDINGS LIMITED
Reel/Frame 025068/0583 →