diff options
Diffstat (limited to 'merge/src/merge_backup.erl')
-rw-r--r-- | merge/src/merge_backup.erl | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/merge/src/merge_backup.erl b/merge/src/merge_backup.erl index bd75608..5f4f3d5 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(fetched(), State). + backup(merge_util:readfile(fetched_path), State). code_change(_OldVsn, State, _Extra) -> {ok, State}. @@ -51,10 +51,10 @@ 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 = verify_logorder_and_fetched_consistency(Index, Hash), + ok = merge_util:verify_logorder_and_fetched_consistency(Index, Hash), Size = index:indexsize(logorder), lager:debug("~p: logorder size ~B", [NodeName, Size]), - ht:load_tree(Size - 1), + ht:load_tree(Size - 1), % TODO: Make sure this is OK to do from multiple processes and that it's not "moving backwards". try {ok, VerifiedSize} = verified_size(NodeAddress), lager:debug("~p: verifiedsize ~B", [NodeName, VerifiedSize]), @@ -141,27 +141,3 @@ setverifiedsize(NodeAddress, Size) -> Err -> throw({request_error, result, DebugTag, Err}) end. - -fetched() -> - case application:get_env(plop, fetched_path) of - {ok, FetchedFile} -> - case atomic:readfile(FetchedFile) of - noentry -> - noentry; - Contents -> - mochijson2:decode(Contents) - end; - undefined -> - noentry - end. - -verify_logorder_and_fetched_consistency(Index, Hash) -> - HashString = binary_to_list(Hash), - case hex:bin_to_hexstr(index:get(logorder, Index)) of - HashString -> - ok; - Mismatch -> - lager:error("fetched file hash=~p doesn't match logorder[~B]=~p", - [HashString, Index, Mismatch]), - fetched_mismatch - end. |