Size: a a a

Scala User Group

2020 May 18

λ

λoλegΥch in Scala User Group
а потом Agent удалили
источник

λ

λoλegΥch in Scala User Group
типа идеология в том что актор может быть на любой машине а Agent этого не позволяет
источник

λ

λoλegΥch in Scala User Group
но ни в одном проекте этого не юзалос
источник

λ

λoλegΥch in Scala User Group
а если б и юзалось я представляю проблемы с локалити и редеплоями
источник

λ

λoλegΥch in Scala User Group
в ерланге может это и катит потому что там и так все медленно
источник

P

Python in Scala User Group
λoλegΥch
инмемори стейт на акторах легко пилить
Там довольно тяжёлый компромисс выходит. Типа для контроля изменений состояний - офигенная штука, получаешь очередь запросов на изменения, порядок соблюдается, всё такое.

Но чтение этого изменения становится ужасно тяжеловесным, особенно когда тебя не интересует именно последнее состояние, а eventually consistent.

Люди делают всякие извращения типа выгрузки состояния при изменении в eventually consistent переменную и всё такое. Бррр...

А в Ref тупо делаешь get 😊
источник

λ

λoλegΥch in Scala User Group
ну
источник

AC

Alexandr Chigrinets in Scala User Group
Python
Там довольно тяжёлый компромисс выходит. Типа для контроля изменений состояний - офигенная штука, получаешь очередь запросов на изменения, порядок соблюдается, всё такое.

Но чтение этого изменения становится ужасно тяжеловесным, особенно когда тебя не интересует именно последнее состояние, а eventually consistent.

Люди делают всякие извращения типа выгрузки состояния при изменении в eventually consistent переменную и всё такое. Бррр...

А в Ref тупо делаешь get 😊
Это вроде и есть суть CQRS
источник

P

Python in Scala User Group
Alexandr Chigrinets
Это вроде и есть суть CQRS
Просто сходу этого нет. Чтобы получить последнее состояние из актора, ты посылаешь ему запрос и ждёшь ответа, а актор по-умолчанию эти ответы складывает в очередь и обрабатывает в одном потоке.

Это жестко, особенно когда в машине 56 физических ядер и стопятсот клиентов ждут ответа 😊
источник

AC

Alexandr Chigrinets in Scala User Group
Правильно, ask всегда считался антипаттерном
источник

P

Python in Scala User Group
Решается выгрузкой данных переодически в какую-нибудь volatile переменную (или Atomic, или Ref), в которую могут все потоки одновременно ломиться.
источник

D

Dima Kubitskiy in Scala User Group
"все потоки", "ждут ответа" -> звучит как попытка подстроить инструмент под другие задачи, под которые он вообще не предназначен
источник

P

Python in Scala User Group
Dima Kubitskiy
"все потоки", "ждут ответа" -> звучит как попытка подстроить инструмент под другие задачи, под которые он вообще не предназначен
Нормально он предназначен. Просто он низкоуровневый. Там надо понимать для чего он нужен и чего он конкретно даёт по сравнению с тем же Ref.

А даёт он возможность запросить у актора изменение состояния и дальше уйти по своим делам. В отличии от Ref который будет крутить CAS циклы и жрать CPU.

Но это довольно редко где нужно.
источник

OO

Oleksandr Olgashko in Scala User Group
Python
Нормально он предназначен. Просто он низкоуровневый. Там надо понимать для чего он нужен и чего он конкретно даёт по сравнению с тем же Ref.

А даёт он возможность запросить у актора изменение состояния и дальше уйти по своим делам. В отличии от Ref который будет крутить CAS циклы и жрать CPU.

Но это довольно редко где нужно.
ну как редко где, сделать не-эвенчуал консинтентность таким (пачка акторов и чтение из волатайл переменной) подходом будет непросто
источник

C

Const in Scala User Group
Подскажите кошерный логгер. Ничего суперского не надо, самый массовый чем все пользуются?
источник

ЮБ

Юрий Бадальянц... in Scala User Group
slf4j
источник

C

Const in Scala User Group
прямо так без оберток? даже не scala-logging?
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Вопрос был про самый массовый. Обычно с ним юзают logback
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Возможно, стоит уточнить вопрос
источник

C

Const in Scala User Group
в скала проектах самый популярный логгер это slf4j+logback?
источник