Size: a a a

2020 December 19

ML

Maksim Lapshin in pro.elixir
Отлаживать lcnt на продакшне очень увлекательно, еще увлекательнее через год мучений понять, что надо было делать, как по otp без выпендрежа
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Отлаживать lcnt на продакшне очень увлекательно, еще увлекательнее через год мучений понять, что надо было делать, как по otp без выпендрежа
Ну переделать на один процесс будет несложно, я же будут к таблице через интерфейс обращаться, а не напрямую.
источник

Е

Евгений in pro.elixir
Ну и у меня нет такого хайлоада, так что вероятно разницу между параллельной записью и через генсервер вообще не будет заметно.
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Успехов :)
Но таки, наверное, я последую твоему совету и сделаю запись через один процесс. Не будет проблем пусть так и будет.
источник

Е

Евгений in pro.elixir
Заодно и легальный собственник нарисуется.
источник

LL

Lama Lover in pro.elixir
Евгений
Такой вот вопрос, товарищи.
Мне нужна публичная таблица ets. То есть все могут как читать, так и писать. Но насколько я понял даже в таком случае все равно нужен процесс-владелец.
Что в таком случае делать по феншую? Создать пустой генсервер, который будет все время дрыхнуть в ожидании сообщений, которые никогда не придут?
Есть библиотеки типа eternal, которые реализуют нетеряемые ets
Там есть несколько нюансов, которые они учитывают, но их сложно самому предусмотреть...
источник

AN

Alexey Novoselov in pro.elixir
вообще философия эрланга и эликсира let it crash! подразумевает, что ты можешь потерять хоть что - ets, сеть, жесткий диск, планку памяти... и в идеале приложение должно продолжать работать (возможно притормозив на рестарте). И принципы ОТР под это создавались. Так что желательно проектировать приложение так, что любая часть может рухнуть и это должно затронуть минимум остальных частей приложения.
источник

LL

Lama Lover in pro.elixir
Alexey Novoselov
вообще философия эрланга и эликсира let it crash! подразумевает, что ты можешь потерять хоть что - ets, сеть, жесткий диск, планку памяти... и в идеале приложение должно продолжать работать (возможно притормозив на рестарте). И принципы ОТР под это создавались. Так что желательно проектировать приложение так, что любая часть может рухнуть и это должно затронуть минимум остальных частей приложения.
Только вот количество :ets таблиц ограничено, поэтому терять их не хочется
источник

Е

Евгений in pro.elixir
Lama Lover
Есть библиотеки типа eternal, которые реализуют нетеряемые ets
Там есть несколько нюансов, которые они учитывают, но их сложно самому предусмотреть...
эм, по-моему ты ответил на какой-то другой вопрос, а не мой :)
источник

Е

Евгений in pro.elixir
Lama Lover
Только вот количество :ets таблиц ограничено, поэтому терять их не хочется
а разве при падении процесса собственника таблицы, таблица автоматически не удалится?
источник

LL

Lama Lover in pro.elixir
Евгений
эм, по-моему ты ответил на какой-то другой вопрос, а не мой :)
Тебе нужен процесс-владелец, вот используй для этого eternal, там уже реализоватн процесс владелец
источник

LL

Lama Lover in pro.elixir
Евгений
а разве при падении процесса собственника таблицы, таблица автоматически не удалится?
Нет
источник

AN

Alexey Novoselov in pro.elixir
Евгений
а разве при падении процесса собственника таблицы, таблица автоматически не удалится?
удалится, если ты наследника-владельца не указал
источник

Е

Евгений in pro.elixir
Хм. Тут врут?
Когда процесс-владелец завершает работу, его таблицы уничтожаются.
отсюда: https://elixirschool.com/ru/lessons/specifics/ets/
источник

AN

Alexey Novoselov in pro.elixir
можно указать наследника и таблица переедет к нему
источник

Е

Евгений in pro.elixir
Alexey Novoselov
можно указать наследника и таблица переедет к нему
но если все наследники подохнут, то таки таблица будет удалена, верно? Как тогда можно "потерять" таблицу?
источник

AN

Alexey Novoselov in pro.elixir
Евгений
но если все наследники подохнут, то таки таблица будет удалена, верно? Как тогда можно "потерять" таблицу?
что значит "потерять"? я так понимаю потерять=таблица удалилась
источник

Е

Евгений in pro.elixir
Alexey Novoselov
что значит "потерять"? я так понимаю потерять=таблица удалилась
я не знаю, что имел в виду @LamaLove
источник

AN

Alexey Novoselov in pro.elixir
наверно это же)
источник

Е

Евгений in pro.elixir
Переслано от Lama Lover
Только вот количество :ets таблиц ограничено, поэтому терять их не хочется
источник