summaryrefslogtreecommitdiff
path: root/merge/src/merge_backup.erl
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2017-02-07 14:51:24 +0100
committerLinus Nordberg <linus@nordu.net>2017-02-07 14:51:24 +0100
commit1c348ba24f38bed924a45d945c052fb1ccc29780 (patch)
treedffd2095bdc8f7f016235d4a0a4d92eb86d9cca0 /merge/src/merge_backup.erl
parent0c50a66694fb55ca39397c6bfa2218597d856c66 (diff)
Parallelised merge, sth phase.
Diffstat (limited to 'merge/src/merge_backup.erl')
-rw-r--r--merge/src/merge_backup.erl30
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.