Pergunta

Suponha que temos N nós erlang, correndo mesmo aplicativo. eu quero para compartilhar um T1 mesa mnesia com todos os N nós, que não vejo problema. No entanto, eu quero compartilhar outra mnesia tabela T2 com pares de nós. I significa que o conteúdo de T2 será idêntica e replicado para / com única partilha par. Em outras palavras, eu quero N / 2 conteúdos diferentes para tabela T2. Isso é possível com mnesia, não com renomeando T2 para cada par distinto de nós?

Foi útil?

Solução

Uma mesa é sempre uma tabela, não importa quantos nós você compartilhar com ele. Se você quiser pares de nós que compartilham de uma mesa, você teria que criar uma tabela única para cada par de nós.

Você pode usar as mesmas configurações (registros etc.) para todas as tabelas embora, por isso não deve haver muito mais trabalho para fazê-lo.

Outras dicas

É possível fazer isso com a fragmentação da tabela das mnesia, se um faz uso do comportamento mnesia_frag_hash callback. Isto permite controlar a distribuição de teclas, e que seria possível construir as chaves de modo a que a chamada de retorno é capaz de determinar qual o par de nós (e, portanto, qual fragmento) deve ser usado.

Quer ou não isso funciona em seu caso particular depende de seus padrões de acesso e conjunto de dados. As chances são de que ele é uma abordagem muito complicado, e que você estaria melhor servido por simplesmente usando diferentes nomes de tabela em vez disso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top