diff options
Diffstat (limited to 'merge/src/merge_backup.erl')
-rw-r--r-- | merge/src/merge_backup.erl | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/merge/src/merge_backup.erl b/merge/src/merge_backup.erl index 5f4f3d5..768bd32 100644 --- a/merge/src/merge_backup.erl +++ b/merge/src/merge_backup.erl @@ -28,7 +28,7 @@ handle_cast(_Request, State) -> {noreply, State}. handle_info({timeout, _Timer, backup}, State) -> - backup(merge_util:readfile(fetched_path), State). + backup(merge_util:nfetched(), State). code_change(_OldVsn, State, _Extra) -> {ok, State}. @@ -40,19 +40,9 @@ terminate(Reason, #state{timer = Timer}) -> %%%%%%%%%%%%%%%%%%%% -backup(noentry, State) -> +backup(Size, State) when Size < 0 -> {noreply, State#state{timer = erlang:start_timer(1000, self(), backup)}}; -backup({struct, Fetched}, State) -> - Index = proplists:get_value(<<"index">>, Fetched), - Hash = proplists:get_value(<<"hash">>, Fetched), - backup(Index, Hash, State). - -backup(-1, _, State) -> - {noreply, State#state{timer = erlang:start_timer(1000, self(), backup)}}; -backup(Index, Hash, - #state{node_name = NodeName, node_address = NodeAddress} = State) -> - ok = merge_util:verify_logorder_and_fetched_consistency(Index, Hash), - Size = index:indexsize(logorder), +backup(Size, #state{node_name = NodeName, node_address = NodeAddress} = State) -> lager:debug("~p: logorder size ~B", [NodeName, Size]), ht:load_tree(Size - 1), % TODO: Make sure this is OK to do from multiple processes and that it's not "moving backwards". try |