Прежде всего, поведение ETS по умолчанию является последовательным, как вы можете видеть из документации: Erlang ETS .
Он обеспечивает атомарность и изоляцию, а также множественные обновления / чтения, если они выполняются в одной и той же функции (помните, что в Erlang вызов функции приблизительно эквивалентен сокращению, единица измерения, которую планировщик Erlang использует для разделения времени между процессами, поэтому множественная функция ETS Операция может быть разделена на несколько частей, создавая возможное состояние гонки).
Если вас интересует архитектура ETS с несколькими узлами, возможно, вам стоит взглянуть на mnesia, если вы хотите одновременный доступ нескольких узлов OOTB к ETS: Mnesia .
(подсказка: я говорю конкретно о таблицах ram_copies, методах add_table_copy и change_config).
При этом я не понимаю проблемы с процессом (возможно, подкрепленной неназванной таблицей ets).
Я объясню лучше: главная проблема вашего проекта - это первое, основное предположение.
Все просто: у вас нет ни одного процесса записи!
Каждый раз, когда игрок берет объект, поражает игрока и т. Д., Он вызывает функцию без побочных эффектов, обновляющую игровое состояние, поэтому даже если у вас есть один процесс, управляющий игровым состоянием, он также должен сообщить другим игрокам клиентов эй, ты помнишь этот объект там? Просто забудь это!'; вот почему основная проблема во многих многопользовательских играх заключается в задержке: задержка, когда работа в сети не является основной проблемой, часто возникает из-за блокировки процедур отправки / получения.
С этой точки зрения, использование непосредственно таблицы ETS, использование постоянной таблицы, словаря процессов (BAD !!!) и т. Д. - это одно и то же, поскольку необходимо учитывать проблемы синхронизации, как в объектно-ориентированном программировании. языки, использующие разделяемую память (Java, все?).
В конце концов, вы должны рассмотреть только ОДНУ главную задачу разработки вашего приложения: согласованность.
После разработки согласованного приложения только тогда вам следует заняться настройкой производительности.
Надеюсь, это поможет!
Примечание: я говорил о чем-то вроде сервера MMORPG, потому что я думал, что вы говорите о чем-то подобном.