IP Library Granted Patent US 10,728,331
Granted Patent B2
US 10,728,331 · App. 15/630,003 · Granted Jul 28, 2020

Techniques for dynamic cache use by an input/output device

Inventors: Yaniv Romem (Jerusalem, IL); Ofer Oshri (Kfar Saba, IL); Omri Mann (Jerusalem, IL)
Assignee: EXCELERO STORAGE LTD.
H04L67/1097G06F3/0604G06F3/064G06F3/067G06F3/0631G06F15/17331H04L67/2842H04L67/42G06F12/0813G06F2212/154G06F2212/163G06F2212/502
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,728,331
App. No.
15/630,003
Granted
Jul 28, 2020
Kind
B2
Abstract

A system and method for dynamic caching by a client device having remote memory access to a server. The system includes: a processing circuitry; and at least one memory, the at least one memory containing instructions that, when executed by the processing circuitry, configure the system to: configure a network interface of the client device to: request a memory allocation of at least a portion of a storage of the client device; receive, in real-time, the requested memory allocation of the client device storage; and store, in the allocated at least a portion of the client device storage, at least a first portion of cached metadata, wherein the cached metadata corresponds to at least an access operation between the client device and the server.

Claims (54)

1. A system for dynamic caching for a client device having remote memory access to a server, comprising:

a processing circuitry; and

at least one memory, the at least one memory containing instructions that, when executed by the processing circuitry, configure the system to:

configure a network interface of the client device to:

request a memory allocation of at least a portion of a storage of the client device;

receive, in real-time, the requested memory allocation of at least a portion of the client device storage;

store, in the allocated at least a portion of the client device storage, at least a first portion of cached metadata, wherein the cached metadata corresponds to at least an access operation between the client device and the server;

store a second portion of the cached metadata in at least a portion of the at least one memory; and

release at least a portion of the allocated client device storage, when it is determined that an amount of memory required to store the cached metadata is less than a combined total amount of memory of the system and the allocated client device storage.

2. The system of claim 1 , wherein the system is included in the network interface.

3. The system of claim 2 , wherein the network interface is a network interface controller, wherein the system is a system-on-a-chip deployed on the network interface controller.

4. The system of claim 1 , wherein the network interface is further configured to:

release at least a portion of the allocated client device storage, when a release instruction is received from a driver agent installed on the client device.

5. The system of claim 1 , wherein the network interface is further configured to:

release the allocated client device storage, when it is determined that requirements of the client device storage are prioritized over the cached metadata.

6. The system of claim 1 , wherein the network interface is further configured to:

synchronize the cached metadata stored in the client device and metadata stored in the server, when it is determined that the cached metadata and the metadata stored in the server do not match.

7. The system of claim 1 , wherein the requested memory allocation is received as a plurality of block addresses corresponding to a plurality of respective portions of the client device storage.

8. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising:

configuring a network interface of the client device to:

request a memory allocation of at least a portion of a storage of the client device;

receive, in real-time, the requested memory allocation of the at least a portion of the client device storage;

store, in the allocated at least a portion of the client device storage, at least a first portion of cached metadata, wherein the cached metadata corresponds to at least an access operation between the client device and the server;

store a second portion of the cached metadata in at least a portion of at least one memory of a dynamic caching system; and

release at least a portion of the allocated client device storage, when it is determined that an amount of memory required to store the cached metadata is less than a combined total amount of memory of the system and the allocated client device storage.

9. A method for dynamic caching by a client device having remote memory access to a server, comprising:

configuring a network interface of the client device to:

request a memory allocation of at least a portion of a storage of the client device;

receive, in real-time, the requested memory allocation of the at least a portion of the client device storage;

store, in the allocated at least a portion of the client device storage, at least a first portion of cached metadata, wherein the cached metadata corresponds to at least an access operation between the client device and the server;

store a second portion of the cached metadata in at least a portion of at least one memory of a dynamic caching system; and

release at least a portion of the allocated client device storage, when it is determined that an amount of memory required to store the cached metadata is less than a combined total amount of memory of the system and the allocated client device storage.

10. The method of claim 9 , wherein the network interface is a network interface controller, wherein the network interface controller is configured by a system-on-a-chip deployed on the network interface controller.

11. The method of claim 9 , further comprising:

configuring the network interface to:

release at least a portion of the allocated client device storage, when a release instruction is received from a driver agent installed on the client device.

12. The method of claim 9 , further comprising:

configuring the network interface to:

release the allocated client device storage, when it is determined that requirements of the client device storage are prioritized over the cached metadata.

13. The method of claim 9 , further comprising:

configuring the network interface to:

synchronize the cached metadata stored in the client device and metadata stored in the server, when it is determined that the cached metadata and the metadata stored in the server do not match.

14. The method of claim 9 , wherein the requested memory allocation is received as a plurality of block addresses corresponding to a plurality of respective portions of the client device storage.

15. A system for dynamic caching by a client device having remote memory access to a server, comprising:

a processing circuitry; and

at least one memory, the at least one memory containing instructions that, when executed by the processing circuitry, configure the system to:

configure a network interface of the client device to:

request a memory allocation of at least a portion of a storage of the client device from a driver agent of the client device, wherein the driver agent is configured to:

dynamically allocate at least a portion of a storage of the client device and to the network interface;

store, in the allocated at least a portion of the client device storage, at least a first portion of cached metadata, wherein the cached metadata corresponds to at least an access operation between the client device and the server;

store a second portion of the cached metadata in at least a portion of the at least one memory; and

release at least a portion of the allocated client device storage, when it is determined that an amount of memory required to store the cached metadata is less than a combined total amount of memory of the system and the allocated client device storage.

16. The system of claim 15 , wherein the network interface is further configured to:

release at least a portion of the allocated at least a portion of the client device storage, when a release instruction is received from the driver agent.

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 Jun 22, 2017
From: ROMEM, YANIV; OSHRI, OFER; MANN, OMRI
To: EXCELERO STORAGE LTD.
Reel/Frame 042784/0623 →
Continuity (2)
Provisional Application 62353051 · Jun 22, 2016
Related Publication 20170374150A1 · Dec 28, 2017