IP Library Granted Patent US 9,436,716
Granted Patent B2
US 9,436,716 · App. 13/888,534 · Granted Sep 6, 2016

Method and system for data plane abstraction to enable a network storage platform ecosystem

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 9,436,716
App. No.
13/888,534
Granted
Sep 6, 2016
Kind
B2
Abstract

A method for network storage by receiving, by a storage compiler, a first storage definition from a storage application developer, where the first storage definition describes a customized storage implementation for storing data in an abstraction of at least one physical storage device, compiling the first storage definition to generate a first customized storage implementation module, and loading the first customized storage implementation module into an IO engine. The first customized storage implementation module causes data to be stored in the at least one physical storage device differently than prior to loading the first customized storage implementation module in the IO engine.

Claims (53)

1. A method for network storage, the method comprising:

receiving, by a storage compiler, a first storage definition from a storage application developer; wherein the first storage definition describes a customized storage implementation for storing data in an abstraction of at least one physical storage device;

compiling the first storage definition to generate a first customized storage implementation module;

loading the first customized storage implementation module into an IO engine; wherein the first customized storage implementation module causes data to be stored in the at least one physical storage device differently than prior to loading the first customized storage implementation module in the IO engine; and

in response to receiving a second storage definition:

dynamically generating a second customized storage implementation module; and

dynamically loading the second customized storage implementation module into the IO engine;

wherein an IO operating system prevents a first network storage application associated with the first storage definition from utilizing the second customized storage implementation module.

2. The method of claim 1 , wherein a first network storage application and a second network storage application concurrently utilize the IO engine to access the respective customized storage implementation modules.

3. The method of claim 1 , wherein the first storage definition is received in a domain specific language.

4. The method of claim 1 , wherein the customized storage processing modules are configured to perform configurable functions including hash, encrypt, decrypt, lookup, and data deduplication;

wherein the configurable function of hash comprises a hash function;

wherein the configurable function of encrypt comprises a function for encoding data using an encryption algorithm;

wherein the configurable function of decrypt comprises a function for encoding data using an encryption algorithm; and

wherein the configurable function of lookup comprises identifying a location for particular data, and the configurable function of deduplication comprises functionality for removing redundant data.

5. The method of claim 1 , wherein the IO engine orchestrates an execution order of a first set of customized data processing modules and a second set of customized data processing modules by connecting the individual customized data processing modules according to a configuration policy.

6. The method of claim 1 , wherein the customized storage implementation module is composed of multiple instances through the IO engine.

7. A system for network storage, the system comprising

a computer readable storage device comprising computer readable code executable by a processor to:

receive, by a storage compiler, a first storage definition from a storage application developer; wherein the first storage definition describes a customized storage implementation for storing data in an abstraction of at least one physical storage device;

compile the first storage definition to generate a first customized storage implementation module;

load the first customized storage implementation module into an IO engine; wherein the first customized storage implementation module causes data to be stored in the at least one physical storage device differently than prior to loading the first customized storage implementation module in the IO engine; and

in response to receiving a second storage definition:

dynamically generate a second customized storage implementation module, and

dynamically load the second customized storage implementation module into the IO engine,

wherein an IO operating system prevents a first network storage application associated with the first storage definition from utilizing the second customized storage implementation module.

8. The system of claim 7 , wherein a first network storage application and a second network storage application concurrently utilize the IO engine to access the respective customized storage implementation modules.

9. The system of claim 7 , wherein the first storage definition is received in a domain specific language.

10. The system of claim 7 , wherein the customized storage implementation modules are configured to perform configurable functions including hash, encrypt, decrypt, lookup, and data deduplication;

wherein the configurable function of hash comprises a hash function;

wherein the configurable function of encrypt comprises a function for encoding data using an encryption algorithm;

wherein the configurable function of decrypt comprises a function for encoding data using an encryption algorithm;

wherein the configurable function of lookup comprises identifying a location for particular data, and the configurable function of deduplication comprises functionality for removing redundant data.

11. The system of claim 7 , wherein the IO engine orchestrates an execution order of a first set of customized data processing modules and a second set of customized data processing modules by connecting the individual customized data processing modules according to a configuration policy.

12. The system of claim 7 , wherein the customized storage implementation module is composed of multiple instances through the IO engine.

13. A computer program product for network storage application development, the computer program product comprising: a computer readable storage device; and computer readable code stored on the computer readable storage device and executable by a computer processor to:

receive, by a storage compiler, a first storage definition from a storage application developer wherein the first storage definition describes a customized storage implementation for storing data in an abstraction of at least one physical storage device;

compile the first storage definition to generate a first customized storage implementation module;

load the first customized storage implementation module into an IO engine;

wherein the first customized storage implementation module causes data to be stored in the at least one physical storage device differently than prior to loading the first customized storage implementation module in the IO engine; and

in response to receiving a second storage definition:

dynamically generate a second customized storage implementation module; and

dynamically load the second customized storage implementation module into the IO engine;

wherein an IO operating system prevents a first network storage application associated with the first storage definition from utilizing the second customized storage implementation module.

14. The computer program product of claim 13 , wherein a first network storage application and a second network storage application concurrently utilize the IO engine to access the respective customized storage implementation modules.

15. The computer program product of claim 13 , wherein the first storage definition is received in a domain specific language.

16. The computer program product of claim 13 , wherein the customized storage implementation modules are configured to perform configurable functions including hash, encrypt, decrypt, lookup, and data deduplication;

wherein the configurable function of hash comprises a hash function;

wherein the configurable function of encrypt comprises a function for encoding data using an encryption algorithm;

wherein the configurable function of decrypt comprises a function for encoding data using an encryption algorithm;

wherein the configurable function of lookup comprises identifying a location for particular data; and

wherein the configurable function of deduplication comprises functionality for removing redundant data.

17. The computer program product of claim 13 , wherein the IO engine orchestrates an execution order of a first set of customized data processing modules and a second set of customized data processing modules by connecting the individual customized data processing modules according to a configuration policy.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: PLUMGRID, INC.
To: NICIRA, INC.
Reel/Frame 041067/0745 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2013
From: STAROVOITOV, ALEXEI; SINGH, SUSHIL; MONCLUS, PERE; NEMAT, AWAIS
To: PLUMGRID, INC.
Reel/Frame 030362/0772 →