IP Library Patent Application 18329153
Patent Application
App. No. 18/329,153

OPTIMIZING EXECUTION OF SCHEDULED TASKS

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 None
App. No.
18/329,153
Filed
Jun 5, 2023
Art Unit
2197
USPC
718/102
Abstract

A system may include a memory having computer-readable instructions stored thereon, and a processor that executes the computer-readable instructions to determine a plurality of scheduled events to be executed in a time period, determine a number of buckets in the time period based on a predetermined permissible interval, generate a plurality of buckets equal to the number of buckets in the time period, wherein each of the plurality of buckets is associated with a time interval, and schedule each of the plurality of scheduled events in one of the plurality of buckets, wherein execution of each of the plurality of scheduled events is delayed or advanced from an original scheduled time based on the predetermined permissible interval.

Claims (86)

1 . A system comprising:

a memory having computer-readable instructions stored thereon; and

a processor that executes the computer-readable instructions to:

determine a plurality of scheduled events to be executed in a time period;

determine a number of buckets in the time period based on a predetermined permissible interval;

generate a plurality of buckets equal to the number of buckets in the time period, wherein each of the plurality of buckets is associated with a time interval; and

schedule each of the plurality of scheduled events in one of the plurality of buckets, wherein execution of each of the plurality of scheduled events is delayed or advanced from an original scheduled time based on the predetermined permissible interval.

2 . The system of claim 1 , wherein to generate the plurality of buckets, the processor further executes computer-readable instructions to:

map the time interval associated with each respective bucket of the plurality of buckets to a memory address containing metadata of the plurality of scheduled events to be executed in that respective bucket.

3 . The system of claim 1 , wherein to generate the plurality of buckets, the processor further executes computer-readable instructions to:

schedule the plurality of buckets at regular intervals in the time period.

4 . The system of claim 1 , wherein to determine the number of buckets, the processor further executes computer-readable instructions to divide the time period by the permissible interval.

5 . The system of claim 1 , wherein to schedule each of the plurality of scheduled events, the processor further executes computer-readable instructions to, for each scheduled event:

determine a delay time interval to a nearest delay bucket;

apply a delay weight to the delay time interval;

determine an advance time interval to a nearest advance bucket;

apply an advance weight to the advance time interval;

compare the weighted delay time interval to the weighted advance time interval; and

based on the comparison, determine whether the event is to be delayed by the delay time interval or advanced by the advance time interval.

6 . The system of claim 1 , wherein the processor further executes computer-readable instructions to:

determine that a number of scheduled events in a particular bucket exceeds an upper events number threshold; and

in response to the number of scheduled events in the particular bucket exceeding the upper events number threshold, generate additional buckets adjacent the particular bucket.

7 . The system of claim 6 , wherein the processor further executes computer-readable instructions to determine a new permissible interval based on the number of scheduled events in a particular buckets exceeding the upper events number threshold.

8 . The system of claim 1 , wherein the processor further executes computer-readable instructions to:

determine that a number of scheduled events in a particular bucket is below a lower events number threshold;

in response to the number of scheduled events in the particular bucket being below the lower events number threshold, schedule the events in the particular bucket to a second bucket; and

delete the particular bucket.

9 . The system of claim 1 , wherein each of the plurality of scheduled events is associated with a tenant in a multi-tenant pooled database.

10 . The system of claim 1 , wherein the processor further executes computer-readable instructions to:

determine the predetermined permissible interval based on a predetermined permissible delay interval and a predetermined permissible advance interval.

11 . A non-transitory, computer-readable media comprising computer-readable instructions stored thereon that when executed by a processor of a control plane cause the processor to:

determine a plurality of scheduled events to be executed in a time period;

determine a number of buckets in the time period based on a predetermined permissible interval;

generate a plurality of buckets equal to the number of buckets in the time period, wherein each of the plurality of buckets is associated with a time interval; and

schedule each of the plurality of scheduled events in one of the plurality of buckets, wherein execution of each of the plurality of scheduled events is delayed or advanced from an original scheduled time based on the predetermined permissible interval.

12 . The non-transitory, computer-readable media of claim 11 , wherein to generate the plurality of buckets, the computer-readable instructions further cause the processor to:

map the time interval associated with each respective bucket of the plurality of buckets to a memory address containing metadata of the plurality of scheduled events to be executed in that respective bucket.

13 . The non-transitory, computer-readable media of claim 11 , wherein to generate the plurality of buckets, the computer-readable instructions further cause the processor to:

