Репликация / обмен таблицами Mnesia - PullRequest
2 голосов
/ 23 сентября 2008

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

Ответы [ 2 ]

7 голосов
/ 23 сентября 2008

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

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

5 голосов
/ 23 сентября 2008

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

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

...