Preserving high resolution tape directory at overwrite end of dataset

By writing the next location of the EOD on the tape and utilizing the SAW overwrite mechanism, the problem of long time and low reliability of the tape drive when recovering the HRTD is solved, and faster and more reliable HRTD recovery is achieved, ensuring the normal operation of the tape drive in case of wear or debris accumulation.

CN120359569APending Publication Date: 2025-07-22INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380083388.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-19
Filing Date
2023-11-27
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

When recovering high-resolution tape catalogs (HRTDs), existing tape drives have problems with long reading time and low reliability, especially when tape media is worn or accumulated debris, it is difficult for existing methods to recover HRTD efficiently.

Method used

By writing the next location of the end of the data set (EOD) including the high-resolution tape directory on the tape, using the SAW overwrite mechanism, a new user data set is written starting from the end vertical position of the EOD (LPOS) of the EOD, and information for positioning the overwritten EOD is recorded in the nonvolatile memory of the tape cartridge, avoiding physical overwriting of the EOD.

Benefits of technology

Improves the recovery speed and reliability of HRTD, reduces read time, ensures that the HRTD can be effectively restored when tape media is worn or debris accumulates, and maintains efficient operation of the tape drive.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120359569A_ABST
    Figure CN120359569A_ABST
Patent Text Reader

Abstract

An end (EOD) of a dataset including a high resolution tape directory (HRTD) is written to the next location of the last written user dataset on the tape. When a new user data set is appended, the new user data set is written from the next location of the end longitudinal location (LPOS) of the EOD to generate an overwritten EOD.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND OF THE INVENTION

[0001] The present invention relates to magnetic tape data storage, and more particularly, to non-volatile storage of a high-resolution tape directory (HRTD) of a tape cartridge.

[0002] Linear Tape-Open (LTO) tape drives and IBM enterprise tape drives (TS11xx) are referred to as linear tape drives. Linear tape drives distribute data longitudinally on a tape, record data from the beginning to the end of the tape, then shift position slightly in the transverse direction of the tape, and then record data longitudinally in the opposite direction to the tape. The linear tape drive repeats this reciprocating operation several times while shifting in the transverse direction of the tape.

[0003] The host issues relocation requests in the order of record numbers or file marker numbers. Here, a file marker is a separator for a set of records that make up a file. Since the tape drive cannot determine the position where the target record or file marker is written on the tape, the drive roughly determines the position by using a tape directory (TD). The TD of the LTO tape drive divides a wrap into two regions, while the high-resolution tape directory (HRTD) of the TS11xx tape drive divides a wrap into 128 regions. For example, since the TS1160 has 272 wraps, it has 272 wraps × 128 regions / wrap = 34,816 regions. The TD and HRTD record the last written record number and file marker number of the region, and also record the record numbers and file marker numbers written in the region. This information enables the tape drive to determine whether the target record or file marker is in the region.

[0004] The tape drive refers to the HRTD extended in the main memory at reset. When the tape cartridge is ejected from the tape drive, the HRTD can be written into the non-volatile memory in the tape cartridge so that the HRTD can be restored when the tape cartridge is loaded next time. Since the TD is small in size, it can be stored in the CM of the tape cartridge. However, due to its size, the HRTD cannot be recorded in the CM. SUMMARY OF THE INVENTION

[0005] According to an embodiment of the present disclosure, a method is provided. The method includes writing a data set end (EOD) including a high-resolution tape directory (HRTD) at the next position of the last written user data set on the tape. The method further includes when a new user data set is appended, writing the new user data set starting from the next position (LPOS) of the EOD to generate an overwritten EOD.

[0006] Further embodiments of the present disclosure provide a tape drive and a computer program product for performing the method.

[0007] The foregoing summary is not intended to describe every illustrated embodiment or every implementation of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The drawings included in this application are incorporated into and form a part of the specification. They illustrate embodiments of the present disclosure and, together with the specification, are used to explain the principles of the present disclosure. The drawings merely illustrate certain embodiments and do not limit the present disclosure.

[0009] Figure 1 A block diagram of a tape storage system according to various embodiments is depicted.

[0010] Figure 2 A flowchart of an example method for appending a new data set according to various embodiments is depicted.

[0011] Figure 3 A data set in a tape reel is depicted to show appending a new data set at EOD according to the Figure 2 method shown.

[0012] Figure 4 A flowchart of an example method for reading a data set from a tape according to various embodiments is depicted.

