<p><b>Abstract</b>—We consider the problem of placing copies of objects in a tree network in order to minimize the cost of servicing read and write requests to objects when the tree nodes have limited storage and the number of copies permitted is limited. The set of nodes that have a copy of the object is the residence set of the object. A node wishing to read the object will read the object from the closest node in the residence set. A node wishing to update the object will update the copy of the object at all the nodes in the residence set. Updates are propagated over a certain minimum spanning tree. The cost associated with a residence set equals the cost of servicing all the read and write requests and the storage costs for those copies. We describe a <tmath>$O(n^3 p^2) \hbox {-} {\rm time}$</tmath> algorithm for finding an optimal residence set of size <tmath>$p$</tmath> for an object in a tree with <tmath>$n$</tmath> nodes, taking into consideration the read, write, and storage costs. Furthermore, we describe a <tmath>$O(n^3 p^2 \Lambda_{\max}^2) \hbox {-} {\rm time}$</tmath> algorithm for finding a minimum cost normal <it>p</it>-residence set for an object in a tree, this time also taking into account the load imposed by the nodes of the tree on the nodes in a residence set and their capacity constraints, where <tmath>$\Lambda_{\rm max}$</tmath> is an upper bound on the capacity of each node of the tree.</p>