From a899dada120f059e524dcdc6e28fc44f926a73c8 Mon Sep 17 00:00:00 2001 From: Ery Lee Date: Thu, 16 Apr 2015 09:29:53 +0800 Subject: [PATCH] msg store --- apps/emqttd/src/emqttd_mnesia.erl | 2 +- ...qttd_retained.erl => emqttd_msg_store.erl} | 19 ++++++++----------- apps/emqttd/src/emqttd_pubsub.erl | 8 ++++---- apps/emqttd/src/emqttd_trie.erl | 10 +++++----- 4 files changed, 18 insertions(+), 21 deletions(-) rename apps/emqttd/src/{emqttd_retained.erl => emqttd_msg_store.erl} (94%) 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).