[0013] Figure 5 A flowchart of an example method for restoring a HRTD using an EOD overwritten by a SAW according to various embodiments is described.

[0014] Figure 6 A computing environment according to various embodiments is depicted.

[0015] Although the present invention may have various modifications and alternative forms, details thereof have been shown by way of example in the drawings and will be described in detail. However, it should be understood that the intention is not to limit the present invention to the particular embodiments described. On the contrary, the present invention covers all modifications, equivalents, and alternatives falling within the scope of the present invention. DETAILED DESCRIPTION

[0016] Aspects of the present disclosure relate to high-resolution tape catalogs in tape storage, and more specific aspects relate to maintaining a high-resolution tape catalog at the end of a data set on a tape when appending new user data sets. Although the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure can be understood through discussions of various examples in this context.

[0017] The data area of the magnetic tape is divided into multiple areas called reels. The tape drive linearly writes data to the magnetic tape on each reel from the beginning to the end or from the end to the beginning of the magnetic tape. The width of the effective data area of each reel in the magnetic tape width direction is called the track pitch. For example, the tape drive can record data by writing with even reels from the start to the end of the magnetic tape and with odd reels from the end to the start of the magnetic tape. The TS1160 has 68 reels on each data tape and a total of 272 reels on the magnetic tape. The user data sent from the host is written to the magnetic tape in units of data groups starting from one reel to the end of one reel. The data set information table (DSIT) that records the information of the data set is written as part of the data set.

[0018] The tape drive writes data from the beginning to the end of the magnetic tape. The tape drive is also called a sequential device. A record is the unit by which the host writes data to the tape drive. The record written to the tape drive is compressed by the compression engine of the tape drive and temporarily stored in the memory buffer. Once the compressed data size exceeds the data set size, the tape drive writes the data to the magnetic tape in units of data sets. At the end of the user data set, the drive writes a special type of data set called the end of data set (EOD) to indicate that there are no other data sets on the magnetic tape. The physical location of the EOD is recorded in the non-volatile memory embedded on the cartridge, called the cartridge memory (CM), so that the tape drive can navigate to the location of the EOD to append new user data to the magnetic tape.

[0019] There are two types of IDs for identifying data sets. One is the data set ID, whose value is set to 1 at the beginning of tape (BOT) and increments by 1 for each data set. The other is the tape write pass, whose value is set to 1 at the factory and increments by 1 when an old data set is overwritten. The tape write pass is never cleared to ensure that the latest data set has the maximum value among the older data sets. When the drive reads new and old data set segments, it can use only the tape write pass to pick the latest segment.

[0020] The tape drive must navigate to the physical location of the data set in order to read or overwrite it before it starts reading or writing the data set from the magnetic tape. The operation of adjusting the position is called repositioning.

[0021] The host issues a relocation request using a record number or a file label number. A file label is an indicator of a set of records that make up a file. Since a tape drive cannot determine the location on the tape where the target record or file label is written, the drive roughly determines the location by using a tape directory (TD). The TD of an LTO tape drive divides the tape volume into two regions, while the high-resolution tape drive (HRTD) of a TS11xx tape drive divides the tape volume into 128 regions. For example, since a TS1160 has 272 tape volumes, it has 272 tape volumes x 128 regions / tape volume = 34,816 regions. The TD and HRTD record the record number and file label number of the last write in the previous region, and also record the record number and file label written in that region. This information enables the tape drive to determine whether the target record or file label is in that region.

[0022] When the tape drive receives a relocation request from the host, the tape drive identifies the region of the target record or target file label. When the physical location of the region is uniquely identified, the drive can relocate to the start of the region and read each data set one by one from the first data set in the region until it finds the data set that contains the target record or file label.

[0023] When relocating, the tape drive references the HRTD in the main volatile memory. When the tape cartridge is ejected from the tape drive, the HRTD must be written to non-volatile memory for the next loading of the tape cartridge. Since the TD is small in size, it can be stored in the CM of the cartridge. However, due to its size, the HRTD cannot be recorded in the CM. Instead, the tape drive can write the HRTD at a location on the tape where no user data is written. Depending on the tape medium or drive head conditions, it may be difficult to read back the HRTD, so the tape drive can record the HRTD at several locations on the tape and recover the HRTD as follows:

