Пленителен и детайлен разказ как LiveJournal се разви и мащабира системата си.LiveJournal беше от първите играчи в полето на безплатните блог услуги и срещна проблема с бързото добавяне на голям брой потребители. Публикациите в блоговете започнаха да стават все по-често, което доведе до много операции запис, които са трудно мащабируеми. Опитът на LiveJournal с проблеми при мащабирането може да помогне на вдъхновените разработчици на web услуги.
Източници на информация
- Мащабиране от 1, 2 и 4 хоста до клъстер.
- Дублиране при критичните точки.
- Използване само на MySQL репликация не върши работа.
- Ограничаването на входно/изходните операции обезмисля мащабирането
- Разпределяне на четенето и записа за по-голям паралелизъм .
- Не може да се мащабира чрез добавяне на подчинени сървъри.
- За максимална продуктивност да се използва подходът Shard. Заделянето се основава на ролите.
- Кеширане за подобряване на производителността . Кеширане на две нива заради разпределената RAM.
- Динамично натоварване с Perlbal .
- Разпределена файлова система за паралелизаъм MogileFS.
- Разпределяне на работата с TheSchwartz и Gearman за повече паралелна работа.
- Решаване на постоянните проблеми с връзката.
Поуки
- Не се страхувайте сами да си пишете програмно обезпечение за решаване на проблемите си. LiveJournal положиха големи усилия и спомогнаха много за развитието на общността.
- Малките сайтове с по 1-2 машини могат да се развият до големи системи като следват желанията на потребителите .
- Ключът към мащабирането е паралелизмът. Премахнете тесните места в системата чрез кеширане , разпределяне на натоварването, sharding, клъстерни файлови системи и използването на повече дискови шпиндели.
- Репликацията си има цена .Не може просто да се добавят още и още подчинени дискове и да се очаква мащабиране.
- Проблемите на ниско ниво като избора кой механизъм за обработване на събития от ОС, файловата система и обръщенията към диска са от голямо значение при мащабиране.