FriendFeed is one of my favorite sites to visit. It aggregates and shows what users are doing or saying across the Internet. As you can imagine, the database system required to store and query all these activities would be:
1) growing at an astronomical rate
2) be so furiously busy during query times
3) even the simple act of adding/removing an index would take an insane amount of itme
I’ve always wondered what FriendFeed’s secret to develop and maintain a such database system considering how quickly it runs on their site. It turns out that they were starting to encounter a bottleneck that was making it difficult for them to add new features.
Thinking out of the box, Bret Taylor who works on the FF database system (MySQL, no less!) shed a bit of light on how they do a such outstanding job in moving past the bottleneck.
One of the major points was to stop using standard indexes on columns and instead use tables for this purpose. This would sound risky at first but it turns out it was the right move to make, provided proper checks were continually carried out. Their performance graphics show that this change was a huge success.