IP Library Granted Patent US 10,996,986
Granted Patent B2
US 10,996,986 · App. 16/504,040 · Granted May 4, 2021

Method and system for scheduling i/o operations for execution

Inventors: Aleksey Alekseevich Stankevichus (Moscow, RU); Sergey Vladimirovich Trifonov (Moskovskaya obl, RU)
Assignee: YANDEX EUROPE AG
G06F9/4887G06F3/0659G06F9/48G06F9/4806G06F9/4843G06F9/4881G06F9/50G06F9/5005G06F9/5066G06F9/466
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,996,986
App. No.
16/504,040
Granted
May 4, 2021
Kind
B2
Abstract

A hybrid scheduler for and a method of scheduler I/O operations for execution are disclosed. The hybrid scheduler has a first a second scheduler. The method includes receiving I/O operations from a first and second I/O source and executing, by the first scheduler, a first algorithm to determine a scheduling order of the I/O operations based on the bandwidth of a memory drive. The method also includes transmitting this order of I/O operations to the second scheduler that executes a second algorithm to determine a rescheduled order of I/O operations based on respective execution deadlines. The method also includes monitoring whether execution of the I/O operations respects the respective execution deadlines. In response to determining that the execution of at least one I/O operation does not respect the respective execution deadline, the method includes pausing accepting additional I/O operations by the second scheduler from the first scheduler.

Claims (83)

1. A method of scheduling I/O operations for execution by a memory drive, the memory drive being implemented as part of a distributed computer-processing system having:

a plurality of I/O sources providing the I/O operations, the plurality of I/O sources having a first I/O source and a second I/O source,

each one of the first I/O source and the second I/O source being associated with a respective pre-determined proportion of processing bandwidth of the memory drive for executing the respective I/O operations of the first I/O source and of the second I/O source;

a hybrid I/O operations scheduler, the hybrid I/O operations scheduler having a first I/O scheduler and a second I/O scheduler;

the method executable by the hybrid I/O operations scheduler, the method comprising:

receiving, by the first I/O scheduler, (i) at least one I/O operation originated by the first I/O source and (ii) at least one I/O operation originated by the second I/O source;

executing, by the first I/O scheduler, a first scheduling algorithm to determine a scheduling order of the at least one I/O operation originated by the first I/O source and at least one I/O operation originated by the second I/O source, the first scheduling algorithm being based on:

the respective pre-determined proportion of processing bandwidth of the memory drive associated with the first I/O source and the second I/O source,

the execution of the first scheduling algorithm resulting in a first-scheduled order of I/O operations;

transmitting the first-scheduled order of I/O operations to the second I/O scheduler;

executing, by the second I/O scheduler, a second scheduling algorithm to determine a rescheduled order of I/O operations for the first-scheduled order of I/O operations, the second scheduling algorithm being based on:

respective execution deadlines of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source,

monitoring, by the hybrid I/O operations scheduler, whether execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines;

in response to determining that the execution of at least one I/O operation does not respect the respective execution deadline, pausing accepting additional I/O operations by the second I/O scheduler from the first I/O scheduler.

2. The method of claim 1 , wherein the monitoring whether the execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines comprises:

monitoring, by the second I/O scheduler, whether the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source are executable before the respective execution deadlines.

3. The method of claim 2 , wherein the determining that the execution of at least one I/O operation does not respect the respective execution deadline comprises:

determining, by the second I/O scheduler, that the at least one I/O operation is not going to be executed by the memory drive before the respective execution deadline if transmitted to the memory drive in accordance with rescheduled order of I/O operations.

4. The method of claim 2 , wherein the determining that the execution of at least one I/O operation does not respect the respective execution deadline comprises:

determining, by the second I/O scheduler, that the at least one I/O operation is not going to be executed by the memory drive before the respective execution deadline if an additional I/O operation is received from the first I/O scheduler.

5. The method of claim 1 , wherein the monitoring whether the execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines comprises:

monitoring, by the hybrid I/O operations scheduler, whether the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source are actually executed before the respective execution deadlines.

6. The method of claim 5 , wherein the determining that the execution of at least one I/O operation does not respect the respective execution deadline comprises:

