METHOD AND SYSTEM FOR EFFICIENTLY STORING DATA FILES
A method for efficiently storing data files, includes: receiving a data file for storage at one of a plurality of storage devices, wherein the data file is associated with a specified user; determining whether an identical file already exists at one of the plurality of storage devices; deleting the received data file if it is determined that an identical file already exists at one of the plurality of storage devices; and directing subsequent requests to access the data file from the specified user to the storage device containing the identical file.
1 . A method for efficiently storing data files, comprising:
receiving a data file for storage at one of a plurality of storage devices, wherein the data file is associated with a specified user;
determining whether an identical file already exists at one of the plurality of storage devices;
deleting the received data file if it is determined that an identical file already exists at one of the plurality of storage devices; and
directing subsequent requests to access the data file from the specified user to the storage device containing the identical file.
2 . The method of claim 1 wherein the act of determining comprises calculating a new media key for the data file and comparing the new media key with a plurality of previously stored media keys, wherein a match between the new media key and one of the previously stored media keys indicates an identical file is stored in one of the plurality of storage devices.
3 . The method of claim 2 wherein the new media key is calculated by a process local to the specified user using a hashing algorithm that is identical to a hashing algorithm used to calculate the previously stored media keys.
4 . The method of claim 2 further comprising transmitting the new media key to a central server for comparison with the plurality of previously stored media keys stored at the central server, wherein if an identical file is found, the central server instructs the one of the plurality of storage of devices to delete the received data file and associates a permanent file identification value corresponding to the identical file with the specified user, wherein the permanent file identification value indicates a physical location where the identical file is stored.
5 . The method of claim 4 wherein the permanent file identification value comprises a logical file identification value correlated with a virtual file path name associated with the specified user.
6 . The method of claim 1 further comprising assigning a temporary file identification value during the act of determining so as to allow the specified user to immediately access the data file, thereby decreasing file access delays.
7 . The method of claim 6 further comprising assigning a new permanent file identification value to the data file if it is determined that an identical file does not exist, wherein the new permanent file identification value indicates a physical location where the data file is stored.
8 . The method of claim 7 further comprising associating with the specified user an old permanent file identification value corresponding to an identical file if it is determined that an identical file exists, wherein the old permanent file identification value indicates a physical location where the identical file is stored.
9 . The method of claim 7 wherein the new permanent file identification comprises a logical file identification value correlated with a virtual file path name associated with the specified user.
10 . A method for efficiently storing data files, comprising:
receiving a data file for storage at one of a plurality of storage devices, wherein the data file is associated with a specified user;
determining, during a process of storing the data file, whether an identical file already exists at one of the plurality of storage devices;
aborting the process of storing the received data file if it is determined that an identical file already exists at one of the plurality of storage devices; and
directing subsequent requests to access the data file from the specified user to the storage device containing the identical file.
11 . The method of claim 11 wherein the determining comprises receiving a media key for the data file and comparing the media key with a plurality of previously stored media keys, wherein a match between the received media key and one of the previously stored media keys indicates an identical file is stored in one of the plurality of storage devices.
12 . The method of claim 11 wherein the received media key is calculated by a process local to the specified user using a hashing algorithm that is identical to a hashing algorithm used to calculate the previously stored media keys.
13 . The method of claim 12 further comprising transmitting the received media key to a central server for comparison with the plurality of previously stored media keys stored at the central server, wherein if an identical file is found, the central server instructs the one of the plurality of storage of devices to abort the process of storing the data file and associates a permanent file identification value corresponding to the identical file with the specified user, wherein the permanent file identification value indicates a physical location where the identical file is stored.
14 . The method of claim 13 wherein the permanent file identification value comprises a logical file identification value correlated with a virtual file path name associated with the specified user.
15 . The method of claim 10 further comprising assigning a temporary file identification value during the act of determining so as to allow the specified user to immediately access the data file, thereby decreasing file access delays.
16 . The method of claim 15 further comprising assigning a new permanent file identification value to the data file if it is determined that an identical file does not exist, wherein the new permanent file identification value indicates a physical location where the data file is stored.
17 . The method of claim 16 further comprising associating with the specified user an old permanent file identification value corresponding to an identical file if it is determined that the identical file exists, wherein the old permanent file identification value indicates a physical location where the identical file is stored.
18 . The method of claim 16 wherein the new permanent file identification value comprises a logical file identification value correlated with a virtual file path name associated with the specified user.
19 . The method of claim 10 further comprising sending a “successful upload” message to the specified user.
20 . A system for efficiently storing data files, comprising:
a database for storing a plurality of media keys associated with respective ones of a plurality of data files stored in a plurality of storage devices; and
a server communicatively coupled to the database for comparing a new media key with the plurality of media keys, wherein the new media key is associated with a new data file designated to be stored at a first storage device, wherein if a match is found between the new media key and one of the plurality of media keys, the server instructs the first storage device to abort a process of storing the new data file if the process has not been completed, or delete the new data file if the process has been completed.
21 . The system of claim 20 wherein the server comprises a central server communicatively coupled to the first storage device and the plurality of storage devices via a communications network.
22 . The system of claim 20 wherein the first storage device comprises a first storage node and the server is located within the first storage node and communicatively coupled to the database via a communications network.
23 . The system of claim 20 wherein the new media key is calculated by a process local to a device transmitting the data file to the first storage device.
24 . The system of claim 20 wherein the act of deleting the new data file occurs as an backend process that is transparent to a user uploading the data file.
25 . The system of claim 24 wherein the new data file is placed in a queue for deletion by the first storage device.