Tape drive library integrated memory deduplication

A method and system for improving tape drive memory storage is provided. The method includes receiving, by a storage tape drive hardware device, a data stream. Duplicate data chunks of the data stream are identified and deleted such that a group of data chunks remain in a non-volatile memory device (NVS2) of the storage tape drive. The group of data chunks is written to a data storage tape cartridge. Pointers are generated and stored within the data storage tape cartridge. The pointers are associated with a location within an NVS1 for storing de-duplication hashes identifying each data chunk of the group of data chunks stored within data storage tape cartridge. The de-duplication hashes are written by from the NVS1 to a manager non-volatile memory device (MNVS) of a storage tape drive hardware library system. The MNVS is updated.

FIELD

The present invention relates generally to a method for efficiently de-duplicating data stored on a tape drive and in particular to a method and associated system for optimizing a de-duplication process within a tape library.

BACKGROUND

Processes for implementing a data deduplication environment are well known. A typical data deduplication environment for random accessible storage systems such as disk drives and flash memory typically includes a data chunk database including information identifying data chunks and associated metadata. A large number of solutions currently exist with respect to de-duplicating data stored on disk drives and flash memory as the aforementioned memory structures allow a process for de-duplicating data to be performed at any time as the data may be accessed without any delay. In tape storage environments data is usually written once in a sequential manner that includes a read delay due to a positioning of a tape to with respect to a read/write head. A large number of solutions currently exist with respect to de-duplicating data in multiple storage media

However, the aforementioned solutions may be associated with tape drive storage limitations and speed issues thereby limiting a performance of de-duplication systems. Additionally, the aforementioned solutions may not be enabled to allow for tape drive data compression without the use of a learning curve.

Accordingly, there exists a need in the art to provide a process for compressing data via a de-duplication method executed within a tape drive library.

SUMMARY

A first aspect of the invention provides a tape drive memory storage improvement method comprising: receiving, by a processor of a storage tape drive hardware device of a storage tape drive hardware library system comprising a plurality of storage tape drive hardware devices, a data stream for storage, wherein the storage tape drive hardware device internally comprises a deduplication software engine, a non-volatile memory device (NVS1), a non-volatile memory device (NVS2), and a first data storage tape cartridge; identifying, by the processor within the NVS2, duplicate data chunks of a plurality of adjacent variable length data chunks of the data stream, wherein the duplicate data chunks comprise duplicated data with respect to a first group of data chunks of the plurality of adjacent variable length data chunks; deleting, by the processor from the NVS2, the duplicate data chunks such that the first group of data chunks remain within the NVS2; writing, by the processor to a first data storage tape cartridge of the storage tape drive hardware device, the first group of data chunks; generating, by the processor, pointers associated with a location within the NVS1 storing de-duplication hashes identifying each data chunk of the first group of data chunks stored within first data storage tape cartridge; storing, by the processor, the pointers within the first data storage tape cartridge; writing, by the processor from the first NVS1 to a manager non-volatile memory device (MNVS) of the storage tape drive hardware library system, the de-duplication hashes; and updating, by the processor, the MNVS by combining the de-duplication hashes with a plurality of additional de-duplication hashes identifying a plurality of commonly used de-duplicated data chunks stored within the plurality of storage tape drive hardware devices.

A second aspect of the invention provides a A computer program product, comprising a computer readable hardware storage device storing a computer readable program code, the computer readable program code comprising an algorithm that when executed by a processor of a storage tape drive hardware device implements a tape drive memory storage improvement method, the method comprising: receiving, by the processor, a data stream for storage, wherein the storage tape drive hardware device is comprised by a storage tape drive hardware library system comprising a plurality of storage tape drive hardware devices, and wherein the storage tape drive hardware device internally comprises a deduplication software engine, a non-volatile memory device (NVS1), a non-volatile memory device (NVS2), and a first data storage tape cartridge; identifying, by the processor within the NVS2, duplicate data chunks of a plurality of adjacent variable length data chunks of the data stream, wherein the duplicate data chunks comprise duplicated data with respect to a first group of data chunks of the plurality of adjacent variable length data chunks; deleting, by the processor from the NVS2, the duplicate data chunks such that the first group of data chunks remain within the NVS2; writing, by the processor to a first data storage tape cartridge of the storage tape drive hardware device, the first group of data chunks; generating, by the processor, pointers associated with a location within the NVS1 storing de-duplication hashes identifying each data chunk of the first group of data chunks stored within first data storage tape cartridge; storing, by the processor, the pointers within the first data storage tape cartridge; writing, by the processor from the first NVS1 to a manager non-volatile memory device (MNVS) of the storage tape drive hardware library system, the de-duplication hashes; and updating, by the processor, the MNVS by combining the de-duplication hashes with a plurality of additional de-duplication hashes identifying a plurality of commonly used de-duplicated data chunks stored within the plurality of storage tape drive hardware devices.

