US11275681B1ActiveUtility

Segmented write requests

92
Assignee: PURE STORAGE INCPriority: Nov 17, 2017Filed: Dec 7, 2020Granted: Mar 15, 2022
Est. expiryNov 17, 2037(~11.4 yrs left)· nominal 20-yr term from priority
G06F 3/061G06F 12/0246G06F 2212/7209G06F 3/067G06F 3/064G06F 2212/7203G06F 3/0647G06F 2212/7202G06F 2212/7201G06F 3/0656G06F 3/0688
92
PatentIndex Score
2
Cited by
538
References
20
Claims

Abstract

A storage array controller may receive a write request comprising data to be stored at one or more solid-state storage devices. A write granularity associated with the write request may be generated that is less than a logical block size associated with the storage array controller. The data associated with the write request may be segmented based on the generated write granularity. The write request may be executed to store the segmented data at the one or more solid-state storage devices.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, comprising:
 utilizing a write granularity associated with a write request that is less than a logical block size associated with a storage controller, wherein the write granularity is based on a physical memory page size of the one or more of a plurality of solid-state storage devices; 
 segmenting the data associated with the write request based on the write granularity; and 
 executing the write request to store a first portion of the segmented data at the one or more of the plurality of solid-state storage devices and store a second portion of the segmented data at a buffer coupled to the storage controller. 
 
     
     
       2. The method of  claim 1 , further comprising:
 determining that the amount of data to be stored at the one or more of the plurality of solid-state storage devices exceeds the logical block size. 
 
     
     
       3. The method of  claim 1 , wherein the second portion of the segmented data corresponds to remaining data of the data associated with the write request. 
     
     
       4. The method of  claim 1 , further comprising:
 segmenting subsequent data associated with a subsequent write request based on the generated write granularity. 
 
     
     
       5. The method of  claim 1 , wherein storing the second portion of the segmented data at the buffer further comprises:
 storing at least one of an intended location of the second portion of the segmented data at the one or more of the plurality of solid-state storage devices, a sequence number associated with the intended location and a length of the second portion of the segmented data. 
 
     
     
       6. The method of  claim 1 , further comprising:
 identifying previous data stored at the buffer operatively coupled to the storage controller, wherein the previous data is associated with a previous write request, wherein to execute the write request to store the segmented data at the one or more of the plurality of solid-state storage devices, the processing device is further to store the identified previous data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       7. The system of  claim 1 , wherein the processing device is further to:
 execute the subsequent write request to store the second portion of the segmented data stored at the buffer and at least a portion of the segmented subsequent data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       8. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:
 utilizing a write granularity associated with a write request that is less than a logical block size associated with a storage controller, wherein the write granularity is based on a physical memory page size of the one or more of a plurality of solid-state storage devices; 
 segment the data associated with the write request based on the write granularity; and 
 execute the write request to store a first portion of the segmented data at the one or more of the plurality of solid-state storage devices and store a second portion of the segmented data at a buffer coupled to the storage controller. 
 
     
     
       9. The non-transitory computer readable storage medium of  claim 8 , wherein the processing device is further to:
 determine that the amount of data to be stored at the one or more of the plurality of solid-state storage devices exceeds the logical block size. 
 
     
     
       10. The non-transitory computer readable storage medium of  claim 8 , wherein the processing device is further to:
 execute the subsequent write request to store the second portion of the segmented data stored at the buffer and at least a portion of the segmented subsequent data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       11. The non-transitory computer readable storage medium of  claim 8 , wherein the second portion of the segmented data corresponds to remaining data of the data associated with the write request. 
     
     
       12. The non-transitory computer readable storage medium of  claim 8 , wherein storing the second portion of the segmented data at the buffer further comprises:
 storing at least one of an intended location of the second portion of the segmented data at the one or more of the plurality of solid-state storage devices, a sequence number associated with the intended location and a length of the second portion of the segmented data. 
 
     
     
       13. The non-transitory computer readable storage medium of  claim 8 , wherein the processing device is further to:
 identify previous data stored at the buffer operatively coupled to the storage controller, wherein the previous data is associated with a previous write request, wherein to execute the write request to store the segmented data at the one or more of the plurality of solid-state storage devices, the processing device is further to store the identified previous data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       14. The non-transitory computer readable storage medium of  claim 8 , wherein the processing device is further to:
 execute the subsequent write request to store the second portion of the segmented data stored at the buffer and at least a portion of the segmented subsequent data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       15. A system comprising:
 a solid-state storage array comprising a plurality of solid-state storage devices; and 
 a storage controller coupled to the solid-state storage array, the storage controller comprising a processing device, the processing device to:
 utilize a write granularity associated with a write request that is less than a logical block size associated with a storage controller, wherein the write granularity is based on a physical memory page size of the one or more of a plurality of solid-state storage devices; 
 segment the data associated with the write request based on the write granularity; and 
 execute the write request to store a first portion of the segmented data at the one or more of the plurality of solid-state storage devices and store a second portion of the segmented data at a buffer coupled to the storage controller. 
 
 
     
     
       16. The system of  claim 15 , wherein the processing device is further to:
 determine that the amount of data to be stored at the one or more of the plurality of solid-state storage devices exceeds the logical block size. 
 
     
     
       17. The system of  claim 15 , wherein the processing device is further to:
 execute the subsequent write request to store the second portion of the segmented data stored at the buffer and at least a portion of the segmented subsequent data at the one or more of the plurality of solid-state storage devices. 
 
     
     
       18. The system of  claim 15 , wherein the second portion of the segmented data corresponds to remaining data of the data associated with the write request. 
     
     
       19. The system of  claim 15 , wherein storing the second portion of the segmented data at the buffer further comprises:
 storing at least one of an intended location of the second portion of the segmented data at the one or more of the plurality of solid-state storage devices, a sequence number associated with the intended location and a length of the second portion of the segmented data. 
 
     
     
       20. The system of  claim 15 , wherein the processing device is further to:
 execute the subsequent write request to store the second portion of the segmented data stored at the buffer and at least a portion of the segmented subsequent data at the one or more of the plurality of solid-state storage devices.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.