Data storage beyond threshold tape position
The index manager optimizes tape storage by deciding between full and incremental indexes based on write location and index size, addressing premature tape capacity issues and enhancing storage efficiency.
Patent Information
- Application Number
- JP2023565967
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-26
- Filing Date
- 2022-04-15
- Publication Date
- 2026-01-30
- Estimated Expiration
- 2042-04-15
AI Technical Summary
Existing storage management systems face challenges in efficiently writing data to tape beyond a threshold position, leading to premature tape capacity exhaustion and read-only status due to repetitive metadata operations, especially when writing large full indexes.
An index manager determines whether to write data as a full or incremental index based on target write location, index size, and number of incremental indexes, optimizing storage to prevent premature tape capacity exhaustion.
This approach enhances data storage efficiency by reducing the likelihood of tape capacity exhaustion and minimizing metadata reconstruction operations, allowing for more data to be stored on the tape.
Smart Images

Figure 0007809136000001 
Figure 0007809136000002 
Figure 0007809136000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to tape storage, and more particularly to storing data on tape beyond a threshold tape position. [Background technology]
[0002] A file system may control the storage of data on tape, and such a file system may be configured to write data to tape in a variety of formats. Summary of the Invention
[0003] According to an embodiment of the present disclosure, a method can include obtaining write information corresponding to an index to be written to tape. The write information can include a target write location on the tape for the index. The method can include making a first determination that the target write location exceeds a threshold location on the tape. The method can include obtaining index information including a size of a full index to be stored on the tape. The method can include making a second determination that the size of the full index exceeds the size of one data set. The method can include writing the index to the tape in response to making the first and second determinations. The writing can be at a first location that exceeds the threshold location. The index can be an incremental index.
[0004] Systems and computer program products corresponding to the above methods are also included herein.
[0005] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.
[0006] The drawings included in this application are incorporated into and form a part of this specification. These drawings illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings merely illustrate particular embodiments and are not intended to limit the disclosure. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is a diagram of an exemplary computing environment having an index manager, in accordance with an embodiment of the present disclosure. [Figure 2] FIG. 2 is a flowchart diagram of an exemplary method for writing an index to tape, according to an embodiment of the present disclosure. [Figure 3] 1 is an exemplary partial view of a tape on which an index is written beyond a threshold tape position, according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a diagram of exemplary major components of a computer system that may be used in accordance with embodiments of the present disclosure. [Figure 5] FIG. 1 is a diagram of a cloud computing environment according to an embodiment of the present disclosure. [Figure 6] FIG. 1 is a diagram of an abstract model layer according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0008] While the invention is susceptible to various modifications and alternative forms, specific examples thereof have been shown by way of example in the drawings and will now be described in detail. It should be understood, however, that there is no intention to limit the invention to the particular embodiments described. On the contrary, it is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention.
[0009] Aspects of the present disclosure relate to tape storage, and more particularly to storing data on tape beyond a threshold tape position. While the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure can be understood using this context and through the discussion of various examples.
[0010] A storage management system may control the writing of data to a tape for storage, such as a magnetic tape medium. The data written to the tape may include user data, such as electronic documents and images, and metadata, such as information about the user data (e.g., file names, information about the file's storage location on the tape, etc.). In some cases, the storage management system may prevent data written to the tape from being overwritten. In such cases, the storage management system may complete operations such as deleting or modifying data written to the tape by appending user data and / or metadata. For example, the storage management system may complete operations such as creating new user data or modifying stored user data by appending user data written to the tape. In another example, the storage management system may complete operations such as deleting and renaming user data by appending metadata written to the tape.
[0011] The file to which the metadata is written can be referred to as an index. In some cases, a storage management system can write a full index to tape, and in some cases, a storage management system can write incremental indexes to tape. A full index can contain metadata equivalent to all of the files stored on tape. An incremental index, on the other hand, can contain only information about the differences from previously written metadata. Thus, an incremental index can have a smaller size than a full index and therefore consume less storage space on tape. However, when retrieving metadata from an incremental index, the storage management system may spend more time performing calculations and / or locating operations than when retrieving metadata from a full index.
[0012] A storage management system can write data to tape in units called datasets. In one example, the size of one dataset can be approximately 10 megabytes (MB). Therefore, in this example, when writing data such as a 50 MB full index to tape, the storage management system can write five datasets of data to tape. Furthermore, in this example, when writing data such as a 2 MB incremental index to tape, the storage management system can write one dataset of data to tape. In the latter case, because one dataset is the smallest unit of data that can be written to tape, the incremental index has a size of 2 MB, but the storage management system still writes one dataset (approximately 10 MB of data) to tape. Therefore, one dataset written by the storage management system can include a 2 MB incremental index and approximately 8 MB of invalid data (e.g., random data written to fill the remaining storage capacity of the dataset).
[0013] In some instances, the storage management system may recognize a predetermined threshold position on the tape and allow only full indexes to be written to the tape after such threshold position. In this manner, the storage management system may reduce the likelihood of reaching the end of the tape before finishing writing data to the tape. For example, in some instances, the storage management system may employ a programmable early warning (PEW) location. The PEW location may be a user-selected location on the tape configured to indicate that the tape has limited remaining storage space. In one example, when the beginning of the tape in the storage management system reaches the PEW location, the storage management system may be configured to allow only full indexes to be written to the tape beyond the PEW location. Thus, in this example, after reaching the PEW location, the storage management system may perform operations such as deleting and renaming user data, because these operations can be completed by writing metadata with the full index beyond the PEW location to the tape. However, in this example, the storage management system may be prevented from performing operations such as creating new user data and modifying stored user data after the PEW location is reached, because such operations would involve writing user data to tape beyond the PEW location.
[0014] This use of full indexes beyond a threshold position on tape can present various challenges. For example, repetitive processes involving metadata appending can result in many large full indexes being written to tape, each occupying multiple data sets. As a result, the storage management system can prematurely reach the maximum storage capacity of the tape and place the tape in a read-only status. In a read-only status, data cannot be written to the tape, which can lead to problems such as an inability to unmount the tape (e.g., remove the tape from the management and / or control of the storage management system) and / or an inability to synchronize the data stored on the tape.
[0015] To address these and other challenges, embodiments of the present disclosure include an index manager. The index manager can facilitate efficient storage of data to tape by a storage management system. More specifically, in some embodiments, the index manager can determine whether the storage management system writes data to tape as a full index or an incremental index based on information such as the target write location on tape, the size of the full index to be stored on tape, the number of incremental indexes to be stored on tape, whether an unmount operation is initiated for the tape, or a combination thereof. Thus, by facilitating efficient storage of data to tape, embodiments of the present disclosure can reduce the likelihood that the storage management system will prematurely reach the maximum storage capacity of the tape.
[0016] Turning to the drawings, FIG. 1 depicts a computing environment 100 including one or more of a storage management system 105, an index manager 130, a computing device 145, and / or a network 150. In some embodiments, at least one storage management system 105, an index manager 130, and / or a computing device 145 can exchange data with at least one other through at least one network 150. For example, in some embodiments, at least one index manager 130 can exchange data with at least one storage management system 105 through at least one network 150. One or more of a storage management system 105, an index manager 130, a computing device 145, and / or a network 150 can include a computer system, such as computer system 401 discussed with respect to FIG. 4.
[0017] In some embodiments, index manager 130 may be a software application installed on at least one of computing device 145 and / or computer system 110. In some embodiments, index manager 130 may be integrated into one or more software applications installed on at least one of computing device 145 and / or computer system 110 (e.g., index manager 130 may be included as a plug-in software component of a software application installed on computer system 110). Index manager 130 may include program instructions executed by a processor, such as the processor of computer system 110, to perform one or more operations discussed with respect to FIG.
[0018] In some embodiments, index manager 130 may include one or more modules, such as data manager 135 and / or write manager 140. In some embodiments, data manager 135 and write manager 140 may be integrated into a single module. In some embodiments, data manager 135 may acquire, analyze, store, and / or initiate the storage of data. In some embodiments, write manager 140 may issue commands to storage management system 105 to write data to tape 115. In some embodiments, data manager 135 and / or write manager 140 may include program instructions executed by a processor, such as the processor of computer system 110, to perform one or more operations discussed with respect to FIG. 2. For example, in some embodiments, data manager 135 may include program instructions for performing operations 205-225, 235, and 245 of FIG. 2. In some embodiments, write manager 140 may include program instructions for performing operations 230 and 240 of FIG. 2.
[0019] In some embodiments, storage management system 105 can include at least one computer system 110, a tape drive 155, and a tape 115. In some embodiments, computer system 110 of storage management system 105 can instruct tape drive 155 to write user data 120 and / or indexes 125 (e.g., full indexes and / or incremental indexes) to tape 115.
[0020] In some embodiments, computing device 145 may include a device such as a desktop or notebook computer through which a user can input information and / or issue commands to storage management system 105. In some embodiments, network 150 may be a wide area network (WAN), a local area network (LAN), the Internet, or an intranet. In some embodiments, network 180 may be substantially similar to or identical to cloud computing environment 50 discussed with respect to FIG. 5.
[0021] 2 is a flowchart diagram of an example method 200 for writing an index to tape, according to an embodiment of the present disclosure. Method 200 may be performed by an index manager, such as index manager 130 of FIG.
[0022] 2, in operation 205, the index manager may obtain write information. In some embodiments, the write information may include a size of a data set, a target write location in the storage management system, an indication to unmount the tape, or a threshold location on the tape, or a combination thereof.
[0023] The size of a dataset may refer to the size of one unit of data that the storage management system can write to tape. For example, in some embodiments, a dataset may be the smallest amount of data (e.g., approximately 10 MB) that the storage management system can write to tape. In some embodiments, the specifications of the tape drive of the storage management system may determine the size of a dataset.
[0024] The target write position may include a location on the tape where the storage management system will begin a write operation. For example, in some embodiments, the target write position may be the location on the tape where the beginning of the tape of the storage management system will begin writing the next amount of data, such as an index, to store on the tape. The target write position may indicate the longitudinal distance along the tape between the beginning of the tape and the end of the tape, for example, 10 meters (m) before the end of the tape.
[0025] The indication to unmount a tape can include data representing a command to unmount the tape. For example, in some embodiments, a user of a computing device (e.g., computing device 145 of FIG. 1 ) can issue a command to a storage management system (e.g., storage management system 105 of FIG. 1 ) to unmount a tape (e.g., to remove the tape from its management and / or control). In this example, data such as lines of code, variable settings, etc. can represent the command to unmount the tape. Such data can be an indication to unmount the tape.
[0026] A threshold position on a tape may refer to a position on the tape that triggers a change in how data is written to the tape. In some embodiments, the threshold position indicates that the tape has limited remaining storage space. Therefore, to efficiently utilize the remaining storage space on the tape beyond the threshold position, the storage management system may be configured to write data to the tape differently above the threshold position than it writes data before the threshold position. For example, in some embodiments, such a threshold position may include a position selected by an entity, such as the storage management system or a user of the storage management system, above which the storage management system is permitted to write only one or more incremental indexes or one or more full indexes to the tape. Similar to a target write position, the threshold position may indicate a longitudinal distance along the tape between the beginning of the tape and the end of the tape, e.g., 3 meters before the end of the tape.
[0027] In some embodiments, the index manager may obtain the write information in response to a command to unmount a tape or a command to modify data stored on a tape. For example, in some embodiments, a user may issue a command to a storage management system to delete or rename a file stored on a tape. In response, the index manager may obtain the write information, such as the target write location, from the storage management system. In some embodiments, the index manager may obtain the write information from a storage management system, such as storage management system 105 of FIG. 1. In some embodiments, the index manager may obtain the write information from a computing device, such as computing device 145 of FIG. 1.
[0028] In operation 210, the index manager may obtain index information. In some embodiments, the index information may include the size of a full index to be written to tape, the number of incremental indexes to be written to tape, or a threshold value corresponding to the number of incremental indexes to be written to tape, or a combination thereof. For example, in some embodiments, the index manager may obtain an indicator of the size (e.g., amount of megabytes) of the last full index written to tape by the storage management system. As discussed in more detail below, the size of a full index previously written to tape may indicate the approximate size of a subsequent full index to be written to tape.
[0029] In some embodiments, the index manager may obtain the index information in response to obtaining the write information in operation 205. In some embodiments, the index manager may obtain the index information from a storage management system, such as storage management system 105 of Figure 1. In some embodiments, the index manager may obtain the index information from a computing device, such as computing device 145 of Figure 1.
[0030] In operation 215, the index manager may determine whether the target write position exceeds a threshold position on the tape. For example, in some embodiments, in operation 215, the index manager may compare the target write position obtained in operation 205 with the threshold position to determine which is closer to the end of the tape (e.g., has a shorter longitudinal distance). If the target write position is closer to the end of the tape than the threshold position, the target write position exceeds the threshold position; otherwise, the target write position does not exceed the threshold position. For example, if the target write position is 2 meters from the end of the tape and the threshold position is 5 meters from the end of the tape, the target write position exceeds the threshold position.
[0031] In operation 215, if the target write location exceeds the threshold location, the index manager may proceed to operation 220. Alternatively, if the target write location does not exceed the threshold location, the index manager may proceed to operation 240. Thus, in operation 215, embodiments of the present disclosure may proceed to writing a full index, which may potentially be larger in size than an incremental index, in response to determining that the target write location does not exceed the threshold location. Such a determination may indicate that sufficient remaining storage space may exist on the tape to write a potentially larger full index. Alternatively, embodiments of the present disclosure may proceed to potentially writing an incremental index, which may be smaller in size than a full index, in response to determining that the target write location does exceed the threshold location. Such a determination may indicate that the remaining storage space on the tape is limited. Thus, the storage management system should efficiently utilize the remaining storage space on the tape.
[0032] In operation 220, the index manager may determine whether the size of the full index stored on tape exceeds the size of one data set equivalent to the tape (e.g., the minimum amount of data that the storage management system can write to tape). In some embodiments, operation 220 may include the index manager analyzing an indicator of the size (e.g., amount of megabytes) of the last full index written to tape by the storage management system. The size of such full index may indicate the approximate size of a subsequent full index to be written to tape. In some embodiments, such indicator may include data representing whether the size of the full index stored on tape exceeds the size of one data set, such as lines of code, a variable setting (e.g., a TRUE / FALSE status of a variable), etc. In such embodiments, operation 220 may include the index manager interpreting the indicator to determine whether the size of the full index stored on tape exceeds the size of one data set equivalent to the tape. In some embodiments, such indicator may include the approximate size of the full index stored on tape. In such an embodiment, operation 220 may include the index manager comparing the approximate size of the full index stored on tape to the approximate size of one data set.
[0033] In operation 220, if the size of the full index stored on tape exceeds the size of one data set corresponding to the tape, the index manager may proceed to operation 225. Alternatively, if the size of the full index stored on tape does not exceed the size of one data set corresponding to the tape, the index manager may proceed to operation 240. Thus, in operation 220, embodiments of the present disclosure may proceed to writing the full index to tape if such writing does not exceed the minimum amount of data that the storage management system would write to tape. In such a case, writing either the full index or the incremental index results in the storage management system writing one data set to tape. Therefore, writing the full index or the incremental index equally affects the remaining storage space on the tape. Therefore, in this case, writing the full index may be beneficial because it allows the storage management system to avoid the computation and metadata reconstruction operations associated with an incremental index.
[0034] In operation 225, the index manager may determine whether the number of incremental indexes stored on tape exceeds a threshold. In some embodiments, the number of incremental indexes stored on tape may include a count of consecutively stored / written incremental indexes on tape. In some embodiments, operation 225 may include the index manager comparing this number to a threshold to determine whether such number exceeds the threshold. In some embodiments, the threshold may be selected by an entity such as the storage management system or a user of the storage management system. In some embodiments, the threshold may be selected to limit the number of consecutively written incremental indexes stored on tape. Because the number of calculations and metadata reconstruction operations performed by the storage management system may increase as the number of consecutively written incremental indexes stored on tape increases, imposing such a limit may prevent a consecutive increase in the number of such operations. Therefore, imposing such a limit may allow the storage management system to operate more efficiently.
[0035] In operation 225, if the number of incremental indexes stored on tape exceeds a threshold, the index manager may proceed to operation 240. Alternatively, if the number of incremental indexes stored on tape does not exceed a threshold, the index manager may proceed to operation 230. Thus, in operation 225, embodiments of the present disclosure may proceed to writing a full index to tape if writing an incremental index would cause the storage management system to perform an undesirable number of computation and metadata reconstruction operations. Alternatively, in operation 225, embodiments of the present disclosure may proceed to writing an incremental index if the benefit of writing an incremental index that is smaller in size than a full index outweighs the disadvantage of potentially increasing the number of computation and metadata reconstruction operations performed by the storage management system.
[0036] In the example of operation 225, in some embodiments, a user may select a threshold value of 8. In this example, in response to the index manager determining that the storage management system has written 9 consecutive incremental indexes to tape, the index manager may instruct the storage management system to write a full index to tape.
[0037] In operation 230, the index manager may issue a command to the storage management system and / or a tape drive of the storage management system to write the incremental index to tape. For example, in some embodiments, operation 230 may include the index manager transmitting an electronic message to the storage management system instructing the storage management system to write the incremental index to tape at or near a target write location on the tape.
[0038] In operation 235, the index manager may determine whether an indication to unmount the tape was obtained in operation 205. If the index manager obtained such an indication, the index manager may proceed to 240. Alternatively, if the index manager did not obtain such an indication, method 200 may end.
[0039] In operation 240, the index manager may issue a command to the storage management system and / or a tape drive of the storage management system to write the full index to tape. For example, in some embodiments, operation 240 may include the index manager transmitting an electronic message to the storage management system instructing the storage management system to write the full index to tape at or near a target write location on the tape.
[0040] In operation 245, the index manager may store an indicator of the size of the full index written to tape, such as the full index written in operation 240. In some embodiments, after operation 245, method 200 may end.
[0041] Figure 3 is an exemplary partial view of a tape 300 on which an index is written beyond a threshold tape position, according to an embodiment of the present disclosure. Data may be written to the tape 300 according to the method 200 of Figure 2. In some embodiments, the tape may have thousands of tracks, but for simplicity, the tape 300 is illustrated as having a single track on which data is written.
[0042] Tape 300 includes a start of tape 320 (not shown) and an end of tape 320. Tape 300 also includes a threshold location 315, a segment 305 of tape 300 before threshold location 315, and a segment 310 of tape 300 beyond threshold location 315. Segment 310 includes four data sets. A first data set 325, a second data set 330, and a third data set 335 store a full index, with the data divided into three portions among these data sets. In particular, first data set 325 stores a first portion 345-1 of the full index, second data set 330 stores a second portion 345-2 of the full index, and third data set 335 stores a third portion 345-3 of the full index. Thus, the full index occupies three data sets. Because the third portion 345-3 of the full index does not fill the third data set 335, the remaining storage space in the third data set 335 contains invalid data 355.
[0043] The fourth data set 340 includes an incremental index 350. Because the incremental index 350 does not fill the fourth data set 340, the remaining storage space of the fourth data set 340 contains invalid data 360. The tape 300 also includes a target write location 365.
[0044] 3, embodiments of the present disclosure provide benefits that increase as the size of a full index increases. For example, because the full index discussed above occupies three data sets, segment 310 does not have enough capacity to store more than one full index. However, segment 310 has sufficient capacity to store multiple incremental indexes 350. Thus, embodiments of the present disclosure can promote efficient data storage by allowing an increasing number of indexes to be written to tape.
[0045] FIG. 4 is a diagram of representative major components of an exemplary computer system 401 that can be used in accordance with embodiments of the present disclosure. The specific components depicted are presented for illustrative purposes only and do not necessarily require such variations. Computer system 401 can include a processor 410, memory 420, an input / output interface (also referred to herein as I / O or I / O interface) 430, and a main bus 440. Main bus 440 can provide communication paths for other components of computer system 401. In some embodiments, main bus 440 can connect to other components, such as a specialized digital signal processor (not shown).
[0046] The processor 410 of the computer system 401 may be comprised of one or more CPUs 412. The processor 410 may further include one or more memory buffers or caches (not shown) that provide temporary storage of instructions and data for the CPU 412. The CPU 412 may execute instructions on input provided from the cache or from the memory 420 and output results to the cache or the memory 420. The CPU 412 may include one or more circuits configured to perform one or more methods consistent with embodiments of the present disclosure. In some embodiments, the computer system 401 may include multiple processors 410, as is typical in larger systems. However, in other embodiments, the computer system 401 may be a single processor with one CPU 412.
[0047] The memory 420 of the computer system 401 may include a memory controller 422 and one or more memory modules (not shown) for temporarily or permanently storing data. In some embodiments, the memory 420 may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing data and programs. The memory controller 422 may communicate with the processor 410 to facilitate the storage and retrieval of information in the memory modules. The memory controller 422 may communicate with the I / O interface 430 to facilitate the storage and retrieval of input or output in the memory modules. In some embodiments, the memory modules may be dual in-line memory modules.
[0048] The I / O interface 430 may include an I / O bus 450, a terminal interface 452, a storage interface 454, an I / O device interface 456, and a network interface 458. The I / O interface 430 may connect the main bus 440 to the I / O bus 450. The I / O interface 430 may route instructions and data from the processor 410 and memory 420 to the various interfaces of the I / O bus 450. The I / O interface 430 may also route instructions and data from the various interfaces of the I / O bus 450 to the processor 410 and memory 420. The various interfaces may include the terminal interface 452, the storage interface 454, the I / O device interface 456, and the network interface 458. In some embodiments, the various interfaces may include a subset of the aforementioned interfaces (e.g., an embedded computer system in an industrial application may not include the terminal interface 452 and the storage interface 454).
[0049] Logic modules throughout computer system 401 (including, but not limited to, memory 420, processor 410, and I / O interface 430) can communicate failures or changes to one or more components to a hypervisor or operating system (not shown). The hypervisor or operating system can allocate the various resources available to computer system 401 and track the location of data in memory 420 and processes allocated to the various CPUs 412. In embodiments that combine or reconfigure elements, aspects of the functionality of the logic modules may be combined or redistributed. Such variations will be apparent to those skilled in the art.
[0050] Although this disclosure includes detailed descriptions of cloud computing, it should be understood in advance that implementation of the teachings presented herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.
[0051] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0052] Its features are as follows:
[0053] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities such as server time and network storage automatically as needed without requiring human interaction with the service provider.
[0054] Broad network access: Functionality is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (e.g., mobile phones, laptops, and PDAs).
[0055] Pooling of resources: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. There is a sense of location independence in that consumers generally have no control or information about the exact location of the resources provided, although they may be able to identify the location at a higher level of abstraction (e.g., country, state, or data center).
[0056] Rapid Scalability: Capabilities can be provisioned quickly and scalably, in some cases automatically, quickly scaled out, and quickly released and quickly scaled in. To the consumer, the capabilities available for provisioning often appear unlimited, and any amount can be purchased at any time.
[0057] Service Metering: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0058] The service model is as follows:
[0059] Software as a Service (SaaS): The functionality offered to the consumer is the use of a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the exception of limited user-specific application configuration settings.
[0060] Platform as a Service (PaaS): The capability offered to consumers is the deployment of consumer-created or off-the-shelf applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.
[0061] Infrastructure as a Service (IaaS): The capability offered to the consumer is the provisioning of processing, storage, network, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating system, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).
[0062] The deployment model is as follows:
[0063] Private Cloud: Cloud infrastructure is operated exclusively for an organization. It can be managed by that organization or a third party and can exist on-premise or off-premise.
[0064] Community Cloud: Cloud infrastructure is shared by several organizations and supports a specific community with a shared set of concerns (e.g., mission, security requirements, policies, and compliance considerations), which may be managed by the organizations or a third party and can exist on-premises or off-premises.
[0065] Public Cloud: Cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0066] Hybrid Cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a unique entity, but are joined by standardized or proprietary technologies that allow data and application portability (e.g., cloud bursting for load balancing between clouds).
[0067] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0068] Referring now to FIG. 5, an exemplary cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 comprises one or more cloud computing nodes 10 that can communicate with local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, or an automotive computer system 54N, or any combination thereof. The nodes 10 can communicate with each other. They can be grouped physically or virtually in one or more networks (not shown), such as a private, community, public, or hybrid cloud, or any combination thereof, as described herein above. This enables the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service, for which the cloud consumer does not need to maintain resources on their local computing device. It will be understood that the types of computing devices 54A-N shown in FIG. 5 are intended to be exemplary only, and that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0069] Referring now to Figure 6, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 5) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 6 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
[0070] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0071] The virtualization layer 70 provides an abstraction layer over which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0072] In one example, the management layer 80 can provide the following functions: Resource provisioning 81 provides dynamic procurement of computing resources and other resources utilized to perform tasks within the cloud computing environment. Metering and billing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources can include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance agreement and procurement of cloud computing resources in anticipation of future demand according to SLAs.
[0073] The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include: mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and index management logic 96.
[0074] As discussed in more detail herein, it is contemplated that some or all of the operations of some of the method embodiments described herein may be performed in an alternative order or not at all, and further, that multiple operations may occur simultaneously or as an internal part of a larger process.
[0075] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0076] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge-in-groove structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as ephemeral signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through fiber optic cable), or electrical signals transmitted over electrical wires.
[0077] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to an individual computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the individual computing / processing device.
[0078] Computer-readable program instructions for carrying out the operations of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state configuration data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk®, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer readable program instructions to individualize the electronic circuitry by utilizing state information in the computer readable program instructions to perform aspects of the present invention.
[0079] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0080] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, when executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium, directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions for implementing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0081] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to create a computer-implemented process that performs a series of operable steps on the computer, other programmable apparatus, or other device, such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0082] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may actually be performed as a single step, or may be executed concurrently, substantially concurrently, partially, or fully in a time-overlapping manner, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs the specified functions or acts or executes a combination of special-purpose hardware and computer instructions.
[0083] The description of various embodiments of the present disclosure has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to explain the principles of the embodiments, practical applications or technical improvements over the art found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A computer-implemented method comprising: obtaining write information corresponding to an index to be written to tape, said write information including a target write location on said tape for said index; making a first determination that the target write location exceeds a threshold location on the tape; obtaining index information including a size of a full index stored on said tape; making a second determination that the size of the full index exceeds the size of one data set; writing the index to the tape in response to making the first determination and the second determination, the writing being at a first location above the threshold location; wherein the index is an incremental index.
2. 2. The computer-implemented method of claim 1, wherein the data written to the tape beyond the threshold position is selected from the group consisting of an incremental index and a full index.
3. The computer-implemented method of claim 1 , wherein the index includes metadata.
4. 2. The computer-implemented method of claim 1, wherein said obtaining said write information is performed in response to an operation selected from the group consisting of deleting a file stored on said tape and renaming a file stored on said tape.
5. the write information further includes an indication to unmount the tape; 2. The computer-implemented method of claim 1, further comprising writing a full index to the tape at a second location beyond the threshold location in response to the indication.
6. The computer-implemented method of claim 5 , further comprising storing an indicator of the size of the full index.
7. A computer system including a processor for executing the computer-implemented method of any one of claims 1 to 6.
8. A program for causing a processor to carry out the computer-implemented method of any one of claims 1 to 6.
Citation Information
Patent Citations
Tape type magnetic storage medium, tape recording / reproducing method and its device
JP1996022679A
Magnetic tape device, cyclic recording control method for magnetic tape, and control program thereof
JP2013045474A
Meta information storage method, program, and tape recording system thereof
JP2016053895A
Method of spanning and writing file in plurality of tape cartridges
JP2016115377A
Data storage system with generation rollback control
US20200159433A1