Legal claims defining the scope of protection, as filed with the USPTO.
1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising: intercepting, by a direct IO library, a first file operation request (FOR) for a file, wherein the first FOR comprises a file descriptor (FD) for the file; making, using the first FOR, 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 a target device on which the file is located supports a direct I/O protocol; and based on the second determination, issuing a direct I/O request to the target device using an OID for the file, wherein the direct I/O request is not processed by a file system (FS).
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: after issuing the direct I/O request to the target device for the file: receiving a second FOR for the file, wherein the second FOR comprises the FD; making a third determination the 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.
4. 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.
5. 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.
6. The non-transitory computer readable medium of claim 5 , wherein the memory location is associated with a submission queue.
7. The non-transitory computer readable medium of claim 1 , the method further comprising: prior to intercepting the first FOR: intercepting, in a user-level of a host, an open file request (OFR) for the file issued by an application to the 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, information that is used to generate the FD for the file.
8. The non-transitory computer readable medium of claim 1 , wherein making the second determination comprises using status information for the target device.
9. The non-transitory computer readable medium of claim 8 , the method further comprising: issuing, to the FS, a status request (SR); receiving from the FS, in response to the SR, the status information for the target device, wherein the status information specifies that the target device supports the direct I/O protocol.
10. The non-transitory computer readable medium of claim 1 , the method further comprising: obtaining an OID for the file prior to issuing the direct I/O request to the target device.
11. The non-transitory computer readable medium of claim 10 , wherein the direct I/O request comprises the OID.
12. The non-transitory computer readable medium of claim 10 , wherein obtaining the OID comprises using a mapping of the FD to the OID.
13. The non-transitory computer readable medium of claim 10 , wherein the OID is obtained in response to a status request issued to the target device.
14. A system, comprising: a processor; a user-level comprising an application, a direct I/O library, and a file system (FS); and a kernel-level, executing on the processor, comprising a kernel module; wherein the direct I/O library is configured to: intercept a first file operation request (FOR) for the file, wherein the first FOR comprises a file descriptor (FD) for the file, make, using the first FOR, 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 a target device on which the file is located supports the direct I/O protocol, and based on the second determination, issue a direct I/O request to the target device using an OID for the file, wherein the direct I/O request is not processed by the FS; wherein the target device is operatively connected to the system.
15. The system of claim 14 , 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.
16. The system of claim 14 , wherein the unified address is implemented using PCIe and a non-transparent bridge interposed between the system and the target device.
17. The system of claim 14 , wherein the direct I/O library is further configured to: after issuing the direct I/O request to the target device for the file: 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.
18. The system of claim 17 , wherein the second FOR is one selected from a group consisting of a modify operation and a delete operation.
19. The system of claim 17 , 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.
20. The system of claim 14 , wherein the kernel module is a File system in USEr space (FUSE) module.
21. The system of claim 14 , wherein the target device comprises persistent storage.
22. The system of claim 21 , wherein the persistent storage comprises a solid state memory device.
Unknown
November 29, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.