[0024] (1) The HRTD can be recorded in the housekeeping area as part of a standard housekeeping data set (sHKDS). The sHKDS is recorded in the housekeeping area located before the user data area and is read first when the cartridge is loaded into the tape drive. For user data sets, when a user data set cannot be read, the tape drive attempts to reread up to 80 times by changing the settings, which is called an error recovery process (ERP). If the data set cannot be read back after the ERP, the drive reports an error to the host. On the other hand, the drive stops reading the sHKDS with fewer attempts because the sHKDS is not user data and the drive can operate without it.

[0025] (2) The tape drive can write the HRTD in the EOD that indicates the end of user data at the next location of the user data set. Since the size of the EOD is the same as that of a normal data set, but the size of the EOD marker is very small, the drive records the sHKDS information in the remaining space. If the tape drive fails to retrieve the HRTD by reading the sHKDS when loading the cartridge, the tape drive can retrieve the HRTD by navigating to the EOD when it receives a relocation request from the host. Unfortunately, the drive cannot retrieve the HRTD from the EOD because if it cannot write the user data set, the HRTD does not exist.

[0026] (3) The tape drive can record the HRTD in an empty data set at the beginning of volume (BOW). The empty data set does not record any user data. Since the drive goes to the next volume at the BOW, magnetic debris accumulates at that location. The tape condition at the BOW becomes worse than other areas, which prevents the tape drive from reading back the HRTD at the BOW. Additionally, since the empty data set is not a user data set, if the tape drive cannot write, the tape drive will not attempt to write multiple times to maintain write performance. This results in an irrecoverable HRTD.

[0027] (4) DSIT not only records data set information such as DS ID or record number, but also records the HRTD in two areas due to its size limitation. Since the TS1160 has 34816 areas in the HRTD, the drive reads 17408 data sets to recover the HRTD that was written to at least 2.4 volumes or more on the tape. If the drive / tape condition is good, it may take at least 7 minutes to retrieve them.

[0028] (5) If the tape drive cannot recover the HRTD by reading the DSIT, the tape drive can recover the HRTD by reading all the data sets on the tape, which as a last resort may take more than 14 hours.

[0029] A tape drive can overwrite new records at an existing record position, which is called appending. Appending writes a new data set starting from the ending longitudinal position (LPOS) of the last data set of the data set being overwritten. By writing immediately from this position, the old data is completely overwritten so that the old data cannot be misread. However, if the tape drive's head degrades due to use, or if magnetic debris accumulates on the tape surface, the drive may not be able to position the write head correctly on the track. In this case, the drive stops writing until the head is correctly positioned on the track. The drive remains operational without writing to the tape to adjust the head position until it is on the track. Even if the new data set is written at a position after the older data set, the drive can read back the new data set by comparing the tape write pass of the tape write with that of the previous data set. However, the appended data set does not have any previous data set with the same tape write pass. To avoid this, the tape drive needs to append from the ending LPOS of the previous data set.

[0030] When the tape medium is worn or has accumulated debris, the drive may not be able to follow the track at the ending LPOS of the previous data set. Despite multiple write attempts, if the tape drive cannot start writing from the ending LPOS position, the drive enters the suspended append write (SAW) mode. The tape drive records the data set ID and the tape write pass in the CM, and then it writes the data set to a position away from the ending LPOS of the previous data set. Whenever the tape drive reads a data set, it checks the CM to determine if the data set was overwritten by SAW. If so, the drive discards the older data set and attempts to read the tape write pass again.

[0031] When the tape drive appends a new data set from the EOD, it relocates to the EOD position and overwrites the new data set from that position, as Figure 2 shown. If the drive cannot start writing the data set at this position, it writes the data set by SAW instead of recording the data set ID and the tape write pass in the CM as in the normal append case. The drive can distinguish whether the EOD is real or overwritten by another data set by checking the EOD information page in the CM that records the EOD data set ID and its tape write pass. This also saves the capacity of the SAW page in the CM.

[0032] When a reposition command is issued, the tape drive resumes HRTD because repositioning without HRTD takes a long time if HRTD cannot be retrieved from sHKDS when loading a tape cartridge. The tape drive currently uses one of the 5 mechanisms described here to resume HRTD. Since EOD can record more HRTD information than other mechanisms and the read time can be shorter than other mechanisms, the tape drive can use EOD to resume HRTD with the highest priority. However, when EOD is not written to the tape due to a write failure or power loss during data writing, the drive cannot utilize EOD. HRTD can be recorded in an empty data set at the BOW of each tape reel, but the BOW wears out faster due to unexpected friction of the tape reel rotation at this position. Reading BOW data may fail or take a long time for ERP. When ERP occurs during writing, the empty data set at the BOW is not always written.

