summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-12-22 17:34:41 +0000
committerMatthew Sackman <matthew@lshift.net>2009-12-22 17:34:41 +0000
commit37223b15449631c87605676a42ba677a31bdcb52 (patch)
tree26188fc01cb986f34541f38ca7979a9fcf7660fc
parent5853e213c08caa57ecd1e54b43a0b60926fe87e6 (diff)
downloadrabbitmq-server-git-37223b15449631c87605676a42ba677a31bdcb52.tar.gz
Support pluggable msg_store index module through the rabbit_msg_store_index_module rabbit application var
-rw-r--r--src/rabbit_msg_store.erl10
-rw-r--r--src/rabbit_msg_store_ets_index.erl4
2 files changed, 10 insertions, 4 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index c060c8d4c6..e3bd73165f 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -244,8 +244,14 @@ init([Dir, MsgRefDeltaGen, MsgRefDeltaGenInit]) ->
ok = filelib:ensure_dir(filename:join(Dir, "nothing")),
- IndexModule = rabbit_msg_store_ets_index,
- IndexState = IndexModule:init(),
+ IndexModule =
+ case application:get_env(rabbit_msg_store_index_module) of
+ {ok, Module} -> Module;
+ _ -> rabbit_msg_store_ets_index
+ end,
+ rabbit_log:info("Using ~p to provide index for message store~n",
+ [IndexModule]),
+ IndexState = IndexModule:init(Dir),
InitFile = 0,
FileSummary = ets:new(?FILE_SUMMARY_ETS_NAME,
diff --git a/src/rabbit_msg_store_ets_index.erl b/src/rabbit_msg_store_ets_index.erl
index cb13ed8690..e8d596f9c5 100644
--- a/src/rabbit_msg_store_ets_index.erl
+++ b/src/rabbit_msg_store_ets_index.erl
@@ -30,14 +30,14 @@
%%
-module(rabbit_msg_store_ets_index).
--export([init/0, lookup/2, insert/2, update/2, update_fields/3, delete/2,
+-export([init/1, lookup/2, insert/2, update/2, update_fields/3, delete/2,
delete_by_file/2, terminate/1]).
-define(MSG_LOC_NAME, rabbit_msg_store_ets_index).
-include("rabbit_msg_store.hrl").
-init() ->
+init(_Dir) ->
ets:new(?MSG_LOC_NAME, [set, public, {keypos, #msg_location.msg_id}]).
lookup(Key, MsgLocations) ->