Why are Facebook, Digg and Twitter So Hard To Scale?
highscalability.com
Why are Facebook, Digg and Twitter So Hard To Scale?
1–10 of 52 posts
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#2Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#3I spent a few hours mocking up a solution to this type of status updates in code. It seemed fairly obvious so I assumed it was not a real problem. However, if there is any interest I can turn it to some sort of blog post next weekend.
If you think that's obvious, I think you're significantly beyond all of the people with all of the "hello world" twitter clones out there.
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#4Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#5Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#6If accessed frequently, but changes less frequently, then push makes sense, if changes frequently, but accessed infrequently, then pull makes sense.
It also seems likely that the same piece of data may have different ratios from different perspectives.
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#7I spent a few hours mocking up a solution to this type of status updates in code. It seemed fairly obvious so I assumed it was not a real problem. However, if there is any interest I can turn it to some sort of blog post next weekend.
Sure it's obvious until you have hundreds of millions of nodes that each link to somewhere between 100 and 2,000,000 other nodes that need to be updated when any given node updates (assume around 5,000 nodes are updating every second with a power law kind of distribution). If you think that's obvious, I think you're significantly beyond all of the people with all of the "hello world" twitter clones out there.
This is quite different from the problems of even large scale web apps where there's essentially a set of data that's pulled from a caching layer and assembled.
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#8I spent a few hours mocking up a solution to this type of status updates in code. It seemed fairly obvious so I assumed it was not a real problem. However, if there is any interest I can turn it to some sort of blog post next weekend.
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#9Maybe things have changed since the last time I visited Digg over 2 years ago, but the social networking aspects are not very significant. The vast majority of their hits are practically fully page cacheable.
Twitter at least has an interesting scaling problem, but they don't have any features and they move at a glacial pace.
Facebook on the other hand has a graph that almost as nasty as Twitter's (minus the million followers thing), but they have 100 times the features, and they push new code every week.
Re: Why are Facebook, Digg and Twitter So Hard To Scale?
#10I spent a few hours mocking up a solution to this type of status updates in code. It seemed fairly obvious so I assumed it was not a real problem. However, if there is any interest I can turn it to some sort of blog post next weekend.
Sure it's obvious until you have hundreds of millions of nodes that each link to somewhere between 100 and 2,000,000 other nodes that need to be updated when any given node updates (assume around 5,000 nodes are updating every second with a power law kind of distribution). If you think that's obvious, I think you're significantly beyond all of the people with all of the "hello world" twitter clones out there.
5k node updates per second might sound like a problem, but one core of one machine can easily keep up with that so you can have several copies and several views of the whole network graph. Public vs. private messages can be handled separately and then joined before presentation to the user. You can separate finding which message to display from the message data. You even get to display dirty reads as long as the data is Ok, describing the solution based on the above insights takes some time and pictures but does it still sound horrible?
PS: Twitter was forced to morph an architecture built to solve a different problem into a working solution. That takes time and can be fairly difficult. But, starting from scratch it's not that bad.