[0033] According to an embodiment of the present invention, a mechanism is provided for a tape drive to write an additional data set to maintain HRTD in EOD. When new data is appended to the tape, the proposed mechanism processes the additional data set by writing from the next position of the ending LPOS of EOD without physically overwriting EOD. This EOD can be considered to be overwritten by SAW. The new data set can be given a tape write pass with its value greater than the value of the overwritten EOD. Information for locating the EOD overwritten by SAW can be stored in the CM of the tape cartridge. This allows the tape drive to resume HRTD from the EOD overwritten by SAW, and HRTD is written to the user data area which is usually in better condition than BOW.

[0034] Now refer to Figure 1 , a block diagram of a tape storage system 100 is depicted in accordance with various embodiments of the present disclosure. The tape storage system 100 includes a host computing device 110, a tape drive 120, and a tape cartridge 130. The host computing device 110 can be communicatively coupled to the tape drive 120 via one or more interfaces. In some embodiments, the host computing device 110 can communicate with the tape drive 120 via one or more networks. Although not shown, in some embodiments, the tape drive 120 can be part of a tape library having multiple tape drives.

[0035] The host computing device 110 can be any suitable computing device. The host computing device 110 includes a tape storage module 114. The tape storage module 114 can be any combination of hardware and software components configured to communicate with the tape drive 120. For example, the tape storage module 114 can include program instructions executable by a processor for sending commands to the tape drive 120 and processing information received from the tape drive 120.

[0036] The tape drive 120 can be any suitable type of tape drive. The tape drive 120 can include a controller 124. The controller 124 can be or include a processor and / or any logic for controlling any subsystem of the tape drive 120. For example, the controller 124 generally controls head functions such as servo following, data writing, data reading, etc. The controller 124 can operate under logic known in the art as well as any logic disclosed herein, and can thus be considered a processor for any description of the tape drive included herein in various embodiments. The controller 124 can be coupled to any known type of memory 126, which can store instructions executable by the controller 124. In addition, the controller 124 can be configured and / or programmed to execute or control some or all of the methods presented herein. Thus, the controller 124 can be considered to be configured to perform various operations by logic programmed into one or more chips, modules, and / or blocks; software, firmware, and / or other instructions available to one or more processors, etc., and combinations thereof.

[0037] The memory 126 can be a combination of one or more memory devices. The memory 126 includes volatile memory 128. The controller 124 can be configured to store information in the volatile memory 128 associated with the tape cartridge loaded in the tape drive 120. For example, the controller can store the HRTD in the volatile memory 128 for performing a relocation request from a host.

[0038] The tape cartridge 130 can be loaded into the tape drive 120. The tape cartridge 130 can be any suitable type of tape cartridge. The tape cartridge 130 can include a tape cartridge memory 134 and a tape 138. The tape cartridge memory 134 can store EOD information 136 as described herein.

[0039] Now referring Figure 2 , a flowchart of an example method 200 for appending a new data set according to various embodiments is depicted. The method 200 is described herein with reference to Figure 1 the tape drive 120 in the tape storage system 100, but it should be understood that in other embodiments, other suitable tape drives and tape storage systems can execute the method 200.

[0040] At operation 210, the tape drive 120 receives an append new data set command from the host computing device 110. At operation 220, the tape drive 120 relocates the head to the ending LPOS of the EOD on the tape 138. The position of the EOD can be determined by reading the EOD information 136 in the CM 134. At operation 230, the tape drive 120 prepares the new data set. For example, the tape drive may compress the data received from the host. At operation 240, the tape drive 120 sets the data set ID of the new data set to the same data set ID as the EOD, and sets the tape write pass to a value greater than the tape write pass value of the EOD. For example, the tape write pass can be an integer, and the tape write pass value of the new data set can be incremented by 1 compared to the tape write pass value of the EOD. At operation 250, the tape drive 120 writes the new data set to the tape 138 from the next position of the ending LPOS of the EOD. At operation 240, the tape drive sets the write of the new data set with the data set ID and the tape write pass value. At operation 260, the tape drive 120 records the information for locating the overwritten EOD in the CM 134 of the tape cartridge 130. The recorded information for locating the overwritten EOD may include the data set ID, the tape write pass, the volume tape on which the EOD is recorded, and the starting LPOS of the EOD.

