mnesia_registry
Dump support for registries in erl_interface.
This module is usually part of the erl_interface
application, but is currently part of the Mnesia
application.
This module is mainly intended for internal use within OTP, but it has two functions that are exported for public use.
On C-nodes, erl_interface
has support for registry
tables. These tables reside in RAM on the C-node, but can also
be dumped into Mnesia
tables. By default, the dumping
of registry tables through erl_interface
causes a
corresponding Mnesia
table to be created with
mnesia_registry:create_table/1
, if necessary.
Tables that are created with these functions can be
administered as all other Mnesia
tables. They can be
included in backups, replicas can be added, and so on.
The tables are normal Mnesia
tables owned by the user
of the corresponding erl_interface
registries.
Functions
create_table(Tab) -> ok | exit(Reason)
A wrapper function for mnesia:create_table/2
,
which creates a table (if there is no existing table)
with an appropriate set of attributes
. The table
only resides on the local node and its storage type is
the same as the schema
table on the local node,
that is, {ram_copies,[node()]}
or
{disc_copies,[node()]}
.
This function is used by erl_interface
to
create the Mnesia
table if it does not already
exist.
create_table(Tab, TabDef) -> ok | exit(Reason)
A wrapper function for mnesia:create_table/2
,
which creates a table (if there is no existing table)
with an appropriate set of attributes
. The
attributes and TabDef
are forwarded to
mnesia:create_table/2
. For example, if the table
is to reside as disc_only_copies
on all nodes,
a call looks as follows:
TabDef = [{{disc_only_copies, node()|nodes()]}], mnesia_registry:create_table(my_reg, TabDef)