From aacdc5c2f7a8983bf69ba4d00c75947b3b7e5751 Mon Sep 17 00:00:00 2001 From: lafirest Date: Tue, 4 Jan 2022 14:40:11 +0800 Subject: [PATCH] fix(emqx_retainer): remove disc_only option --- apps/emqx_retainer/README.md | 4 +--- apps/emqx_retainer/etc/emqx_retainer.conf | 2 +- .../src/emqx_retainer_mnesia.erl | 22 +++++++++---------- .../src/emqx_retainer_schema.erl | 2 +- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/apps/emqx_retainer/README.md b/apps/emqx_retainer/README.md index 84d777bbc..b3065fa9c 100644 --- a/apps/emqx_retainer/README.md +++ b/apps/emqx_retainer/README.md @@ -13,10 +13,9 @@ etc/emqx_retainer.conf: ## Where to store the retained messages. ## Notice that all nodes in a cluster are to have the same storage_type. ## -## Value: ram | disc | disc_only +## Value: ram | disc ## - ram: memory only ## - disc: both memory and disc -## - disc_only: disc only ## ## Default: ram retainer.storage_type = ram @@ -56,4 +55,3 @@ Author ------ EMQ X Team - diff --git a/apps/emqx_retainer/etc/emqx_retainer.conf b/apps/emqx_retainer/etc/emqx_retainer.conf index 92dc62f24..5824186d0 100644 --- a/apps/emqx_retainer/etc/emqx_retainer.conf +++ b/apps/emqx_retainer/etc/emqx_retainer.conf @@ -74,7 +74,7 @@ emqx_retainer { type = built_in_database - ## storage_type: ram | disc | disc_only + ## storage_type: ram | disc storage_type = ram ## Maximum number of retained messages. 0 means no limit. diff --git a/apps/emqx_retainer/src/emqx_retainer_mnesia.erl b/apps/emqx_retainer/src/emqx_retainer_mnesia.erl index e5e347fdc..89db7108a 100644 --- a/apps/emqx_retainer/src/emqx_retainer_mnesia.erl +++ b/apps/emqx_retainer/src/emqx_retainer_mnesia.erl @@ -45,24 +45,22 @@ create_resource(#{storage_type := StorageType}) -> Copies = case StorageType of ram -> ram_copies; - disc -> disc_copies; - disc_only -> disc_only_copies + disc -> disc_copies end, - TableType = case StorageType of - disc_only -> set; - _ -> ordered_set - end, + StoreProps = [{ets, [compressed, {read_concurrency, true}, {write_concurrency, true}]}, {dets, [{auto_save, 1000}]}], + ok = mria:create_table(?TAB, [ - {type, TableType}, - {rlog_shard, ?RETAINER_SHARD}, - {storage, Copies}, - {record_name, retained}, - {attributes, record_info(fields, retained)}, - {storage_properties, StoreProps}]), + {type, ordered_set}, + {rlog_shard, ?RETAINER_SHARD}, + {storage, Copies}, + {record_name, retained}, + {attributes, record_info(fields, retained)}, + {storage_properties, StoreProps} + ]), ok = mria_rlog:wait_for_shards([?RETAINER_SHARD], infinity), case mnesia:table_info(?TAB, storage_type) of Copies -> ok; diff --git a/apps/emqx_retainer/src/emqx_retainer_schema.erl b/apps/emqx_retainer/src/emqx_retainer_schema.erl index e1fa8373a..d6bc598a7 100644 --- a/apps/emqx_retainer/src/emqx_retainer_schema.erl +++ b/apps/emqx_retainer/src/emqx_retainer_schema.erl @@ -20,7 +20,7 @@ fields("emqx_retainer") -> fields(mnesia_config) -> [ {type, ?TYPE(hoconsc:union([built_in_database]))} - , {storage_type, sc(hoconsc:union([ram, disc, disc_only]), ram)} + , {storage_type, sc(hoconsc:union([ram, disc]), ram)} , {max_retained_messages, sc(integer(), 0, fun is_pos_integer/1)} ];