[0041] Since the new data set is written at a point later than the ending LPOS of the previous user data set, the EOD can be considered to be overwritten by the SAW. However, since the EOD overwritten by the SAW is not physically overwritten and the information for locating the overwritten EOD is stored in the CM, the HRTD stored in the overwritten EOD can be retrieved as discussed herein with reference to Figure 5 that which is discussed.

[0042] Now referring to Figure 3 , a data set in a volume tape is depicted to show appending a new data set at the EOD according to method 200. Figure 3 A volume tape having a data set before the append operation and the same volume tape after the append operation are shown. As depicted, the new data set is written at the next position of the ending LPOS of the EOD such that the EOD is not physically overwritten. Thus, the EOD can still be read from the tape even though it has been overwritten by the SAW. As depicted, the first new data set has the same data set ID (DS#n) as the EOD, but has an incremented tape write pass value (WP#k+1).

[0043] Referring to Figure 4 , a flowchart of an example method 400 for reading a data set from a tape is depicted according to various embodiments. Method 400 is hereby referred to Figure 1The tape drive 120 in the tape storage system 100 is described, but it should be understood that in other embodiments, other suitable tape drives and tape storage systems may perform method 400.

[0044] In operation 410, the tape drive 120 reads a data set from the tape 138. In operation 420, the tape drive 120 determines whether the data set is an EOD. If the data set is an EOD, the tape drive 120 checks the EOD information stored in the CM 134. In some embodiments, the tape drive checks information about the current EOD to see if it matches the information about the read EOD. In some embodiments, the tape drive checks the information stored in the CM about the EOD overwritten by the SAW to see if it matches the read EOD. The information checked may include the data set ID, the tape write pass, the volume tape on which the EOD was written, and the LPOS of the EOD.

[0045] In operation 450, the tape drive 120 determines whether the read EOD has been overwritten by the SAW based on the EOD information read from the CM 134. If the EOD has not been overwritten by the SAW, then in operation 460, the tape drive determines that the read is complete. If the EOD has been overwritten by the SAW, then in operation 410, the tape drive 120 restarts reading the data set from the same location by incrementing the tape write pass value during the operation.

[0046] If in operation 420, the tape drive 120 determines that the data set is not an EOD, the tape drive 120 determines in operation 430 whether there is another data set to read. If there is another data set to read, then in operation 410, the tape drive 120 reads the next data set. If there is no other data set to read, then in operation 460, the tape drive 120 determines that the read is complete.

[0047] Now refer to Figure 5 , according to various embodiments, an example method 500 for using an EOD overwritten by the SAW to recover the HRTD is shown. Method 500 is described herein with reference to Figure 1 the tape drive 120 in the tape storage system 100, but it should be understood that in other embodiments, other suitable tape drives and tape storage systems may perform method 500. Method 500 may be performed in response to the tape drive recovering the HRTD from the sHKDS when loading a tape cassette and the failure to recover the HRTD from the EOD due to the EOD not being written on the tape.

[0048] In operation 510, the tape drive 120 reads the EOD information 136 stored in the CM 134 to identify the information for locating the EOD overwritten by the SAW. This may be at Figure 2The information recorded in operation 260, for example, the information may include the start LPOS of the EOD to be overwritten and the tape write pass for the EOD to be overwritten. In operation 520, the tape drive 120 relocates the tape head to the position at the start LPOS of the EOD to be overwritten. In operation 530, the tape drive 120 reads the overwritten EOD starting at the start LPOS of the overwritten EOD using the tape write pass obtained in operation 510 to obtain the HRTD.

[0049] Aspects of the present disclosure are described by narrative text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of a computer program product (CPP). With respect to any flowchart, depending on the technology involved, operations may be performed in an order different from the order shown in a given flowchart. For example, again depending on the technology involved, two operations shown in consecutive flowchart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.

[0050] A computer program product embodiment (“CPP embodiment” or “CPP”) is a term used in this disclosure to describe any collection of one or more storage media (also referred to as “media”) collectively included in a set of one or more storage devices, the set of one or more storage devices collectively including machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. A “storage device” is any tangible device that can hold and store instructions used by a computer processor. By way of non-limitation, computer-readable storage media can be electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, mechanical storage media, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded devices such as punched cards or pits / lands formed in the major surface of a disc, or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, should not be construed to store in the form of a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, optical pulses transmitted through an optical fiber cable, electrical signals transmitted through wires and / or other transmission media. As will be understood by those skilled in the art, data is typically moved at certain incidental points in time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not render the storage device transitory because the data is not transitory when it is stored.

[0051] Computing environment 600 includes an example of an environment for executing at least some of the computer code involved in performing the methods of the present invention, such as HRTD save code 700. In addition to block 700, computing environment 600 includes, for example, computer 601, wide area network (WAN) 602, end user device (EUD) 603, remote server 604, public cloud 605, and private cloud 606. In this embodiment, computer 601 includes a set of processors 610 (including processing circuitry 620 and cache 621), communication fabric 611, volatile memory 612, persistent storage 613 (including operating system 622 and block 700, as described above), a set of peripherals 614 (including user interface (UI), set of devices 623, storage 624, and set of Internet of Things (IoT) sensors 625), and network module 615. Remote server 604 includes remote database 630. Public cloud 605 includes gateway 640, cloud coordination module 641, set of host physical machines 642, set of virtual machines 643, and set of containers 644.

[0052] The computer 601 can take the form of a desktop computer, a laptop computer, a tablet computer, a smart phone, a smart watch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as the remote database 630. As is well known in the computer technology field and depending on the technology, the performance of a computer-implemented method can be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of the computing environment 600, the discussion focuses on a single computer, particularly the computer 601, to keep the presentation as simple as possible. The computer 601 can be located in the cloud, even if it is not shown in the cloud in Figure 1 the figure. On the other hand, the computer 601 does not need to be in the cloud, unless to any extent that can be definitely indicated.

[0053] The set of processors 610 includes one or more computer processors of any type now known or developed in the future. The processing circuitry 620 can be distributed across multiple packages, such as multiple cooperating integrated circuit chips. The processing circuitry 620 can implement multiple processor threads and / or multiple processor cores. The cache 621 is a memory located within the processor chip package and is generally used for data or code that should be made available for rapid access by threads or cores running on the processor group 610. The cache memory is typically organized into multiple levels based on its relative proximity to the processing circuitry. Alternatively, some or all of the cache in the processor group can be located "off-chip". In some computing environments, the processor group 610 can be designed to work with qubits and perform quantum computing.

[0054] Computer-readable program instructions are generally loaded onto the computer 601 so that the set of processors 610 of the computer 601 executes a series of operational steps to implement a computer-implemented method such that the instructions so executed will instantiate the method specified in the flowchart and / or the narrative description of the computer-implemented method included in this document (collectively referred to as "the method of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as the cache 621 and other storage media discussed below. The program instructions and associated data are accessed by the processor group 610 to control and direct the execution of the method of the present invention. In the computing environment 600, in block 700, at least some of the instructions for performing the method of the present invention can be stored in the persistent storage 613.

[0055] The communication structure 611 is a signal conduction path that allows the various components of the computer 601 to communicate with each other. Generally, this structure consists of switches and conductive paths, such as those that make up a bus, a bridge, a physical input / output port, etc. Other types of signal communication paths can be used, such as fiber optic communication paths and / or wireless communication paths.

[0056] The volatile memory 612 is any type of volatile memory known now or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Generally, volatile memory is characterized by random access, but this is not required unless specifically stated. In the computer 601, the volatile memory 612 is located in a single package and inside the computer 601. However, alternatively or additionally, the volatile memory can be distributed in multiple packages and / or be located external to the computer 601.

[0057] The permanent storage device 613 is any form of non-volatile storage for a computer known now or developed in the future. The non-volatility of this memory means that the stored data is retained whether or not power is supplied to the computer 601 and / or directly to the permanent storage device 613. The permanent storage device 613 can be read-only memory (ROM), but generally at least a portion of the persistent storage allows for the writing of data, the deletion of data, and the re-writing of data. Some common forms of persistent storage include disk and solid state storage devices. The operating system 622 can take several forms, such as various known proprietary operating systems with kernels or operating systems of the open source portable operating system interface type. The code included in block 700 generally includes at least some of the computer code involved in performing the method of the present invention.

[0058] The peripheral device set 614 includes the set of peripheral devices of the computer 601. Data communication connections between the peripheral devices and other components of the computer 601 can be implemented in various ways, such as Bluetooth connections, near field communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), plug-in connections (e.g., secure digital (SD) cards), connections made through local communication networks, and even connections made through wide area networks such as the Internet. In various embodiments, the UI device set 623 may include components such as display screens, speakers, microphones, wearable devices (e.g., goggles and smart watches), keyboards, mice, printers, touch pads, game controllers, and tactile devices. The storage device 624 is an external memory, such as an external hard disk drive, or a plug-in memory, such as an SD card. The storage device 624 can be permanent and / or volatile. In some embodiments, the storage device 624 can take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where the computer 601 needs to have a large amount of storage (e.g., in the case where the computer 601 locally stores and manages a large database), the storage device can be provided by a peripheral storage device designed to store a very large amount of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor set 625 consists of sensors that can be used in Internet of Things applications. For example, one sensor can be a thermometer, and another sensor can be a motion detector.

[0059] The network module 615 is a collection of computer software, hardware, and firmware that allows the computer 601 to communicate with other computers via the WAN 602. The network module 615 can include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over the communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 615 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networks (SDN)), the control function and the forwarding function of the network module 615 are executed on physically separate devices, such that the control function manages several different network hardware devices. The computer-readable program instructions for performing the methods of the present invention can generally be downloaded to the computer 601 from an external computer or an external storage device through a network adapter card or a network interface included in the network module 615.

