|
Session
Peer-to-Peer is Not Always Decentralized: When Centralization is Good
Nelson Minar, Software Engineer, Google
Track: Overview/Infrastructure
Date: Tuesday, November 06
Time: 2:00pm
- 2:45pm
Location: Washington Ballroom
People often assume that "peer-to-peer" or "distributed" always means
decentralized. But it doesn't. While successful systems like Gnutella
and Freenet take decentralization as a primary design goal, others
like distributed computing companies are largely centralized. And most
current peer-to-peer architectures are somewhere in-between: whether a
hybrid approach like Napster, a hierarchical system like DNS and NTP,
or a complex system such as Groove.
Nelson talks about centralization and decentralization as a basic
design principle, relying heavily on examples from current systems. He
illustrates the four fundamental patterns of building distributed
systems (pure client/server, ring, hierarchy, and pure
decentralization). These approaches have different benefits and
drawbacks, including scalability, manageability, complexity, security,
and resistance to legal or political intervention.
Nelson concludes
with an in-depth exploration of two systems he designed
with similar goals. One system, Hive, was fully decentralized.
The other, Popular Power, was fully centralized. Each approach has
advantages, disadvantages, and lessons to learn. In the end, while
decentralization offers exciting flexibility and scalability,
centralized systems are often easier to build, manage, and understand.
|