Efficient storage of data files received in a non-sequential manner
OwnerKhoi Hoanginventor
Life of this patent
Estimating the term…
Abstract
The present invention contemplates several data storage mechanisms well suited for high speed storage of data files received as non-sequential data blocks. In one preferred embodiment, data blocks are stored in an order received, and the proper sequencing of these data blocks is maintained in a separate data structure. This minimizes total seek time during data storage, and enables sequential retrieval of the file data blocks. In another preferred embodiment, a receiver allocates multiple portions of persistent memory to each data file. This approach balances total seek time during storage, with total seek time during file retrieval as well as alleviating some of the effects of memory fragmentation which arise when persistent memory is released as stored files are deleted.
Claims27
A computer implemented method for storing at least one digital data file arranged as a plurality of data blocks, the computer implemented method comprising the acts of:
- generating a free memory block list including indirections associated with N unused blocks of persistent memory allocated for storage of said at least one digital data file;
- receiving a specific data block associated with said at least one data file;
- selecting a next indirection associated with a next memory block from said free memory block list;
- updating said free memory block list to indicate that said next memory block is used;
- and
- storing said specific data block at said next memory block.
A method for managing data received in a non-sequential manner, said method decreasing total seed time for data storage, the method comprising the computer-implemented acts of:
- storing said data in an order that said data is received;
- and
- creating and maintaining index tables which enable file sequential retrieval of said stored data.
A method for managing data, the method comprising the computer-implemented acts of:
- receiving said data at a receiver;
- storing said data in an order that said data is received to form stored data;
- representing said stored data as a the list;
- creating and maintaining index tables based on said the list;
- and
- wherein;
- said index tables comprises address information corresponding to said stored data;
- and
- said index tables are used to locate said stored data.
A method for managing data, the method comprising the computer-implemented acts of:
- storing said data in an order that said data is received to form stored data;
- representing said stored data as a the list;
- creating and maintaining index tables based on said the list;
- and
- wherein;
- said index tables comprises address information corresponding to said stored data;
- said index tables are maintained in a buffer cache and in a persistent memory, wherein said buffer cache and said persistent memory is associated with a system at which said data is received;
- and
- said index tables are used to locate said stored data.
An apparatus for managing data comprising:
- computer means including:
- means for storing said data in an order that said data is received to form stored data;
- means for representing said stored data as a the list;
- means for creating and maintaining index tables based on said the list;
- wherein;
- said index tables comprises address information corresponding to said stored data;
- said index tables are maintained in a buffer cache and in a persistent memory, wherein said buffer cache and said persistent memory is associated with a system at which said data is received;
- and
- said index tables are used to locate said stored data.
A method for managing data, the method comprising the computer-implemented acts of:
- receiving said data wherein said data comprises blocks of data from a plurality of distinct data files;
- storing said data in an order that said data is received to form stored data;
- representing said stored data as a the list;
- and
- creating and maintaining index tables based on said the list, wherein said index tables are used to locate said stored data.
A data structure for managing data that is received in a non-sequential manner, wherein:
- said data comprises a plurality of data blocks from a plurality of distinct data files;
- said data structure is a list;
- said data structure comprises elements for storing said data;
- and
- each of said element stores one data block from said plurality of data blocks;
- each element is mapped to a corresponding address location.
Dependencies are inferred from the claim text.