[erlang-questions] Mnesia schema replicas

Dan Gudmundsson dgud@REDACTED
Mon Feb 8 10:13:17 CET 2016


Once upon a time, change_config didn't exist and you added new nodes with
add_table_copy, I do think that is still works.

The call to the mnesia:add_table_copy(schema, slaveNode, ram_copies),  must
be done
on the server before change_config is done.

/Dan

On Mon, Feb 8, 2016 at 9:59 AM Vimal Kumar <vimal7370@REDACTED> wrote:

> Hi Dan,
>
> On Mon, Feb 8, 2016 at 2:11 PM, Dan Gudmundsson <dgud@REDACTED> wrote:
>
>> When you start mnesia without calling create_schema, mnesia will create
>> an empty ram_copies schema for you.
>>
>> change_config(extra_db_nodes, ..) will connect and merge schema with the
>> server.
>>
>> What you probably want is to call mnesia:change_table_copy_type(schema,
>> disc_copies, node)) after change_config.
>>
>>
> True, and that is what I normally do. However, the documentation says:
>
> "The functions mnesia:add_table_copy/3 and mnesia:del_table_copy/2 can be
> used to add and delete replicas of the schema table."
>
> Is this statement correct, or a bug in documentation? Has anyone tried to
> add replica of schema table using mnesia:add_table_copy/3 and succeeded?
>
> Regards,
> Vimal
>
>
>> /Dan
>>
>> On Sun, Feb 7, 2016 at 7:52 PM Vimal Kumar <vimal7370@REDACTED> wrote:
>>
>>> Hello list,
>>>
>>> Ref (Section 6.6): http://erlang.org/doc/apps/mnesia/Mnesia_chap5.html
>>>
>>> -QUOTE-
>>> The functions mnesia:add_table_copy/3 and mnesia:del_table_copy/2 can be
>>> used to add and delete replicas of the schema table. Adding a node to the
>>> list of nodes where the schema is replicated affects the following:
>>>
>>> It allows other tables to be replicated to this node.
>>> It causes Mnesia to try to contact the node at startup of disc-full
>>> nodes.
>>> -END QUOTE-
>>>
>>> I can use the functions mnesia:add_table_copy/3 and
>>> mnesia:del_table_copy/2 to add and delete replicated copies of other tables
>>> successfully, but not table 'schema'. In fact I am not sure at what point
>>> in initialization process of a new mnesia node should this be run. Please
>>> assist.
>>>
>>> ------
>>> $ erl -mnesia -sname slave
>>> Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10]
>>> [hipe] [kernel-poll:false]
>>>
>>> Eshell V7.0  (abort with ^G)
>>> (slave@REDACTED)1> mnesia:start().
>>> ok
>>>
>>> (slave@REDACTED)3> mnesia:change_config(extra_db_nodes,
>>> ['server@REDACTED']).
>>> {ok,['server@REDACTED']}
>>>
>>> (slave@REDACTED)5> mnesia:add_table_copy(schema, node(),
>>> disc_copies).
>>> {aborted,{already_exists,schema,'slave@REDACTED'}}
>>> ------
>>>
>>> Regards,
>>> Vimal
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160208/2b49d11c/attachment.htm>


More information about the erlang-questions mailing list