A method of prioritizing data for recovery in a distributed storage system, the method comprising: for each stripe of a file comprising a plurality of stripes having chunks, determining, using a data processing device, whether the stripe comprises high-availability chunks or low-availability chunks, the high-availability chunks having a higher priority and taking precedent over the low-availability chunks, the availability of the chunks being based on the data or the owner of the data; determining, using the data processing device, an effective redundancy value for each stripe of the file, the effective redundancy value based on the chunks and any system domains associated with the corresponding stripe, the distributed storage system having a system hierarchy comprising system domains, each system domain having an active state or an inactive state, wherein chunks of a stripe associated with a system domain in the active state are accessible, and chunks of a stripe associated with a system domain in the inactive state are inaccessible, the effective redundancy value being based on the number of system domains that can be lost so that the data in the stripe becomes unrecontructable, the effective redundancy value being determined by hypothetically removing chunks until a number of remaining chunks is incapable of reconstructing the data within the specific stripe and wherein the number of rounds of removal is the effective redundancy value; and when chunks of a stripe become inaccessible: reconstructing, using the data processing device, inaccessible, high-availability chunks having an effective redundancy value less than a threshold effective redundancy value immediately; and reconstructing, using the data processing device, after a threshold period of time: inaccessible, low-availability chunks; and inaccessible, high-availability chunks having an effective redundancy value greater than or equal to the threshold effective redundancy (ER T). for each stripe of a file comprising a plurality of stripes having chunks, determining, using a data processing device, whether the stripe comprises high-availability chunks or low-availability chunks, the high-availability chunks having a higher priority and taking precedent over the low-availability chunks, the availability of the chunks being based on the data or the owner of the data; determining, using the data processing device, an effective redundancy value for each stripe of the file, the effective redundancy value based on the chunks and any system domains associated with the corresponding stripe, the distributed storage system having a system hierarchy comprising system domains, each system domain having an active state or an inactive state, wherein chunks of a stripe associated with a system domain in the active state are accessible, and chunks of a stripe associated with a system domain in the inactive state are inaccessible, the effective redundancy value being based on the number of system domains that can be lost so that the data in the stripe becomes unrecontructable, the effective redundancy value being determined by hypothetically removing chunks until a number of remaining chunks is incapable of reconstructing the data within the specific stripe and wherein the number of rounds of removal is the effective redundancy value; and when chunks of a stripe become inaccessible: reconstructing, using the data processing device, inaccessible, high-availability chunks having an effective redundancy value less than a threshold effective redundancy value immediately; and reconstructing, using the data processing device, after a threshold period of time: inaccessible, low-availability chunks; and inaccessible, high-availability chunks having an effective redundancy value greater than or equal to the threshold effective redundancy (ER T). reconstructing, using the data processing device, inaccessible, high-availability chunks having an effective redundancy value less than a threshold effective redundancy value immediately; and reconstructing, using the data processing device, after a threshold period of time: inaccessible, low-availability chunks; and inaccessible, high-availability chunks having an effective redundancy value greater than or equal to the threshold effective redundancy (ER T). inaccessible, low-availability chunks; and inaccessible, high-availability chunks having an effective redundancy value greater than or equal to the threshold effective redundancy (ER T).