IP Library Granted Patent US 11,544,114
Granted Patent B1
US 11,544,114 · App. 16/880,700 · Granted Jan 3, 2023

Methods for optimizing cloud-scale distributed asynchronous systems with idempotent workloads and devices thereof

Inventors: Patrick Trimble (Seattle, WA); Michael Bellhart (Seattle, WA)
Assignee: F5, Inc.
G06F9/5038G06F9/4881H04L41/0813H04L41/14H04L63/205
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 11,544,114
App. No.
16/880,700
Granted
Jan 3, 2023
Kind
B1
Abstract

Methods, non-transitory computer readable media, workload management devices, and network traffic management systems that optimize systems with idempotent workloads are illustrated. With this technology, an identification is made when a status indicates a jobs is deferred. A determination is then made when the job is preempted based on a type of the job, when the identification indicates the job is deferred and the type and an identifier of the job matches another job. Another status is adjusted to indicate the other job is deferred. The status is then modified to indicate that the job is preempted, or the job is removed, when the determination indicates the job is preempted. Accordingly, jobs are selectively preempted, such as based on idempotency of the associated workload, to achieve intended consistent states for objects faster, with increased reliability, and with reduced overhead.

Claims (52)

1. A method for workload processing implemented by a network traffic management system comprising one or more network security apparatuses, workload management devices, server devices, or client devices, the method comprising:

identifying when a status associated with one of a plurality of jobs indicates that the one of the plurality of jobs is deferred, wherein the one of the plurality of jobs comprises a type corresponding with an idempotent workload;

determining when the one of the plurality of jobs is preempted based on the type, when the identification indicates that the one of the plurality of jobs is deferred and the type and an identifier of the one of the plurality of jobs matches another one of the plurality of jobs; and

adjusting another status of the another one of the plurality of jobs to indicate that the another one of the plurality of jobs is deferred, and modifying the status of the one of the plurality of jobs to indicate the one of the plurality of jobs is preempted or removing the one of the plurality of jobs, when the determination indicates that the one of the plurality of jobs is preempted.

2. The method of claim 1 , further comprising, when an additional one of the plurality of jobs having the type and the identifier is determined to have completed:

modifying an additional status to indicate that the additional one of the plurality of jobs has completed or removing the additional one of the plurality of jobs;

executing the another one of the plurality of jobs; and

modifying the another status to indicate that the another one of the plurality of jobs is executing.

3. The method of claim 1 , wherein the idempotent workload is associated with a managed object and comprises a configuration update for a network security policy.

4. The method of claim 3 , wherein the managed object is configured to analyze network traffic received from clients according to the network security policy and send the network traffic via one or more communication networks to an application hosted by one or more servers.

5. The method of claim 1 , further comprising:

determining when deferral of the one of the plurality of jobs is required, when an additional one of the plurality jobs having the type and the identifier is executing; and

storing the one of the plurality of jobs as associated with the status, when the determination indicates that the deferral of the one of the plurality of jobs is required.

6. A workload management device, comprising memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:

identify when a status indicates one of a plurality of jobs is deferred;

determine when the one of the jobs is preempted based on a type of the one of the jobs, when the identification indicates the one of the jobs is deferred and the type and an identifier of the one of the jobs matches another one of the jobs; and

adjust another status of the another one of the jobs to indicate that the another one of the plurality of jobs is deferred, and modify the status of the one of the one of the plurality of jobs to indicate the one of the plurality of jobs is preempted or remove the one of the plurality of the jobs, when the determination indicates the one of the plurality of the jobs is preempted.

7. The workload management device of claim 6 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to, when an additional one of the plurality of jobs having the type and the identifier is determined to have completed:

modify an additional status to indicate that the additional one of the plurality of jobs has completed or removing the additional one of the plurality of jobs;

execute the another one of the plurality of jobs; and

modify the another status to indicate that the another one of the plurality of jobs is executing.

8. The workload management device of claim 6 , wherein an idempotent workload is associated with a managed object and comprises a configuration update for a network security policy.

9. The workload management device of claim 8 , wherein the managed object is configured to analyze network traffic received from clients according to the network security policy and send the network traffic via one or more communication networks to an application hosted by one or more servers.

10. The workload management device of claim 6 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

determine when deferral of the one of the plurality of jobs is required, when an additional one of the plurality jobs having the type and the identifier is executing; and