A third aspect of the invention provides a storage tape drive hardware device comprising a processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the processor implements a tape drive memory storage improvement method comprising: receiving, by the processor, a data stream for storage, wherein the storage tape drive hardware device is comprised by a storage tape drive hardware library system comprising a plurality of storage tape drive hardware devices, and wherein the storage tape drive hardware device internally comprises a deduplication software engine, a non-volatile memory device (NVS1), a non-volatile memory device (NVS2), and a first data storage tape cartridge; identifying, by the processor within the NVS2, duplicate data chunks of a plurality of adjacent variable length data chunks of the data stream, wherein the duplicate data chunks comprise duplicated data with respect to a first group of data chunks of the plurality of adjacent variable length data chunks; deleting, by the processor from the NVS2, the duplicate data chunks such that the first group of data chunks remain within the NVS2; writing, by the processor to a first data storage tape cartridge of the storage tape drive hardware device, the first group of data chunks; generating, by the processor, pointers associated with a location within the NVS1 storing de-duplication hashes identifying each data chunk of the first group of data chunks stored within first data storage tape cartridge; storing, by the processor, the pointers within the first data storage tape cartridge; writing, by the processor from the first NVS1 to a manager non-volatile memory device (MNVS) of the storage tape drive hardware library system, the de-duplication hashes; and updating, by the processor, the MNVS by combining the de-duplication hashes with a plurality of additional de-duplication hashes identifying a plurality of commonly used de-duplicated data chunks stored within the plurality of storage tape drive hardware devices.

The present invention advantageously provides a simple method and associated system capable of implementing a data deduplication environment.

DETAILED DESCRIPTION

FIG. 1illustrates a storage tape drive hardware device100for improving a tape drive memory storage process, in accordance with embodiments of the present invention. Typical de-duplication processes are usually associated with random accessible storage systems such as disk drives and flash memory devices. The de-duplication processes are typically applied to the aforementioned memory storage systems due to the ability of a de-duplication process to be performed at any time and data is able to be accessed without any delay. Executing a de-duplication process with respect to data stored on a tape drive storage device may result in tape drive storage limitations and speed issues. The aforementioned tape drive de-duplication process may cause de-duplication system performance issues thereby causing storage delays.

Data deduplication is defined herein as a specialized data compression technique for eliminating duplicate copies of repeating data portions (or chunks) from a data stream. A data de-duplication process is used to improve (tape drive device) memory storage utilization. A de-duplication process identifies and stores unique chunks of data or byte patterns during an analysis process. During the analysis process, additional data chunks are compared to the stored data chunks and whenever a match occurs, a duplicate (redundant) data chunk is replaced with a pointer (reference) that points to a location for the stored data chunk.

Storage tape drive hardware device100enables a mechanism for compressing data via a deduplication process executed directly within storage tape drive hardware device100without the need of a host or data management system. Storage tape drive hardware device100integrates a deduplication module internally comprising additional deduplication memory devices (i.e., non-volatile memory device104and non-volatile memory device108) to temporary store deduplicated data chunks linked to reference pointers. During each data write execution, a deduplication software engine removes deduplicated data chunks from a data stream and replaces them with a pointer to the deduplication memory devices and when a data storage tape cartridge is full or is removed from storage tape drive hardware device100, data content of the deduplication memory device is written to a reserved position of the data storage tape cartridge. Therefore, the data storage tape cartridge contains compressed data (i.e., data without the data chunks identified as duplicates) and all data from the deduplication memory device. When a data storage tape cartridge is mounted to storage tape drive hardware device100, all detected reserved portions (of the data storage tape cartridge) are read thereby filling the deduplication memory device. Therefore, a data read process may be performed by reading compressed data and decoding the compressed data by replacing an associated pointer with data from the deduplication memory device.

