IP Library Granted Patent US 9,588,694
Granted Patent B1
US 9,588,694 · App. 15/003,250 · Granted Mar 7, 2017

Storage device optimization

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,588,694
App. No.
15/003,250
Granted
Mar 7, 2017
Kind
B1
Abstract

A method and apparatus for implementing a storage optimization process is provided. The method includes identifying a file for storage on a storage device. The storage device determines that the file comprises a file size that exceeds multiple physical disk blocks of the storage device by a fractional value. The file is divided into a first portion and a second portion. The first portion comprises a file size such that the first portion fits entirely within a first single block of the storage device. The second portion comprises a size such that the second portion exceeds a size of a second single block of the storage device by the fractional value. The first portion is stored within the first single block. The second portion is compressed such that a resulting compressed file fits entirely within the second single block.

Claims (69)

1. A storage optimization method comprising:

identifying, by a processor of a hardware storage device, a first file of a plurality of files for storage on said hardware storage device;

determining, by said processor, that said first file comprises a first file size that exceeds first multiple physical disk blocks of said hardware storage device by a first fractional value;

dividing, by said processor, said first file into a first portion and a second portion, wherein said first portion comprises a file size such that said first portion fits entirely within a first single block of said hardware storage device, wherein said second portion comprises a file size such that said second portion exceeds a size of a second single block of said hardware storage device by said first fractional value, and wherein said second single block comprises a second to last sector/block of said hardware storage device;

storing, by said processor, said first portion within said first single block;

determining, by said processor, a threshold percentage value associated with a specified percentage of a size of said first multiple physical disk blocks;

comparing by said processor, said second portion of said first file to said threshold percentage value;

determining, by said processor, that said second portion of said first file is associated with a wasted disk space portion of said first multiple physical disk blocks;

determining, by said processor based on results of said comparing, that said wasted disk space portion exceeds said threshold percentage value;

compressing, by said processor based on results of said comparing, said second portion of said first file such that a resulting compressed file fits entirely within said second single block of said hardware storage device; and

storing, by said processor, said resulting compressed file within said second single block.

2. The method of claim 1 , further comprising:

determining, by said processor based on said threshold percentage value, a specified technique for performing said compressing.

3. The method of claim 1 , further comprising:

identifying, by said processor, a second file of said plurality of files for storage on said hardware storage device;

determining, by said processor, that said second file comprises a size that fits entirely within a third single block of said hardware storage device; and

storing, by said processor, said second file within said third single block.

4. The method of claim 1 , further comprising:

receiving, by said processor, a request for reading said first file;

retrieving, by said processor in response to said request, said first portion from said first single block;

retrieving, by said processor, said resulting compressed file from said second single block;

decompressing, by said processor, said resulting compressed file resulting in said second portion of said first file being decompressed;

combining, by said processor, said first portion with said decompressed second portion resulting in a reconstruction of said first file; and

reading, by said processor, said first file.

5. The method of claim 1 , further comprising:

modifying, by said processor, a file system layout and functionality with respect to a data structure used to represent a file system object, wherein said data structure comprises a bitmap for recognizing said second portion.

6. The method of claim 5 , wherein said modifying is performed on an operating system level, a database level, a middleware level, an application level, or a storage level.

7. The method of claim 1 , wherein said processor is comprised by a disk controller of said hardware storage device.

8. The method of claim 1 , further comprising:

providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable code in the computing system, said code being executed by the computer processor to implement: said identifying, said determining, said dividing, said storing said first portion, said compressing, and said storing said resulting compressed file.

9. A computing system comprising a processor coupled to a computer-readable memory unit, said memory unit comprising instructions that when executed by the processor executes a storage optimization method comprising:

identifying, by said processor, a first file of a plurality of files for storage on said hardware storage device;

determining, by said processor, that said first file comprises a first file size that exceeds first multiple physical disk blocks of said hardware storage device by a first fractional value;

dividing, by said processor, said first file into a first portion and a second portion, wherein said first portion comprises a file size such that said first portion fits entirely within a first single block of said hardware storage device, wherein said second portion comprises a file size such that said second portion exceeds a size of a second single block of said hardware storage device by said first fractional value, and wherein said second single block comprises a second to last sector/block of said hardware storage device;

storing, by said processor, said first portion within said first single block;

determining, by said processor, a threshold percentage value associated with a specified percentage of a size of said first multiple physical disk blocks;

comparing by said processor, said second portion of said first file to said threshold percentage value;

determining, by said processor, that said second portion of said first file is associated with a wasted disk space portion of said first multiple physical disk blocks;

determining, by said processor based on results of said comparing, that said wasted disk space portion exceeds said threshold percentage value;

compressing, by said processor based on results of said comparing, said second portion of said first file such that a resulting compressed file fits entirely within said second single block of said hardware storage device; and

storing, by said processor, said resulting compressed file within said second single block.

10. The computing system of claim 9 , wherein said method further comprises:

determining, by said processor based on said threshold percentage value, a specified technique for performing said compressing.

11. The computing system of claim 9 , wherein said method further comprises:

identifying, by said processor, a second file of said plurality of files for storage on said hardware storage device;

determining, by said processor, that said second file comprises a size that fits entirely within a third single block of said hardware storage device; and

storing, by said processor, said second file within said third single block.

12. The computing system of claim 9 , wherein said method further comprises:

receiving, by said processor, a request for reading said first file;

retrieving, by said processor in response to said request, said first portion from said first single block;

retrieving, by said processor, said resulting compressed file from said second single block;

decompressing, by said processor, said resulting compressed file resulting in said second portion of said first file being decompressed;

combining, by said processor, said first portion with said decompressed second portion resulting in a reconstruction of said first file; and

reading, by said processor, said first file.

13. The computing system of claim 9 , wherein said method further comprises:

modifying, by said processor, a file system layout and functionality with respect to a data structure used to represent a file system object, wherein said data structure comprises a bitmap for recognizing said second portion.

14. The computing system of claim 13 , wherein said modifying is performed on an operating system level, a database level, a middleware level, an application level, or a storage level.

15. The computing system of claim 9 , wherein said processor is comprised by a disk controller of said hardware storage device.

16. A computer program product comprised by a computer readable hardware storage device storing a computer readable program code, said computer readable program code comprising an algorithm that when executed by a processor of said hardware storage device implements a storage optimization method, said method comprising:

identifying, by said processor, a first file of a plurality of files for storage on said hardware storage device;

determining, by said processor, that said first file comprises a first file size that exceeds first multiple physical disk blocks of said hardware storage device by a first fractional value;

dividing, by said processor, said first file into a first portion and a second portion, wherein said first portion comprises a file size such that said first portion fits entirely within a first single block of said hardware storage device, wherein said second portion comprises a file size such that said second portion exceeds a size of a second single block of said hardware storage device by said first fractional value, and wherein said second single block comprises a second to last sector/block of said hardware storage device;

storing, by said processor, said first portion within said first single block;

determining, by said processor, a threshold percentage value associated with a specified percentage of a size of said first multiple physical disk blocks;

comparing by said processor, said second portion of said first file to said threshold percentage value;

determining, by said processor, that said second portion of said first file is associated with a wasted disk space portion of said first multiple physical disk blocks;

determining, by said processor based on results of said comparing, that said wasted disk space portion exceeds said threshold percentage value;

compressing, by said processor based on results of said comparing, said second portion of said first file such that a resulting compressed file fits entirely within said second single block of said hardware storage device; and

storing, by said processor, said resulting compressed file within said second single block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2016
From: ANAND, VISHAL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037550/0972 →