US2022197513A1PendingUtilityA1

Workload Based Device Access

Assignee: ELASTIC FLASH INCPriority: Sep 24, 2018Filed: Sep 30, 2021Published: Jun 23, 2022
Est. expirySep 24, 2038(~12.2 yrs left)· nominal 20-yr term from priority
G06F 3/0611G06F 3/0644G06F 3/0613G06F 3/0656G06F 12/0891G06F 3/0679G06F 3/067G06F 3/0659
58
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Technologies are described to perform workload based device access. An input-output (IO) request received from an application. An application profile for the application is determined. Based on the application profile, one or more IO parameter values to access a device are set. The device is accessed based on the one or more IO parameter values to fulfill the IO request.

Claims

exact text as granted — not AI-modified
1 . A computer-implemented method, comprising:
 receiving an input-output (IO) request from an application;   determining an application profile for the application;   based at least in part on the application profile, setting one or more IO parameter values to access a device;   allocating a buffer for the application; and   accessing the device based on the one or more IO parameter values to fulfill the IO request, wherein the buffer is used to store application data corresponding to the IO request.   
     
     
         2 . The computer-implemented method of  claim 1 , wherein accessing the device comprises:
 sending a command to the device directly from a software application executed by the processor without a context switch from the software application to an operating system.   
     
     
         3 . The computing device of  claim 2 , wherein the IO request is to read data from the device, and wherein the IO request specifies a memory address within user space memory allocated to the software application, and wherein accessing the device further comprises:
 receiving the data from the storage device; and   writing the data to the user space memory allocated to the software application, based on the memory address.   
     
     
         4 . The computer-implemented method of  claim 1 , further comprising, prior to receiving the IO request, determining an application type of the application based on a configuration setting, and wherein the determining the application type is performed in response to detecting that the application has launched. 
     
     
         5 . The computer-implemented method of  claim 1 , wherein determining the application profile is comprises one of:
 analyzing a plurality of prior IO requests from the application to determine a respective proportion of create, read, update, and delete (CRUD) operations in the plurality of prior IO requests; or   analyzing the plurality of prior IO requests to determine a proportion of IO requests that result in a cache invalidation or a cache miss.   
     
     
         6 . The computer-implemented method of  claim 1 , further comprising identifying the device based on a type of operation specified in the IO request. 
     
     
         7 . The computer-implemented method of  claim 1 , wherein the IO request includes an update operation, wherein the update operation comprises:
 determining whether a read-before-write paradigm is to be utilized;   if it is determined that the read-before-write paradigm is to be utilized, reading a current value from the device prior to writing a new value; and   if it is determined that the read-before-write paradigm is not to be utilized, overwriting the current value on the device with the new value.   
     
     
         8 . A non-transitory computer-readable medium with instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
 receiving an input-output (IO) request from an application;   determining an application profile for the application;   based at least in part on the application profile, setting one or more IO parameter values to access a device;   allocating a buffer for the application; and   accessing the device based on the one or more IO parameter values to fulfill the request, wherein the buffer is used to store application data corresponding to the IO request.   
     
     
         9 . The non-transitory computer-readable medium of  claim 8 , wherein the operations further comprise, prior to receiving the IO request, determining an application type of the application based on a configuration setting, and wherein the determining the application type is performed in response to detecting that the application has launched. 
     
     
         10 . The non-transitory computer-readable medium of  claim 8 , wherein determining the application profile is based on at least in part on a plurality of prior IO requests from the application. 
     
     
         11 . The non-transitory computer-readable medium of  claim 10 , wherein the operations further comprise analyzing the plurality of prior IO requests to determine a respective proportion of create, read, update, and delete (CRUD) operations in the plurality of prior IO requests 
     
     
         12 . The non-transitory computer-readable medium of  claim 10 , wherein the operations further comprise analyzing the plurality of prior IO requests to determine a proportion of IO requests that result in a cache invalidation or a cache miss. 
     
     
         13 . A computing device comprising:
 a processor;   a storage device coupled to the processor; and   a memory coupled to the processor with instructions stored thereon that, when executed by the processor, cause the processor to perform operations comprising:   receiving an input-output (IO) request from an application;   determining an application profile for the application;   based at least in part on the application profile, setting one or more IO parameter values to access the storage device;   allocating a buffer for the application; and   accessing the storage device based on the one or more IO parameter values to fulfill the request, wherein the buffer is used to store application data corresponding to the IO request.   
     
     
         14 . The computing device of  claim 13 , wherein accessing the storage device comprises:
 sending a command to the storage device directly from a software application executed by the processor without a context switch from the software application to an operating system.   
     
     
         15 . The computing device of  claim 14 , wherein the IO request is to write data that comprises one or more data units, and the command specifies a respective physical address within one or more individual storage units of the storage device for the one or more data units, and wherein accessing the storage device further comprises sending the data to the storage device. 
     
     
         16 . The computing device of  claim 14 , wherein the IO request is to write data to the storage device and includes a pointer to a memory address within user space memory allocated to the software application, and wherein sending the command comprises:
 reading the data directly from the user space memory based on the pointer; and   sending the data to the storage device.   
     
     
         17 . The computing device of  claim 13 , wherein the IO request is to read data from the storage device, and wherein the IO request specifies a memory address within user space memory allocated to the software application. 
     
     
         18 . The computing device of  claim 17 , wherein accessing the storage device further comprises:
 receiving the data from the storage device; and   writing the data to the user space memory allocated to the software application, based on the memory address.   
     
     
         19 . The computing device of  claim 13 , wherein the operations further comprise, prior to receiving the IO request, determining an application type of the application based on a configuration setting, and wherein the determining the application type is performed in response to detecting that the application has launched. 
     
     
         20 . The computing device of  claim 13 , wherein determining the application profile is based at least in part on a plurality of prior IO requests from the application. 
     
     
         21 . The computing device of  claim 20 , wherein the operations further comprise at least one of:
 analyzing the plurality of prior IO requests to determine a respective proportion of create, read, update, and delete (CRUD) operations in the plurality of prior IO requests; or   analyzing the plurality of prior IO requests to determine a proportion of IO requests that result in a cache invalidation or a cache miss.   
     
     
         22 . The computing device of  claim 20 , wherein the operations further comprise:
 analyzing a size in bits of the plurality of prior IO requests, wherein the size in bits is of data accessed during the prior IO requests; and   based on the size of the plurality of prior IO requests, determining a bandwidth used by the application.

Join the waitlist — get patent alerts

Track US2022197513A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.