Erlang – лекарство при высоких нагрузках
Александр Дубовиков
Агнер Краруп Эрланг 1878 - 1929 г.г.
датский математик, статистик и инженер, основатель научного направления по изучению трафика в телекоммуникационных системах и теории массового обслуживания.
На самом деле системы на Erlang вовсе не масштабируемые и не надежные. Это системы на Java такие. Системы на Erlang просто непробиваемы как скалы.
Вячеслав Ахмечет
Yaws против Apache (Кб/cек. / нагрузка)
Аpache - локальная FS
Apache – NFS
Yaws – NFS
Apache умирает на 4000 конкурентных запросах
Yaws функционирует даже на 80000 конкурентных запросах
Erlang: Язык функционального программирования
Все вычисления – изолированные функции
Требования Конкурентные процессыSoft-RealtimeРаспределенная системаБольшие объемы кодаКомплексная функциональностьБеспрерывная работаHot UpdateОтказоустойчивость
КОНКУРЕНЦИЯ
Водить автомобиль просто, не правда ли?
Только если на трассе ты один!
Конкурентное программирование
Тяжеловесные процессыНеизолированные нити
Традиционные технологии
Erlang
Изолированные легкие процессы
Конкурентный подход Erlang
Большое количество процессовПолная изоляция процессовНикаких общих данныхПрозрачность места исполненияОбмен сообщениями
Легковесные процессы Erlang
Структура процесса
Обработка ошибок
Многоуровневая обработка ошибок
Пример: Интернет-мессенджер
Open Teleсom Platform – дизайн приложений
Линейная схема организации
Главное правило
First make it right,
then (if necessary) make it fast.
AND/OR Схема организации
MNESIA
Распределенная система управления базами данных для телекоммуникационных приложений и приложений с требованиями по близким к реальному времени скоростям получения информации.
MNESIA
Возможность переконфигурирования на лету.Таблицы могут быть перемещены или реплицированы на другой узел.Местоположение таблиц прозрачно для разработчика. Транзакции исполняются конкурентно.Транзакции могут выполняться как на одной машине, так и на всех сразу.
DISCO – MAP/REDUCE
Open Source Map/Reduce фрэймворк для распределенных вычислений.
Вычислительные функции пишутся на Python
Web-приложение мониторинга
Разработан в NOKIA Research Center!
DISCO – MAP/REDUCE
Инструментарий
Web-Серверы: Yaws, MochiWeb, Pico
Фрэймворки: erlyWeb, Eblog, ErlHive
Приложения: efcgi, Cacherl и множество других
http://cean.process-one.net
Comprehensive Erlang Archive Network
Success story
eJabberd
Что почитать
http://erlang.orghttp://forum.trapexit.org/http://www.reddit.com/search?q=erlanghttp://defun.ruhttp://erlang.dmitriid.com/
Google Erlang
Спасибо за внимание :)
Дубовиков Александр[email protected]
ООО “Дремучий лес”http://diphost.ru
ВОПРОСЫ?
Top Related