This paper deals with the on-line allocation of shared data objects to the local memory modules of the nodes in a network. We assume that the data is organized in indivisible objects such as files, pages, or global variables. The data objects can be replicated and discarded over time in order to minimize the communication load for read and write accesses done by the nodes in the network. Non-uniform data management is characterized by a different communication load for accesses to small pieces of the data objects and migrations of whole data objects. We introduce on-line algorithms that minimize the congestion, i.e., the maximum communication load over all links. Our algorithms are evaluated in a competitive analysis comparing the congestion produced by an on-line algorithm with the congestion produced by an optimal off-line algorithm. We present the first deterministic and distributed algorithm that achieves a constant competitive ratio on trees. Our algorithm minimizes not only the...