Репликация/совместное использование таблиц Mnesia

StackOverflow https://stackoverflow.com/questions/120065

  •  02-07-2019
  •  | 
  •  

Вопрос

Предположим, что у нас есть узлы Nerlang, на которых выполняется одно и то же приложение.Я хочу поделиться таблицей Mnesia T1 со всеми N Nodes, которые я не вижу проблем.Однако я хочу поделиться еще одной таблицей мнезии T2 с парами узлов.Я имею в виду, что содержимое T2 будет идентичным и воспроизводится для/с парой совместного использования.Другими словами, я хочу N/2 различного содержимого для таблицы T2.Возможно ли это с мнсезией, а не с переименованием T2 для каждой отдельной пары узлов?

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

Решение

Одна таблица — это всегда одна таблица, независимо от того, со сколькими узлами вы ее делите.Если вы хотите, чтобы пары узлов использовали одну таблицу, вам придется создать уникальную таблицу для каждой пары узлов.

Однако вы можете использовать одни и те же настройки (записи и т. д.) для всех этих таблиц, поэтому для этого не потребуется много работы.

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

Это можно сделать с помощью фрагментации таблицы mnesia, если использовать mnesia_frag_hash поведение обратного вызова.Это позволяет вам контролировать распределение ключей, и можно будет сконструировать ключи так, чтобы обратный вызов мог определить, какую пару узлов (и, следовательно, какой фрагмент) следует использовать.

Работает ли это в вашем конкретном случае, зависит от ваших шаблонов доступа и набора данных.Скорее всего, это довольно запутанный подход, и вам лучше будет просто использовать вместо этого другие имена таблиц.

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