Data streaming and backup systems having multiple concurrent read threads for improved small file performance
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
G06F-013/00
G06F-011/00
출원번호
US-0745431
(2003-12-22)
등록번호
US-8244903
(2012-08-14)
발명자
/ 주소
Bono, Jean-Pierre
출원인 / 주소
EMC Corporation
대리인 / 주소
Auchterlonie, Richard
인용정보
피인용 횟수 :
7인용 특허 :
28
초록▼
Permitting multiple concurrent read operations upon a file system enhances small file performance. A respective instance of a thread routine stores the data from each file into a series of buffers for the file. Each instance is identified by a Process Identifier (PID) used for streaming the data fro
Permitting multiple concurrent read operations upon a file system enhances small file performance. A respective instance of a thread routine stores the data from each file into a series of buffers for the file. Each instance is identified by a Process Identifier (PID) used for streaming the data from the buffers in the order in which the files are opened instead of the order in which the file data are returned by the read operations. In order to conserve buffer memory, read operations upon a file are suspended once a certain amount of data have been read from the file unless data from the file are being streamed from the buffers.
대표청구항▼
1. A computer-implemented method of streaming data from a series of files in a file system in data storage of a file server and through buffers in the file server, the computer-implemented method comprising: initiating a series of concurrent file read requests and providing a respective thread for h
1. A computer-implemented method of streaming data from a series of files in a file system in data storage of a file server and through buffers in the file server, the computer-implemented method comprising: initiating a series of concurrent file read requests and providing a respective thread for handling data read from the data storage from each file in the series of files, the respective thread for handling the data from said each file transferring the data read from said each file into a series of the buffers for said each file; andstreaming data from the buffers;wherein the method further includes providing a respective process identifier for identifying each of the threads, and using the process identifiers for ordering the data streamed from the buffers in a certain order by file. 2. The method as claimed in claim 1, wherein the files are in the certain order by file in the file system. 3. The computer-implemented method as claimed in claim 1, in which the data are streamed in the certain order by file from a write list of the buffers, the respective thread maintains a respective list of the buffers in the series of buffers for said each file, and the respective list of buffers in the series of buffers for said each file is linked to the write list of buffers when ownership of the write list of buffers is assigned to the process identifier for the thread. 4. The computer-implemented method as claimed in claim 1, which includes maintaining a list of open files, and which includes assigning the respective thread to said each file by the respective thread obtaining ownership of the list of open files, and then assigning the file at the head of the list of open files to the respective thread. 5. A computer-implemented method of streaming data from a file system in data storage of a file server and thorough buffers in the file server, the computer-implemented method comprising: searching the file system to find a series of files in the file system, and upon finding a file to be included in the series of files in the file system, creating a respective instance of a thread routine for handling file data returned from a read operation upon the file in the data storage and initiating the read operation upon the file in the data storage so that there are multiple concurrent read operations pending upon multiple files in the series of files in the file system;the respective instance of the thread routine for handling file data returned from the read operation upon the file in the data storage determining whether there are additional data in the file in the data storage and upon finding that there are additional data in the file in the data storage initiating at least one additional read operation upon the file in the data storage, and placing all of the data of the file into a respective series of the buffers for the file; andstreaming the data from the buffers in the order of the series of files in the file system;wherein the data are streamed from the buffers in the order of the series of files in the file system by assigning a process identifier to the respective instance of the thread routine, the process identifier indicating the order of the file in the series of files in the file system, and using the process identifier to select the respective series of buffers for streaming of the data from the buffers. 6. The computer-implemented method as claimed in claim 5, wherein the process identifier is used to select the respective series of buffers for streaming of the data from the respective series of buffers by streaming the data from a write list of the buffers and linking a respective list of the buffers in the respective series of buffers to the write list of buffers when ownership of the write list of buffers becomes assigned to the process identifier for the respective instance of the thread routine. 7. The computer-implemented method as claimed in claim 5, wherein the process identifier is assigned to the instance of the thread routine when the instance of the thread routine is created. 8. The computer-implemented method as claimed in claim 5, wherein the instance of the thread routine is assigned to handle data of the file by the instance of the thread routine obtaining ownership of the list of open files and then accessing the list of open files to obtain a next open file on the list of open files. 9. The computer-implemented method as claimed in claim 5, wherein the instance of the thread routine issues the request for the read operation upon the file. 10. The computer-implemented method as claimed in claim 5, wherein the instance of the thread routine is suspended after processing a certain amount of the data from the file if data from the file is not being streamed from the buffers. 11. A file server comprising: data storage for storing a file system;buffers for buffering data; anda processor programmed for streaming data from the data storage from a series of files in the file system and through the buffers;wherein the processor is programmed for initiating a series of concurrent file read requests and providing a respective thread for handling data read from the data storage from each file in the series of files, the respective thread for handling the data read from said each file transferring the data read from said each file into a series of the buffers for said each file,the processor is programmed for streaming data from the buffers, andthe processor is programmed for providing a respective process identifier for identifying each of the threads, and using the process identifiers for ordering the data streamed from the buffers in a certain order by file. 12. The file server as claimed in claim 11, wherein the files are in the certain order by file in the file system. 13. The file server as claimed in claim 11, wherein the processor is programmed for streaming the data in the certain order by file from a write list of the buffers, for maintaining a respective list of the buffers in the series of buffers for said each file, and for linking the series of buffers for said each file to the write list of buffers when ownership of the write list is assigned to the process identifier for the respective thread. 14. The file server as claimed in claim 11, wherein the processor is programmed for maintaining a list of open files, and for assigning the respective thread to said each file by the respective thread obtaining ownership of the list of open files, and assigning the file at the head of the list of open files to the respective thread. 15. A file server comprising: storage containing a file system;buffers; anda processor programmed for searching the file system to find a series of files in the file system, and upon finding a file to be included in the series of files in the file system, initiating a respective instance of a thread routine for handling file data returned from a read operation upon the file in the storage and initiating the read operation upon the file in the storage so that there are multiple concurrent read operations pending to multiple files in the series of files in the file system;wherein the thread routine is programmed for handling file data returned from the read operation upon the file in the storage by determining whether there are additional data in the file and upon finding that there are additional data in the file initiating at least one additional read operation upon the file in the storage, and placing all of the data of the file into a respective series of the buffers for the file;wherein the processor is programmed for streaming the data from the buffers in the order of the series of files in the file system; andwherein the processor is programmed for streaming the data from the buffers in the order of the series of files in the file system by assigning a process identifier to the respective instance of the thread routine, the process identifier indicating the order of the file in the series of files in the file system, and using the process identifier to select the respective series of the buffers for streaming of the data from the buffers. 16. The file server as claimed in claim 15, wherein the processor is programmed for using the process identifier to select the respective series of the buffers for streaming of the data from the buffers by streaming the data from a write list of the buffers and linking a respective list of the buffers in the respective series of the buffers to the write list of buffers when ownership of the write list of buffers is assigned to the process identifier for the respective instance of the thread routine. 17. The file server as claimed in claim 15, wherein the processor is programmed to assign the process identifier to the respective instance of the thread routine when the respective instance of the thread routine is created. 18. The file server as claimed in claim 15, wherein the processor is programmed to assign the respective instance the thread routine to handle data of the file by the respective instance of the thread routine obtaining a lock on the list of open files and then accessing the list of open files to obtain a next open file on the list to be read. 19. The file server as claimed in claim 15, wherein the thread routine is programmed to issue the request for the read operation upon the file. 20. The file server as claimed in claim 15, wherein the processor is programmed to suspend the respective instance of the thread routine after processing a certain amount of the data from the file if data from the file is not being streamed from the buffers.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (28)
Fair,Robert L., Adaptive file readahead technique for multiple read streams.
Xu Yikang ; Vahalia Uresh K. ; Jiang Xiaoye ; Gupta Uday ; Tzelnic Percy, File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems.
Kedem Nadav,ILX, Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information .
Legvold Vernon J. (Tucson AZ) Micka William F. (Tucson AZ) Nagin Kenneth M. (Haifa ILX) Novick Yoram (Haifa ILX) Vortman Pnina A. (Haifa ILX) Zeidner Elfraim (Kiryat Chaim ILX), Method and system for asynchronous pre-staging of backup copies in a data processing storage subsystem.
Eastridge Lawrence E. (Tucson AZ) Ratliff James M. (Tucson AZ), Method and system for dynamic allocation of buffer storage space during backup copying.
Sankaran,Mohan; Butsky,Volodymyr; Koritala,Sridhar C.; Tang,Zhenyu, Method and system for providing transfer of analytic application data over a network.
Huai ReiJane (Old Brookville NY) Daly Robert (Ronkonkoma NY) Curti Walter (Dix Hills NY) Mohan Deepak (Huntington NY) Chueh James Kuang-Ru (Bayside NY) Louie Larry (Forest Hills NY), System and parallel streaming and data stripping to back-up a network.
DeSouter, Marc A.; Sethi, Pranit; Clark, Morgan; Bono, Jean-Pierre; Veeraswamy, Sairam; Bixby, Peter C.; Armangau, Philippe, Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.