[0060] The WAN 602 is any wide area network (e.g., the Internet) capable of transferring computer data over non-local distances by any technology now known or hereafter developed for transferring computer data. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN), which is designed to transfer data between devices located in a local area, such as a Wi-Fi network. The WAN and / or LAN typically include computer hardware, such as copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.

[0061] The end user device (EUD) 603 is any computer system used and controlled by an end user (e.g., a customer of an enterprise operating the computer 601), and can take any form discussed above in connection with the computer 601. The EUD 603 typically receives useful and actionable data from the operation of the computer 601. For example, in the hypothetical case where the computer 601 is designed to provide recommendations to an end user, the recommendation will typically be transmitted from the network module 615 of the computer 601 to the EUD 603 via the WAN 602. In this way, the EUD 603 can display or otherwise present the recommendation to the end user. In some embodiments, the EUD 603 can be a client device, such as a thin client, thick client, mainframe, desktop computer, etc.

[0062] The remote server 604 is any computer system that provides at least some data and / or functionality to the computer 601. The remote server 604 can be controlled and used by the same entity operating the computer 601. The remote server 604 represents a machine that collects and stores useful and actionable data for use by other computers such as the computer 601. For example, in the hypothetical case where the computer 601 is designed and programmed to provide recommendations based on historical data, the historical data can be provided to the computer 601 from the remote database 630 of the remote server 604.