store the one of the plurality of jobs as associated with the status, when the determination indicates that the deferral of the one of the plurality of jobs is required.

11. A non-transitory computer readable medium having stored thereon instructions for workload processing comprising executable code that, when executed by one or more processors, causes the one or more processors to:

identify when a status associated with one of a plurality of jobs indicates that the one of the plurality of jobs is deferred, wherein the one of the plurality of jobs comprises a type corresponding with an idempotent workload;

determine when the one of the plurality of jobs is preempted based on the type, when the identification indicates that the one of the plurality of jobs is deferred and the type and an identifier of the one of the plurality of jobs matches another one of the plurality of jobs; and

adjust another status of the another one of the plurality of the jobs to indicate that the another one of the plurality of jobs is deferred, and modify the status of the one of the plurality of the jobs to indicate the one of the plurality of jobs is preempted or remove the one of the plurality of jobs, when the determination indicates that the one of the plurality of jobs is preempted.

12. The non-transitory computer readable medium of claim 11 , wherein the executable code, when executed by the one or more processors further causes the one or more processors to, when an additional one of the plurality of jobs having the type and the identifier is determined to have completed:

modify an additional status to indicate that the additional one of the plurality of jobs has completed or removing the additional one of the plurality of jobs;

execute the another one of the plurality of jobs; and

modify the another status to indicate that the another one of the plurality of jobs is executing.

13. The non-transitory computer readable medium of claim 11 , wherein the idempotent workload is associated with a managed object and comprises a configuration update for a network security policy.

14. The non-transitory computer readable medium of claim 13 , wherein the managed object is configured to analyze network traffic received from clients according to the network security policy and send the network traffic via one or more communication networks to an application hosted by one or more servers.

15. The non-transitory computer readable medium of claim 11 , wherein the executable code, when executed by the one or more processors further causes the one or more processors to:

determine when deferral of the one of the plurality of jobs is required, when an additional one of the plurality jobs having the type and the identifier is executing; and

store the one of the plurality of jobs as associated with the status, when the determination indicates that the deferral of the one of the plurality of jobs is required.

16. A network traffic management system, comprising one or more workload management devices, network security apparatuses, server devices, or client devices with memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:

identify when a status associated with one of a plurality of jobs indicates that the one of the plurality of jobs is deferred, wherein the one of the plurality of jobs comprises a type corresponding with an idempotent workload;

determine when the one of the plurality of jobs is preempted based on the type, when the identification indicates that the one of the plurality of jobs is deferred and the type and an identifier of the one of the plurality of jobs matches another one of the plurality of jobs; and

adjust another status of the another one of the plurality of the jobs to indicate that the another one of the plurality of jobs is deferred, and modify the status of the one of the plurality of the jobs to indicate the one of the plurality of jobs is preempted or remove the one of the plurality of jobs, when the determination indicates that the one of the plurality of jobs is preempted.

17. The network traffic management system of claim 16 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to, when an additional one of the plurality of jobs having the type and the identifier is determined to have completed:

modify an additional status to indicate that the additional one of the plurality of jobs has completed or removing the additional one of the plurality of jobs;

execute the another one of the plurality of jobs; and

modify the another status to indicate that the another one of the plurality of jobs is executing.

18. The network traffic management system of claim 16 , wherein the idempotent workload is associated with a managed object and comprises a configuration update for a network security policy.

19. The network traffic management system of claim 18 , wherein the managed object is configured to analyze network traffic received from clients according to the network security policy and send the network traffic via one or more communication networks to an application hosted by one or more servers.

20. The network traffic management system of claim 16 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

determine when deferral of the one of the plurality of jobs is required, when an additional one of the plurality jobs having the type and the identifier is executing; and

store the one of the plurality of jobs as associated with the status, when the determination indicates that the deferral of the one of the plurality of jobs is required.

Assignments (3)
CHANGE OF NAME Recorded Dec 5, 2022
From: F5 NETWORKS, INC.
To: F5, INC.
Reel/Frame 062061/0677 →
CHANGE OF NAME Recorded Nov 30, 2022
From: F5 NETWORKS, INC.
To: F5, INC.
Reel/Frame 062026/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: TRIMBLE, PATRICK; BELLHART, MICHAEL
To: F5 NETWORKS, INC.
Reel/Frame 052731/0879 →
Continuity (1)
Provisional Application 62852866 · May 24, 2019