anchor.diff:                  {error, Error} ->
                       ?Warn("unable to create snapshot directory ~p : ~p~n", [SnapDir, Error])
               end;
  -        _ -> maybe_coldstart_restore(SnapshotDir)
  +        _ ->
  +            case maybe_coldstart_restore(SnapshotDir) of
  +                true ->
  +                    no_op;
  +                false ->
  +                    start_snap_loop()
  +            end
       end,
  -    ?Info("snapshot directory ~s~n", [SnapshotDir]),
  -    process_flag(trap_exit, true),
  -    start_snap_loop(),
       erlang:send_after(
         1000, ?MODULE,
         {cluster_snap, '$replace_with_timestamp', '$create_when_needed'}),
  
positive.code:     case {application:get_env(imem, cold_start_recover), imem_meta:nodes()} of
          {{ok, true}, []} ->
              case lists:reverse(lists:sort(filelib:wildcard(?BKP_ZIP_PREFIX"*.zip", SnapDir))) of
                  [] -> ?Warn("Cold Start : unable to auto restore, no "?BKP_ZIP_PREFIX"*.zip found in snapshot directory ~s", [SnapDir]);
                  [ZipFile | _ ] ->
                      ?Info("Cold Start : auto restoring ~s found at ~s", [ZipFile, SnapDir]),
                      restore(zip, filename:join(SnapDir, ZipFile), [], replace, false)
              end;
          {{ok, true}, _} -> ?Info("Not Cold Start : auto restore from cluster snapshot is skipped");
          {_, []} -> ?Warn("Cold Start : auto restore from cluster snapshot is disabled");
          _ -> ok
      end.
  
  do_cluster_snapshot() ->
  
negative.code:         {Tab, restore_chunked(list_to_atom(Table), SnapFile, Strategy, Simulate)}
      end)()
      || Tab <- Tabs],
      start_snap_loop(),
      Res.
  
  % snapshot restore_as interface
  