[0063] A public cloud 605 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computing capabilities (notably data storage (cloud storage) and computing power), without the direct active management by the user. Cloud computing generally exploits the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 605 is performed by the computer hardware and / or software of the cloud coordination module 641. The computing resources provided by the public cloud 605 are typically implemented by virtual computing environments running on various computers of a set of host physical machines 642, which is the universe of physical computers in and / or available for the public cloud 605. The virtual computing environment (VCE) generally takes the form of virtual machines from a virtual machine group 643 and / or containers from a container group 644. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after the instantiation of the VCE. The cloud coordination module 641 manages the transmission and storage of the images, deploys new instantiations of the VCE, and manages the active instantiations of the VCE deployment. The gateway 640 is a collection of computer software, hardware, and firmware that allows the public cloud 605 to communicate through the WAN 602.

[0064] Some further explanations of the virtualized computing environment (VCE) will now be provided. The VCE can be stored as an "image". New active instances of the VCE can be instantiated from this image. Two common types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running within them, these isolated user space instances generally appear as actual computers. A computer program running on a normal operating system can utilize all the resources of that computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, a program running within a container can only use the contents of the container and the devices allocated to the container, which is a feature known as containerization.

[0065] A private cloud 606 is similar to a public cloud 605, except that the computing resources are only available to a single enterprise. Although the private cloud 606 is depicted as communicating with the WAN 602, in other embodiments, the private cloud can be completely disconnected from the Internet and only accessible through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types) that are typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable coordination, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, the public cloud 605 and the private cloud 606 are both part of the larger hybrid cloud.

[0066] The description of the various embodiments of the present disclosure has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to a person of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein were chosen to explain the principles of the embodiments, practical application, or technical improvements in the marketplace, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method, comprising: Writing an end-of-dataset EOD including a high-resolution tape directory HRTD at the next position of the last-written user dataset on a tape; And When a new user dataset is appended, writing the new user dataset starting from the next position of the end longitudinal position LPOS of the EOD to generate an overwritten EOD.

