Question

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

Était-ce utile?

La solution

Une table est toujours une table, quel que soit le nombre de nœuds avec lesquels vous la partagez. Si vous souhaitez 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. Il ne devrait donc pas y avoir trop de travail pour le faire.

Autres conseils

Il est possible de faire cela avec la fragmentation de table de mnesia, si 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 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 votre ensemble de données. Il y a des chances pour que ce soit une approche assez compliquée et que vous seriez mieux servi simplement en utilisant des noms de tables différents.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top