chore(persistent_session): make more table creation parameterized

This commit is contained in:
Tobias Lindahl 2021-11-23 16:23:47 +01:00
parent 9eaedbf246
commit df2dda2e10
3 changed files with 15 additions and 9 deletions

View File

@ -83,9 +83,10 @@
init_db_backend() -> init_db_backend() ->
case is_store_enabled() of case is_store_enabled() of
true -> true ->
ok = emqx_trie:create_session_trie(), StorageType = storage_type(),
ok = emqx_session_router:create_router_tab(), ok = emqx_trie:create_session_trie(StorageType),
case storage_type() of ok = emqx_session_router:create_router_tab(StorageType),
case StorageType of
disc -> disc ->
emqx_persistent_session_mnesia_disc_backend:create_tables(), emqx_persistent_session_mnesia_disc_backend:create_tables(),
persistent_term:put(?db_backend_key, emqx_persistent_session_mnesia_disc_backend); persistent_term:put(?db_backend_key, emqx_persistent_session_mnesia_disc_backend);

View File

@ -25,7 +25,7 @@
-include_lib("snabbkaffe/include/snabbkaffe.hrl"). -include_lib("snabbkaffe/include/snabbkaffe.hrl").
-export([ create_init_tab/0 -export([ create_init_tab/0
, create_router_tab/0 , create_router_tab/1
, start_link/2]). , start_link/2]).
%% Route APIs %% Route APIs
@ -65,7 +65,7 @@
%% Mnesia bootstrap %% Mnesia bootstrap
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
create_router_tab() -> create_router_tab(disc) ->
ok = mria:create_table(?ROUTE_DISC_TAB, [ ok = mria:create_table(?ROUTE_DISC_TAB, [
{type, bag}, {type, bag},
{rlog_shard, ?ROUTE_SHARD}, {rlog_shard, ?ROUTE_SHARD},
@ -73,7 +73,8 @@ create_router_tab() ->
{record_name, route}, {record_name, route},
{attributes, record_info(fields, route)}, {attributes, record_info(fields, route)},
{storage_properties, [{ets, [{read_concurrency, true}, {storage_properties, [{ets, [{read_concurrency, true},
{write_concurrency, true}]}]}]), {write_concurrency, true}]}]}]);
create_router_tab(ram) ->
ok = mria:create_table(?ROUTE_RAM_TAB, [ ok = mria:create_table(?ROUTE_RAM_TAB, [
{type, bag}, {type, bag},
{rlog_shard, ?ROUTE_SHARD}, {rlog_shard, ?ROUTE_SHARD},

View File

@ -20,7 +20,7 @@
%% Mnesia bootstrap %% Mnesia bootstrap
-export([ mnesia/1 -export([ mnesia/1
, create_session_trie/0 , create_session_trie/1
]). ]).
-boot_mnesia({mnesia, [boot]}). -boot_mnesia({mnesia, [boot]}).
@ -76,7 +76,7 @@ mnesia(boot) ->
{type, ordered_set}, {type, ordered_set},
{storage_properties, StoreProps}]). {storage_properties, StoreProps}]).
create_session_trie() -> create_session_trie(disc) ->
StoreProps = [{ets, [{read_concurrency, true}, StoreProps = [{ets, [{read_concurrency, true},
{write_concurrency, true} {write_concurrency, true}
]}], ]}],
@ -86,7 +86,11 @@ create_session_trie() ->
{record_name, ?TRIE}, {record_name, ?TRIE},
{attributes, record_info(fields, ?TRIE)}, {attributes, record_info(fields, ?TRIE)},
{type, ordered_set}, {type, ordered_set},
{storage_properties, StoreProps}]), {storage_properties, StoreProps}]);
create_session_trie(ram) ->
StoreProps = [{ets, [{read_concurrency, true},
{write_concurrency, true}
]}],
ok = mria:create_table(?SESSION_RAM_TRIE, ok = mria:create_table(?SESSION_RAM_TRIE,
[{rlog_shard, ?ROUTE_SHARD}, [{rlog_shard, ?ROUTE_SHARD},
{storage, ram_copies}, {storage, ram_copies},