On August 16th, Skype disappeared for two days and the company blamed the outage on Skype’s p2p network, the nodes of which received updates worldwide at the same time, restarted, and overwhelmed the system.
Rather than blaming the decentralized nature of their p2p network, Skype should be pointing the finger of blame at the true cause of this extended outage: Skype’s own centralized control and distribution of their software, and Skype’s closed, proprietary protocol, which ensures that no clients other than the official Skype client software exist. The Skype ecosystem is homogeneous, and as such faces problems similar to those found during the famous potato famine in Ireland, or the current problems facing genetically homogeneous banana crops: a population that lacks diversity lacks resilience to disease and adversity. When all the individuals in a population are clones or close relatives of each other, every single member of the population is susceptible to a single disease, and it can spread like wildfire. In Skype’s case, the massive simultaneous restart of nodes apparently sparked a constant flame of log-in requests, exposing another weakness in Skype’s architecture: since Skype must centrally manage accounts for business reasons, all account management, including log-in authentication, must be centrally performed. Authentication servers in Skype are distributed, but not decentralized. Centralized components do not scale well, especially during heavy spikes in usage patterns.
Contrast this with the gnutella or bittorrent networks, in which no single entity controls all the clients. There are perhaps dozens of different active clients for each network, and if there is a fatal bug in one version of one client, it only affects the portion of the population running that version of that client. Diversity is good for the ecosystem, and always will be.
I’ve claimed before that decentralization can eradicate service outages. But simply decentralizing some portion of a system clearly does not make it immune to serious outage problems. Decentralization without open protocols (and usually by corollary, open software) is not decentralization at all. Decentralization is not made of magic pixie dust, but it will overcome this type of catastrophe if applied correctly.
This is why the flŭd protocol is open, and why the software is open source; we hope that others will eventually write clients not only for other languages and platforms, but clients that implement different strategies for maximizing their efficiency and trading relationships.
Hamstringing a p2p application with centralized SPOFs (single points of failure), and then blaming decentralization as the cause of problems that really stem from centralized bottlenecks is, at the very least, disingenuous. But I understand Skype’s predicament — it’s much harder to say, “our system failed because our business model fundamentally weakened our technology” than it is to say “we had a bug in our p2p application.”