IP Library Granted Patent US 10,705,761
Granted Patent B2
US 10,705,761 · App. 16/383,976 · Granted Jul 7, 2020

Method of and system for scheduling transmission of I/O operations

Inventor: Aleksey Alekseevich Stankevichus (Moscow, RU)
Assignee: YANDEX EUROPE AG
G06F3/0659G06F3/0611G06F3/0673G06F9/4881
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,705,761
App. No.
16/383,976
Granted
Jul 7, 2020
Kind
B2
Abstract

A method and a system for scheduling transmission of a plurality of input/output (I/O) operations to be executed by a storage device comprising: applying a slidable cell window to sequential I/O operations from a scheduled sequence, the slidable cell window being positioned over the sequential I/O operations starting with the first I/O operation, transmitting to the storage device the sequential I/O operations, receiving an operation execution confirmation from the storage device, determining a position of a given cell of the slidable cell window associated with the I/O operation, responsive to a position of the given cell being the first position of the slidable cell window: sliding the slidable cell window over the plurality of I/O operations so as to include at least one additional I/O operation in the slidable cell window, and transmitting to the storage device, the at least one additional I/O operation for execution.

Claims (55)

1. A method of scheduling transmission of a plurality of input/output (I/O) operations to be executed by a storage device, the storage device being part of a computer system having:

an operations scheduler executing a scheduling algorithm for scheduling the plurality of I/O operations for transmission to the storage device, the operations scheduler being configured to generate a scheduled sequence having the plurality of I/O operations ordered starting with a first I/O operation to be transmitted and finishing with a last I/O operation to be transmitted;

an I/O operations dispatch controller communicatively coupled to the operations scheduler and the storage device;

the storage device being configured to execute an execution order algorithm to determine an execution order of I/O operations having been transmitted from the operations scheduler for execution;

the method executable by the I/O operations dispatch controller, the method comprising:

applying a slidable N-cell window to select N sequential I/O operations from the scheduled sequence, the slidable N-cell being positioned over the N sequential I/O operations starting with the first I/O operation, each cell of the slidable window including a respective one of the N sequential I/O operations;

transmitting to the storage device the N sequential I/O operations;

receiving an execution confirmation from the storage device that is indicative of a given I/O operation from the N sequential I/O operations having been processed by the storage device;

determining a position of a given cell of the slidable N-cell window associated with the given I/O operation;

responsive to the position of the given cell being the first position amongst positions of cells of the slidable N-cell window:

sliding the slidable N-cell window over the plurality of I/O operations so as to include at least one additional I/O operation in the slidable N-cell window, the at least one additional I/O operation being immediately sequential in the scheduled sequence of the plurality of I/O operations to the N sequential I/O operations; and

transmitting to the storage device, the at least one additional I/O operation for execution.

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

responsive to the position of the given cell not being the first position amongst the positions of the cells of the N-cell window:

blocking the slidable N-cell window from sliding over the scheduled sequence of the plurality of I/O operations.

3. The method of claim 1 , wherein the at least one additional I/O operation is present within the scheduled sequence and wherein the transmitting the at least one additional I/O operation to the storage device is executed at the same time as the execution confirmation is received.

4. The method of claim 1 , wherein the at least one additional I/O operation is not present within the scheduled sequence and wherein the transmitting the at least one additional I/O operation to the storage device is executed after the execution confirmation is received as soon as the at least one additional I/O operation is received from the operations scheduler and is added to the scheduled sequence.

5. The method of claim 1 , wherein the receiving the execution confirmation comprises receiving a plurality of confirmations corresponding to a plurality of sequential I/O operations from the N sequential I/O operations having been processed by the storage device, and wherein the sliding of the slidable window is executed over a number of X-cells, the number of X-cells corresponding to a number of executed sequential I/O operations in the plurality of I/O operations starting with the first I/O operation.

6. The method of claim 1 , wherein the I/O operations dispatch controller is implemented as a software module.

7. The method of claim 6 , wherein the software module is located on the storage device.

8. The method of claim 1 , wherein the I/O operations dispatch controller is implemented as a state machine.

9. The method of claim 1 , wherein the scheduling algorithm is FAIR-principle based.

10. The method of claim 1 , wherein the storage device is implemented as a fault tolerant device.

11. The method of claim 1 , wherein the execution order algorithm is uncontrollable by the task scheduler.

