HighLoad++

Конференция разработчиков
высоконагруженных систем

Спасение 6 млн. файлов в условиях полного Хецнера

Доклад принят в Программу конференции
Noam Tenne (AnchorFree)Noam Tenne

1. Введение: Setup.ru — система быстрого создания сайта по шаблону.

1.1. Быстрое создание означает взрывной рост.

1.2. Так и есть — 300К зарегистрированных пользователей за год.

1.3. Взрывной рост означает необходимость создания горизонтально масштабируемой системы отдачи пользовательского контента.

1.4. Горизонтальная масштабируемость проще всего достигается публикацией в виде статического контента.

1.5. Горизонтальное масштабирование означает ориентацию на дешевое (относительно) железо.

2. Основная часть: неочевидные грабли.

2.1. Байка про неочевидные проблемы из собственного опыта.

2.1.1. 300К пользователей создали 300К сайтов по шаблонам. Шаблоны эти не слишком простые — иначе кого они порадуют?!

2.1.2. Не слишком простой шаблон означает примерно 20 файлов типа картинка/js/css на каждый сайт.

2.1.3. Разбивка по директориям нескольких уровней для ускорения поиска файла на файловой системе.

2.1.4. Результат: 6М файлов, распределенных по 6М директорий. Поиск файла на файловой системе происходит быстро, отдача происходит быстро, все довольны.

2.2. Однако: чемодан без ручки.

2.2.1. Дешевый SATA жесткий диск — 80 iops.

2.2.2. 12М files / 80 iops = 6 часов на обход дерева директорий, 20 часов на клонирование.

2.2.3. Файловый кэш малоэффективен из-за большого объема данных: каждая директория занимает 4К, 6М * 4К = 24Г.

2.2.4. Результат: хранить и отдавать можем, управлять — нет.

2.3. Поиск решения.

2.3.1. Источник проблемы — иерархическая файловая система.

2.3.2. Решение проблемы — индексированная файловая система.

2.4. СУБД как индексированная файловая система.

2.4.1. Опробованы.

2.4.2. Hypertable: быстр, но падуч.

2.4.3. PostgeSQL: стабилен и предоставляет stream-интерфейс к blob.

2.4.4. Выбран PostgeSQL.

2.4.4.1. База с метаинформацией — 800М.

2.4.4.2. База с контентом — 500Г.

2.4.4.3. Результаты нагрузочного тестирования.

3. Выводы: планирование управления данными — это очень важно.

Золотой спонсор

  • Parallels

Генеральный интернет-партнёр

  • Mail.Ru Group

Серебрянный партнёр

  • http://www.google.com/

Официальный регистратор

  • REG.RU

Серебряный спонсор

  • https://www.db.com/russia/index_ru.htm

Серебряный спонсор

  • Вadoo

Спонсор

  • http://www.1c-bitrix.ru/

Спонсор

  • http://express42.com/

Технический партнёр

  • Филанко

Генеральный медиа-партнёр

  • http://www.bfm.ru/

Генеральный информационный партнёр

  • Xakep.ru

Генеральный HR-партнёр

  • HeadHunter

Генеральный рекламный партнёр

  • http://kavanga.ru/

Книжный партнёр

  • Манн, Иванов и Фербер

Фри-ланс партнёр

  • http://www.free-lance.ru/

Погодный партнёр

  • GISMETEO / ГИСМЕТЕО

Информационная поддержка

По любым вопросам обращайтесь:
Программный комитет : Олег Бунин , +7 (916) 635-95-84
Организационный комитет : Олег Бунин , +7 (916) 635-95-84
Бухгалтерия и вопросы оплаты : , +7(495) 646-07-68

Почтовый адрес: 119180, Москва, Бродников пер., д. 7 стр. 1, ООО «Онтико»

Rambler's Top100
Рейтинг@Mail.ru