Distributed Algorithms (The Morgan Kaufmann Series in Data Management Systems)