Steve Huffman, founder of Internet phenomenon Reddit talks about the 7 key lessons he learned during his time with the company. I found the video very interesting; this guy is seriously smart and incredibly passionate about the back-end structure of high traffic databases. You can tell how hard he tries so hard to be clear and simple even when what he’s trying to say is anything but. Definitely worth a listen if you are into this sort of stuff. I’ve included a brief list of the lessons below:
Lesson 1: Crash Often
- Auto-restarting processes can save you a lot of headaches.
Lesson 2: Separate Services
- Group similar processes and types of data on each server.
Lesson 3: Open Schema
- Keep different tables for each data-type so that adding new columns doesn’t break your database.
Lesson 4: Keep it stateless
- Any one app server should be able to handle any request; don’t store any state on any of the app servers.
Lesson 5: Memcache Everything
- Use precomputed listings; store everything through memcache.
Lesson 6: Store Redundant Data
- Store data in every possible format it may be queried so that it is precomputed and ready to be called.
Lesson 7: Work Offline
- Process as little as necessary at call-time; do as much as you can offline.