Search International and National Patent Collections
Some content of this application is unavailable at the moment.
If this situation persists, please contact us atFeedback&Contact
1. (WO2017131798) STORING DATA IN A STORAGE DEVICE
Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

We Claim:

1. A system comprising:

a processor;

a file system alignment module coupled to the processor to:

receive a storage allocation request comprising a logical offset of data to be stored:

receive a chunk size of a storage device and a device offset for a free region on the storage device;

compute an offset value based on a file system block size, the chunk size, the device offset, and the iogicai offset; and

determine a device start address, for storing the data in response to the storage allocation request, by offsetting the device offset with the offset value.

2. The system of claim 1 , wherein, to compute the offset value, the file system alignment module is to determine an alignment reference value based on the chunk size and the file system block size.

3. The system of claim 2, wherein, based on the offset value, the file system alignment module is to:

align the device start address to the alignment reference value when the logical offset is aligned to the alignment reference value; and similarly misalign the device start address to the alignment reference value when the logical offset is misaligned to the alignment reference value.

4. The system of claim 1 , wherein the file system alignment module is to further determine a device end address for the storage allocation request by summing the device start address with a size of the data.

5. The system of claim 4, wherein on determining the device end address to be greater than an end address of the free region, the file system alignment module is to:

determine an aligned device end address that is lesser than the end address of the free region;

set the device end address as the aligned device end address; and

determine a new device start address and a new device end address in a new free region for storing remaining data.

A method comprising:

receiving a storage allocation request for writing data on a storage device;

determining a device start address based on a logical offset of the data, a device offset for a free region on the storage device, a file system block size, and a storage device chunk size;

determining a device end address based on the device start address, a size of the data to be stored, and a size of the free region; and storing at least a part of the data on the storage device between the device start address and the device end address.

7. The method of claim 6, wherein determining the device start address comprises:

computing a least common multiple of the file system block size and the storage device chunk size;

calculating a file alignment value based on the least common multiple and the logical offset; and

calculating a device alignment value based on the least common multiple and the device offset

8. The method of claim 7, wherein, when the file alignment value and the device alignment value are unequal, the method further comprises:

computing an aligned device offset based on the device offset, wherein the aligned device offset is a multiple of the least common multiple; and

setting the device start address as a sum of the aligned device offset and the file alignment value.

9. The method of claim 7, wherein, when the file alignment value and the device alignment value are equal, the method further comprises setting the device start address as the device offset.

10. The method of claim 8, wherein determining the device end address comprises:

computing a sum of the device start address and the size of the data; and

setting the device end address as the sum when the sum is within the free region.

1. The method of claim 10, wherein, when the sum exceeds the free region, the method comprises:

setting the device end address as the highest multiple of the storage device chunk size in the free region;

truncating the data by a size equal to the difference between the sum and the device end address; and

storing truncated data in a new free region based on determination of a new device start address and a new device end address corresponding to the new free region.

12. A non-transitory computer-readable medium comprising instructions for storing data in a storage device, the instructions being executable by a processing resource to:

receive a storage allocation request comprising a logical offset of data to be stored;

receive a chunk size of a storage device in which the data is to be stored and a device offset for a free region in the storage device;

compare an alignment state of the logical offset with an alignment state of the device offset, wherein the alignment states are determined based on the chunk size and a file system block size;

shift the device offset with an offset value, based on the comparison, to obtain a device start address for the storage allocation request; and

facilitate storing at least a part of the data in the free region starting from the device start address.

13. The non-transitory computer-readable medium of claim 12, wherein, the instructions are further executable by the processing resource to:

truncate data when a size of the data exceeds the free region available starting from the device start address;

obtain a new device start address for storing truncated data in a new free region; and

facilitate storing at least a part of the truncated data in the new free region starting from the new device start address.

14. The non-transitory computer-readable medium of claim 13, wherein, for the new free region being of a second storage device, the instructions are further executable by the processing resource to:

obtain the new start address based on a comparison of the alignment states of a logical offset of the truncated data and a device offset for the new free region, wherein the alignment states are determined based on a chunk size of the second storage device and the file system block size.

15. The non-transitory computer-readable medium of claim 13, wherein the instructions are further executable by the processing resource to: further truncate and distribute storage of the truncated data when a size of the truncated data exceeds a size of the new free region available from the new device start address.