US2017102885A1PendingUtilityA1
System and method for using a memory buffer to stream data from a tape to multiple clients
Est. expiryApr 30, 2032(~5.8 yrs left)· nominal 20-yr term from priority
Inventors:Michael Eric Lenox
G06F 3/0689G06F 12/0848G06F 12/0866G06F 16/184G06F 16/1734G06F 2212/282G06F 3/0611G06F 2212/312G06F 2212/224G06F 3/0656G06F 3/0686
35
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Embodiments described herein provide systems and methods for streaming data to multiple reading clients. More particularly, embodiments described herein provide systems and methods for using a memory buffer to stream file data from a mounted tape file system volume to multiple reading clients.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system for providing a network based file system, comprising:
a memory; a processor; a computer readable storage medium storing a set of computer program instructions, the set of computer program instructions comprising instructions executable to:
for a request for a file partially stored in a disk-based cache,
initiate a tape streaming session corresponding to the file;
allocate a buffer in the memory for the tape streaming session, wherein the buffer is a circular buffer;
during the tape streaming session:
store file data in the buffer read from an LTFS volume;
restore the file to the disk-based cache from the buffer;
reply to read requests for file data of the file from non-lagging network file system interface clients associated with the tape streaming session from the buffer; and
reply to read requests for file data of the file from lagging network file system interface clients from the disk-based cache.
2 . The system of claim 1 , wherein the tape streaming session comprises:
a tape data producer configured to write file data into the buffer; one or more consumers configured to read data from the buffer; and wherein the set of computer program instructions further comprise instructions executable to expel lagging consumers from the tape streaming session.
3 . The system of claim 2 , wherein the set of computer program instructions are further comprise instructions executable to determine that a consumer is lagging if a data available size for that consumer equals a buffer size of the circular buffer.
4 . The system of claim 2 , wherein the set of computer program instructions further comprise instructions executable to:
maintain an absolute producer index and virtual producer index; maintain an absolute consumer index for each of the one or more consumers and a virtual consumer index for each of the one or more consumers; and for a consumer, delete the absolute consumer index and virtual consumer index for that consumer if that consumer is expelled from the tape streaming session.
5 . The system of claim 4 , wherein the set of computer program instructions further comprise instructions executable to map linear file positions to positions in the buffer.
6 . The system of claim 2 , wherein the one or more consumers comprise a file restoration consumer and one or more client consumers.
7 . The system of claim 6 , wherein the set of computer program instructions further comprise instructions executable to add a client consumer to the tape streaming session for each network file system interface client from which an “open” command is received for the file within a defined portion of the tape streaming session.
8 . A computer program product comprising a non-transitory computer readable medium storing a set of computer program instructions comprising instructions executable to:
for a request for a file partially stored in a disk-based cache, initiate a tape streaming session corresponding to the file; allocate a buffer in memory for the tape streaming session, wherein the buffer is a circular buffer; during the tape streaming session:
store file data in the buffer read from an LTFS volume;
restore the file to the disk-based cache from the buffer;
reply to read requests for file data of the file from non-lagging network file system interface clients associated with the tape streaming session from the buffer; and
reply to read requests for file data of the file from lagging network file system interface clients from the disk-based cache.
9 . The computer program product of claim 8 , wherein the tape streaming session comprises:
a tape data producer configured to write file data into the buffer; one or more consumers configured to read data from the buffer: wherein the set of computer program instructions further comprise instructions executable to expel lagging consumers from the tape streaming session.
10 . The computer program product of claim 9 , wherein the set of computer program instructions are further comprise instructions executable to determine that a consumer is lagging if a data available size for that consumer equals a buffer size of the circular buffer.
11 . The computer program product of claim 9 , wherein the set of computer program instructions further comprise instructions executable to:
maintain an absolute producer index and virtual producer index; maintain an absolute consumer index for each of the one or more consumers and a virtual consumer index for each of the one or more consumers; and for a consumer, delete the absolute consumer index and virtual consumer index for that consumer if that consumer is expelled from the tape streaming session.
12 . The computer program product of claim 8 , wherein the set of computer program instructions further comprise instructions executable to map linear file positions to positions in the buffer.
13 . The computer program product of claim 9 , wherein the one or more consumers comprise a file restoration consumer and one or more client consumers.
14 . The computer program product of claim 13 , wherein the set of computer program instructions further comprise instructions executable to add a client consumer to the tape streaming session for each network file system interface client from which an “open” command is received for the file within a defined portion of the tape streaming session.
15 . A method for streaming file data from a tape file comprising:
interfacing with a media library having tapes storing files according to a tape file system; maintaining a read cache of files in a data store, the read cache containing file stubs of files in the media library; presenting a network file system interface to clients; for a request for a file having a file stub in the read cache,
initiating a tape streaming session corresponding to the file;
allocating a buffer in memory for the tape streaming session, wherein the buffer is a circular buffer;
during the tape streaming session:
storing file data for the file in the buffer read from a tape file system volume;
restoring the file to the data store from the buffer;
replying to read requests for file data of the file from the buffer for read requests from non-lagging network file system interface clients associated with the tape streaming session; and
replying to read requests for file data of the file from the data store from lagging network file system interface clients.
16 . The method of claim 15 , wherein:
the tape streaming session comprises:
a tape data producer configured to write file data into the buffer;
one or more consumers configured to read data from the buffer; and
the method further comprises expelling lagging consumers from the tape streaming session.
17 . The method of claim 16 , further comprising determining that a consumer is lagging if a data available size for that consumer equals a buffer size of the circular buffer.
18 . The method of claim 16 , further comprising:
maintaining an absolute producer index and virtual producer index; maintaining an absolute consumer index for each of the one or more consumers and a virtual consumer index for each of the one or more consumers; and for a consumer, deleting the absolute consumer index and virtual consumer index for that consumer if that consumer is expelled from the tape streaming session.
19 . The method of claim 18 , further comprising mapping linear file positions to positions in the buffer.
20 . The method of claim 16 , wherein the one or more consumers comprise a file restoration consumer and one or more client consumers.
21 . The method of claim 20 , further comprising adding a client consumer to the tape streaming session for each network file system interface client from which an “open” command is received for the file within a defined portion of the tape streaming session.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.