diff options
author | Tim Watson <watson.timothy@gmail.com> | 2013-12-31 14:16:47 +0000 |
---|---|---|
committer | Tim Watson <watson.timothy@gmail.com> | 2013-12-31 14:16:47 +0000 |
commit | 2d06b5ab148709540832459b54773b950d5022ed (patch) | |
tree | 67e76dc020b75188c45c10670a83bb53f38927ab | |
parent | 92378447a3eeaf5a65588cd265d89bb636eae193 (diff) | |
download | rabbitmq-server-2d06b5ab148709540832459b54773b950d5022ed.tar.gz |
Scrub un-used code and introduce a lookup-by-recovery-key API
-rw-r--r-- | src/rabbit_amqqueue.erl | 3 | ||||
-rw-r--r-- | src/rabbit_queue_index.erl | 2 | ||||
-rw-r--r-- | src/rabbit_recovery_terms.erl | 39 | ||||
-rw-r--r-- | src/rabbit_variable_queue.erl | 1 |
4 files changed, 23 insertions, 22 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 146ac776..4c9b86d4 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -236,7 +236,8 @@ recover_durable_queues(DurableQueues, RecoveryTerms) -> queue_init(#amqqueue{ pid = Pid, name = Name }, RecoveryTerms) -> RecoveryKey = queue_name_to_dir_name(Name), - QueueRecoveryTerms = case lists:keyfind(RecoveryKey, 1, RecoveryTerms) of + QueueRecoveryTerms = case rabbit_recovery_terms:lookup(RecoveryKey, + RecoveryTerms) of {_, Terms} -> Terms; false -> non_clean_shutdown end, diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 03d248e0..543bd45a 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -389,8 +389,6 @@ recover(DurableQueues) -> TermsAcc1}; false -> ok = rabbit_file:recursive_delete([QueueDirPath]), - %rabbit_recovery_indexes:remove_recovery_terms( - % QueueDirPath), {DurableAcc, TermsAcc} end end, {[], []}, QueueDirNames), diff --git a/src/rabbit_recovery_terms.erl b/src/rabbit_recovery_terms.erl index 558604cc..42d23500 100644 --- a/src/rabbit_recovery_terms.erl +++ b/src/rabbit_recovery_terms.erl @@ -26,6 +26,7 @@ start_link/0, store/2, read/1, + lookup/2, clear/0, flush/0]). @@ -49,10 +50,11 @@ -spec(read( file:filename()) -> rabbit_types:ok_or_error(not_found)). +-spec(lookup( + file:filename(), + [{file:filename(), [term()]}]) -> + {'ok', [term()]} | 'false'). -spec(clear() -> 'ok'). -%-spec(remove_recovery_terms( -% file:filename()) -> -% rabbit_types:ok_or_error(not_found)). -endif. % use_specs @@ -103,21 +105,12 @@ read(Name) -> _ -> {error, not_found} end. -scrub(Name) -> - filename:basename(Name). - -%remove_recovery_terms(Name) -> -% case dets:member(?MODULE, Name) of -% true -> dets:delete(?MODULE, Name); -% _ -> {error, not_found} -% end. +lookup(RecoveryKey, RecoveryTerms) -> + lists:keyfind(to_dirname(RecoveryKey), 1, RecoveryTerms). clear() -> - dets:delete_all_objects(?MODULE). - -flush() -> - dets:sync(?MODULE), - ok. + dets:delete_all_objects(?MODULE), + flush(). init(_) -> process_flag(trap_exit, true), @@ -134,17 +127,27 @@ handle_info(_Info, State) -> {noreply, State}. terminate(_Reason, _State) -> - ok = dets:sync(?MODULE), + ok = flush(), ok = dets:close(?MODULE). code_change(_OldVsn, State, _Extra) -> {ok, State}. +flush() -> + dets:sync(?MODULE). + create_table() -> File = dets_filename(), {ok, _} = dets:open_file(?MODULE, [{file, File}, {ram_file, true}, {auto_save, infinity}]). +scrub(Name) -> + filename:basename(Name). + dets_filename() -> - filename:join([rabbit_mnesia:dir(), "queues", "recovery.dets"]). + to_dirname("recovery.dets"). + +to_dirname(FileName) -> + filename:join([rabbit_mnesia:dir(), "queues", FileName]). + diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 1b29ceb3..b77c1bcb 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -433,7 +433,6 @@ init(#amqqueue { name = QueueName, durable = IsDurable }, new, init(#amqqueue { name = QueueName, durable = true }, {_, Terms}, AsyncCallback, MsgOnDiskFun, MsgIdxOnDiskFun) -> - %% Terms = rabbit_queue_index:shutdown_terms(QueueName), {PRef, Recovery, Terms1} = process_recovery_terms(Terms), PersistentClient = msg_store_client_init(?PERSISTENT_MSG_STORE, PRef, MsgOnDiskFun, AsyncCallback), |