File availability in distributed file storage systems
First Claim
Patent Images
1. A computer implemented method for determining location to store object replicas, the method comprising:
- receiving an indication of a homeless replica of an object, wherein the object has a plurality of replicas including the homeless replica, wherein the object is a file;
determining an initial placement for the homeless replica, wherein the initial placement is one of a plurality of devices in a system;
evaluating, on an object by object basis, whether any replicas of a first object can be swapped with one of a plurality of replicas of a second object and not reduce a combined object availability of the first and second objects, wherein the first object is selected as one of a plurality of objects managed by a first computing device having a lowest object availability, and the second object is selected as one of another plurality of objects managed by a second computing device having a highest file availability, wherein the evaluating comprises;
determining, for each possible swapping of replicas of the objects, an object availability for each object; and
checking whether any of the possible swappings result in the combined object availability of the first and second objects that is greater than a combined object availability; and
swapping a replica of the first object with the one of the plurality of replicas of the second object only if the swapping does not reduce the combined object availability of the first and second objects, wherein the swapping results in increasing an availability of the first object and decreasing an availability of the second object.
2 Assignments
0 Petitions
Accused Products
Abstract
File availability in distributed file storage systems is improved by initially placing replicas of a file or other object on different ones of multiple devices using a first process. Subsequently, the placement of the replicas is improved by evaluating whether any replicas of a first file can be swapped with any replicas of a second file without a reduction in the combined file availability of the first and second files, and swapping a replica of the first file with a replica of the second file if the swapping results in no reduction in the combined file availability of the first and second files.
94 Citations
28 Claims
-
1. A computer implemented method for determining location to store object replicas, the method comprising:
-
receiving an indication of a homeless replica of an object, wherein the object has a plurality of replicas including the homeless replica, wherein the object is a file; determining an initial placement for the homeless replica, wherein the initial placement is one of a plurality of devices in a system; evaluating, on an object by object basis, whether any replicas of a first object can be swapped with one of a plurality of replicas of a second object and not reduce a combined object availability of the first and second objects, wherein the first object is selected as one of a plurality of objects managed by a first computing device having a lowest object availability, and the second object is selected as one of another plurality of objects managed by a second computing device having a highest file availability, wherein the evaluating comprises; determining, for each possible swapping of replicas of the objects, an object availability for each object; and checking whether any of the possible swappings result in the combined object availability of the first and second objects that is greater than a combined object availability; and swapping a replica of the first object with the one of the plurality of replicas of the second object only if the swapping does not reduce the combined object availability of the first and second objects, wherein the swapping results in increasing an availability of the first object and decreasing an availability of the second object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computing device for determining location to store file replicas, causes the one or more processors to perform acts comprising:
-
receiving an indication of a homeless replica of a file, wherein the file has a plurality of replicas including the homeless replica; determining an initial placement for the homeless replica, on one of a plurality of additional computing devices; working, in conjunction with one or more other processors of another computing device, to determine whether a replica of a first file managed by a first computing device and a replica of a second file managed by a second computing device can be swapped with one another to bring an availability of the first file and an availability of the second file closer, wherein the first file is selected as one of a plurality of files managed by the first computing device having a lowest file availability, and the second file is selected as one of another plurality of files managed by the second computing device having a highest file availability; evaluating, on a file by file basis, whether any replicas of the first file can be swapped with one of a plurality of replicas of the second file and not reduce a combined file availability of the first and second files, wherein the evaluating comprises; determining, for each possible swapping of replicas of the files, a file availability for each file; checking whether any of the possible swappings result in the combined file availability of the first and second files that is greater than a combined file availability; and swapping the replica of the first file and the replica of the second file only if the swapping brings the availability of the first file and the availability of the second file closer, wherein the swapping results in increasing the availability of the first file and decreasing the availability of the second file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer implemented serverless distributed file system for determining location to store file replicas comprising:
-
a first plurality of computing devices storing files; a second plurality of computing devices managing storage of the files; wherein a first computing device of the second plurality of computing devices selects a first file for which it manages storage and communicates with a second computing device of the second plurality of computing devices to determine whether a replica of the first file and a replica of a second file for which the second computing device manages storage can be swapped in order to not reduce a combined file availability of the first and second files, wherein the first file is selected as one of a plurality of files managed by the first computing device having a lowest file availability, and second file is selected as one of another plurality of files managed by the second computing device having a highest file availability; wherein at least one of the second plurality of computing devices determines, for each possible swapping of replicas of the files, a file availability for each file, and checks whether any of the possible swappings result in the combined file availability of the first and second files that is greater than a combined file availability; and if the replicas can be swapped to not reduce the combined file availability of the first and second files, then instructing one of the first plurality of computing devices on which the replica of the first file is stored to transfer the replica of the first file to one of the first plurality of computing devices on which the replica of the second file is stored, instructing the one of the first plurality of computing devices on which the replica of the second file is stored to transfer the replica of the second file to the one of the first plurality of computing devices on which the replica of the first file is stored, and wherein the transfer of the replica of the first file to the one of the first plurality of computing devices on which the replica of the second file is stored and the transfer of the replica of the second file to the one of the first plurality of computing devices on which the replica of the first file is stored results in increasing an availability of the first file and decreasing an availability of the second file. - View Dependent Claims (21, 22)
-
-
23. One or more computer readable media having stored thereon a plurality of instructions that is executed by one or more processors of a computing device for determining location to store file replicas, causing the one or more processors to:
-
receive an indication of a homeless replicas of a file; initially place the homeless replicas of the file on different ones of a plurality of devices using a first process; and subsequently improve placement of replicas of a plurality of files by; evaluating, on a file by file basis, whether any replicas of a first file can be swapped with any replicas of a second file without a reduction in a combined file availability of the first and second files, wherein the first file is selected as one of a plurality of files managed by a first computing device having a lowest file availability, and the second file is selected as one of another plurality of files managed by a second computing device having a highest file availability, wherein the evaluating comprises; determining, for each possible swapping of replicas of the files, a file availability for each file; and checking whether any of the possible swappings result in the combined file availability of the first and second files that is greater than a combined file availability; and swapping a replica of the first file with a replica of the second file if the swapping results in no reduction in the combined file availability of the first and second files, wherein the swapping results in increasing an availability of the first file and decreasing an availability of the second file. - View Dependent Claims (24, 25)
-
-
26. A computer implemented method in a directory group for determining location to store file replicas, the method comprising:
-
selecting other directory group to participate with in a replica placement process; selecting a first file maintained by the directory group; determining whether exchanging a replica of the first file with a replica of a second file maintained by the other directory group increases a combined file availability of the first and second files, wherein the first file is selected as one of a plurality of files managed by the directory group having a lowest file availability, and the second file is selected as one of another plurality of files managed by the other directory group having a highest file availability; evaluating, on a file by file basis, whether any replicas of the first file can be swapped with one of a plurality of replicas of the second file and not reduce the combined file availability of the first and second files, wherein the evaluating comprises; determining, for each possible swapping of replicas of the files, a file availability for each file; and checking whether any of the possible swappings result in the combined file availability of the first and second files that is greater than a combined file availability; and having the replica of the first file and the replica of the second file exchanged if exchanging the replicas increases the combined file availability of the first and second files, wherein the exchange results in increasing an availability of the first file and decreasing an availability of the second file. - View Dependent Claims (27, 28)
-
Specification