2. The method according to claim 1, wherein The EOD has a first dataset ID and a first tape write pass value, and wherein the new dataset has the first dataset ID and a second tape write pass value greater than the first tape write pass value.

3. The method according to claim 1, further comprising: Recording in a cartridge memory information for locating the overwritten EOD.

4. The method according to claim 3, wherein The information includes the dataset ID for the overwritten EOD, the tape write pass value for the EOD, the tape volume on which the EOD is recorded, and the start LPOS of the overwritten EOD.

5. The method according to claim 3, further comprising: Reading the cartridge memory to obtain information for locating the overwritten EOD; Using the information from the cartridge memory to locate the overwritten EOD; And Recovering the HRTD by reading the overwritten EOD.

6. The method according to claim 4, further comprising: Reading the cartridge memory to obtain the end LPOS of the overwritten EOD; Relocating the tape head to the position at the start LPOS; And Reading from the start LPOS to recover the HRTD from the overwritten EOD.

7. The method according to claim 1, further comprising: Reading a first dataset; In response to determining that the first dataset is an EOD, checking the EOD information in the cartridge memory; And In response to determining based on the EOD information in the cartridge memory that the first dataset has been overwritten, reading a second dataset by incrementing the tape write pass value.

8. A tape drive, comprising: A memory; And A controller communicatively coupled to the memory, the controller being configured to: Write an end-of-dataset EOD including a high-resolution tape directory HRTD at the next position of the last-written user dataset on a tape; and When a new user dataset is appended, write the new user dataset starting from the next position of the end longitudinal position LPOS of the EOD to generate an overwritten EOD.

9. The tape drive according to claim 8, wherein, The EOD has a first dataset ID and a first tape write pass value, and wherein the new dataset has the first dataset ID and a second tape write pass value greater than the first tape write pass value.

10. The tape drive according to claim 8, wherein, The controller is further configured to record in a cartridge memory information for locating the overwritten EOD.

11. The tape drive according to claim 10, wherein, The information includes the dataset ID for the overwritten EOD, the tape write pass value for the EOD, the tape volume on which the EOD is recorded, and the start LPOS of the overwritten EOD.

12. The tape drive according to claim 10, wherein, The controller is further configured to: Read the cartridge memory to obtain information for locating the overwritten EOD; Use the information from the cartridge memory to locate the overwritten EOD; and Restore the HRTD by reading the overwritten EOD.

13. The tape drive according to claim 12, wherein, The controller is further configured to: Read the cartridge memory to obtain the end LPOS of the overwritten EOD; Relocate the magnetic head to the position at the start LPOS; and Read from the start LPOS to restore the HRTD from the overwritten EOD.

14. The tape drive according to claim 8, wherein, The controller is further configured to: Read a first data set; In response to determining that the first data set is an EOD, check the EOD information in the cartridge memory; and In response to determining, based on the EOD information in the cartridge memory, that the first data set has been overwritten, read a second data set by incrementing the tape write pass value.

15. A computer program product comprising a computer-readable storage medium having code embodied therein that can be executed by a controller to cause the controller to: Write a data set end EOD including a high-resolution tape directory HRTD at the next position of the last-written user data set on the tape; and When a new user data set is appended, write the new user data set starting from the next position of the end longitudinal position LPOS of the EOD to generate an overwritten EOD.

16. The computer program product according to claim 15, wherein, The EOD has a first data set ID and a first tape write pass value, and wherein the new data set has the first data set ID and a second tape write pass value greater than the first tape write pass value.

17. The computer program product according to claim 15, wherein, The code can be further executed by the controller to cause the controller to record in the cartridge memory information for locating the overwritten EOD.

18. The computer program product according to claim 17, wherein, The information includes the data set ID for the overwritten EOD, the tape write pass value for the EOD, the volume tape on which the EOD is recorded, and the start LPOS of the overwritten EOD.

19. The computer program product according to claim 17, wherein, The code can also be executed by the controller to cause the controller to: Read the cartridge memory to obtain information for locating the overwritten EOD; Use the information from the cartridge memory to locate the overwritten EOD; and Restore the HRTD by reading the overwritten EOD.

20. The computer program product according to claim 18, wherein, The code can also be executed by the controller to cause the controller to: Read the cartridge memory to obtain the end LPOS of the overwritten EOD; Relocate the magnetic head to the position at the start LPOS; and Read from the start LPOS to restore the HRTD from the overwritten EOD.