Size: a a a

2020 December 19

Е

Евгений in pro.elixir
То есть к этой таблице по идее должен иметь доступ некий огнраниченный круг процессов.
источник

Е

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

AM

Aliaksandr Martsinov... in pro.elixir
Мы тебя не осудим
источник

Е

Евгений in pro.elixir
Anton Lapshin
в моём понимании ets/dets - это для конкретных процессов внутри, а если надо что-то глобальное иметь с множественным доступом - mnesia или какие-нибудь внешние инструменты уже
Ну мнезия это все таки скорее про транзакции и распределенность, а мне достаточно внутринодовой доступности
источник

Е

Евгений in pro.elixir
Aliaksandr Martsinovich
Мы тебя не осудим
Я очень рад :)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Евгений
То есть к этой таблице по идее должен иметь доступ некий огнраниченный круг процессов.
А будут все равно все
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну и нахуя тогда извращаться
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Ну и нахуя тогда извращаться
Мне просто показалось, что процесс приложения довольно неожиданное место для создания таблицы, использование которой по дизайну ограничено определенными модулями.
источник

Е

Евгений in pro.elixir
В общем я понял. Какого-то феншуя не существует, все делают по-ситуации.
Можно считать вопрос закрытым. Всем спасибо.
источник

ML

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

ML

Maksim Lapshin in pro.elixir
Евгений
В этом собсно и смысл, чтобы увеличить пропускную способность. Если все гнать через генсервер, то этот может стать бутылочным горлышком.
Это очень ошибочное мнение.

Ты гипотетически без единой цифры предположил, что запись через публичную таблицу «быстрее» чем через процесс.

Проблемы две:

1. Define “быстрее». Это очень сложное явление
2. Ты не мерял.


Забегу вперед: мы отказались от публичной записи в ets и сделали все через процессы:
источник

ML

Maksim Lapshin in pro.elixir
Те чтение из публичной ets прижилось. Запись в публичную ets нет.

10 лет развития продукта, до 4,5 млн прокачиваемых записей в секунду через один сервер, чтобы дать ориентир по перфомансу
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Это очень ошибочное мнение.

Ты гипотетически без единой цифры предположил, что запись через публичную таблицу «быстрее» чем через процесс.

Проблемы две:

1. Define “быстрее». Это очень сложное явление
2. Ты не мерял.


Забегу вперед: мы отказались от публичной записи в ets и сделали все через процессы:
Думаю, сильно зависит от количества пишущих процессов.
источник

Е

Евгений in pro.elixir
У вас что только один процесс пишет?
источник

Е

Евгений in pro.elixir
Ну и что насчет параллельного чтения?
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Это очень ошибочное мнение.

Ты гипотетически без единой цифры предположил, что запись через публичную таблицу «быстрее» чем через процесс.

Проблемы две:

1. Define “быстрее». Это очень сложное явление
2. Ты не мерял.


Забегу вперед: мы отказались от публичной записи в ets и сделали все через процессы:
источник

ML

Maksim Lapshin in pro.elixir
Евгений
У вас что только один процесс пишет?
Пишут тысячи процессов. При таком режиме их конкурентный доступ к ets неконтролируемо встает колом и вы без анализа локов не сможете понять, почему ваша программа перестала грузить cpu и обслуживать
источник

ML

Maksim Lapshin in pro.elixir
Евгений
Ну и что насчет параллельного чтения?
Параллельное чтение норм.

Одна ets спокойно не создавая проблем выдает несколько десятков тысяч чтений на все ядра.

Но запись на практике лучше через один процесс
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Пишут тысячи процессов. При таком режиме их конкурентный доступ к ets неконтролируемо встает колом и вы без анализа локов не сможете понять, почему ваша программа перестала грузить cpu и обслуживать
Вот именно. У вас достаточно нестандартная ситуация, по моему скромному. В моем случае писать будет в худшем случае менее десятка процессов и довольно редко, а читать будут вероятно сотни и постоянно.
источник

ML

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