IP Library Granted Patent US 9,015,353
Granted Patent B2
US 9,015,353 · App. 13/827,086 · Granted Apr 21, 2015

Method and system for hybrid direct input/output (I/O) with a storage device

Inventor: Michael W. Shapiro (San Francisco, CA)
Assignee: DSSD, Inc.
G06F3/0643G06F17/30091
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,015,353
App. No.
13/827,086
Filed
Mar 14, 2013
Granted
Apr 21, 2015
Kind
B2
Art Unit
2184
USPC
710/5
Abstract

A method including intercepting a OFR for a file issued by an application to a FS, forwarding the OFR to the FS, receiving from the FS a FD for the file, issuing a SR for the file to the FS. The further method includes receiving from the FS status information for a target device on which the file is located, where the status information includes an OID for the file, storing a mapping of FD to the OID, intercepting a first FOR for the file, making a determination the that the first FOR is one of a read request and a write request, based on the determination, making another determination that the target device supports the direct I/O protocol, and issuing a DI request to the target device using the OID for the file, where the DI request is not processed by the FS.

Claims (58)

1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:

intercepting, in a user-level of a host, an open file request (OFR) for a file issued by an application to a file system (FS);

forwarding the OFR to the FS, wherein the FS is located in the user-level and the OFR is forwarded to the FS via a kernel module in a kernel-level of the host;

receiving from the FS, in response to the OFR, a file descriptor (FD) for the file;

issuing a status request (SR) for the file to the FS, wherein the SR comprises the file descriptor;

receiving from the FS, in response to the SR, status information for a target device on which the file is located, wherein the status information comprises an object identified (OID) for the file, wherein the target device is external to the host;

storing a mapping of FD to the OID;

after storing the mapping of the FD to the OID:

intercepting, by a direct I/O library, a first file operation request (FOR) for the file, wherein the request comprises the FD;

making a first determination that the first FOR is one selected from a group consisting of a read request and a write request;

based on the first determination, making a second determination that the target device on which the file is located supports the direct I/O protocol;

issuing a direct I/O request to the target device using the OID for the file, wherein the direct I/O request is not processed by the FS;

intercepting, by the direct I/O library, a second FOR for the file, wherein the second FOR comprises the FD;

making a third determination that the second FOR is not one selected from a group consisting of the read request and the write request; and

based on the third determination, forwarding the second FOR to the FS via the kernel module in the kernel-level of the host.

2. The non-transitory computer readable medium of claim 1 , the method further comprising:

receiving a notification, in response to the direct I/O request, that the direct I/O request is completed, wherein the notification is sent directly from the target device to the host and wherein the FS does not receive the notification.

3. The non-transitory computer readable medium of claim 1 , the method further comprising:

creating a unified address space comprising a memory location on the target device prior to the issuance of the direct I/O request,

wherein issuing the direct I/O request comprises storing the direct I/O request directly in the memory location on the target device.

4. The non-transitory computer readable medium of claim 1 , wherein issuing the direct I/O request to the target device comprises storing the direct I/O request in a memory location on the target storage device, wherein the memory location is part of a unified address space that is directly accessible by the host.

5. The non-transitory computer readable medium of claim 4 , wherein the memory location is associated with a submission queue.

6. A system, comprising:

a processor;

a user-level comprising an application, a direct I/O library, and a file system (FS);

a virtual file system (VFS) in the kernel-level, wherein the VFS is interposed between the direct I/O library and the kernel module;

a kernel-level, executing on the processor, comprising a kernel module; and

wherein the application is configured to issue an open file request (OFR) for a file;

wherein the direct I/O library is configured to intercept the OFR and forward the OFR to the VFS;

wherein the VFS is configured to forward to the OFR to the kernel module;

wherein the kernel module is configured to forward the OFR to the FS;

wherein the FS is configured to obtain a file descriptor (FD) for the file and send the FD to the direct I/O library via the kernel module;

wherein the direct I/O library is further configured to issue a status request (SR) for the file to the FS, wherein the SR comprises the file descriptor;

wherein the FS is configured to receive, via the kernel module, the SR and generate status information for a target device on which the file is located, wherein the status information comprises an object identified (OID) for the file and specifies that the target device supports a direct I/O protocol, and send the status information to the direct I/O library via the kernel module;

wherein the direct I/O library is further configured to receive the status information and store a mapping of FD to the OID;

wherein the target device is operatively connected to the system; and

wherein the kernel module is a File system in USEr space (FUSE) module.

7. The system of claim 6 , wherein the direct I/O library is further configured to:

after storing the mapping of the FD to the OID:

intercept a first file operation request (FOR) for the file, wherein the request comprises the FD;

make a first determination that the first FOR is one selected from a group consisting of a read request and a write request;

based on the first determination, make a second determination that the target device on which the file is located supports the direct I/O protocol; and

issue a direct I/O request to the target device using the OID for the file, wherein the direct I/O request is not processed by the FS and is not processed by the kernel module.

8. The system of claim 7 , further comprising:

a kernel-level direct I/O library configured to create a unified address space comprising a memory location on the target device prior to the issuance of the direct I/O request, wherein issuing the direct I/O request comprises storing the direct I/O request directly in the memory location on the target device.

9. The system of claim 7 , wherein the unified address is implemented using PCIe and a non-transparent bridge interposed between the system and the target device.

10. The system of claim 6 , wherein the direct I/O library is further configured to:

after storing the mapping of the FD to the OID:

receive a second FOR for the file, wherein the second FOR comprises the FD;

make a third determination that the second FOR is not one selected from a group consisting of the read request and the write request;

based on the third determination, forward the second FOR to the FS via the kernel module.

11. The system of claim 10 , wherein the second FOR is one selected from a group consisting of a modify operation and a delete operation.

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

receive the second FOR;

service the second FOR using the direct I/O library to generate a response;

sending the response to the application via the kernel module and the direct I/O library.

13. The system of claim 6 , wherein the target device comprises persistent storage.

14. The system of claim 13 , wherein the persistent storage comprises a solid state memory device.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
MERGER Recorded Sep 10, 2016
From: DSSD, INC.
To: EMC CORPORATION
Reel/Frame 039694/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2013
From: SHAPIRO, MICHAEL W.
To: DSSD, INC.
Reel/Frame 030015/0173 →
Continuity (1)
Related Publication 20140279988A1 · Sep 18, 2014