12. The method of claim 1 , wherein the method further comprises executing, by the storage device the given I/O operation.

13. The method of claim 1 , wherein the method further comprises transmitting, by the storage device to the I/O operations dispatch controller, information indicative of the given I/O operation having been executed.

14. A system for scheduling transmission of a plurality of input/output (I/O) operations to be executed by a storage device connected to the system, the system having:

an operations scheduler executing a scheduling algorithm for scheduling the plurality of I/O operations for transmission to the storage device, the operations scheduler being configured to generate a scheduled sequence having the plurality of I/O operations ordered starting with a first I/O operation to be transmitted and finishing with a last I/O operation to be transmitted,

an I/O operations dispatch controller communicatively coupled to the operations scheduler and the storage device,

the storage device being configured to execute an execution order algorithm to determine an execution order of I/O operations having been transmitted from the operations scheduler for execution,

the system comprising:

a processor;

a non-transitory computer-readable medium comprising instructions;

the processor, upon executing the instructions, being configured to cause the I/O operations dispatch controller to:

apply a slidable N-cell window to select N sequential I/O operations from the scheduled sequence, the slidable N-cell being positioned over the N sequential I/O operations starting with the first I/O operation, each cell of the slidable window including a respective one of the N sequential I/O operations;

transmit to the storage device the N sequential I/O operations;

receive an execution confirmation from the storage device that is indicative of a given I/O operation from the N sequential I/O operations having been processed by the storage device;

determine a position of a given cell of the slidable N-cell window associated with the given I/O operation;

responsive to the position of the given cell being the first position amongst positions of cells of the slidable N-cell window:

slide the slidable N-cell window over the plurality of I/O operations so as to include at least one additional I/O operation in the slidable N-cell window, the at least one additional I/O operation being immediately sequential in the scheduled sequence of the plurality of I/O operations to the N sequential I/O operations; and

transmit to the storage device, the at least one additional I/O operation for execution.

15. The system of claim 14 , wherein the processor is further configured to cause the I/O operations dispatch controller to:

responsive to the position of the given cell not being the first position amongst the positions of the cells of the N-cell window:

block the slidable N-cell window from sliding over the scheduled sequence of the plurality of I/O operations.

16. The system of claim 14 , wherein the at least one additional I/O operation is present within the scheduled sequence and wherein the transmitting the at least one additional I/O operation to the storage device is executed at the same time as the execution confirmation is received.

17. The system of claim 14 , wherein the at least one additional I/O operation is not present within the scheduled sequence and wherein the transmitting the at least one additional I/O operation to the storage device is executed after the execution confirmation is received as soon as the at least one additional I/O operation is received from the operations scheduler and is added to the scheduled sequence.

18. The system of claim 14 , wherein the receiving the execution confirmation comprises receiving a plurality of confirmations corresponding to a plurality of sequential I/O operations from the N sequential I/O operations having been processed by the storage device, and wherein the sliding of the slidable window is executed over a number of X-cells, the number of X-cells corresponding to a number of executed sequential I/O operations in the plurality of I/O operations starting with the first I/O operation.

19. The system of claim 14 , wherein the I/O operations dispatch controller is implemented as a software module and wherein the instructions are part of the software module.

20. The system of claim 19 , wherein the software module is located on the storage device.

21. The system of claim 14 , wherein the I/O operations dispatch controller is implemented as a state machine and wherein the instructions are part of the state machine.

22. The system of claim 14 , wherein the scheduling algorithm is FAIR-principle based.

23. The system of claim 14 , wherein the storage device is implemented as a fault tolerant device.

24. The system of claim 14 , wherein the execution order algorithm is uncontrollable by the task scheduler.

25. The system of claim 14 , wherein the processor is further configured to cause the I/O operations to cause execution of the given I/O operation by the storage device.

26. The system of claim 14 , wherein the processor is further configured to cause the I/O operations to cause transmission, by the storage device, information indicative of the given I/O operation having been executed.

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 Apr 15, 2019
From: STANKEVICHUS, ALEKSEY ALEKSEEVICH
To: YANDEX.TECHNOLOGIES LLC
Reel/Frame 048885/0062 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2019
From: YANDEX.TECHNOLOGIES LLC
To: YANDEX LLC
Reel/Frame 048885/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2019
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 048885/0270 →