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; determining, by a computer processor, a protection level for each of one or more non-leaf nodes based on a maximum of the protection levels of children of the non-leaf node; protecting, by the computer processor, each of the one or more leaf nodes at the protection level determined for the leaf node; and protecting, by the computer processor, each of the one or more non-leaf nodes at the protection level determined for the non-leaf node; wherein the protection levels determined for the one or more leaf nodes and the one or more non-leaf nodes are associated with one or more protection techniques for recovering data stored in the hierarchical data structure.