Slide 20
Slide 20 text
Store Vnode Implementation
handle_command({RequestId, {store, R, Data}}, _Sender, State) ->
MetaPath = make_metadata_path(State, R),
NewVersion = case filelib:is_regular(MetaPath) of
true ->
OldMD = get_metadata(State, R),
OldMD#file.version + 1;
false ->
1
end,
{MetaResult, DataResult, Loc} =
store(State, R#file{version=NewVersion}, Data),
{reply, {RequestId, {MetaResult, DataResult, Loc}}, State};