1. A method for transferring an object O from a source host A to a target host B, comprising of: discovering hosts populated with objects divided into blocks, including hosts A and B; identifying hosts that have at least one of multiple blocks of an object O; and performing a piecewise reconstruction of the blocks of object O from identified hosts such that the identified hosts are selected to minimize a cost of reconstruction of the blocks of object O to host B.