Storage tape drive hardware device100ofFIG. 1includes a non-volatile memory device (NVS1)104, a non-volatile memory device (NVS2)108, tape drive motors109aand109b, and control circuitry117including a deduplication software engine for controlling all functionality associated with storage tape drive hardware device100. NVS1 and NVS2 may comprise any type of specialized memory devices including, inter alia, an integrated circuit based memory device, a removable flash memory device, etc. Storage tape drive hardware device100may comprise an embedded computer or any type of specialized embedded hardware device. An embedded computer is defined herein as a dedicated computer comprising a combination of computer hardware and software (fixed in capability or programmable) specifically designed for executing a specialized function. Programmable embedded computers may comprise specialized programming interfaces. Additionally, storage tape drive hardware device100may comprise a specialized hardware device comprising specialized (non-generic) hardware and circuitry (i.e., specialized discrete non-generic analog, digital, and logic based circuitry) for executing a process described with respect toFIGS. 1-8. The specialized discrete non-generic analog, digital, and logic based circuitry may include proprietary specially designed components (e.g., a specialized integrated circuit designed for only implementing an automated process for improving tape drive memory storage process). Storage tape drive hardware device100ofFIG. 1includes specialized memory devices NVS1104and NVS2108. The specialized memory may include a single memory system. Alternatively, the specialized memory may include a plurality of memory systems. Storage tape drive hardware device100may include sensors, processors, and additional software and specialized circuitry. Sensors may include, inter alia, storage sensors, optical sensors, speed sensors, etc.

Storage tape drive hardware device100enables a process for storing/buffering data sets within NVS2108prior to being written to a data storage tape cartridge such that during a data write process the stored/buffered data sets are analyzed by diving the datasets into larger segments such that each data segment comprises a collection of adjacent variable-length data chunks derived via execution of a chunking algorithm. The analyzed data segments are used to create a chunk-list file and compute one or more similarity identifiers for storage within an index. The chunk list file (i.e., a temporary repository) is stored within NVS1104. During a process for directly streaming the contents of NVS2108to a (physical) data storage tape cartridge, storage tape drive hardware device100executes a process for the building chunk list file and initiates a counting process to determine matching data chunks located within a first few hundred mega bytes of data. The counting process is executed util a specified threshold is reached and all further identical data chunks are deleted from NVS2108. Additionally, position pointers (i.e., pointing to a position within data storage tape cartridge) are written to NVS1104. All data chinks deleted from NVS2108are written to data storage tape cartridge thereby improving the memory via a space saving process.

FIG. 2illustrates a process200for deduplicating and writing data via NVS1204and NVS2208, in accordance with embodiments of the present invention. Process200illustrates a data stream205received from a data host device. Data stream205is processed (within NVS2208) by a deduplication software engine210(comprising software microcode) resulting in the deletion of data chunks “A” and “B” from NVS2208. Additionally, a position pointer associated with the remaining data chunks218(being stored within tape cartridge4711) is stored within a chunk index database within NVS1204. A subsequent analysis is performed to analyze the incoming data stream224until a specified number (i.e., a threshold) of duplicate data chunks are identified. For example (with respect toFIG. 2), data chunk “A” has been identified three times and data chunk “B” has been identified two times. All remaining data chunks229are written to tape cartridge4711.

FIG. 3illustrates a further process300with respect to process200ofFIG. 2, in accordance with embodiments of the present invention. Process300illustrates a reserve partition232within NVS2. Reserve partition232includes a database comprising all identified duplicate data chunks “A” and “B” (i.e., identified during the process ofFIG. 2). NVS1204comprises a chunk index database for tape cartridge4711. A subsequent process is executed for writing contents of NVS1204and NVS2208to a specified location at a beginning portion of tape cartridge4711.

FIG. 4illustrates a process400for reading deduplicated data from a tape cartridge4712via NVS1204and NVS2208, in accordance with embodiments of the present invention. Process400illustrates tape cartridge4712being mounted to a storage tape drive hardware device (e.g., storage tape drive hardware device100ofFIG. 1) for executing a data read operation. A chunk database is read from tape cartridge4712to NVS2208. An index database is read from tape cartridge4712to NVS1204.

