<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=ADD-2010%3A_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%91%D0%B5%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA%D0%B0%2F%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3_%D0%BD%D0%B0_Erlang</id>
		<title>ADD-2010: отчет Игоря Беспальчука/Видеохостинг на Erlang - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=ADD-2010%3A_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%91%D0%B5%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA%D0%B0%2F%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3_%D0%BD%D0%B0_Erlang"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=ADD-2010:_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%91%D0%B5%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA%D0%B0/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3_%D0%BD%D0%B0_Erlang&amp;action=history"/>
		<updated>2026-08-22T02:59:09Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=ADD-2010:_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%91%D0%B5%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA%D0%B0/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3_%D0%BD%D0%B0_Erlang&amp;diff=32169&amp;oldid=prev</id>
		<title>StasFomin: Новая страница: «;Разработка видеохостинга на Erlang (Максим Лапшин на ADD-2010)  Максим Лапшин рассказывал о то...»</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=ADD-2010:_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%91%D0%B5%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA%D0%B0/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3_%D0%BD%D0%B0_Erlang&amp;diff=32169&amp;oldid=prev"/>
				<updated>2011-11-16T17:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «;&lt;a href=&quot;/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_Erlang_(%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%9B%D0%B0%D0%BF%D1%88%D0%B8%D0%BD_%D0%BD%D0%B0_ADD-2010)&quot; title=&quot;Разработка видеохостинга на Erlang (Максим Лапшин на ADD-2010)&quot;&gt;Разработка видеохостинга на Erlang (Максим Лапшин на ADD-2010)&lt;/a&gt;  Максим Лапшин рассказывал о то...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;[[Разработка видеохостинга на Erlang (Максим Лапшин на ADD-2010)]]&lt;br /&gt;
&lt;br /&gt;
Максим Лапшин рассказывал о том, как он написал сервер видеостриминга Erlyvideo на Erlang, и почему этот язык оказался наилучшим средством для этой специфической задачи. Доклад мне очень понравился, хотя презентация была унылая – белый фон, черные bullet'ы. Максим докладывал четко, понятно, без лишней воды и не занудно. Фактически, слайды были и не нужны.&lt;br /&gt;
&lt;br /&gt;
Специфика задачи видеостриминга состоит в том, что подключенному клиенту нужно обеспечить непрерывное вещание в течение нескольких часов или даже суток. При этом уже нельзя относится к управлению памятью и устойчивости сервиса так же наплевательски, как в случае простого веб-сайта, где легко можно recycle'ить рабочие процессы на случай, если где-то имеет место утечка.&lt;br /&gt;
&lt;br /&gt;
Сервер нельзя останавливать, у него не должна течь память, он должен масштабироваться и обслуживать большое число клиентов. При этом его еще нужно как-то обновлять. А если все-таки с каким-то клиентом случится что-то нехорошее – то другие не должны пострадать. Задача звучит достаточно внушительно, правда?&lt;br /&gt;
&lt;br /&gt;
Так вот оказывается, что Erlang одной своей природой и стандартным комплектом поставки эту сложную задачу наполовину решает сразу, причем радикально.&lt;br /&gt;
&lt;br /&gt;
Главная особенность Erlang’а состоит в том, что для параллельно исполняющихся потоков не бывает общей памяти. Просто не бывает. Потоки общаются между собой исключительно посылкой и приемом сообщений. Это в принципе убирает главные проблемы многопоточности, известные из традиционных языков.&lt;br /&gt;
&lt;br /&gt;
Далее, как следствие, вся, абсолютно вся выделенная память всегда принадлежит одному потоку, который, собственно, ее и запросил. А это, в свою очередь, означает, что если с одним потоком что-то пошло не так, то его можно относительно безболезненно убить и освободить всю его память. И это не повлияет на работу остальных потоков. В стандартный комплект поставки Erlang входит весьма продвинутый инструментарий для такого рода анализа и наладки программ.&lt;br /&gt;
&lt;br /&gt;
И, наконец, Erlang предоставляет очень редкую возможность обновления выполняемого кода на лету. В случае с сервером стриминга Erlyvideo это означает, что функционал может быть обновлен без прерывания трансляции, причем не только для новых клиентов, но и для тех, которые уже подключены и принимают поток видео.&lt;br /&gt;
&lt;br /&gt;
Таким образом, Erlang хорошо подходит для организации устойчивых информационных сервисов, работающих с большим числом клиентов, под нагрузкой. Некоторый минус (для меня) состоит в том, что Erlang – динамически типизированный язык. Не люблю я их почему-то. Максим говорил, что в его случае это не было проблемой, хотя для реализации сложной бизнес-логики типа банковской он бы тоже поостерегся выбирать Erlang и предпочел бы язык со статической системой типов.&lt;br /&gt;
&lt;br /&gt;
Напоследок было отмечено, что Erlang сам по себе язык очень простой и когда Максиму потребовалось найти разработчика, он нашел его очень быстро. Это был разработчик на Java, который освоил Erlang в считанные дни.&lt;/div&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	</feed>