Size: a a a

2020 March 10

SP

Sergey Prokhorov in ErlangRus
а на новых counter или atomic такое нельзя сделать? Если чт оя в локах слабо шарю
источник

V

Vasilii Demidenok in ErlangRus
хм, надо кстати на них тоже посмотреть, спасибо что напомнил. Так-то у меня пока otp 20, но в целом я прикинул связку gen_server + ets для того чтобы сериализовать запись и чтобы не ходить в генсервер для чтения, но думал может что готовое есть.
источник

SP

Sergey Prokhorov in ErlangRus
Vasilii Demidenok
хм, надо кстати на них тоже посмотреть, спасибо что напомнил. Так-то у меня пока otp 20, но в целом я прикинул связку gen_server + ets для того чтобы сериализовать запись и чтобы не ходить в генсервер для чтения, но думал может что готовое есть.
У Ulf Wiger может что-то есть?
источник

V

Vasilii Demidenok in ErlangRus
у него был locks, но мне казалось он был слегка тяжеловесен, надо его еще раз глянуть
источник

ML

Maksim Lapshin in ErlangRus
Vasilii Demidenok
на всякий случай поясню что без классического "давайте у нас ген-сервер будет локом и все в него будут ломиться".
Будет проще тебе помочь, если ты расскажешь чего хочешь
источник

V

Vasilii Demidenok in ErlangRus
Есть ресурс к которому надо давать или shared read access, или exclusive write access. Для этого хочу заюзать fair rwlock. Поскольку сами операции выполняемые над shared объектом могут быть довольно короткими хотелось бы чтобы лок был максимально легковесным.
источник

ML

Maksim Lapshin in ErlangRus
Vasilii Demidenok
Есть ресурс к которому надо давать или shared read access, или exclusive write access. Для этого хочу заюзать fair rwlock. Поскольку сами операции выполняемые над shared объектом могут быть довольно короткими хотелось бы чтобы лок был максимально легковесным.
У нас похожей задачей занимается генсервер, которому явно сообщают о блокировании, разблокировании
источник

DF

Denis Fakhrtdinov in ErlangRus
Ну без отдельного процесса тут не обойтись.
источник

DF

Denis Fakhrtdinov in ErlangRus
Вопрос только в том как с ним работать.
источник

V

Vasilii Demidenok in ErlangRus
я пока вижу связку ets + gen_server, где для чтения не нужно ломиться в генсервер если уже кто-то взял лок на чтение
источник

AK

Aleksey Kluchnikov in ErlangRus
erlang же, значит велосипедить выгоднее всего
источник

V

Vasilii Demidenok in ErlangRus
другое дело не отследишь если писателей/читателей убивают, но для этого можно держать lock_agents, которые держат стейт того, что нужно конкретному процессу кто берёт локи
источник

DF

Denis Fakhrtdinov in ErlangRus
В крайнем случае можно порезать лок-сервер по хешу ресурса или  даже стартовать процесс на ресурс.
источник

V

Vasilii Demidenok in ErlangRus
ресурс один
источник

DF

Denis Fakhrtdinov in ErlangRus
Тогда можно резать по хешу запрашивающей  стороны.
источник

AK

Aleksey Kluchnikov in ErlangRus
Vasilii Demidenok
другое дело не отследишь если писателей/читателей убивают, но для этого можно держать lock_agents, которые держат стейт того, что нужно конкретному процессу кто берёт локи
линковать при локе
источник

DF

Denis Fakhrtdinov in ErlangRus
Но если локи сложные, то да, не выйдет.
источник

V

Vasilii Demidenok in ErlangRus
не понял что ты резать собрался Денис
источник

DF

Denis Fakhrtdinov in ErlangRus
Я так понял ты беспокоишься что этот процесс будет боттлнеком.
источник

V

Vasilii Demidenok in ErlangRus
лок на весь ресурс, по крайней мере пока ^^
источник