Mnesia работает поверх распределения erlang, а в распределении Erlang между любыми парами узлов имеется только одно соединение tcp / ip (обычно в полностью сетчатом расположении, поэтому одно соединение для каждой пары узлов). Вся связь rpc / internode будет происходить по этому распределительному соединению.
Кроме того, гарантируется, что порядок сообщений сохраняется между любой парой взаимодействующих процессов при распределении. Порядок между более чем двумя процессами не определен.
Mnesia дает вам много вариантов размещения данных. Если вам нужно постоянное хранилище на узле B, но обработка выполняется на узле A, у вас могут быть disc_only_copies ваших таблиц на B и ram_copies на узле A. Таким образом, приложения на узле A могут получить быстрый доступ к данным, и вы все равно получить надежные копии на узле B.
Я предполагаю, что сеть между A и B является надежной локальной сетью, которая редко собирается разделить (в противном случае вы собираетесь потратить кучу времени, чтобы вернуть mnesia в оперативный режим после раздела).
Если и A, и B используют mnesia, то я бы позволил mnesia сделать для меня все RPC - это то, для чего построена mnesia, и она имеет ряд оптимизаций. Я бы не катил свой собственный RPC или механизм распространения без очень веской причины.
Что касается тестов, то полностью зависит от вашего оборудования, схемы mnesia и сети между узлами (а также от шаблонов доступа к данным вашего приложения). Никто не может дать вам эти ориентиры, вы должны сами их запустить.
Что касается других механизмов RPC для доступа к mnesia, я не думаю, что есть какие-либо из готовых, но есть много библиотек RPC, которые вы могли бы использовать для представления API mnesia в сети с небольшими усилиями на вашем компьютере. часть.