From 2201744eda7da53d652035c588dddd6bf9b06c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Henrique=20Ferreira=20de=20Freitas?= Date: Tue, 9 Apr 2024 16:28:44 -0300 Subject: [PATCH] Add application config option to configure mnesia copies The config parameter can be: disc_copies or ram_copies. And the default is disc_copies. --- src/canister.app.src | 4 +++- src/canister.erl | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/canister.app.src b/src/canister.app.src index 4004798..2a80e78 100644 --- a/src/canister.app.src +++ b/src/canister.app.src @@ -11,7 +11,9 @@ {included_applications, [ mnesia ]}, - {env,[]}, + {env,[ + {mnesia_table_copies, disc} + ]}, {modules, []}, {licenses, ["MIT"]}, diff --git a/src/canister.erl b/src/canister.erl index dd80b56..eaf25fe 100644 --- a/src/canister.erl +++ b/src/canister.erl @@ -45,8 +45,12 @@ init_tables() -> init_table(canister_times, record_info(fields, canister_times)). init_table(Table, Fields) -> + MnesiaCopies = case application:get_env(canister, mnesia_table_copies, disc) of + disc -> disc_copies; + ram -> ram_copies + end, Res = mnesia:create_table(Table, [ - {disc_copies, [node()]}, + {MnesiaCopies, [node()]}, {attributes, Fields} ]), canister_log:info("Initializing Table: ~p: ~p",[Table, Res]),