FIG. 5illustrates a further process500with respect to process400ofFIG. 4, in accordance with embodiments of the present invention. Process500illustrates reserve partition within NVS204preloaded with a chunk index database522. The process is initiated when data chunks512are read back from tape cartridge4712to NVS2208. Any gaps535(of data chunks512) to be filled are identified and missing data chunks537are added to data chunks512based on information from the chunk index database522with respect to information from a reserved database of NVS2. Deduplication engine210transmits the complete data stream550back to a host device.

FIG. 6illustrates a process executed within a storage tape drive hardware device600, in accordance with embodiments of the present invention. Storage tape drive hardware device600comprises a tape drive memory unit604(comprising tape drive microcode608and a deduplication engine610) connected to NVS2614and NVS1618for communications with a tape cartridge620. The process is initiated when data is received (via tape drive memory604) form a data host. Tape drive microcode608and deduplication engine610identify duplicate data chunks (within NVS2614) and replace the duplicate data chunks with location pointers associated with NVS1618. All remaining data chunks are stored within tape cartridge620.

FIG. 7illustrates a storage tape drive hardware library system700for improving a tape drive memory storage process, in accordance with embodiments of the present invention. Storage tape drive hardware library system700integrates multiple storage tape drive hardware devices (e.g., as illustrated inFIG. 8, infra) for executing a deduplication process. Storage tape drive hardware library system700reduces/eliminates a data learning process of single storage tape drive hardware devices by sharing previously learned information with a tape library manager device and the integrated hardware devices thereby increasing a compression ratio by eliminating a learning curve resulting in a better fit with respect to top deduplication data chunks. Storage tape drive hardware library system700integrates an additional deduplication memory device710awithin a tape library manager device710. Deduplication memory device710atemporarily stores the most popular depuplicated hashes representing data chunks and associated data chunk populations. Data chunks are processed using a hash algorithm. Extra copies of the same data chunks are deleted thereby leaving only a single copy to be stored. Data is analyzed to identify duplicate byte patterns to ensure a single instance of a data chunk comprises a single data file. Duplicate data chunks are replaced with a reference that points to the stored chunks. Hash based data de-duplication methods in accordance with embodiments of the invention use a hashing algorithm to identify the chunks of data. When data is processed via a hashing algorithm, a hash is created that represents the data. A hash comprises a bit string (e.g., 128 bits) that represents the data being processed. If the same date has been processed through the hashing algorithm multiple times, the same hash is calculated each time thereby indicating that the data are the same.

Each new empty tape (upon mounting to storage tape drive hardware library system700) will request the most popular depuplicated hashes from tape library manager710. The most popular depuplicated hashes are used to initiate a deduplication process with respect to an empty tape thereby eliminating a learning curve. Each previously used tape compares and synchronizes current data with the requested most popular depuplicated hashes from tape library manager710. Each tape being unmounted (from storage tape drive hardware library system700) will synchronize additionally learned deduplications with tape library manager710to further update storage tape drive hardware library system700with the most popular depuplicated hashes.

Storage tape drive hardware library system700ofFIG. 7includes an electro/mechanical structure720(for placement of storage tape hardware devices) and a tape library manager710comprising a manager non-volatile memory device (MNVS)710aand a CPU710b. The electro/mechanical structure720comprises mechanical structures (e.g., motors, springs, drive mechanisms, retainer hardware, column structure, etc.) and electrical circuitry (integrated circuits, switches, etc.) for controlling placement of storage tape hardware devices. MNVS104may comprise any type of specialized memory devices including, inter alia, an integrated circuit based memory device, a removable flash memory device, etc. MNVS104comprises a hash database including a tape cartridge identifier. Storage tape drive hardware library system700may comprise an embedded computer or any type of specialized embedded hardware device. An embedded computer is defined herein as a dedicated computer comprising a combination of computer hardware and software (fixed in capability or programmable) specifically designed for executing a specialized function. Programmable embedded computers may comprise specialized programming interfaces. Additionally, storage tape drive hardware library system700may comprise a specialized hardware device comprising specialized (non-generic) hardware and circuitry (i.e., specialized discrete non-generic analog, digital, and logic based circuitry) for executing a process described with respect toFIGS. 7-18. The specialized discrete non-generic analog, digital, and logic based circuitry may include proprietary specially designed components (e.g., a specialized integrated circuit designed for only implementing an automated process for improving tape drive memory storage process). Storage tape drive hardware library system700includes specialized memory devices MNVS710a. The specialized memory may include a single memory system. Alternatively, the specialized memory may include a plurality of memory systems. Storage tape drive hardware library system700may include sensors, processors, and additional software and specialized circuitry. Sensors may include, inter alia, storage sensors, optical sensors, speed sensors, etc.

