[Erlang] Статья о языке от Jim Larson
От: Курилка Россия http://kirya.narod.ru/
Дата: 09.10.08 06:58
Оценка: 83 (5)
В сентябрьском номере ACM Queue озаглавленном "The Concurrency Problem" Jim Larson, разработчик из гугла (а также разработчик движка репликации Amazon SimpleDB), опубликовал хорошую вводную статью в Erlang под названием "Erlang for Concurrent Programming"
P.S. Дизайн сайта журнала довольно странный, как дать ссылку на саму статью я так и не понял.
erlang
Re: [Erlang] Статья о языке от Jim Larson
От: Булат Россия  
Дата: 09.10.08 17:21
Оценка: 13 (2)
Здравствуйте, Курилка, Вы писали:

К>P.S. Дизайн сайта журнала довольно странный, как дать ссылку на саму статью я так и не понял.


Читать с сайта неудобно, но можно выкачать журнал в формате PDF целиком.
Re: [Erlang] Статья о языке от Jim Larson
От: cadet354 Россия
Дата: 10.10.08 06:18
Оценка:
Здравствуйте, Курилка, Вы писали:

спасибо за ссылку,прочитал статью, есть вопрос, нельзя ли обьяснить как в badsequence получился race,
и как это поймать на тестировании,что такое вообще:

injecting timing jitter

?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Erlang] Статья о языке от Jim Larson
От: Курилка Россия http://kirya.narod.ru/
Дата: 10.10.08 06:33
Оценка: 4 (1)
Здравствуйте, cadet354, Вы писали:

C>Здравствуйте, Курилка, Вы писали:


C>спасибо за ссылку,прочитал статью, есть вопрос, нельзя ли обьяснить как в badsequence получился race,

Там же в комменте написано:

write(Sequence, N + 1), % BAD: race!

Проблема в том, что get_next/1 происходит "снаружи" сервера, т.е. если 2 клиента одновременно обратятся, то можем получить, что вернётся 2 раза одно и то же число (ну и запишется тоже). В "обычном" многопоточном коде это решается локами, тут же это должна быть операция самого сервера (как в sequence2.erl).

C>и как это поймать на тестировании,что такое вообще:

C>

C>injecting timing jitter

C>?

"гонки" ловятся очень плохо
А jitter — это типа "дрожание" (т.е. получается что-то аля "добавление временного разброса"), т.е. надо делать много параллельных запросов и интервалы между ними должны быть случайными (дабы проверить как можно больше комбинаций) .
Re[3]: [Erlang] Статья о языке от Jim Larson
От: cadet354 Россия
Дата: 10.10.08 07:11
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Там же в комменте написано:

да вижу это
К>

К>write(Sequence, N + 1), % BAD: race!

К>Проблема в том, что get_next/1 происходит "снаружи" сервера, т.е. если 2 клиента одновременно обратятся, то можем получить, что вернётся 2 раза одно и то же число (ну и запишется тоже). В "обычном" многопоточном коде это решается локами, тут же это должна быть операция самого сервера (как в sequence2.erl).
теперь понятно, спасибо, просто я смотрел с точки зрения клиента, раз он прочитал N (N=read(Sequence)), то и вернет N.
а тут речь про гонку на самом сервере.

К>"гонки" ловятся очень плохо

тут скорее
К>А jitter — это типа "дрожание" (т.е. получается что-то аля "добавление временного разброса"), т.е. надо делать много параллельных запросов и интервалы между ними должны быть случайными (дабы проверить как можно больше комбинаций) .
понятно, еще раз спасибо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.