We define the data placement problem for a P2P system as follows. Assume we are given a set of cooperating nodes connected by a network (typically, but not necessarily, the Internet) that has limited bandwidth on each link. Nodes know about and exchange data with a collection of participating peers, and they may serve any or all of four roles. The first of these is a data origin, which provides original content to the system and is the authoritative source of that data. As a storage provider, a peer stores materialized views (consuming disk resources, and perhaps replacing previously materialized views if there is insufficient.