C>С базой данных — это тупик. Думайте про умные распределенное файловое хранилище. Можно прочитать про то, как устроен LiveJournal:
Гм, а почему с базой данных — тупик? Разумеется, одна глобальная БД с действительно большим объемом данных не справиться (вернее, слишком дорого будут стоить лицензии со всеми partioning'ами). Но почему в качестве элемента распределенной системы лучше использовать файловую систему, а не БД — мне не очевидно.
Конечно, partioning и методы ребалансинга между отдельными узлами придется делать самому, но хотя бы не будет проблем с организацией HA, да и обновления будет выглядеть проще.
Сравнения производительности работы с файлами и с блобами для приличных БД я никогда не видел, а так как наши тесты БД упирались явно в железо, то не понятно, с чего файловая структура должна быть существенно быстрее, а вот ее поддержка будет не проще.
Впрочем, возможно, я действительно что-то не понимаю, проектов класс LJ делать не приходилось.
Да и вряд ли в данном случае речь идет о проекте с нагрузкой порядка десятков тысяч транзакций в секунду. А тысячи транзакций можно реализовать и через блобы на какой-нибудь DB2 Express C.
Но вот про кэш подумать стоит (про memcached, скорее всего).