Skip to content

Commit 5366742

Browse files
author
Daniil Fedotov
committed
Make file_handle_cache a map instead of dict in message store internal structures.
Maps have better performance and readability in dumps.
1 parent 0b70736 commit 5366742

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/rabbit_msg_store.erl

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
-type client_msstate() :: #client_msstate {
156156
server :: server(),
157157
client_ref :: client_ref(),
158-
file_handle_cache :: dict:dict(),
158+
file_handle_cache :: map(),
159159
index_state :: any(),
160160
index_module :: atom(),
161161
dir :: file:filename(),
@@ -495,7 +495,7 @@ client_init(Server, Ref, MsgOnDiskFun, CloseFDsFun) when is_pid(Server); is_atom
495495
?CREDIT_DISC_BOUND),
496496
#client_msstate { server = Server,
497497
client_ref = Ref,
498-
file_handle_cache = dict:new(),
498+
file_handle_cache = #{},
499499
index_state = IState,
500500
index_module = IModule,
501501
dir = Dir,
@@ -776,7 +776,7 @@ init([Type, BaseDir, ClientRefs, StartupFunState]) ->
776776
index_state = IndexState,
777777
current_file = 0,
778778
current_file_handle = undefined,
779-
file_handle_cache = dict:new(),
779+
file_handle_cache = #{},
780780
sync_timer_ref = undefined,
781781
sum_valid_data = 0,
782782
sum_file_size = 0,
@@ -1403,9 +1403,9 @@ close_handle(Key, State = #msstate { file_handle_cache = FHC }) ->
14031403
State #msstate { file_handle_cache = close_handle(Key, FHC) };
14041404

14051405
close_handle(Key, FHC) ->
1406-
case dict:find(Key, FHC) of
1406+
case maps:find(Key, FHC) of
14071407
{ok, Hdl} -> ok = file_handle_cache:close(Hdl),
1408-
dict:erase(Key, FHC);
1408+
maps:remove(Key, FHC);
14091409
error -> FHC
14101410
end.
14111411

@@ -1457,16 +1457,16 @@ close_all_indicated(#client_msstate { file_handles_ets = FileHandlesEts,
14571457
close_all_handles(CState = #client_msstate { file_handles_ets = FileHandlesEts,
14581458
file_handle_cache = FHC,
14591459
client_ref = Ref }) ->
1460-
ok = dict:fold(fun (File, Hdl, ok) ->
1460+
ok = maps:fold(fun (File, Hdl, ok) ->
14611461
true = ets:delete(FileHandlesEts, {Ref, File}),
14621462
file_handle_cache:close(Hdl)
14631463
end, ok, FHC),
1464-
CState #client_msstate { file_handle_cache = dict:new() };
1464+
CState #client_msstate { file_handle_cache = #{} };
14651465

14661466
close_all_handles(State = #msstate { file_handle_cache = FHC }) ->
1467-
ok = dict:fold(fun (_Key, Hdl, ok) -> file_handle_cache:close(Hdl) end,
1467+
ok = maps:fold(fun (_Key, Hdl, ok) -> file_handle_cache:close(Hdl) end,
14681468
ok, FHC),
1469-
State #msstate { file_handle_cache = dict:new() }.
1469+
State #msstate { file_handle_cache = #{} }.
14701470

14711471
get_read_handle(FileNum, CState = #client_msstate { file_handle_cache = FHC,
14721472
dir = Dir }) ->
@@ -1479,11 +1479,11 @@ get_read_handle(FileNum, State = #msstate { file_handle_cache = FHC,
14791479
{Hdl, State #msstate { file_handle_cache = FHC2 }}.
14801480

14811481
get_read_handle(FileNum, FHC, Dir) ->
1482-
case dict:find(FileNum, FHC) of
1482+
case maps:find(FileNum, FHC) of
14831483
{ok, Hdl} -> {Hdl, FHC};
14841484
error -> {ok, Hdl} = open_file(Dir, filenum_to_name(FileNum),
14851485
?READ_MODE),
1486-
{Hdl, dict:store(FileNum, Hdl, FHC)}
1486+
{Hdl, maps:put(FileNum, Hdl, FHC)}
14871487
end.
14881488

14891489
preallocate(Hdl, FileSizeLimit, FinalPos) ->

0 commit comments

Comments
 (0)