IP Library Granted Patent US 10,372,374
Granted Patent B2
US 10,372,374 · App. 15/797,815 · Granted Aug 6, 2019

System and method for providing input/output determinism for servers hosting remotely accessible storages

Inventors: Yaniv Romem (Jerusalem, IL); Omri Mann (Jerusalem, IL); Ofer Oshri (Kfar Saba, IL)
Assignee: Excelero Storage Ltd.
G06F3/0655G06F3/061G06F3/067G06F3/0611G06F3/0629G06F3/0659G06F13/102
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,372,374
App. No.
15/797,815
Granted
Aug 6, 2019
Kind
B2
Abstract

Systems and methods for providing input/output (I/O) determinism. An I/O instruction and at least one service level indicator are received, wherein the at least one service level indicator includes a required time for executing the I/O instruction. It is determined whether the I/O instruction can be executed on the storage within the required time. When it is not determined that the I/O instruction can be executed on the storage within the required time, a notification is sent.

Claims (60)

1. A method for providing input/output (I/O) determinism for a server hosting at least a remotely accessible storage, comprising:

receiving an I/O instruction and at least one service level indicator from a client device, wherein the at least one service level indicator includes a required time for executing the I/O instruction;

determining whether the I/O instruction can be executed on the storage within the required time, wherein determining whether the I/O instruction can be executed on the storage within the required time further comprises:

determining a first latency of communication between the server and the client device; and

determining a first execution time for executing the I/O instruction on the storage, wherein it is determined that the I/O instruction can be executed on the storage within the required time when a sum of the first latency and the first execution time is less than the required time; and

sending, to the client device, a notification, when it is not determined that the I/O instruction can be executed on the storage within the required time.

2. The method of claim 1 , further comprising:

executing the I/O instruction on the storage, when it is determined that the I/O instruction can be executed on the storage within the required time.

3. The method of claim 1 , further comprising:

determining a second latency, wherein the second latency is a minimal latency between the client device and another server;

determining a second execution time, wherein the second execution time is a minimal execution time by a storage of the other server, wherein it is determined that the I/O instruction can be executed on the storage of the other server within the required time when a sum of the first latency, the first execution time, the second latency, and the second execution time is less than the required time; and

sending, to the storage of the other server, the I/O instruction for execution, when it is determined the I/O instruction can be executed on the storage of the other server within the required time.

4. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute the method according to claim 1 .

5. A system for providing input/output (I/O) determinism, comprising:

a storage;

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

receive an I/O instruction and at least one service level indicator from a client device, wherein the at least one service level indicator includes a required time for executing the I/O instruction;

determine a first latency of communication between the system and the client device;

determine a first execution time for executing the I/O instruction on the storage;

determine whether the I/O instruction can be executed on the storage within the required time, wherein it is determined that the I/O instruction can be executed on the storage within the required time when a sum of the first latency and the first execution time is less than the required time; and

send, to the client device, a notification, when it is not determined that the I/O instruction can be executed on the storage within the required time.

6. The system of claim 5 , wherein the system is further configured to:

execute the I/O instruction on the storage, when it is determined that the I/O instruction can be executed on the storage within the required time.

7. The system of claim 5 , wherein the system is further configured to:

determine a second latency, wherein the second latency is a minimal latency between the client device and another server;

determine a second execution time, wherein the second execution time is a minimal execution time by a storage of the other server, wherein it is determined that the I/O instruction can be executed on the storage of the other server within the required time when a sum of the first latency, the first execution time, the second latency, and the second execution time is less than the required time; and

send, to the storage of the other server, the I/O instruction for execution, when it is determined the I/O instruction can be executed on the storage of the other server within the required time.

8. A method for providing input/output (I/O) determinism for a server hosting at least a storage, the server including a processing circuitry, comprising:

sending, by the processing circuitry to the storage, an I/O instruction and at least one service level indicator, wherein the at least one service level indicator includes a required time for executing the I/O instruction;

determining, by the storage, whether the I/O instruction can be executed on the storage within the required time; and

sending, to the processing circuitry by the storage, a notification, when it is not determined that the I/O instruction can be executed on the storage within the required time;

sending the I/O instruction to another server including at least one other storage, wherein the I/O instruction is sent to the other server when the I/O instruction can be executed on the at least one other storage within the required time;

determining a latency of communication between the server and the other server;

determining an execution time for executing the I/O instruction on the at least one other storage, wherein the I/O instruction can be executed on the at least one other storage within the required time when a sum of the determined latency and the determined execution time is less than the required time; and

sending, to the at least one other storage, the I/O instruction for execution, when it is determined that the I/O instruction can be executed on the at least one other storage within the required time.

9. The method of claim 8 , further comprising:

executing the I/O instruction on the storage, when it is determined that the I/O instruction can be executed on the storage within the required time.

10. The method of claim 8 , further comprising:

determining a first execution time for executing the I/O instruction on the storage;

determining a second execution time for executing the I/O instruction on another storage hosted by the server; and

executing the I/O instruction on the storage having the lowest execution time among the first execution time and the second execution time.

11. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute the method according to claim 8 .

12. A system for providing input/output (I/O) determinism, comprising:

a storage;

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

sending, by the processing circuitry to the storage, an I/O instruction and at least one service level indicator, wherein the at least one service level indicator includes a required time for executing the I/O instruction;

determining, by the storage, whether the I/O instruction can be executed on the storage within the required time; and

sending, to the processing circuitry by the storage, a notification, when it is not determined that the I/O instruction can be executed on the storage within the required time;

send the I/O instruction to another server including at least one other storage;

determine a latency of communication between the server and the other server;

determine an execution time for executing the I/O instruction on the at least one other storage, wherein the I/O instruction can be executed on the at least one other storage within the required time when a sum of the determined latency and the determined execution time is less than the required time; and

send, to the at least one other storage, the I/O instruction for execution, when it is determined that the I/O instruction can be executed on the at least one other storage within the required time.

13. The system of claim 12 , wherein the system is further configured to:

execute the I/O instruction on the storage, when it is determined that the I/O instruction can be executed on the storage within the required time.

14. The system of claim 12 , wherein the system is further configured to:

determine a first execution time for executing the I/O instruction on the storage;

determine a second execution time for executing the I/O instruction on another storage hosted by the server; and

execute the I/O instruction on the storage having the lowest execution time among the first execution time and the second execution time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: EXCELERO STORAGE LTD.
To: NVIDIA CORPORATION
Reel/Frame 059249/0950 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2017
From: ROMEM, YANIV; MANN, OMRI; OSHRI, OFER
To: EXCELERO STORAGE LTD.
Reel/Frame 043984/0466 →
Continuity (2)
Provisional Application 62418847 · Nov 8, 2016
Related Publication 20180129449A1 · May 10, 2018