schedule the plurality of buckets at regular intervals in the time period.

14 . The non-transitory, computer-readable media of claim 11 , wherein to determine the number of buckets, the computer-readable instructions further cause the processor to divide the time period by the permissible interval.

15 . The non-transitory, computer-readable media of claim 11 , wherein to schedule each of the plurality of scheduled events, the computer-readable instructions further cause the processor to, for each scheduled event:

determine a delay time interval to a nearest delay bucket;

apply a delay weight to the delay time interval;

determine an advance time interval to a nearest advance bucket;

apply an advance weight to the advance time interval;

compare the weighted delay time interval to the weighted advance time interval; and

based on the comparison, determine whether the event is to be delayed by the delay time interval or advanced by the advance time interval.

16 . The non-transitory, computer-readable media of claim 11 , wherein the computer-readable instructions further cause the processor to:

determine that a number of scheduled events in a particular bucket exceeds an upper events number threshold; and

in response to the number of scheduled events in the particular bucket exceeding the upper events number threshold, generate additional buckets adjacent the particular bucket.

17 . The non-transitory, computer-readable media of claim 16 , wherein the computer-readable instructions further cause the processor to determine a new permissible interval based on the number of scheduled events in a particular buckets exceeding the upper events number threshold.

18 . The non-transitory, computer-readable media of claim 11 , wherein the computer-readable instructions further cause the processor to:

determine that a number of scheduled events in a particular bucket is below a lower events number threshold;

in response to the number of scheduled events in the particular bucket being below the lower events number threshold, schedule the events in the particular bucket to a second bucket; and

delete the particular bucket.

19 . The non-transitory, computer-readable media of claim 11 , wherein each of the plurality of scheduled events is associated with a tenant in a multi-tenant pooled database.

20 . The non-transitory, computer-readable media of claim 11 , wherein the computer-readable instructions further cause the processor to:

determine the predetermined permissible interval based on a predetermined permissible delay interval and a predetermined permissible advance interval.

21 . A method comprising:

determining a plurality of scheduled events to be executed in a time period;

determining a number of buckets in the time period based on a predetermined permissible interval;

generating a plurality of buckets equal to the number of buckets in the time period, wherein each of the plurality of buckets is associated with a time interval; and

scheduling each of the plurality of scheduled events in one of the plurality of buckets, wherein execution of each of the plurality of scheduled events is delayed or advanced from an original scheduled time based on the predetermined permissible interval.

22 . The method of claim 21 , wherein generating the plurality of buckets comprises:

mapping the time interval associated with each respective bucket of the plurality of buckets to a memory address containing metadata of the plurality of scheduled events to be executed in that respective bucket.

23 . The method of claim 21 , wherein generating the plurality of buckets comprises:

scheduling the plurality of buckets at regular intervals in the time period.

24 . The method of claim 21 , wherein determining the number of buckets comprises dividing the time period by the permissible interval.

25 . The method of claim 21 , wherein scheduling each of the plurality of scheduled events comprises:

determining a delay time interval to a nearest delay bucket;

applying a delay weight to the delay time interval;

determining an advance time interval to a nearest advance bucket;

applying an advance weight to the advance time interval;

comparing the weighted delay time interval to the weighted advance time interval; and

based on the comparison, determining whether the event is to be delayed by the delay time interval or advanced by the advance time interval.

26 . The method of claim 21 , further comprising:

determining that a number of scheduled events in a particular bucket exceeds an upper events number threshold; and

in response to the number of scheduled events in the particular bucket exceeding the upper events number threshold, generating additional buckets adjacent the particular bucket.

27 . The method of claim 26 , further comprising determining a new permissible interval based on the number of scheduled events in a particular buckets exceeding the upper events number threshold.

28 . The method of claim 21 , further comprising:

determining that a number of scheduled events in a particular bucket is below a lower events number threshold;

in response to the number of scheduled events in the particular bucket being below the lower events number threshold, scheduling the events in the particular bucket to a second bucket; and

deleting the particular bucket.

29 . The method of claim 21 , wherein each of the plurality of scheduled events is associated with a tenant in a multi-tenant pooled database.

30 . The method of claim 21 , further comprising:

determining the predetermined permissible interval based on a predetermined permissible delay interval and a predetermined permissible advance interval.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2023
From: GUPTA, DEEPTI; DHAR, ASHISH; CHANDAK, AKSHAY
To: NUTANIX, INC.
Reel/Frame 064282/0768 →