(Untitled)

Aug 02, 2012 21:41

Помимо всего прочего эрланг крут тем не только, что он позволяет релоадить собственный код на лету, а так же тем, что он позволяет релоадить C-шные экстеншны на лету.
В отличие от фреймворков на С =)

Leave a comment

and_cesbo August 3 2012, 03:05:55 UTC
На сколько востребована эта фишка? (перезагрузка кода)

Reply

demmonoid August 3 2012, 05:07:03 UTC
Ну, гугл делает релизы по 100500 раз на дню. Востребована?

Reply

krasin August 3 2012, 08:40:29 UTC
гугл тупо прибивает процессы. Если изначально было, скажем, 10 дублирующих процессов, то процедура обновления будет прибивать один за другим в режиме: прибил старый, запустил новый, подождал некоторое время и если автоматика считает, что процесс стартовал успешно, переходит к следующему.

Reply

demmonoid August 3 2012, 08:49:27 UTC
А если при старте каждой машины нужно в память загрузить кучу каких-то данных? У нас, например, есть приложение, каждая нода которого стартует порядка 2-3 часов, выковыривая данные с диска и загружая их в память. А если этих нод несколько сотен хотя бы, сколько релизов в день получается сделать?

Reply

krasin August 3 2012, 17:59:18 UTC
Если за две или три минуты процесс не загрузился, update считается неуспешным, и автоматически запускается старая версия. Т.е. такой ситуации, что нода грузится 3 часа не бывает.

Однако, это связано с тем, что приложение может пользоваться всякими сервисами в том же датацентре, которые данные могут отдавать быстро и с малой задержкой. Т.е. загружать эти данные именно к себе в память может и не потребоваться.

Reply

demmonoid August 3 2012, 20:48:50 UTC
Ясно. Кстати, у нас эту же медленно загружающуюся штуку используют в том числе и ad-серверы, но у них данных не так много. Интересно бы посмотреть, как эта часть у гугла реализована, но увы :)

Причем, если подумать, то медленность этого in-memory хранилища у нас обусловлена именно особенностями копирования памяти в эрланге.

Иронично :)

Reply

levgem August 4 2012, 06:48:43 UTC
А почему это у тебя in-memory медленный?

Reply

demmonoid August 4 2012, 08:01:26 UTC
Он сам по себе очень быстрый и вообще без копирования памяти - но большие объемы таких данных загружаются в память очень долго. И после загрузки он фактически в readonly-режиме, с очень редкими обновлениями.

Reply

levgem August 4 2012, 06:51:35 UTC
востребовано. Пишешь, например, парсер MPEG-TS, дисконнектить то всё не хочется.

Reply


Leave a comment

Up