FIG. 8illustrates a storage tape drive hardware library system800comprising multiple storage tape drive hardware devices, in accordance with embodiments of the present invention. Storage tape drive hardware library system comprises a deduplication storage tape drive hardware device804and a deduplication storage tape drive hardware device808placed adjacent to a standard storage tape drive hardware device806within storage tape drive hardware library system800. A picker assembly810is configured to move in a direction815to place tape cartridges within deduplication storage tape drive hardware device804, deduplication storage tape drive hardware device808, and/or standard storage tape drive hardware device806.

FIG. 9illustrates a detailed view of a tape library manager910, in accordance with embodiments of the present invention. Tape library manager910comprises a manager non-volatile memory device (MNVS)910aand a CPU910b. CPU910bcreates a hash database (within MNVS910a), merges new data into the hash database, and merges any removed storage tape cartridge data including drive tape identification. Tape library manager910is connected to a storage tape drive hardware device(s) via an Ethernet connection. During a storage tape cartridge removal process, contents of a hash database (of the associated storage tape drive hardware device) are copied to the storage tape cartridge. If the data chunks are determined to be corrupt, then alternative data chunks associated with the hash data are requested from the tape library manager910. In response, tape library manager910will transmit the requested alternative data chunks.

FIG. 10illustrates an operational algorithm detailing a process flow enabled by system100ofFIG. 1for executing a hash database enabled process, in accordance with embodiments of the present invention. The process is initiated when a drive1(i.e., storage tape drive hardware device) has completed a job1020and performs a rewind/unload process1022with respect to the storage tape cartridge. Subsequently, a hash database1010agenerated during a last job is copied1024via an Ethernet interface to the tape library manager1010. In response, tape library manager1010merges the hash data coming from drive1into the common hash data base of MNVS1010a. Subsequently, a drive2(i.e., storage tape drive hardware device) receives a mount request1035and the storage tape cartridge requested is mounted1034. A request is initiated with respect to the tape library manager1010for the common hash database comprising hashes located by the drive1. In response, the common hash data base is copied1027to the drive2and it is reported to host as drive mount complete1029thereby indicating that the drive2is ready for a job to start. The drive2will now be equipped with all hashes from the common data base and identifies all associated data chunks1031.

FIG. 11illustrates a process1100for deduplicating and writing data via NVS11104(comprising a hash database) and NVS21108, in accordance with embodiments of the present invention. Process1100illustrates a data stream1105received from a data host device. Data stream1105is processed (within NVS21108) by a deduplication software engine1110(comprising software microcode) resulting in the deletion of data chunks “A” and “B” from NVS21108. Additionally, a position pointer associated with the remaining data chunks1118(being stored within tape cartridge4711) is stored within the hash database within NVS11104. A subsequent analysis is performed to analyze the incoming data stream1124until a specified number (i.e., a threshold) of duplicate data chunks are identified. For example (with respect toFIG. 11), data chunk “A” has been identified three times and data chunk “B” has been identified two times. All remaining data chunks1129are written to tape cartridge4711. Additionally, during a tape cartridge mount process, the chunk database is copied from a tape library manager to NVS1.

FIG. 12illustrates a further process1200with respect to process1100ofFIG. 11, in accordance with embodiments of the present invention. Process1200illustrates a reserve partition1232within NVS2. Reserve partition1232includes a database comprising all identified duplicate data chunks “A” and “B” (i.e., identified during the process ofFIG. 11). NVS11104comprises a hash database for tape cartridge4711. A subsequent process is executed for writing contents of NVS11104and NVS21108to a specified location at a beginning portion of tape cartridge4711. Additionally, the hash databased is copied to a tape library manager.

FIG. 13illustrates a process1300for reading deduplicated data from a tape cartridge4712via NVS11104and NVS21108, in accordance with embodiments of the present invention. Process1300illustrates tape cartridge4712being mounted to a storage tape drive hardware device (e.g., storage tape drive hardware device100ofFIG. 1) for executing a data read operation. A chunk database is read from tape cartridge4712to NVS21108. A hash database is read from a library manger device1371to NVS11104.

