2008-09-23 6 views
1

Supposons que nous ayons des nœuds N erlang, exécutant la même application. Je veux de partager une table Mnesia T1 avec tous les nœuds N, que je ne vois pas de problème. Cependant, je veux partager une autre table Mnesia T2 avec des paires de nœuds. Je veux dire le contenu de T2 sera identique et reproduit à/avec seulement la paire de partage. En d'autres termes, je veux N/2 contenus différents pour T2 table. Est-ce possible avec mnesia, pas avec le renommage T2 pour chaque paire distincte de noeuds ?Réplication/partage de table Mnesia

Répondre

4

Une table est toujours une table, quel que soit le nombre de nœuds avec lesquels vous la partagez. Si vous voulez que des paires de nœuds partagent une table, vous devez créer une table unique pour chaque paire de nœuds.

Vous pouvez utiliser les mêmes paramètres (enregistrements, etc) pour toutes ces tables, donc il ne devrait pas y avoir beaucoup plus de travail pour le faire.

6

Il est possible de le faire avec la fragmentation de table de Mnesia, si l'on utilise le comportement de rappel mnesia_frag_hash. Cela vous permet de contrôler la distribution des clés, et il serait possible de construire les clés de telle sorte que le rappel puisse déterminer quelle paire de nœuds (et donc quel fragment) doit être utilisée.

Que cela fonctionne ou non dans votre cas particulier dépend de vos modèles d'accès et de vos données. Les chances sont que c'est une approche assez compliquée, et que vous seriez mieux servi en utilisant simplement différents noms de tables à la place.

Questions connexes