The present invention generally relates to tape storage of media files, and more particularly relates to recovery of media files stored on tape.
Media information, whether audio information, video information, or audiovisual information, is often stored in digital format. Digital media files, however, are often very large, consuming significant computer storage space. As long term storage of such files in on-board computer memory or even on computer hard drives may be costly, at least for substantial quantities of material, the files are often stored on magnetic tape. Unfortunately, storage of files on tape may pose difficulties when access to the digital media files is desired. Access to the digital media files may be desired for any number of reasons, including for editing, for transcoding, for scene or shot retrieval, or for distribution.
Tapes in compliance with Linear Tape Open (LTO) technology may be used, decreasing possibility of differing hardware components being able to read a particular tape. In addition, data may be written to tape using a Linear Tape File System (LTFS) format, which generally allows data in tapes to be accessed using a file system format.
While using such tapes and taking such actions may reduce inconveniences in retrieving data from tape, retrieval of the data may still take excessive time considering that files retrieved may be relatively large. In addition, this time may be increased, and perhaps increased dramatically, if the files themselves have complex layouts, which may result in non-sequential reading of data from tape.
Aspects of the invention relate to acceleration of audiovisual file retrieval from tape. In some aspects of embodiments of the invention, a file containing audiovisual information is written to tape, a memory map, indicating locations of objects within the file, is stored, and, for retrieval of the file from tape, the memory map is accessed to determine locations of metadata within the file, the metadata is read from the tape and stored in cache memory, and the file as a whole is read, with accesses to audiovisual information of the file fulfilled from the tape and accesses to the metadata fulfilled from the cache memory.
These and other aspects of the invention are more fully comprehended upon review of this disclosure.
In operation, the workstation may have audiovisual information, for example of a movie, stored in memory. The audiovisual information may be stored in memory as a file. The audiovisual information generally includes video information, audio information, and metadata relating to the video information and the audio information. In some embodiments, however, the audiovisual information may omit one or the other of the video information or the audio information, although for simplicity of exposition the term “audiovisual” shall be used to refer to all or any of “audiovisual,” “audio,” or “video,” herein, unless the context indicates otherwise. In operation, it may be desirable to store the audiovisual information to tape. Conversely, in operation it may also be desirable to retrieve audiovisual from tape, for example to allow for operations by the workstation relating to the audiovisual information. Preferably, the audiovisual information is stored as a file.
In accordance with aspects of the information, the workstation may command storage of the audiovisual information to tape, with the workstation for example sending the audiovisual information, and a command to store the audiovisual information on tape, to the server. When performing such an operation, or more generally upon completion of such an operation and prior to deleting the audiovisual information from local storage, the workstation reads the file containing audiovisual information from local storage, and creates a memory map of the file containing the audiovisual information. The memory map includes, in various embodiments, information regarding offset locations, within the file, of objects in the file. For example, the file may include multiple audiovisual information objects, and, interspersed between the audiovisual information objects, metadata, for example in the form of headers and footers to the audiovisual information objects. In some embodiments the workstation stores the memory map in local memory, for later use. In some embodiments the workstation, in addition or instead, sends the memory map to the server, which may store the memory map on the same tape(s) as the file containing audiovisual information and/or in memory associated with the server and available to a plurality of workstations.
Also in accordance with aspects of the information, the workstation may command retrieval of the file containing audiovisual information from tape, for example to perform transcoding of the audiovisual information or some other operation. Prior to commanding retrieval the workstation accesses the memory map for the audiovisual information, from local memory if there stored, or by way of accessing memory of the server or by reading the memory map from tape. The workstation accesses the memory map to determine offsets of metadata within the file containing the audiovisual information, and the workstation commands reading of the metadata from the tape. In most embodiments the metadata is read by commanding a read of a section of the tape beginning at each of the offsets for the metadata. In some embodiments the workstation stores the metadata in cache memory of the workstation. In some embodiments storage of the metadata in the cache is a result of reading of the metadata. In some embodiments the workstation explicitly commands the metadata to be stored in the cache. The workstation thereafter commands reading of the file of the audiovisual information from tape, with reading of the metadata fulfilled from the cache of the workstation, instead of from the tape.
In operation, when commanding writing of a file containing audiovisual information to the tape, the processor creates a memory map of objects within the file. The objects may be for example, audiovisual information and metadata concerning the audiovisual information. In most embodiments the memory map specifies objects and an offset value indicating their position in the file. In some embodiments the processor writes the memory map to memory of the workstation. In some embodiments the processor, in addition or instead, commands writing of the memory map to network accessible memory. In some embodiments the processor creates the memory map prior to commanding writing of the file to tape. In some embodiments, and generally more conveniently, the processor creates the memory map upon completion of writing the file to tape, while the file remains in memory of the workstation. In some embodiments the processor additionally, or instead, commands writing of the memory map to the tape.
When commanding reading of a file containing audiovisual information from the tape, the processor reads a memory map of objects within the file. The memory map may be stored locally at the workstation, for example if the workstation commanded writing of the file to tape, or the memory map may be read from a shared memory, for example accessible over a network. In some embodiments the processor may command reading of the memory map from the tape.
In commanding read of the file containing audiovisual information from the tape, the processor first commands reading of segments of the tape. Each of the segments begins at a tape position indicated by an offset in the memory map associated with metadata in the file. The processor stores information of the segments in the memory cache of the workstation. In some embodiments the information of the segments is stored in a normal course of operation of the processor in obtaining information of the segments from the tape. In some embodiments the processor is programmed to explicitly command storage of the information of the segments in the cache.
During reading of the file containing audiovisual information from the tape, audiovisual data is read from the tape. During reading of the audiovisual data, metadata is also to be accessed. As the metadata is already stored in the cache of the workstation, however, accesses to the metadata are to the metadata in the cache, rather than rereading the metadata from the tape. In some embodiments, reading of the file from the tape is significantly faster as multiple seeks to the metadata during reading of the file may be avoided.
In some embodiments, after reading the file, the workstation performs a process on the audiovisual information. In some embodiments the process is transcoding of the audiovisual information. In some embodiments the process is performance of video editing operations on the audiovisual information.
In block 611 the process creates a memory map of an audiovisual file. In some embodiments the memory map specifies locations of metadata in the file. In some embodiments the locations are specified as an offset from a beginning of the file. In some embodiments the offsets are specified as a number of bytes. In some embodiments the memory map specifies locations of objects in the file. In some embodiments the objects include metadata and audio/video essence data.
In block 613 the process determines if access to an audiovisual file on tape is requested. If so, the process continues to block 615, otherwise the process returns.
In block 615 the process stores metadata of the file on tape in cache memory of a workstation. In some embodiments the process determines locations of the metadata on the tape using the memory map. In some embodiments the process commands reads of segments of tape beginning at locations of the metadata on tape. In some embodiments the process stores the metadata in the cache memory as part of a process of reading the metadata from the tape. In some embodiments the process explicitly commands storage of the metadata in the cache memory.
In block 617 the process retrieves audiovisual information of the file from tape, with the process retrieving metadata of the file from cache memory. In some embodiments, the process retrieves a plurality of objects of audiovisual information from the tape, with retrieval of metadata, in the context of retrieving the objects of audiovisual information, fulfilled by reading the metadata from the memory cache.
The process thereafter returns.
In block 711 the process archives a file containing audiovisual information to tape. In some embodiments the tape is an LTO-compliant tape implementing an LTFS. In some embodiments a workstation contains the file in local storage of the workstation, and the workstation commands writing of the file to the tape. In some embodiments a tape drive writes the file to tape.
In block 713 the file is read to create a memory map of objects in the file. In some embodiments the file is stored in local storage of the workstation. In some embodiments the memory map specifies objects in the file and values indicative of locations of the objects in the file. In some embodiments the values indicative of locations in the file are offsets. In some embodiments the offsets are offsets from a first byte of the file. In some embodiments the objects are arranged sequentially in the file, and the offsets, other than possibly a first offset, are indicative of location from a beginning location of a prior object in the file.
In block 715 the process stores the memory map. In some embodiments the memory map is stored in local memory of the workstation. In some embodiments the memory map is stored in memory of a network device. In some embodiments the memory map is stored by writing the memory map to tape, which in some embodiments is the same tape to which the file was written.
The process thereafter returns.
In block 811 the process reads a memory map for a file stored on tape. In some embodiments the memory map is stored in local memory of the workstation. In some embodiments the memory map is stored on a network accessible storage device. In some embodiments the memory map is stored on the tape. In various embodiments the memory map indicates locations of objects stored on the tape. In some embodiments the objects include audiovisual information and metadata.
In block 813 the process retrieves the metadata from the tape.
In block 815 the process stores the metadata in cache memory of the workstation.
The process thereafter returns.
In block 911 the process determines if an access request for information stored on tape is for metadata of a file being read from the tape. If so, the process continues to block 913, otherwise the process goes to block 915.
In block 913 the process retrieves the metadata from cache memory and stores the metadata in local memory. In some embodiments the cache memory is cache memory of a workstation requesting reading of the file from tape.
In block 915 the process determines if the access request for information stored on tape is for audiovisual information of the file being read from tape. If so, the process continues to block 917, otherwise the process goes to block 919.
In block 917 the process retrieves the audiovisual information from the tape and stores the audiovisual information in local memory.
In block 919 the process determines if reading of the file is complete. If not, the process goes to block 911. Otherwise the process returns.
Although the invention has been discussed with respect to various embodiments, it should be recognized that the invention comprises the novel and non-obvious claims supported by this disclosure.
This application claims the benefit of the filing date of U.S. Provisional Pat. Application No. 62/236,093, filed on Oct. 1, 2015, the disclosure of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
62236093 | Oct 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15284069 | Oct 2016 | US |
Child | 17936328 | US |