diff options
| author | Michal Kuratczyk <mkuratczyk@vmware.com> | 2023-03-24 20:05:29 +0000 |
|---|---|---|
| committer | Michal Kuratczyk <mkuratczyk@vmware.com> | 2023-03-24 20:05:29 +0000 |
| commit | ccb31b0f28c9ecb53ba706eaa5a1ff0db76e8863 (patch) | |
| tree | 48ad786d4372083c320cdb22d595f0c5a515a026 | |
| parent | 5b5d4d2e295aae24ae8822e324131efcdcb9d47f (diff) | |
| download | rabbitmq-server-git-recovery-terms-no-ram-file-ets-cache.tar.gz | |
Experiment with ETS on read/startrecovery-terms-no-ram-file-ets-cache
| -rw-r--r-- | deps/rabbit/src/rabbit_queue_index.erl | 9 | ||||
| -rw-r--r-- | deps/rabbit/src/rabbit_recovery_terms.erl | 6 |
2 files changed, 10 insertions, 5 deletions
diff --git a/deps/rabbit/src/rabbit_queue_index.erl b/deps/rabbit/src/rabbit_queue_index.erl index 37a05263fd..bb4017a97c 100644 --- a/deps/rabbit/src/rabbit_queue_index.erl +++ b/deps/rabbit/src/rabbit_queue_index.erl @@ -541,10 +541,11 @@ start(VHost, DurableQueueNames) -> lists:foldl( fun(QName, {RecoveryTerms, ValidDirectories}) -> DirName = queue_name_to_dir_name(QName), - RecoveryInfo = case rabbit_recovery_terms:read(VHost, DirName) of - {error, _} -> non_clean_shutdown; - {ok, Terms} -> Terms - end, + [{_, RecoveryInfo}] = ets:lookup(recovery, DirName), + % RecoveryInfo = case ets:lookup(recovery, DirName) of + % {error, _} -> non_clean_shutdown; + % {ok, Terms} -> Terms + % end, {[RecoveryInfo | RecoveryTerms], sets:add_element(DirName, ValidDirectories)} end, {[], sets:new()}, DurableQueueNames), diff --git a/deps/rabbit/src/rabbit_recovery_terms.erl b/deps/rabbit/src/rabbit_recovery_terms.erl index 9ddba02001..51f6e111bf 100644 --- a/deps/rabbit/src/rabbit_recovery_terms.erl +++ b/deps/rabbit/src/rabbit_recovery_terms.erl @@ -77,6 +77,7 @@ read(VHost, DirBaseName) -> clear(VHost) -> try _ = dets:delete_all_objects(VHost), + % _ = ets:delete_all_objects(recovery), ok %% see start/1 catch _:badarg -> @@ -124,7 +125,10 @@ open_table(VHost, RetriesLeft) -> {ram_file, false}, {auto_save, infinity}], case dets:open_file(VHost, Opts) of - {ok, _} -> ok; + {ok, _} -> + ets:new(recovery, [named_table, set]), + dets:to_ets(VHost, recovery), + ok; {error, Error} -> case RetriesLeft of 0 -> |
