ЖЖ очень старый. Тринадцать лет назад Брэд Фитцпатрик создал небольшой сервис онлайн-дневников для своих друзей. Неизвестно, на какое количество пользователей он был рассчитан, но точно не на десятки миллионов аккаунтов. Время шло, ЖЖ переходил из рук в руки (СУП — всего лишь последний из владельцев), количество пользователей росло, разные команды программистов по разному пытались справиться с растущей нагрузкой. На данный момент в движке ЖЖ куча старого кода, который писали совершенно разные люди без единой стратегии и без документирования. И архитектура ЖЖ устарела несколько лет назад — не дизайн (тоже архаичный), а внутреннее устройство.
Именно поэтому простой и наивный совет «добавить серверов, памяти или чего там у вас не хватает»© — не работает.
Представьте себе старый многоэтажный дом, в котором живут люди, и вам нужно поменять архитектуру этого дома. Вы вынуждены выбивать сваи и вытаскивать плиты из фундамента(!) Разумеется, дом иногда падает, вместе с жильцами. Дом поднимают и продолжают ремонт. Часто, чтобы дом не падал, обходятся временными решениями — не меняющими архитектуру. Например, из-за прихода новых жильцов и роста количества бытовых электроприборов, электросеть не справляется с нагрузкой, пробки выбивает регулярно. Но жильцы требуют повысить мощность, плевать каким способом, потому что «у соседей в новостройке всё это есть». Проблема решается затаскиванием каждому в окно отдельного силового кабеля — выглядит некрасиво, весь дом в многометровых кабелях, во время сильного ветра они рвутся, жильцы опять недовольны. И так всё время.
Почему нельзя просто написать ЖЖ заново, с новой архитектурой? Оттестировать его и за одну ночь запустить новую версию?