2013-10-09 2 views
2

Я хотел бы знать, могу ли я запустить Mnesia без репликации. Скажем, у меня есть кластер узлов, один из узлов хост-сервера mNesia с дисковыми копиями - позволяет вызывать этот узел как mNode. Остальные узлы (Сервисные узлы) должны загрузить схему из mNode и не должны поддерживать локальную копию.Возможно ли запустить Mnesia без репликации в кластере

Я просмотрел документацию mNesia, но не смог найти способ сделать это.

ответ

2

Прочитать документацию http://www.erlang.org/doc/apps/mnesia/Mnesia_chap5.html#id76406 Раздел «Узлы без дисков» рассказывает о том, как реализовать этот прецедент. Ниже этапы настройки такой среды.

1. Start mNode 
erl -sname m_node -mnesia dir "/tmp/funky/" 

2.Start Service node 
erl -sname s1 

3. Create Cluster 
net_adm:ping('[email protected]_)'). 

4. On m_node run 
    mnesia:change_config(extra_db_nodes, ['[email protected]_']). 
    mnesia:create_table(funky, []). 

5. On s1 node 
    mnesia:start(). 
    mneisa:info(). 

    remote    = [funky]  // Points to Remote table funky on node m_node 
    ram_copies   = [schema] // Ram copy of schema is kept in each service node. 
2

Да! Вы создаете схему по всем узлам, но определяете таблицы только для копий RAM/диска на m_node. Таким образом, они могут достигать всех узлов, но только хранить данные на одном.

Смежные вопросы