WO2015104159A1 - Method and apparatus for handling data in a storage system - Google Patents

Method and apparatus for handling data in a storage system Download PDF

Info

Publication number
WO2015104159A1
WO2015104159A1 PCT/EP2014/078498 EP2014078498W WO2015104159A1 WO 2015104159 A1 WO2015104159 A1 WO 2015104159A1 EP 2014078498 W EP2014078498 W EP 2014078498W WO 2015104159 A1 WO2015104159 A1 WO 2015104159A1
Authority
WO
WIPO (PCT)
Prior art keywords
files
file
data
file system
file systems
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2014/078498
Other languages
French (fr)
Inventor
Walter Arrighetti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of WO2015104159A1 publication Critical patent/WO2015104159A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • G06F16/192Implementing virtual folder structures

Definitions

  • the invention relates to a method and an apparatus for handling data in a storage system, and more specifically to a method and an apparatus for handling data that are provided as a set of self-contained files distributed over two or more file systems.
  • High resolution means frames with at least 10 bits per color channel per pixel, thus a minimum of 32 bits per pixel (including padding bits) , and a resolution which is at least X HD' (1920 pixels per row), but is usually ⁇ 2 ⁇ ' (2048 pixels per row), K' (4096 pixels per row), or even more.
  • a throughput equivalent to at least 24 frames per second is needed for real-time record and playback
  • Uncompressed video footage but also video that is compressed using intra-frame compression schemes only, is traditionally stored as frame sequences, particularly during the post- production and finishing phases. This means that each subsequent frame of a time-continuous video clip is stored as a single file; thus the term "frame-per-file" sequence.
  • finished 'movie' may originate from a final cut of several such clips. Maximizing the I/O performance when reading and writing video clips based on frame-per-file sequences is crucial for playing back and recording high-resolution, uncompressed video.
  • the I/O performance is currently limited by hardware I/O throughput of the underlying storage device, e.g. the
  • a method for storing data in a storage system, wherein the data are provided as a set of self-contained files comprises the steps of:
  • an apparatus configured to store data in a storage system, wherein the data are provided as a set of self- contained files, comprises:
  • a file distributor configured to distribute the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and - a file system generator configured to generate a virtual file system comprising pointers to the distributed files within the two or more file systems.
  • a computer readable storage medium has stored therein instructions enabling storing data in a storage system, wherein the data are provided as a set of self-contained files, which when executed by a computer, cause the computer to:
  • a method for reading data from a storage system wherein the data are provided as a set of self-contained files distributed over two or more file systems, each file system having a data path, comprises the steps of:
  • an apparatus configured to read data from a storage system, wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having a data path, comprises:
  • a file system retrieving unit configured to retrieve a virtual file system comprising pointers to the distributed files within the two or more file systems
  • a data interface (configured to read a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.
  • a computer readable storage medium has stored therein instructions enabling reading data from a storage system, wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having a data path, which when executed by a computer, cause the computer to:
  • a virtualized file system layer is created, enforced by either script, daemon and/or Multipath I/O driver, where each file appears in a set of files, e.g. a file sequence.
  • the files are scattered on several file systems, each with its own separate data path. Reading and writing a set of files, e.g. a chronological sequence of files, is thus
  • I/O threads usually by different data channels. This maximizes the effective overall I/O throughput. Only the availability and I /O-independence of those paths is required .
  • the proposed solution provides a cost-effective alternative to storage systems that support multipath I/O at global
  • a folder created in the virtual file system or moved within the virtual file system is identically created in the two or more file systems or moved within the two or more file systems. This ensures that all file systems replicate the same folder hierarchy.
  • the distribution of the files over the two or more file systems is based on at least one of file size, file date, metadata associated to the files, or modulo divisions on a file index in the set of files. All these properties are well suited for distributing the files as required.
  • a file comprising a multi-digit sequence in the file name is to be stored in the storage system, matching files already stored in the storage system and belonging to the same set of files are searched for. A storage location for the file to be stored is then determined in dependence of whether or not matching files are found in the storage system.
  • the various files of the file set can reliably be distributed to the various file systems .
  • the proposed solution is applicable to any set of files. It is especially advantageous when the files have roughly the same size and need to be accessed as fast as possible.
  • the set of files may be a frame-per-file sequence of video frames, e.g. a video clip.
  • the video frames may likewise be stereoscopic or multiview video frames.
  • the video frames for different views are preferably stored in respective different file systems.
  • the proposed solution is not limited to such applications. With the advent of ultra- high-resolution (UHD) consumer devices, throughput requirements are steeply ramping up, even for the non-professional storage market.
  • UHD ultra- high-resolution
  • Fig. 1 schematically illustrates a method according to the invention for handling data in a storage system
  • Fig. 2 schematically illustrates an apparatus configured to perform a method according to the invention.
  • file path i.e. the files reside in the same folder, e.g. /path/to/clip
  • base filename e.g. basename-
  • file extension (which logically mandates the file-type encoding the frame, e.g. . dpx).
  • a video clip consisting of 2000 frames may be stored as the following file sequence:
  • Stereoscopic clips are typically represented on file systems using either two separate frame sequences X L' and X R' , i.e. one for the left eye and one for the right eye, or one interleaved frame progression, where each R-frame immediately follows its synchronous L-frame in the file sequence numbering order.
  • the access time is tied to the single-I/O- or multi-I/O- threaded capabilities of the volume tied to the specific file system. Furthermore, most file systems and storage managers on
  • a method according to the invention for handling data provided as a set of files in a storage system is schematically
  • a set of self-contained files is received 10.
  • the files are then distributed 11 over two or more file systems based on one or more properties of the files, where each file system has an independent data path.
  • a virtual file system is generated 12, which comprises pointers to the distributed files within the two or more file systems.
  • For reading data from the storage system the virtual file system is retrieved 13.
  • a set of files is then read 14 from the two or more file systems based on the virtual file system using two or more I/O threads.
  • An apparatus 20 configured to implement the method is
  • the apparatus 20 comprises an input 21 for receiving data provided as a set of self-contained files and a storage system 25 for storing the data.
  • a file distributor 22 distributes 11 the files over two or more file systems belonging to the storage system 25 using a data interface 24. The distribution of the files over the two or more file systems is based on one or more properties of the files.
  • Each file system has an independent data path.
  • a file system generator 23 generates 12 a virtual file system
  • a file system retrieving unit 26 retrieves 13 the virtual file system.
  • the interface 24 then reads 14 a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.
  • the retrieved data are made available at an output 27.
  • the different units 22, 23, 26 may likewise be fully or partially combined into a single unit or implemented as software running on a processor.
  • the input 21 and the output 27 may likewise be combined or partially
  • a data path here means a block-level handler, like for example /dev/*/sdxk files in Linux, or a similar UNC path ⁇ . ⁇ 67a578c67def ... in Windows.
  • Different Physical paths for each data path e.g.
  • N + l file system An (N + l)th file system is also used, which is not necessarily tied to a real-time-capable, otherwise I/O performing storage system.
  • This file system is the only exposed file system at virtual level, although the device or application actually performing the I/O must physically access all the other N data paths, i.e. silently mount them in its own file system.
  • /dev/block/lunl, /dev/block/lun2 , and /dev/block/lunN be the N volumes mounted over points /mnt/dpl, /mnt/dp2, and /mnt/dpN, respectively.
  • This folder should only contain frame sequences.
  • a script or demon program running on the system takes care of file creation and other POSIX-like requests on either the whole /media/store folder or on selected sub-folders of this folder, including the following rules: ⁇ Any folder created or moved within /media/store is in the same way created or moved within any of the file systems
  • the storage allocation scheme becomes less important as the file access times.
  • an application accesses the video using N different threads, it actually uses all N independent data paths at the same time. This increases the transfer speed, as it is a real parallel I/O, using a scheme similar to Multipath I/O, but at a far higher model level.
  • implementation of this scheme is less expensive, as it does not require dedicated hardware or firmware.
  • file access times and internal file fragmentation are also less relevant to
  • /dev/block/lunl and /dev/block/lun2 are mounted on /mnt/Lstor and /mnt/Rstor, respectively.
  • the implementation described above is used.
  • the background file-managing script takes care of the stereoscopic clips in a slightly different manner:
  • video frames for different views are stored in respective different file systems.
  • the files are distributed based on their file names. Of course, this is not the only possibility to distribute the files.
  • the distribution may likewise be based on other attributes, e.g. file size, file type or metadata available for the files. For example, larger files may be stored in physical file systems that have more (free) space. Accordingly, smaller files may be stored on smaller or fuller file systems.
  • files that are of multimedia type e.g. video files associated to high bit rates, may be stored on file systems whose data paths have a higher bandwidth in order to speed up the file transfer process, as well as the later playback operations. Files associated to lower bit rates may accordingly be stored on file systems with a lower bandwidth.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for handling data in a storage system (25) and an apparatus (20) configured to perform the method are described. In particular, in order to store data in the storage system (25), the data being provided as a set of self-contained files, a file distributor (22) distributes (11) the files over two or more file systems based on one or more properties of the files. Each file system has an independent data path. A file system generator (23) generates (12) a virtual file system comprising pointers to the distributed files within the two or more file systems. For reading data from the storage system (25), a file system retrieving unit (26) retrieves (13) the virtual file system. A data interface (24) then reads (14) a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.

Description

METHOD AND APPARATUS FOR HANDLING DATA IN A STORAGE SYSTEM
FIELD OF THE INVENTION The invention relates to a method and an apparatus for handling data in a storage system, and more specifically to a method and an apparatus for handling data that are provided as a set of self-contained files distributed over two or more file systems. BACKGROUND OF THE INVENTION
In high-profile post-production for digital intermediates and digital cinema, high-resolution uncompressed video footage is handled. High resolution here means frames with at least 10 bits per color channel per pixel, thus a minimum of 32 bits per pixel (including padding bits) , and a resolution which is at least XHD' (1920 pixels per row), but is usually λ2Κ' (2048 pixels per row), K' (4096 pixels per row), or even more. In addition, a throughput equivalent to at least 24 frames per second is needed for real-time record and playback
capabilities, which is mandatory in certain creative passages as well as in theatrical shows. This means that any storage system which is real-time capable must be carefully engineered to guarantee those minimum requirements. For example, typical monoscopic theatrical 2K playback requires 305MB/s minimum throughput all over. Stereoscopic frames, with 12 bits rather than 10 bits per color channel, results in a minimum throughput of 765MB/s. Monoscopic theatrical 4K playback goes as up as 1.22GB/s, and so on.
Uncompressed video footage, but also video that is compressed using intra-frame compression schemes only, is traditionally stored as frame sequences, particularly during the post- production and finishing phases. This means that each subsequent frame of a time-continuous video clip is stored as a single file; thus the term "frame-per-file" sequence. A
finished 'movie' may originate from a final cut of several such clips. Maximizing the I/O performance when reading and writing video clips based on frame-per-file sequences is crucial for playing back and recording high-resolution, uncompressed video. The I/O performance is currently limited by hardware I/O throughput of the underlying storage device, e.g. the
theoretical maximum of 30MB/s for USB 2.0 Direct-Attached
Storage, as well as by file-allocation strategies of the file system and subsequent internal file fragmentation.
SUMMARY OF THE INVENTION
It is an object of the present invention to propose an improved solution for handling data in a storage system, the data being provided as a set of files. According to one aspect of the invention, a method for storing data in a storage system, wherein the data are provided as a set of self-contained files, comprises the steps of:
- distributing the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and
- generating a virtual file system comprising pointers to the distributed files within the two or more file systems.
Accordingly, an apparatus configured to store data in a storage system, wherein the data are provided as a set of self- contained files, comprises:
- a file distributor configured to distribute the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and - a file system generator configured to generate a virtual file system comprising pointers to the distributed files within the two or more file systems. Also, a computer readable storage medium has stored therein instructions enabling storing data in a storage system, wherein the data are provided as a set of self-contained files, which when executed by a computer, cause the computer to:
- distribute the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and
- generate a virtual file system comprising pointers to the distributed files within the two or more file systems. According to another aspect of the invention, a method for reading data from a storage system, wherein the data are provided as a set of self-contained files distributed over two or more file systems, each file system having a data path, comprises the steps of:
- retrieving a virtual file system comprising pointers to the distributed files within the two or more file systems; and
- reading a set of files from the two or more file systems based on the virtual file system using two or more I/O threads. Accordingly, an apparatus configured to read data from a storage system, wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having a data path, comprises:
- a file system retrieving unit configured to retrieve a virtual file system comprising pointers to the distributed files within the two or more file systems; and
- a data interface (configured to read a set of files from the two or more file systems based on the virtual file system using two or more I/O threads. Similarly, a computer readable storage medium has stored therein instructions enabling reading data from a storage system, wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having a data path, which when executed by a computer, cause the computer to:
- retrieve a virtual file system comprising pointers to the distributed files within the two or more file systems; and - read a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.
According to the invention a virtualized file system layer is created, enforced by either script, daemon and/or Multipath I/O driver, where each file appears in a set of files, e.g. a file sequence. The files are scattered on several file systems, each with its own separate data path. Reading and writing a set of files, e.g. a chronological sequence of files, is thus
accomplished by several I/O threads, usually by different data channels. This maximizes the effective overall I/O throughput. Only the availability and I /O-independence of those paths is required .
The proposed solution provides a cost-effective alternative to storage systems that support multipath I/O at global
architecture, hardware and/or operating system level, e.g.
Storage Area Networks. This is especially advantageous when just high-performance throughput is paramount, while other higher-level features, like shared access or high availability, are not necessary.
Advantageously, a folder created in the virtual file system or moved within the virtual file system is identically created in the two or more file systems or moved within the two or more file systems. This ensures that all file systems replicate the same folder hierarchy.
Preferably, the distribution of the files over the two or more file systems is based on at least one of file size, file date, metadata associated to the files, or modulo divisions on a file index in the set of files. All these properties are well suited for distributing the files as required. Preferably, when a file comprising a multi-digit sequence in the file name is to be stored in the storage system, matching files already stored in the storage system and belonging to the same set of files are searched for. A storage location for the file to be stored is then determined in dependence of whether or not matching files are found in the storage system. Using such multi-digit sequences in the file name, which are often encountered in professional environments, the various files of the file set can reliably be distributed to the various file systems .
In principle, the proposed solution is applicable to any set of files. It is especially advantageous when the files have roughly the same size and need to be accessed as fast as possible. For example, the set of files may be a frame-per-file sequence of video frames, e.g. a video clip. Of course, the video frames may likewise be stereoscopic or multiview video frames. In this case the video frames for different views are preferably stored in respective different file systems. Despite originating from technical problem encountered in high- profile post-production facilities, the proposed solution is not limited to such applications. With the advent of ultra- high-resolution (UHD) consumer devices, throughput requirements are steeply ramping up, even for the non-professional storage market. For this reason the described approach is immediately applicable to file system management of consumer media systems, including embedded ones like SmartTVs, set-top boxes, video servers or smartphones/tablets capable of high-resolution video streaming on either Direct-Attached Storage or on network and cloud storage.
For a better understanding the invention shall now be explained in more detail in the following description with reference to the figures. It is understood that the invention is not limited to this exemplary embodiment and that specified features can also expediently be combined and/or modified without departing from the scope of the present invention as defined in the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 schematically illustrates a method according to the invention for handling data in a storage system; and
Fig. 2 schematically illustrates an apparatus configured to perform a method according to the invention.
DETAILED DESCRIPTION OF PREFERED EMBODIMENTS
In the following the invention shall be explained with
reference to video frames provided as a frame-per-file
sequence. Of course, the proposed solution is applicable to any data provided as a set of files.
As already indicated before, in high-profile post-production for digital intermediates and digital cinema, high-resolution uncompressed video footage is handled. This video footage is traditionally stored as frame sequences, i.e. each subsequent frame of a time-continuous video clip is stored as a single file. Maximizing the I/O performance when reading and writing video clips based on frame-per-file sequences is crucial.
All the files belonging to the same logical clip typically share the file system metadata shown below:
• file path (i.e. the files reside in the same folder, e.g. /path/to/clip) ;
• base filename (e.g. basename-) ;
• file extension (which logically mandates the file-type encoding the frame, e.g. . dpx).
For example, a video clip consisting of 2000 frames may be stored as the following file sequence:
• /path/to/clip/basename-289368. dpx;
• /path/to/clip/basename-289369. dpx;
• /path/to/clip/basename-289370. dpx;
• /path/to/clip/basename-300367. dpx .
Stereoscopic clips are typically represented on file systems using either two separate frame sequences XL' and XR' , i.e. one for the left eye and one for the right eye, or one interleaved frame progression, where each R-frame immediately follows its synchronous L-frame in the file sequence numbering order.
During real-time operations, i.e. video playback or recording, the access time is tied to the single-I/O- or multi-I/O- threaded capabilities of the volume tied to the specific file system. Furthermore, most file systems and storage managers on
operating system level, particularly if embedded in mobile or non-professional equipment, do not take into account such high- level file system hierarchies when doing the initial allocation of blocks on the data volume representing the file systems. Exceptions are specifically built storage systems, like those used in media-aware Storage Area Networks and Content Delivery Networks. In all other cases, little to none pre-allocation strategies are employed. Therefore, locality of reference is lost across the same frame-per-file sequence, which poses additional threats to the related I/O throughput.
A method according to the invention for handling data provided as a set of files in a storage system is schematically
illustrated in in Fig. 1. For storing the data in a storage system, a set of self-contained files is received 10. The files are then distributed 11 over two or more file systems based on one or more properties of the files, where each file system has an independent data path. In order to be able to access the distributed files, a virtual file system is generated 12, which comprises pointers to the distributed files within the two or more file systems. For reading data from the storage system the virtual file system is retrieved 13. A set of files is then read 14 from the two or more file systems based on the virtual file system using two or more I/O threads.
An apparatus 20 configured to implement the method is
schematically depicted in Fig. 2. The apparatus 20 comprises an input 21 for receiving data provided as a set of self-contained files and a storage system 25 for storing the data. For storing data, a file distributor 22 distributes 11 the files over two or more file systems belonging to the storage system 25 using a data interface 24. The distribution of the files over the two or more file systems is based on one or more properties of the files. Each file system has an independent data path. A file system generator 23 generates 12 a virtual file system
comprising pointers to the distributed files within the two or more file systems. For reading data, a file system retrieving unit 26 retrieves 13 the virtual file system. The data
interface 24 then reads 14 a set of files from the two or more file systems based on the virtual file system using two or more I/O threads. The retrieved data are made available at an output 27. Of course, the different units 22, 23, 26 may likewise be fully or partially combined into a single unit or implemented as software running on a processor. In addition, the input 21 and the output 27 may likewise be combined or partially
combined into a single bi-directional interface. The proposed solution has a considerably increased performance. The approach presumes N > 1 different storage volumes, each with its own file system structure on top, and each with its own pre-defined data path. At operating system level, a data path here means a block-level handler, like for example /dev/*/sdxk files in Linux, or a similar UNC path \\ . \ 67a578c67def ... in Windows. Different Physical paths for each data path, e.g.
different buses, SCSI hosts, iSCSI targets, or even different network volumes, may be a plus or a drawback, depending on the specific implementation and on the rest of the infrastructure.
An (N + l)th file system is also used, which is not necessarily tied to a real-time-capable, otherwise I/O performing storage system. This file system is the only exposed file system at virtual level, although the device or application actually performing the I/O must physically access all the other N data paths, i.e. silently mount them in its own file system.
For the sake of clarity, let a Linux- or Android-based
operating system be considered and /dev/block/lunl, /dev/block/lun2 , and /dev/block/lunN be the N volumes mounted over points /mnt/dpl, /mnt/dp2, and /mnt/dpN, respectively. Let the above mentioned (N + l)th file system be considered to be locally rooted in /media/store. User- applications should not have direct visibility of the mount points /mnt/dpfc (l<=k<=N), but still be able to resolve I/O request at file system level as assigned to folder
/media/store. This folder should only contain frame sequences. A script or demon program running on the system takes care of file creation and other POSIX-like requests on either the whole /media/store folder or on selected sub-folders of this folder, including the following rules: · Any folder created or moved within /media/store is in the same way created or moved within any of the file systems
/mnt/dpfc as well. Consequently, all of them replicate the same folder hierarchy.
• When a file whose name ends with a multi-digit sequence, e.g. representing integer number wi, is created in or written to a path, other files belonging to the same sequence, i.e. to the same video clip, are searched for:
o If no matching file sequence is found, this is considered to be the first file and it is actually created on /mnt/dpt, where t = 1 .
o If a matching sequence is found in the storage system (with first frame t0 ) the with file is actually created in /mnt/dpt, where t = (wi- t0)%N.
o A soft-link for that very file is created pointing from /media/store, under the homologous folder, to the right path under the mount-point /mnt/dpt. For example, if N = 3 and the usual 1000 files need be created under /media/store/clipl/, they would all be soft-linked as follows :
/media/ store/clipl/frm.289368. exr -> /mnt/dpl/clipl/frm.289368. exr /media/ store/clipl/ frm.289369. exr -> /mnt/dp2/clipl/frm.289369. exr /media/ store/clipl/ frm.289370. exr -> /mnt/dp3/clipl/frm.289370. exr /media/ store/clipl/ frm.289371. exr -> /mnt/dpl/clipl/frm.289371. exr /media/ store/clipl/ frm.289372. exr -> /mnt/dp2/clipl/frm.289372. exr /media/ store/clipl/ frm.289373. exr -> /mnt/dp3/clipl/frm.289373. exr /media/ store/clipl/ frm.289374. exr -> /mnt/dpl/clipl/frm.289374. exr
/media/ store/clipl/ frm.300366. exr -> /mnt/dp3/clipl/ frm .300366. exr /media/ store/clipl/ frm.300367. exr -> /mnt/dpl/clipl/frm.300367. exr
During both sequential write and read operations on the virtual file sequence shown on the left in the above list, the storage allocation scheme becomes less important as the file access times. When an application accesses the video using N different threads, it actually uses all N independent data paths at the same time. This increases the transfer speed, as it is a real parallel I/O, using a scheme similar to Multipath I/O, but at a far higher model level. At the same time implementation of this scheme is less expensive, as it does not require dedicated hardware or firmware. Furthermore, file access times and internal file fragmentation are also less relevant to
sequential data reads, as sequential operations on the same local file system occur only once per every N files.
For stereoscopic file sequences two different possible
implementations are described in the following, where two different frame-per-file sequences are accessed, one for left- eye, or L-frames, and one for right-eye, or R-frames. If there are N = 2 independent file systems, each capable of satisfying I/O requirements for a single monoscopic clip with the same specifications, their block-level devices
/dev/block/lunl and /dev/block/lun2 are mounted on /mnt/Lstor and /mnt/Rstor, respectively. In this case the implementation described above is used. However, the background file-managing script takes care of the stereoscopic clips in a slightly different manner:
/media/ store/clip/ frm- L 00000. . tif -> /mnt/Lstor/ clip/frm _0000. .tif
/media/ store/clip/ frm- R 00000. . tif -> /mnt/Rstor/ clip/frm _0000. .tif
/media/ store/clip/ frm- L 00001. .tif -> /mnt/Lstor/clip/ frm _0001 , .tif
/media/ store/clip/ frm- R 00001. .tif -> /mnt/Rstor/ clip/frm _0001. .tif
/media/ store/clip/ frm- L 00002. .tif -> /mnt/Lstor/ clip/frm _0002. .tif
/media/ store/clip/ frm- R 00002. .tif -> /mnt/Rstor/ clip/frm _0002. .tif
/media/ store/clip/ frm- L 00999. .tif -> /mnt/Lstor/ clip/frm _0999. .tif
/media/ store/clip/ frm- L 00999. .tif -> /mnt/Rstor/ clip/frm _0999. .tif
Otherwise, the two above approaches can be combined, i.e. a two-level striping using N > 2 storage pools, where L- and R- frames are interleaved with each other on consecutive lower level file systems. In both cases, the capability to have at least two I/O threads in the application allows for a
simultaneous I/O handling of the two simultaneous eye-frames. Of course, this approach can easily be extended to multiview clips. For each view a dedicated file system is used, i.e.
video frames for different views are stored in respective different file systems.
In the above examples the files are distributed based on their file names. Of course, this is not the only possibility to distribute the files. The distribution may likewise be based on other attributes, e.g. file size, file type or metadata available for the files. For example, larger files may be stored in physical file systems that have more (free) space. Accordingly, smaller files may be stored on smaller or fuller file systems. Similarly, files that are of multimedia type, e.g. video files associated to high bit rates, may be stored on file systems whose data paths have a higher bandwidth in order to speed up the file transfer process, as well as the later playback operations. Files associated to lower bit rates may accordingly be stored on file systems with a lower bandwidth.

Claims

A method for storing data in a storage system (25) , wherein the data are provided as a set of self-contained files, the method comprising the steps of:
- distributing (11) the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and
- generating (12) a virtual file system comprising pointers to the distributed files within the two or more file
systems .
The method according to claim 1, wherein a folder created in the virtual file system or moved within the virtual file system is identically created in the two or more file systems or moved within the two or more file systems.
The method according to claim 1 or 2, wherein distribution of the files over the two or more file systems is based on at least one of file size, file date, metadata associated to the files, or modulo divisions on a file index in the set of files .
The method according to claim 3, wherein when a file
comprising a multi-digit sequence in the file name is to be stored in the storage system, matching files already stored in the storage system and belonging to the same set of files are searched for.
The method according to claim 4, wherein a storage location for the file to be stored is determined in dependence of whether or not matching files are found in the storage system.
6. The method according to any of the preceding claims, wherein the set of files is a frame-per-file sequence of video frames .
7. The method according to claim 5, wherein the video frames are stereoscopic or multiview video frames.
8. The method according to claim 7, wherein video frames for different views are stored in respective different file systems .
9. An apparatus (20) configured to store data in a storage
system (25) , wherein the data are provided as a set of self- contained files, the apparatus (20) comprising:
- a file distributor (22) configured to distribute (11) the files over two or more file systems based on one or more properties of the files, each file system having an
independent data path; and
- a file system generator (23) configured to generate (12) a virtual file system comprising pointers to the distributed files within the two or more file systems.
10. A computer readable storage medium having stored therein
instructions enabling storing data in a storage system (25) , wherein the data are provided as a set of files, which when executed by a computer, cause the computer to:
- distribute (11) the files over two or more file systems based on one or more properties of the files, each file system having an independent data path; and
- generate (12) a virtual file system comprising pointers to the distributed files within the two or more file systems.
A method for reading data from a storage system (25) , wherein the data are provided as a set of files distributed over two or more file systems, each file system having an independent data path, the method comprising the steps of:
- retrieving (13) a virtual file system comprising pointers to the distributed files within the two or more file
systems; and
- reading (14) a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.
12. An apparatus (20) configured to read data from a storage
system (25) , wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having an independent data path, the apparatus comprising:
- a file system retrieving unit (26) configured to retrieve (13) a virtual file system comprising pointers to the distributed files within the two or more file systems; and
- a data interface (24) configured to read (14) a set of files from the two or more file systems based on the virtual file system using two or more I/O threads.
13. A computer readable storage medium having stored therein
instructions enabling reading data from a storage system
(25) , wherein the data are provided as a set of self- contained files distributed over two or more file systems, each file system having an independent data path, which when executed by a computer, cause the computer to:
- retrieve (13) a virtual file system comprising pointers to the distributed files within the two or more file systems; and
- read (14) a set of files from the two or more file systems based on the virtual file system using two or more I/O threads .
PCT/EP2014/078498 2014-01-13 2014-12-18 Method and apparatus for handling data in a storage system Ceased WO2015104159A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14305046.6 2014-01-13
EP14305046.6A EP2894578A1 (en) 2014-01-13 2014-01-13 Method and apparatus for handling data in a storage system

Publications (1)

Publication Number Publication Date
WO2015104159A1 true WO2015104159A1 (en) 2015-07-16

Family

ID=50028961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2014/078498 Ceased WO2015104159A1 (en) 2014-01-13 2014-12-18 Method and apparatus for handling data in a storage system

Country Status (2)

Country Link
EP (1) EP2894578A1 (en)
WO (1) WO2015104159A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014687A2 (en) * 1997-09-18 1999-03-25 Microsoft Corporation Continuous media file server and method for scheduling network resources
US20020078174A1 (en) * 2000-10-26 2002-06-20 Sim Siew Yong Method and apparatus for automatically adapting a node in a network
US20040199578A1 (en) * 2003-04-07 2004-10-07 Mesoft Partners, Llc. System and method for providing a digital media supply chain operation system and suite of applications
US8515904B1 (en) * 2012-03-29 2013-08-20 Emc Corporation Providing file sytem quota support for a file system having separated data and metadata

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014687A2 (en) * 1997-09-18 1999-03-25 Microsoft Corporation Continuous media file server and method for scheduling network resources
US20020078174A1 (en) * 2000-10-26 2002-06-20 Sim Siew Yong Method and apparatus for automatically adapting a node in a network
US20040199578A1 (en) * 2003-04-07 2004-10-07 Mesoft Partners, Llc. System and method for providing a digital media supply chain operation system and suite of applications
US8515904B1 (en) * 2012-03-29 2013-08-20 Emc Corporation Providing file sytem quota support for a file system having separated data and metadata

Also Published As

Publication number Publication date
EP2894578A1 (en) 2015-07-15

Similar Documents

Publication Publication Date Title
US9779023B1 (en) Storing inline-compressed data in segments of contiguous physical blocks
JP6568212B2 (en) Hash-based multi-tenancy for deduplication systems
US9535630B1 (en) Leveraging array operations at virtualized storage processor level
CN107526743B (en) Method and apparatus for compressing file system metadata
US9116851B2 (en) System and method for virtual tape library over S3
EP1272931A2 (en) Multi-device storage system with differing fault tolerant methodologies
US11449256B2 (en) Method for accelerating image storing and retrieving differential latency storage devices based on access rates
CN109725823B (en) Method and apparatus for managing a hybrid storage disk array
US20170147265A1 (en) Method of Compressing Parity Data Upon Writing
US9805046B2 (en) Data compression using compression blocks and partitions
CN107798063B (en) Snapshot processing method and snapshot processing device
US10803109B2 (en) Method and device for reading and writing video data in NAS device
US10013217B1 (en) Upper deck file system shrink for directly and thinly provisioned lower deck file system in which upper deck file system is stored in a volume file within lower deck file system where both upper deck file system and lower deck file system resides in storage processor memory
US20130086317A1 (en) Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access
JP6180271B2 (en) Video recording apparatus and video recording method
EP2750020B1 (en) Systems and methods for managing files in a computer system by segmenting files
EP2894578A1 (en) Method and apparatus for handling data in a storage system
US9369547B2 (en) Transcoding on virtual machines using memory cards
US9070403B2 (en) Processing of scalable compressed video data formats for nonlinear video editing systems
US10063256B1 (en) Writing copies of objects in enterprise object storage systems
CN105426125A (en) Data storage method and apparatus
US10078553B2 (en) Point in time copy technique using a block level of granularity
US10949087B2 (en) Method for rapid reference object storage format for chroma subsampled images
US12248689B2 (en) Video stream encoding for computational storage device
Sparenberg et al. Advanced storage techniques using scalable media

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14820839

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14820839

Country of ref document: EP

Kind code of ref document: A1