determining, by the hybrid I/O operations scheduler, that the at least one I/O operation is not actually executed by the memory drive before the respective execution deadline.

7. The method of claim 1 , wherein the pausing comprises stopping, by the second I/O scheduler, accepting additional I/O operations by the second I/O operations scheduler.

8. The method of claim 1 , wherein the pausing comprises transmitting, by the second I/O scheduler, a feedback signal to the first I/O operations scheduler, the feedback signal being instrumental in the first I/O operations scheduler stopping sending additional I/O operations to the second I/O operations scheduler.

9. The method of claim 1 , wherein the method further comprises:

receiving, by the first I/O operations scheduler, at least one additional I/O operations originated by the first I/O source; and

receiving, by the first I/O operations scheduler, at least one additional I/O operations originated by the second I/O source.

10. The method of claim 9 , wherein the method further comprises resuming, by the second I/O operations scheduler, receiving the additional I/O operations from the first I/O scheduler.

11. The method of claim 10 , wherein the resuming is executed in response to determining, by the hybrid I/O operations scheduler, that the execution of further I/O operations received by the second I/O scheduler does respect the respective execution deadlines.

12. The method of claim 1 , wherein the first I/O scheduler is a DRR-type scheduler.

13. The method of claim 1 , wherein the second I/O scheduler is an EDF-type scheduler.

14. The method of claim 1 , wherein the hybrid I/O operations scheduler operates:

in a standard mode of operation when the second I/O scheduler accepts the additional I/O operations from the first I/O scheduler; and

in a high-demand mode of operation when the second I/O scheduler pauses accepting additional I/O operations from the first I/O scheduler.

15. The method of claim 14 , wherein:

in the standard mode of operation, the hybrid I/O operations scheduler:

provides a fair allocation of processing bandwidth of the memory drive for each one of the first I/O source and the second I/O source; and

supports a real-time requirements of the first I/O source and the second I/O source; and

in the high-demand mode of operation, the hybrid I/O operations scheduler:

provides the fair allocation of processing bandwidth of the memory drive for each one of the first I/O source and the second I/O source.

16. A storage device executing a hybrid I/O operations scheduler for scheduling I/O operations for execution by a memory drive, the memory drive being implemented as part of a distributed computer-processing system having:

a plurality of I/O sources providing the I/O operations, the plurality of I/O sources having a first I/O source and a second I/O source,

each one of the first I/O source and the second I/O source being associated with a respective pre-determined proportion of processing bandwidth of the memory drive for executing the respective I/O operations of the first I/O source and of the second I/O source;

the hybrid I/O operations scheduler having a first I/O scheduler and a second I/O scheduler, the hybrid I/O operations scheduler being configured to:

receive, by the first I/O scheduler: (i) at least one I/O operation originated by the first I/O source and (ii) at least one I/O operation originated by the second I/O source;

execute, by the first I/O scheduler, a first scheduling algorithm to determine a scheduling order of the at least one I/O operation originated by the first I/O source and at least one I/O operation originated by the second I/O source, the first scheduling algorithm being based on:

the respective pre-determined proportion of processing bandwidth of the memory drive associated with the first I/O source and the second I/O source,

the execution of the first scheduling algorithm resulting in a first-scheduled order of I/O operations;

transmit the first-scheduled order of I/O operations to the second I/O scheduler;

execute, by the second I/O scheduler, a second scheduling algorithm to determine a rescheduled order of I/O operations for the first-scheduled order of I/O operations, the second scheduling algorithm being based on:

respective execution deadlines of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source,

monitor whether execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines;

in response to determining that the execution of at least one I/O operation does not respect the respective execution deadline, pause accepting additional I/O operations by the second I/O scheduler from the first I/O scheduler.

17. The storage device of claim 16 , wherein the hybrid I/O operations scheduler configured to monitor whether the execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines comprises the hybrid I/O operations scheduler being configured to:

monitor whether the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source are executable before the respective execution deadlines.

18. The storage device of claim 17 , wherein the hybrid I/O operations scheduler configured to determine that the execution of at least one I/O operation does not respect the respective execution deadline comprises the hybrid I/O operations scheduler being configured to:

