1. A method of protecting nodes within a hierarchical data structure at variable protection levels, the hierarchical data structure comprising leaf nodes and non-leaf nodes, the method comprising: determining a protection level for each of one or more leaf nodes, wherein each protection level corresponds to a level of protection against loss of data, and wherein each level of the protection against the loss of the data corresponds to at least one of a number of mirrored copies, a level of error correction, and a level of parity protection of the leaf node; determining, by a computer processor, a protection level for a non-leaf node, wherein the non-leaf node has one or more children with corresponding protection levels, and wherein the protection level of the non-leaf node is based on a maximum of the protection levels of current children of the non-leaf node; identifying an increase in the maximum of the protection levels of the current children of the non-leaf node; as a result of identifying the increase in the maximum of the protection levels of the current children of the non-leaf node, determining, by a computer processor, an increased protection level for the non-leaf node; and increasing at least one of a number of mirrored copies of the non-leaf node, a level of error correction of the non-leaf node, and a level of parity protection of the non-leaf node to correspond to the increased protection level for the non-leaf node.