Size: a a a

2020 July 06

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
мэйлбокс это очередь с несколькими продьюсерами, др. экторами, у которых есть свои мэйлбоксы, у которых очереди с экторами, у которых мэйлбоксы, ...
Это ты про gen_stage или что?
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
Это ты про gen_stage или что?
про actor model
источник

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
про actor model
Тогда mailbox это просто очередь сообщений, не больше. Никаких данных о том откуда эти сообщения в mailbox-е нет
И скинь, кстати, ссылку на статью, пожалуйста, мне тоже интересно почитать
источник

VK

Vyacheslav Konovalov in pro.elixir
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
Тогда mailbox это просто очередь сообщений, не больше. Никаких данных о том откуда эти сообщения в mailbox-е нет
И скинь, кстати, ссылку на статью, пожалуйста, мне тоже интересно почитать
все данные в самих мессенджах?
а обрабатывается очередь синхронно? (ну если явно новые процессы не создавать)
источник

AB

Alex Bubnov in pro.elixir
Vyacheslav Konovalov
про actor model
это была плохая аналогия
источник

PG

Pig Greenest in pro.elixir
данные будут в сообщениях если их добавить
источник

LL

Lama Lover in pro.elixir
В твоей цитате из статьи под словом queue видимо подразумевается структура данных distributed queue в которую могут lock-free писать/читать различные процессы
источник

LL

Lama Lover in pro.elixir
(что не верно, кстати говоря)
источник

AB

Alex Bubnov in pro.elixir
то есть, у тебя нет отдельно мэйлбокса и обработчика
источник

AB

Alex Bubnov in pro.elixir
актор - это и обработчик, и мейлбокс, у них один общий глобальный не-иерархический id.
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
В твоей цитате из статьи под словом queue видимо подразумевается структура данных distributed queue в которую могут lock-free писать/читать различные процессы
где можно подробнее об этом почитать?
источник

AB

Alex Bubnov in pro.elixir
тут нет разделения producer/consumer и какой-то иерархии по этому критерию
источник

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
все данные в самих мессенджах?
а обрабатывается очередь синхронно? (ну если явно новые процессы не создавать)
Очередь обрабатывается почти синхронно. Если точнее, при малой загрузке актора, читающего очередь, сообщения в очередь кладутся синхронно.
То есть, отправитель сначала получает лок на запись в очередь получателя, потом копирует сообщение в пространство памяти получателя, а потом уже вкладывает сообщение в очередь и отпускает лок

Если нагрузка сильная, то отправитель выделяет память под сообщение вне памяти получателя, а потом пытается забрать лок, чтобы положить это сообщение в очередь получателя
источник

VS

Vladimir Sekisov in pro.elixir
Lama Lover
Чат, хотел спросить одинок ли я в том, что иногда пишу
@type either(res) :: {:ok, res} | {:error, reason :: any()}
?
всегда так делаю ,
только
-type either(a, b) :: {ok, b} | {error, a}
и
-type maybe(a) :: nothing | {just, a}
во внутреннем коде,
чтобы не путаться с
ok, undefined, nil
источник

PG

Pig Greenest in pro.elixir
надо было left и right
источник

LL

Lama Lover in pro.elixir
Vladimir Sekisov
всегда так делаю ,
только
-type either(a, b) :: {ok, b} | {error, a}
и
-type maybe(a) :: nothing | {just, a}
во внутреннем коде,
чтобы не путаться с
ok, undefined, nil
Вот это уже лично для меня похоже на какое-то извращение {:ok, b} и maybe  с nothing слишком сильно пахнуть хаскеллем
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
Очередь обрабатывается почти синхронно. Если точнее, при малой загрузке актора, читающего очередь, сообщения в очередь кладутся синхронно.
То есть, отправитель сначала получает лок на запись в очередь получателя, потом копирует сообщение в пространство памяти получателя, а потом уже вкладывает сообщение в очередь и отпускает лок

Если нагрузка сильная, то отправитель выделяет память под сообщение вне памяти получателя, а потом пытается забрать лок, чтобы положить это сообщение в очередь получателя
спасибо за объяснение
источник

AB

Alex Bubnov in pro.elixir
Vyacheslav Konovalov
все данные в самих мессенджах?
а обрабатывается очередь синхронно? (ну если явно новые процессы не создавать)
а причем тут создание новых процессов?
источник

VK

Vyacheslav Konovalov in pro.elixir
Alex Bubnov
а причем тут создание новых процессов?
да я прост не знаю как actor устроен, поэтому глупые вопросы задаю)
источник