determine that the at least one I/O operation is not going to be executed by the memory drive before the respective execution deadline if transmitted to the memory drive in accordance with rescheduled order of I/O operations.

19. The storage device of claim 17 , wherein the hybrid I/O operations scheduler configured to determine that the execution of at least one I/O operation does not respect the respective execution deadline comprises the hybrid I/O operations scheduler being configured to:

determine that the at least one I/O operation is not going to be executed by the memory drive before the respective execution deadline if an additional I/O operation is received from the first I/O scheduler.

20. The storage device of claim 16 , wherein the hybrid I/O operations scheduler configured to monitor whether the execution of the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source respects the respective execution deadlines comprises the hybrid I/O operations scheduler being configured to:

monitor whether the at least one I/O operations originated by the first I/O source and the at least one I/O operations originated by the second I/O source are actually executed before the respective execution deadlines.

21. The storage device of claim 20 , wherein the hybrid I/O operations scheduler configured to determine that the execution of at least one I/O operation does not respect the respective execution deadline comprises the hybrid I/O operations scheduler configured to:

determine that the at least one I/O operation is not actually executed by the memory drive before the respective execution deadline.

22. The storage device of claim 16 , wherein the hybrid I/O operations scheduler configured to pause comprises the hybrid I/O operations scheduler being configured to stop accepting additional I/O operations by the second I/O operations scheduler.

23. The storage device of claim 16 , wherein the hybrid I/O operations scheduler configured to pause comprises the hybrid I/O operations scheduler being configured to transmit, by the second I/O scheduler, a feedback signal to the first I/O operations scheduler, the feedback signal being instrumental in the first I/O operations scheduler stopping sending additional I/O operations to the second I/O operations scheduler.

24. The storage device of claim 16 , wherein the hybrid I/O operations scheduler is configured to:

receive, by the first I/O operations scheduler, at least one additional I/O operations originated by the first I/O source; and

receive, by the first I/O operations scheduler, at least one additional I/O operations originated by the second I/O source.

25. The storage device of claim 24 , wherein the hybrid I/O operations scheduler is further configured to resume receiving by the second I/O operations scheduler the additional I/O operations from the first I/O scheduler.

26. The storage device of claim 25 , wherein the hybrid I/O operations scheduler configured to resume is executed in response to determining, by the hybrid I/O operations scheduler, that the execution of further I/O operations received by the second I/O scheduler does respect the respective execution deadlines.

27. The storage device of claim 16 , wherein the first I/O scheduler is a DRR-type scheduler.

28. The storage device of claim 16 , wherein the second I/O scheduler is an EDF-type scheduler.

29. The storage device of claim 16 , wherein the hybrid I/O operations scheduler operates:

in a standard mode of operation when the second I/O scheduler accepts the additional I/O operations from the first I/O scheduler; and

in a high-demand mode of operation when the second I/O scheduler pauses accepting additional I/O operations from the first I/O scheduler.

30. The storage device of claim 29 , wherein:

in the standard mode of operation, the hybrid I/O operations scheduler:

provides a fair allocation of processing bandwidth of the memory drive for each one of the first I/O source and the second I/O source; and

supports a real-time requirements of the first I/O source and the second I/O source; and

in the high-demand mode of operation, the hybrid I/O operations scheduler:

provides the fair allocation of processing bandwidth of the memory drive for each one of the first I/O source and the second I/O source.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: DIRECT CURSUS TECHNOLOGY L.L.C
To: Y.E. HUB ARMENIA LLC
Reel/Frame 068534/0537 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY TYPE FROM APPLICATION 11061720 TO PATENT 11061720 AND APPLICATION 11449376 TO PATENT 11449376 PREVIOUSLY RECORDED ON REEL 065418 FRAME 0705. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 8, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065531/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065418/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2020
From: STANKEVICHUS, ALEKSEY ALEKSEEVICH; TRIFONOV, SERGEY VLADIMIROVICH
To: YANDEX.TECHNOLOGIES LLC
Reel/Frame 053234/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2020
From: YANDEX.TECHNOLOGIES LLC
To: YANDEX LLC
Reel/Frame 053234/0702 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2020
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 053234/0717 →