The overall cost of answering a query includes the transfer cost from the storage provider or data origin to the query evaluator, the cost of resources utilized at the query evaluator and other nodes, and the cost to transfer the results to the query initiator. The data placement problem is to distribute data and work so the full query workload is answered with lowest cost under the existing resource and bandwidth constraints. While a cursory glance at the data placement problem suggests many similarities with multi-query optimization in a distributed database, there are substantial and fundamental differences. For example, in the general case, a P2P system.