METHOD AND SYSTEM FOR GLOBAL USAGE BASED FILE LOCATION MANIPULATION
A method for optimizing the location of files stored in one or more geographically distributed storage nodes, includes: storing a second data file in a second storage node, wherein the second data file is an identical copy of a first data file stored in a first storage node; determining if there is sufficient demand for the second data file stored in the second storage node; and if it is determined that there is insufficient demand for the second data file from the second storage node, deleting the second data file from the second storage node.
1 . A method for optimizing the location of files stored in one or more geographically distributed storage nodes, comprising:
receiving a first request from a user located within a first geographic region to download a data file;
selecting a first storage node containing the requested data file from among a plurality of geographically distributed storage nodes coupled to a communications network;
determining if the first storage node is near enough to the user based on one or more predetermined criterion; and
if the first storage node is determined to be near enough, directing subsequent requests for the data file by the user from the first geographic region to the first storage node;
wherein if the first storage node is determined not to be near enough, the method further comprises:
identifying a second storage node from among the plurality of storage nodes, which is near enough to the user located in the first geographic region but does not currently contain the requested file;
directing the second storage node to obtain a copy of the requested data file from the first storage node; and
redirecting subsequent download requests for the data file by the user from the first geographic region to the second storage node.
2 . The method of claim 1 wherein the first request from the user is automatically served by the selected first storage node before or concurrently with the act of determining.
3 . The method of claim 1 wherein the act of selecting comprises determining if the first storage node is the nearest storage node among the plurality of storage nodes that contains the requested data file.
4 . The method of claim 3 wherein determining if the first storage node is the nearest storage node is based on a geocode value associated with the first request.
5 . The method of claim 4 wherein the geocode value indicates that the user in located within the first geographic region
6 . The method of claim 1 wherein if the first storage node is determined not to be near enough, the method further comprises:
monitoring a last access date of the data file from the second storage node;
subtracting the last access date from a current date to obtain a period of no access of the data file from the second storage node; and
deleting the copy of the data file stored at the second storage node if the period of no access exceeds a predetermined threshold amount of time.
7 . The method of claim 6 further comprising deleting the data file from the first storage node if the period of no access does not exceed the predetermined threshold amount of time.
8 . The method of claim 1 wherein if the first storage node is determined not to be near enough, the method further comprises:
monitoring a last access date of the data file from the first storage node;
subtracting the last access date from a current date to obtain a period of no access of the data file from the first storage node; and
deleting the copy of the data file stored at the first storage node if the period of no access exceeds a predetermined threshold amount of time.
9 . The method of claim 8 wherein the first storage node is determined not to be near enough if a geocode associated with the request indicates that the first storage node is not within the first geographic region, wherein the geocode indicates that the user is within the first geographic region.
10 . A method for optimizing the location of files stored in one or more geographically distributed storage nodes, comprising:
storing a second data file in a second storage node, wherein the second data file is an identical copy of a first data file stored in a first storage node;
determining if there is sufficient demand for the second data file stored in the second storage node; and
if it is determined that there is insufficient demand for the second data file from the second storage node, deleting the second data file from the second storage node.
11 . The method of claim 10 further comprising deleting the first data file from the first storage node if it is determined that there is sufficient demand for the second data file from the second storage node.
12 . The method of claim 10 wherein determining if there is sufficient demand for the second data file comprises:
monitoring a last access date of the second data file from the second storage node; and
subtracting the last access date from a current date to obtain a period of no access of the second data file from the second storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the second data file.
13 . The method of claim 10 further comprising:
determining if there is sufficient demand for the first data file stored in the first storage node; and
if it is determined that there is insufficient demand for the first data file from the first storage node, moving the first data file to an archive storage node communicatively coupled to the first storage node.
14 . The method of claim 13 wherein determining if there is sufficient demand for the first data file comprises:
monitoring a last access date of the first data file from the first storage node; and
subtracting the last access date from a current date to obtain a period of no access of the first data file from the first storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the first data file.
15 . A usage based file location manipulation system, comprising:
a web services interface operable to receive a request from a user device to download a file, wherein the file is associated with a logical file identification value;
a database table correlating a plurality of logical file identification values with a plurality of storage node identification values, wherein the plurality of storage node identification values correspond to a plurality of geographically distributed physical storage nodes coupled to a communications network, the plurality of physical storage nodes storing physical files corresponding to respective ones of the plurality of logical file identification values; and
a server coupled to the database table, the server comprising:
a first module for directing a second storage node to store a second data file, wherein the second data file is an identical copy of a first data file stored in a first storage node;
a second module for determining if there is sufficient demand for the second data file stored in the second storage node; and
a third module for directing the second storage node to delete the second data file if it is determined that there is insufficient demand for the second data file from the second storage node.
16 . The system of claim 15 further comprising a fourth module for directing the first storage node to delete the first data file if it is determined that there is sufficient demand for the second data file from the second storage node.
17 . The system of claim 15 wherein the second module comprises:
a fourth module for monitoring a last access date of the second data file from the second storage node; and
a fifth module for subtracting the last access date from a current date to obtain a period of no access of the second data file from the second storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the second data file.
18 . The system of claim 15 further comprising:
a fourth module for determining if there is sufficient demand for the first data file stored in the first storage node; and
a fifth module for moving the first data file to an archive storage node communicatively coupled to the first storage node, if it is determined that there is insufficient demand for the first data file from the first storage node.
19 . The system of claim 18 wherein the fourth module comprises:
a sixth module for monitoring a last access date of the first data file from the first storage node; and
a seventh module for subtracting the last access date from a current date to obtain a period of no access of the first data file from the first storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the first data file.
20 . The system of claim 15 further comprising:
a fourth module for determining if the first storage node is near enough a user requesting access to the first data file based on if a geocode associated with the user, wherein if the first storage node is determined not to be near enough, the first module directs the second storage node to store the second data file to serve subsequent requests for the second data file by the same user, wherein the second storage node is determined to be near enough to the user by the fourth module based at least in part upon the geocode associated with the user.
21 . A computer readable medium storing computer executable instructions that when executed perform a process for optimizing the location of files stored in one or more geographically distributed storage nodes, the instructions comprising:
a first code module for receiving a first request from a user located within a first geographic region to download a data file;
a second code module for selecting a first storage node containing the requested data file from among a plurality of geographically distributed storage nodes coupled to a communications network;
a third code module for determining if the first storage node is near enough to the user based on one or more predetermined criterion and if the first storage node is determined to be near enough, directing subsequent requests for the data file by the user from the first geographic region to the first storage node;
a fourth code module for identifying a second storage node from among the plurality of storage nodes, which is near enough to the user located in the first geographic region but does not currently contain the requested file, if the first storage node is determined not to be near enough;
a fifth code module for directing the second storage node to obtain a copy of the requested data file from the first storage node; and
a sixth code module for redirecting subsequent download requests for the data file by the user from the first geographic region to the second storage node.
22 . A computer readable medium storing computer executable instructions that when executed perform a process for optimizing the location of files stored in one or more geographically distributed storage nodes, the instructions comprising:
a first code module for directing a second storage node to store a second data file, wherein the second data file is an identical copy of a first data file stored in a first storage node;
a second code module for determining if there is sufficient demand for the second data file stored in the second storage node and if it is determined that there is insufficient demand for the second data file from the second storage node, deleting the second data file from the second storage node.
23 . The computer readable medium of claim 22 further comprising a third code module for deleting the first data file from the first storage node if it is determined that there is sufficient demand for the second data file from the second storage node.
24 . The computer readable medium of claim 22 wherein the second code module comprises:
a third code module for monitoring a last access date of the second data file from the second storage node; and
a fourth code module for subtracting the last access date from a current date to obtain a period of no access of the second data file from the second storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the second data file.
25 . The computer readable medium of claim 22 further comprising:
a third code module for determining if there is sufficient demand for the first data file stored in the first storage node; and if it is determined that there is insufficient demand for the first data file from the first storage node, directing the first storage node to move the first data file to an archive storage node communicatively coupled to the first storage node.
26 . The computer readable medium of claim 22 further comprising:
a fourth code module for monitoring a last access date of the first data file from the first storage node; and
a fifth code module for subtracting the last access date from a current date to obtain a period of no access of the first data file from the first storage node, wherein if the period of no access exceeds a predetermined threshold amount of time it is determined there is insufficient demand for the first data file.