FIG. 14illustrates a further process1400with respect to process1300ofFIG. 13, in accordance with embodiments of the present invention. Process1400illustrates reserve partition within NVS11108preloaded with a hash database1422. The process is initiated when data chunks1412are read back from tape cartridge4712to NVS21108. Any gaps1435(of data chunks1412) to be filled are identified and missing data chunks1437are added to data chunks1412based on information from the chunk index database1422with respect to information from a reserved database of NVS21108. Deduplication engine1410transmits the complete data stream1450back to a host device.

FIG. 15illustrates a process identifying missing data chunks, in accordance with embodiments of the present invention. In step1502, a storage tape cartridge mount request is read. In step1504, a library manager database is read. In step1506, a chunk database is recalled from a storage tape cartridge. In step1508, a mount complete indicator (for the mounted storage tape cartridge) is reported to a data host device. In step1510, missing data chunks are identified using hashes from an NVS1 and the missing data chunks are replaced from an NVS2. In step1512, a host data complete indicator is requested. In step1514, the storage tape cartridge is rewound and unloaded from an associated drive device. In step1518, the host job is completed.

FIG. 16illustrates a process identifying corrupt data chunks, in accordance with embodiments of the present invention. In step1602, a storage tape cartridge mount request is read. In step1604, a library manager database is read. In step1606, a chunk database is recalled from a storage tape cartridge. In step1608, a mount complete indicator (for the mounted storage tape cartridge) is reported to a data host device. In step1610, missing data chunks are identified using hashes from an NVS1 and the missing data chunks are replaced from an NVS2. In step1612, a host data complete indicator is requested. In step1617, a corrupt data chunk is detected. In step1619, an alternative data chunk is requested from a library manager device. In step1622, the alternative data chunk is received and used to replace the corrupt data chunk. In step1624, the storage tape cartridge is rewound and unloaded from an associated drive device. In step1626, the host job is completed.

FIG. 17illustrates an algorithm detailing a process flow enabled by system100ofFIG. 1for improving tape drive memory storage via execution of an internal data deduplication process, in accordance with embodiments of the present invention. Each of the steps in the algorithm ofFIG. 17may be enabled and executed in any order by a computer processor(s) executing computer code. In step1700, a data stream is received (by a storage tape drive hardware device of a hardware library system including a plurality of storage tape drive hardware devices) for storage. The storage tape drive hardware device internally comprises a deduplication software engine, a first non-volatile memory device (NVS1), a second non-volatile memory device (NVS2), and a first data storage tape cartridge. The data stream is stored within NVS2. NVS1 and NVS2 may comprise integrated circuit based memory devices. In step1702, duplicate data chunks of a plurality of adjacent variable length data chunks of the data stream are identified within NVS2. The duplicate data chunks include duplicated data with respect to a group of data chunks of the plurality of adjacent variable length data chunks. The duplicate data chunks are deleted from NVS2 such that the group of data chunks remains within NVS2. In step1704, the group of data chunks is written to a first data storage tape cartridge of the storage tape drive hardware device. In step1708, pointers are generated. The pointers are associated with a location within NVS1 for storing de-duplication hashes identifying each data chunk of the group of data chunks stored within the first data storage tape cartridge. The pointers are stored within the first data storage tape cartridge. In step1712, the de-duplication hashes are written from the NVS1 to a manager non-volatile memory device (MNVS) of the storage tape drive hardware library system. In step1714, the MNVS is updated by combining the de-duplication hashes with a plurality of additional de-duplication hashes identifying a plurality of commonly used de-duplicated data chunks stored within the plurality of storage tape drive hardware devices. In step1718, first data storage tape cartridge is removed from the storage tape drive hardware device and a second data storage tape cartridge is placed within a second storage tape drive hardware device of the plurality of storage tape drive hardware devices. In step1720, the de-duplication hashes combined with the plurality of additional de-duplication hashes are written from the MNVS to an additional NVS1 of the second storage tape drive hardware device. In step1722, an additional data stream is received for storage. The additional data stream is divided into a second plurality of adjacent variable length data chunks. In step1724, the second plurality of adjacent variable length data chunks are stored within an additional NVS2 of the second storage tape drive hardware device. In step1728, the second plurality of adjacent variable length data chunks are de-duplicated (based on the de-duplication hashes combined with the plurality of additional de-duplication hashes) such that a second group of de-duplicated data chunks remain within the additional NVS2. The second group of de-duplicated data chunks is written to the second data storage tape cartridge of the second storage tape drive hardware device. In step1730, additional pointers are generated. The additional pointers are associated with a location within the additional NVS1 for storing the de-duplication hashes combined with the plurality of additional de-duplication hashes. The pointers are stored within the second data storage tape cartridge. In step1734, all additional de-duplication hashes associated with all additional de-duplicated data chunks (processed by the plurality of storage tape drive hardware devices and the storage tape drive hardware library system) are synchronized with all de-duplication hashes within the MNVS such that the MNVS is updated with currently updated de-duplication hashes associated with currently updated de-duplicated data chunks. In step1736, a data corruption correction process is executed. The data corruption correction process includes: (1) detecting corrupted data chunks stored within a storage tape drive hardware device of the plurality of storage tape drive hardware devices; (2) retrieving (from the MNVS) pointers associated with functional data chunks of at least one additional NVS2 of the plurality of storage tape drive hardware devices comprising data storage tape cartridges including the functional data chunks; and (3) replacing the corrupted data chunks with the functional data chunks.

