1. A computer-implemented method comprising: determining, by a first cache node in a tree-structured cluster of cache nodes, that a second cache node in the tree-structured cluster of cache nodes has failed, wherein the first cache node is a backup cache node for the second cache node and stores data of the second cache node as backup data; taking ownership, by the first cache node, of the data of the second cache node by treating the second cache node data as primary data of the first cache node, wherein a backup cache node for the first cache node stores the second cache node data as backup data for the first cache node in addition to backup data already stored for the first cache node at the backup cache node for the first cache node; receiving, by the first cache node, a query for the second cache node data from a third cache node in the tree-structured cluster of cache nodes; replicating, by the first cache node, an instance of the queried second cache node data to the third cache node; and removing, by the first cache node, the instance of the queried data from the primary data of the first cache node in response to an instruction to delete the instance of the queried data, wherein the third cache node acts as primary owner of the instance of the queried data once it is replicated to the third cache node; wherein a memory usage for each node in the tree-structured cluster of cache nodes is (b+1)X, where X is the average data size for each node and b is the number of buddies per node.