Reducing occupancy of digital storage devices
First Claim
1. A method for managing digital data storage, the method comprising steps of:
- a computer segmenting a computer-readable, tangible storage device into a reference area and a block storage area and segmenting the block storage area into storage blocks of a common length;
the computer storing data information in respective storage blocks of the block storage area;
the computer generating respective reference information for the blocks of data, the reference information including respective fingerprint information based on bit patterns of respective first blocks stored on the computer-readable, tangible storage device and a linked list of other first blocks having different bit patterns but equal fingerprint values, the linked list being one of one or more linked lists wherein respective linked lists correspond to respective fingerprint values;
the computer storing the first blocks in the block storage area and the reference information in the reference area with reference information pointing to each corresponding first block, the reference information for the respective first blocks including respective fingerprint values for the first blocks based on respective bit patterns for the first blocks and the linked list of other first blocks having different bit patterns but equal fingerprint values,the computer determining a bit pattern of a subsequent block and a fingerprint value in accordance with the bit pattern of the subsequent block and checking the bit pattern of the subsequent block for being identical to a bit pattern of any of the first blocks previously stored at any location in the block storage area and identified in the linked list as having a fingerprint value equal to a fingerprint value of the subsequent block, andthe computer storing the subsequent block and corresponding reference information in the block storage area and the reference area, respectively, of the computer-readable, tangible storage device if the bit pattern of the subsequent block is different from the bit pattern of all previously stored first blocks having the same fingerprint value and storing the subsequent block in the storage device as a reference referring to the corresponding first block without storage of the bit pattern of the subsequent block in the block storage area of the computer readable, tangible storage device if the bit pattern of the subsequent block is identical to any first block having the same fingerprint value.
0 Assignments
0 Petitions
Accused Products
Abstract
A digital data storage device physically stores blocks of identical data only once on its storage medium wherein a second or even further identical blocks are stored only as reference referring to the first block of these identical blocks. By this technique, storage of duplicate data is most effectively avoided on the lowest storage level of the disk storage device, even in cases where identical blocks are written by different operating Systems. In the preferred embodiment, the underlying storage medium (magnetic hard disk, optical disk, tape, or M-RAM) is segmented into two areas, the first area particularly comprising a relatively small block reference table and the remaining physical storage area for storing real blocks of information.
-
Citations
22 Claims
-
1. A method for managing digital data storage, the method comprising steps of:
-
a computer segmenting a computer-readable, tangible storage device into a reference area and a block storage area and segmenting the block storage area into storage blocks of a common length; the computer storing data information in respective storage blocks of the block storage area; the computer generating respective reference information for the blocks of data, the reference information including respective fingerprint information based on bit patterns of respective first blocks stored on the computer-readable, tangible storage device and a linked list of other first blocks having different bit patterns but equal fingerprint values, the linked list being one of one or more linked lists wherein respective linked lists correspond to respective fingerprint values; the computer storing the first blocks in the block storage area and the reference information in the reference area with reference information pointing to each corresponding first block, the reference information for the respective first blocks including respective fingerprint values for the first blocks based on respective bit patterns for the first blocks and the linked list of other first blocks having different bit patterns but equal fingerprint values, the computer determining a bit pattern of a subsequent block and a fingerprint value in accordance with the bit pattern of the subsequent block and checking the bit pattern of the subsequent block for being identical to a bit pattern of any of the first blocks previously stored at any location in the block storage area and identified in the linked list as having a fingerprint value equal to a fingerprint value of the subsequent block, and the computer storing the subsequent block and corresponding reference information in the block storage area and the reference area, respectively, of the computer-readable, tangible storage device if the bit pattern of the subsequent block is different from the bit pattern of all previously stored first blocks having the same fingerprint value and storing the subsequent block in the storage device as a reference referring to the corresponding first block without storage of the bit pattern of the subsequent block in the block storage area of the computer readable, tangible storage device if the bit pattern of the subsequent block is identical to any first block having the same fingerprint value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for managing digital data storage in a digital storage device, the computer system comprising:
-
one or more processors, one or more computer-readable memories, one or more computer-readable, tangible storage devices, and program instructions stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, the program instructions comprising; program instructions to configure the one or more processors to segment a computer-readable, tangible storage device into a reference area and a block storage area and to segment the block storage area into storage blocks of a common length; program instructions to configure the one or more processors to store data information in respective storage blocks of the block storage area; program instructions to configure the one or more processors to generate respective reference information for the blocks of data, the reference information including respective fingerprint information based on bit patterns of respective first blocks stored on the computer-readable, tangible storage device and a linked list of other first blocks having different bit patterns but equal fingerprint values, the linked list being one of one or more linked lists wherein respective linked lists correspond to respective fingerprint values; program instructions to configuring said one or more processors to store the first blocks in the block storage area and the reference information in the reference area with reference information pointing to each corresponding first block, the reference information for the respective first blocks including respective fingerprint values for the first blocks based on respective bit patterns for the first blocks and the linked list of other first blocks having different bit patterns but equal fingerprint values, program instructions to configure the one or more processors to determine a bit pattern of a subsequent block and a fingerprint value in accordance with the bit pattern of the subsequent block and checking the bit pattern of the subsequent block for being identical to a bit pattern of any of the first blocks previously stored at any location in the block storage area and identified in the linked list as having a fingerprint value equal to a fingerprint value of the subsequent block, and program instructions to configure the one or more processors to store the subsequent block and corresponding reference information in the block storage area and the reference area, respectively, of the computer-readable, tangible storage device if the bit pattern of the subsequent block is different from the bit pattern of all previously stored first blocks having the same fingerprint value and to store the subsequent block in the storage device as a reference referring to the corresponding first block without storage of the bit pattern of the subsequent block in the block storage area of the computer-readable, tangible storage device if the bit pattern of the second block is identical to any first block having the same fingerprint value. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product for reducing data occupancy of a storage device, the computer program product comprising
one or more computer-readable, tangible storage devices and program instructions stored on at least one of the one or more storage devices, the program instructions comprising: -
program instructions to segment at least one computer-readable, tangible storage device into a reference area and a block storage area and to segment the block storage area into storage blocks of a common length; program instructions to store data information in respective storage blocks of the block storage area; program instructions to generate respective reference information for the blocks of data, the reference information including respective fingerprint information based on bit patterns of respective first blocks stored on the computer-readable, tangible storage device and a linked list of other first blocks having different bit patterns but equal fingerprint values, the linked list being one of one or more linked lists wherein respective linked lists correspond to respective fingerprint values; program instructions to store the first blocks in the block storage area and the reference information in the reference area with reference information pointing to each corresponding first block, the reference information for the respective first blocks including respective fingerprint values for the first blocks based on respective bit patterns for the first blocks and the linked list of other first blocks having different bit patterns but equal fingerprint values, program instructions to determine a bit pattern of a subsequent block and a fingerprint value in accordance with the bit pattern of the subsequent block and checking the bit pattern of the subsequent block for being identical to a bit pattern of any of the first blocks previously stored at any location in the block storage area and identified in the linked list as having a fingerprint value equal to a fingerprint value of the subsequent block, and program instructions to store the subsequent block and corresponding reference information in the block storage area and the reference area, respectively, of the computer-readable, tangible storage device if the bit pattern of the subsequent block is different from the bit pattern of all previously stored first blocks having the same fingerprint value and storing the subsequent block in the storage device as a reference referring to the corresponding first block without storage of the bit pattern of the subsequent block in the block storage area of the computer readable, tangible storage device if the bit pattern of the subsequent block is identical to any first block having the same fingerprint value.
-
Specification