FIG. 18illustrates a computer system90(e.g., the storage tape drive hardware device ofFIG. 1or the tape library manager system ofFIG. 7) used by or comprised by the system ofFIGS. 1 and 7for improving a tape drive memory storage process, in accordance with embodiments of the present invention.

The computer system90illustrated inFIG. 18includes a processor91, an input device92coupled to the processor91, an output device93coupled to the processor91, and memory devices94and95each coupled to the processor91. The input device92may be, inter alia, a keyboard, a mouse, a camera, a touchscreen, etc. The output device93may be, inter alia, a printer, a plotter, a computer screen, a magnetic tape, a removable hard disk, a floppy disk, etc. The memory devices94and95may be, inter alia, a hard disk, a floppy disk, a magnetic tape, an optical storage such as a compact disc (CD) or a digital media disc (DVD), a dynamic random access memory (DRAM), a read-only memory (ROM), etc. The memory device95includes a computer code97. The computer code97includes algorithms (e.g., the algorithms ofFIGS. 10 and 15-17) for enabling a process for improving a tape drive memory storage process. The processor91executes the computer code97. The memory device94includes input data96. The input data96includes input required by the computer code97. The output device93displays output from the computer code97. Either or both memory devices94and95(or one or more additional memory devices Such as read only memory device96) may include algorithms (e.g., the algorithms ofFIGS. 10 and 15-17) and may be used as a computer usable medium (or a computer readable medium or a program storage device) having a computer readable program code embodied therein and/or having other data stored therein, wherein the computer readable program code includes the computer code97. Generally, a computer program product (or, alternatively, an article of manufacture) of the computer system90may include the computer usable medium (or the program storage device).

In some embodiments, rather than being stored and accessed from a hard drive, optical disc or other writeable, rewriteable, or removable hardware memory device95, stored computer program code84(e.g., including algorithms) may be stored on a static, nonremovable, read-only storage medium such as a Read-Only Memory (ROM) device85, or may be accessed by processor91directly from such a static, nonremovable, read-only medium85. Similarly, in some embodiments, stored computer program code97may be stored as computer-readable firmware85, or may be accessed by processor91directly from such firmware85, rather than from a more dynamic or removable hardware data-storage device95, such as a hard drive or optical disc.

Still yet, any of the components of the present invention could be created, integrated, hosted, maintained, deployed, managed, serviced, etc. by a service supplier who offers to improve a tape drive memory storage process. Thus, the present invention discloses a process for deploying, creating, integrating, hosting, maintaining, and/or integrating computing infrastructure, including integrating computer-readable code into the computer system90, wherein the code in combination with the computer system90is capable of performing a method for improving a tape drive memory storage process. In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service supplier, such as a Solution Integrator, could offer to enable a process for improving a tape drive memory storage process. In this case, the service supplier can create, maintain, support, etc. a computer infrastructure that performs the process steps of the invention for one or more customers. In return, the service supplier can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service supplier can receive payment from the sale of advertising content to one or more third parties.