Вопрос

У меня есть сервер ejabberd с большим количеством работающих пользовательских модулей.У меня есть несколько таблиц мнезии, и я знаю, что их можно легко скопировать между узлами без каких-либо изменений в коде.Мне было интересно, есть ли аналогичный способ с таблицами ets?

В идеале было бы неплохо иметь возможность иметь несколько машин, работающих с одинаковыми данными mnesia и ets, без необходимости конвертировать мои таблицы ets в таблицы mnesia.(И, таким образом, переписывание большого количества кода.)

Хотя у меня был вызов rpc:call для таблиц ets для каждого узла, но я не был уверен, какое влияние это окажет на производительность.

Если у кого-то есть ответы, пожалуйста, дайте мне знать.

Это было полезно?

Решение

Нет, содержимое таблицы ETS не может быть воспроизведено для вас.

Репликация (и безопасность транзакций) - это функция, которую вводит приложение базы данных MNESIA, ее реализация использует ETS для таблиц RAM_ONLY.

Другие советы

Вы можете использовать rpc:call для таблиц ets на удаленном узле.

Но весь смысл мнезии заключается в решении той проблемы, с которой вы столкнулись: репликация

Преобразование вашего кода в mnesia — хорошая инвестиция в будущее.И хотя это рискованно, вы всегда можете использовать mnesia:ets() для минимизации изменения кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top