anchor.diff:      gb_dyno_metadata:node_rem_prop(node(), {Shard, oos}),
       ?info("recovery done for shard ~p", [Shard]).
   
  -update_local_shard(Node, Shard, need_full_recovery) ->
  -    copy_shard(Node, Shard);
  -
  -update_local_shard(Node, Shard, Log) ->
  +update_local_shard(Node, Shard, {ok, Log}) ->
       try
   	R = rpc:call(Node, disk_log, chunk, [Log, start]),
   	done = loop_through_data(Node, Log, R),
  
positive.code:     enterdb_shard_recovery:start({node(), Shard}, mem_log),
      ?info("set status recovering"),
      set_shard_ready_flag(Shard, recovering),
      {ok, Log} = rpc:call(Node, enterdb_shard_recovery, get_log, [{node(), Shard}]),
      ?info("got log ~p", [Log]),
      update_local_shard(Node, Shard, Log),
      update_column_mapper(Node, Shard),
      enterdb_shard_recovery:dump_mem_log({node(), Shard}),
  
negative.code: 	?warning("falling back to full recover of shard"),
  	%% fallback to full recovery
  	copy_shard(Node, Shard)
      end;
  update_local_shard(Node, Shard, _RemoteLogStatus) ->
      copy_shard(Node, Shard).
  
  loop_through_data(_Node, _Log, eof) ->
      done;
  