diff --git a/apps/emqttd/src/emqttd_mnesia.erl b/apps/emqttd/src/emqttd_mnesia.erl index a06cd1b64..fbd74d74b 100644 --- a/apps/emqttd/src/emqttd_mnesia.erl +++ b/apps/emqttd/src/emqttd_mnesia.erl @@ -87,7 +87,7 @@ init_tables() -> %%------------------------------------------------------------------------------ create_tables() -> %% trie tree tables - %%TODO: should use module 'mnesia_create' attribute... + %%TODO: should use module 'boot_mnesia' attribute... ok = emqttd_trie:mnesia(create), ok = emqttd_pubsub:mnesia(create), %% TODO: retained messages, this table should not be copied... diff --git a/apps/emqttd/src/emqttd_retained.erl b/apps/emqttd/src/emqttd_msg_store.erl similarity index 94% rename from apps/emqttd/src/emqttd_retained.erl rename to apps/emqttd/src/emqttd_msg_store.erl index 5f48fce8f..a42f02170 100644 --- a/apps/emqttd/src/emqttd_retained.erl +++ b/apps/emqttd/src/emqttd_msg_store.erl @@ -20,13 +20,11 @@ %%% SOFTWARE. %%%----------------------------------------------------------------------------- %%% @doc -%%% emqttd retained messages. +%%% MQTT retained message storage. %%% -%%% TODO: need to redesign later. -%%% %%% @end %%%----------------------------------------------------------------------------- --module(emqttd_retained). +-module(emqttd_msg_store). -author('feng@slimpp.io'). @@ -35,23 +33,22 @@ %% Mnesia callbacks -export([mnesia/1]). --mnesia_create({mnesia, [create]}). --mnesia_replicate({mnesia, [replicate]}). +-boot_mnesia({mnesia, [boot]}). +-copy_mnesia({mnesia, [copy]}). %% API Function Exports --export([retain/1, redeliver/2]). +-export([retain/1, read/2, delete/1]). -mnesia(create) -> +mnesia(boot) -> ok = emqttd_mnesia:create_table(message, [ {type, ordered_set}, {ram_copies, [node()]}, {record_name, mqtt_message}, {attributes, record_info(fields, mqtt_message)}]); -mnesia(replicate) -> + +mnesia(copy) -> ok = emqttd_mnesia:copy_table(message). - - %% @doc retain message. -spec retain(mqtt_message()) -> ok | ignore. retain(#mqtt_message{retain = false}) -> ignore; diff --git a/apps/emqttd/src/emqttd_pubsub.erl b/apps/emqttd/src/emqttd_pubsub.erl index c5a6916c4..c1177a6ee 100644 --- a/apps/emqttd/src/emqttd_pubsub.erl +++ b/apps/emqttd/src/emqttd_pubsub.erl @@ -41,8 +41,8 @@ %% Mnesia Callbacks -export([mnesia/1]). --mnesia_create({mnesia, [create]}). --mnesia_replicate({mnesia, [replicate]}). +-boot_mnesia({mnesia, [boot]}). +-copy_mnesia({mnesia, [copy]}). %% API Exports -export([start_link/0]). @@ -63,7 +63,7 @@ %%%============================================================================= %%% Mnesia callbacks %%%============================================================================= -mnesia(create) -> +mnesia(boot) -> %% topic table ok = emqttd_mnesia:create_table(topic, [ {type, bag}, @@ -79,7 +79,7 @@ mnesia(create) -> {index, [subpid]}, {local_content, true}]); -mnesia(replicate) -> +mnesia(copy) -> ok = emqttd_mnesia:copy_table(topic), ok = emqttd_mnesia:copy_table(subscriber). diff --git a/apps/emqttd/src/emqttd_trie.erl b/apps/emqttd/src/emqttd_trie.erl index 6938bb1a5..b87cb23d2 100644 --- a/apps/emqttd/src/emqttd_trie.erl +++ b/apps/emqttd/src/emqttd_trie.erl @@ -33,8 +33,8 @@ %% Mnesia Callbacks -export([mnesia/1]). --mnesia_create({mnesia, [create]}). --mnesia_replicate({mnesia, [replicate]}). +-boot_mnesia({mnesia, [boot]}). +-copy_mnesia({mnesia, [copy]}). %% Trie API -export([insert/1, find/1, delete/1]). @@ -67,8 +67,8 @@ %% %% @end %%------------------------------------------------------------------------------ --spec mnesia(create | replicate) -> ok. -mnesia(create) -> +-spec mnesia(boot | copy) -> ok. +mnesia(boot) -> %% trie tree tables ok = emqttd_mnesia:create_table(trie, [ {ram_copies, [node()]}, @@ -85,7 +85,7 @@ mnesia(create) -> %% %% @end %%------------------------------------------------------------------------------ -mnesia(replicate) -> +mnesia(copy) -> ok = emqttd_mnesia:copy_table(trie), ok = emqttd_mnesia:copy_table(trie_node).