SYSTEMS AND METHODS FOR TRACKING A SEQUENTIAL DATA STREAM STORED IN NON-SEQUENTIAL STORAGE BLOCKS
First Claim
Patent Images
1. A method for reading a data stream stored in non-sequential storage blocks, comprising:
- storing a first part of a data stream in a first storage block and a second part of a data stream in a second storage block being sequentially offset from the first storage block;
generating, using a stream metadata processor, a first metadata block associated with the first storage block;
storing, in the first metadata block using the stream metadata processor, a pointer to the second storage block; and
buffering the second part of the data stream into a stream buffer as the first part of the data stream is being read to a requesting computer system, wherein a read-ahead processor reads the first metadata block, and uses the pointer to the second storage block to buffer the second part of the data stream prior to a request for the second storage block being made from the requesting computer system.
1 Assignment
0 Petitions
Accused Products
Abstract
A process for block-level tracking of a sequential data stream that is sub-divided into multiple parts, and stored, by a file system, within non-sequential storage blocks. The process creates block-level metadata as the sequential data stream is written to the storage blocks, wherein the metadata stores pointers to the non-sequential storage blocks used to store the multiple parts of the sequential data stream. This metadata can subsequently be used by a block-level controller to more efficiently read the sequential data stream back to the file system using read-ahead processes.
-
Citations
29 Claims
-
1. A method for reading a data stream stored in non-sequential storage blocks, comprising:
-
storing a first part of a data stream in a first storage block and a second part of a data stream in a second storage block being sequentially offset from the first storage block; generating, using a stream metadata processor, a first metadata block associated with the first storage block; storing, in the first metadata block using the stream metadata processor, a pointer to the second storage block; and buffering the second part of the data stream into a stream buffer as the first part of the data stream is being read to a requesting computer system, wherein a read-ahead processor reads the first metadata block, and uses the pointer to the second storage block to buffer the second part of the data stream prior to a request for the second storage block being made from the requesting computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for improving read performance of a data stream stored in two non-sequential storage blocks, comprising:
-
a stream metadata processor, configured to; store a first part of a data stream in a first storage block and a second part of a data stream in a second storage block being sequentially offset from the first storage block, generate a first metadata block associated with a first storage block, store, in the first metadata block, a pointer to the second storage block; and a read-ahead processor, for buffering the second part of the data stream into a stream buffer, wherein the read-ahead processor reads the first metadata block, and uses the pointer to the second storage block to buffer the second part of the data stream prior to a request for the second storage block being made from a requesting computer system. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for storage management of a data stream, comprising;
-
dividing the data stream into a plurality of segments; storing a first data stream segment, from the plurality of segments, in a block of a block-level storage system; storing metadata in the block-level storage system and associated with the first data stream segment containing the storage location of a second data stream segment, from the plurality of segments, that follows sequentially from the first data stream segment; and buffering the second data stream segment using a block-level storage system read-ahead process, wherein the read-ahead process uses the stored metadata associated with the first data stream segment to anticipated a request from a file system for the second data stream segment.
-
Specification