anchor.diff:  head(Id, Key) ->
       gen_server:call(Id, {head, Key}, ?DEF_TIMEOUT).
   
  -%% @doc Retrieve a metada/data from backend_db/object-storage 
  +%% @doc Retrieve a metada/data from backend_db/object-storage
   %%      AND calc MD5 based on the body data
   %%
   -spec(head_with_calc_md5(atom(), tuple(), any()) ->
  
positive.code:              ok | {error, any()}).
  do_compact(Metadata, CompactParams, #state{meta_db_id     = MetaDBId,
                                             object_storage = StorageInfo} = State) ->
      FunHasChargeOfNode = CompactParams#compact_params.fun_has_charge_of_node,
      HasChargeOfNode    = FunHasChargeOfNode(CompactParams#compact_params.key_bin),
      NumActive          = CompactParams#compact_params.num_of_active_object,
      SizeActive         = CompactParams#compact_params.size_of_active_object,
  
      %% check mailbox regularly
      receive
          compact_suspend ->
  
negative.code:         0 ->
              void
      end,
  
      %% retrieve value
      FunHasChargeOfNode = CompactParams#compact_params.fun_has_charge_of_node,
      NumActive          = CompactParams#compact_params.num_of_active_object,
      SizeActive         = CompactParams#compact_params.size_of_active_object,
  
      %% set a flag of object of compaction
      HasChargeOfNode = FunHasChargeOfNode(Metadata),
  
      %% execute compaction
      case (is_deleted_rec(MetaDBId, StorageInfo, Metadata)
            orelse HasChargeOfNode == false) of
          true ->
  