summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_msg_store.erl28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index 64b543b327..c8e32665d0 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -40,7 +40,7 @@
-export([sync/1, gc_done/4, set_maximum_since_use/2, gc/3]). %% internal
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
- terminate/2, code_change/3, handle_pre_hibernate/1]).
+ terminate/2, code_change/3]).
%%----------------------------------------------------------------------------
@@ -581,7 +581,8 @@ init([Server, BaseDir, ClientRefs, {MsgRefDeltaGen, MsgRefDeltaGenInit}]) ->
{ok, GCPid} = rabbit_msg_store_gc:start_link(Dir, IndexState, IndexModule,
FileSummaryEts),
- {ok, State1 #msstate { current_file_handle = CurHdl, gc_pid = GCPid },
+ {ok, maybe_compact(
+ State1 #msstate { current_file_handle = CurHdl, gc_pid = GCPid }),
hibernate,
{backoff, ?HIBERNATE_AFTER_MIN, ?HIBERNATE_AFTER_MIN, ?DESIRED_HIBERNATE}}.
@@ -650,11 +651,10 @@ handle_cast({write, Guid, Msg},
{#file_summary.file_size, FileSize + TotalSize}]),
NextOffset = CurOffset + TotalSize,
noreply(
- maybe_compact(
- maybe_roll_to_new_file(
- NextOffset, State #msstate {
- sum_valid_data = SumValid + TotalSize,
- sum_file_size = SumFileSize + TotalSize })));
+ maybe_roll_to_new_file(
+ NextOffset, State #msstate {
+ sum_valid_data = SumValid + TotalSize,
+ sum_file_size = SumFileSize + TotalSize }));
#msg_location { ref_count = RefCount } ->
%% We already know about it, just update counter. Only
%% update field otherwise bad interaction with concurrent GC
@@ -722,9 +722,10 @@ handle_cast({gc_done, Reclaimed, Source, Dest},
[{#file_summary.locked, false},
{#file_summary.right, SourceRight}]),
true = ets:delete(FileSummaryEts, Source),
- noreply(run_pending(
- State #msstate { sum_file_size = SumFileSize - Reclaimed,
- gc_active = false }));
+ noreply(
+ maybe_compact(run_pending(
+ State #msstate { sum_file_size = SumFileSize - Reclaimed,
+ gc_active = false })));
handle_cast({set_maximum_since_use, Age}, State) ->
ok = file_handle_cache:set_maximum_since_use(Age),
@@ -768,9 +769,6 @@ terminate(_Reason, State = #msstate { index_state = IndexState,
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
-handle_pre_hibernate(State) ->
- {hibernate, maybe_compact(State)}.
-
%%----------------------------------------------------------------------------
%% general helper functions
%%----------------------------------------------------------------------------
@@ -1432,8 +1430,8 @@ maybe_roll_to_new_file(
true = ets:update_element(FileSummaryEts, CurFile,
{#file_summary.right, NextFile}),
true = ets:match_delete(CurFileCacheEts, {'_', '_', 0}),
- State1 #msstate { current_file_handle = NextHdl,
- current_file = NextFile };
+ maybe_compact(State1 #msstate { current_file_handle = NextHdl,
+ current_file = NextFile });
maybe_roll_to_new_file(_, State) ->
State.