From 1895b7740bf4540320f43b9a5283381169a817a4 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Mon, 30 Jan 2017 16:43:47 +0100 Subject: Start permdb with options from config. For starting primary merge (dist phase) in read-only mode. --- src/fsdb.erl | 6 +++--- src/perm.erl | 5 +++-- src/permdb.erl | 10 ++++------ test/permdbtest.erl | 4 ++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/fsdb.erl b/src/fsdb.erl index 4a85cdc..d644128 100644 --- a/src/fsdb.erl +++ b/src/fsdb.erl @@ -1,10 +1,10 @@ -%%% Copyright (c) 2014-2015, NORDUnet A/S. +%%% Copyright (c) 2014-2015,2017, NORDUnet A/S. %%% See LICENSE for licensing information. -module(fsdb). -behaviour(gen_server). --export([start_link/2, stop/1, init_module/0]). +-export([start_link/3, stop/1, init_module/0]). -export([getvalue/2, addvalue/3, commit/1, commit/2]). %% gen_server callbacks. @@ -24,7 +24,7 @@ init_module() -> end, ets:new(?DIRECTORY_TABLE, [set, public, named_table]). -start_link(Name, Filename) -> +start_link(Name, Filename, _Options) -> gen_server:start_link({local, Name}, ?MODULE, [Name, Filename], []). diff --git a/src/perm.erl b/src/perm.erl index 2e12fdf..e571d23 100644 --- a/src/perm.erl +++ b/src/perm.erl @@ -1,4 +1,4 @@ -%%% Copyright (c) 2015, NORDUnet A/S. +%%% Copyright (c) 2015,2017, NORDUnet A/S. %%% See LICENSE for licensing information. -module(perm). @@ -8,7 +8,8 @@ start_link(Name, Filename) -> Module = application:get_env(plop, db_backend, fsdb), - Module:start_link(Name, Filename). + Options = application:get_env(plop, db_backend_opt, []), + Module:start_link(Name, Filename, Options). stop(Name) -> Module = application:get_env(plop, db_backend, fsdb), diff --git a/src/permdb.erl b/src/permdb.erl index 0a1765e..faca986 100644 --- a/src/permdb.erl +++ b/src/permdb.erl @@ -1,11 +1,11 @@ -%%% Copyright (c) 2015-2016, NORDUnet A/S. +%%% Copyright (c) 2015-2017, NORDUnet A/S. %%% See LICENSE for licensing information. -module(permdb). -behaviour(gen_server). --export([start_link/2, start_link/3, stop/1, init_module/0]). +-export([start_link/3, stop/1, init_module/0]). -export([getvalue/2, addvalue/3, commit/1, commit/2, keyexists/2]). %% gen_server callbacks. @@ -61,10 +61,8 @@ init([Name, Filename, WriteFlag]) -> init_module() -> ok. -start_link(Name, Filename) -> - start_link(Name, Filename, write). - -start_link(Name, Filename, WriteFlag) -> +start_link(Name, Filename, Options) -> + WriteFlag = proplists:get_value(write_flag, Options, write), gen_server:start_link({local, Name}, ?MODULE, [Name, Filename, WriteFlag], []). diff --git a/test/permdbtest.erl b/test/permdbtest.erl index 5d0453b..e48158f 100755 --- a/test/permdbtest.erl +++ b/test/permdbtest.erl @@ -14,7 +14,7 @@ timeprint(Time) -> io_lib:format("~.2fs", [Time/1000000]). testinit(Filename) -> - permdb:start_link(testdb, Filename, write). + permdb:start_link(testdb, Filename, [{write_flag, write}]). teststop() -> permdb:stop(testdb). @@ -145,7 +145,7 @@ main([]) -> testinit(Filename), - permdb:start_link(testdb_ro, Filename, read), + permdb:start_link(testdb_ro, Filename, [{write_flag, read}]), testget(Filename, gentestdata(1+2+3+4), 99), testadd(Filename, gentestdata(1+2+3+4+5), 99), -- cgit v1.1