anchor.diff:      stack_fun(ClusterId, Object).
   
   
  -%% Store stacked objects
  -%%
  +%% @doc Store stacked objects
   -spec(store(ClusterId, CompressedObjs) ->
                {ok, [#?METADATA{}]} | {error, any()} when ClusterId::atom(),
                                                           CompressedObjs::binary()).
  
positive.code: 
  
  %% @doc Remove a container from the supervisor
  %%
  -spec(stop(Id) ->
               ok | {error, any()} when Id::atom()).
  stop(Id) ->
  
negative.code: 
  
  %% @doc Stack a object into the ordning&reda
  -spec(defer_stack(Object) ->
               ok | {error, any()} when Object::null|#?OBJECT{}).
  defer_stack(#?OBJECT{} = Object) ->
      case (leo_mdcr_tbl_cluster_stat:size() > 0) of
          true ->
              Ret = leo_mdcr_tbl_cluster_stat:find_by_state(?STATE_RUNNING),
              defer_stack_1(Ret, Object);
          false ->
              ok
      end;
  defer_stack(_) ->
      ok.
  
  %% @private
  defer_stack_1({ok,_}, #?OBJECT{addr_id = AddrId,
                                 key = Key} = Object) ->
      case stack(Object) of
          ok ->
              ok;
          {error, Cause}->
              ?warn("defer_stack/1",
                    [{addr_id, AddrId},
                     {key, Key}, {cause, Cause}]),
  
              QId = ?QUEUE_TYPE_SYNC_OBJ_WITH_DC,
              case leo_storage_mq:publish(
                     QId, AddrId, Key) of
                  ok ->
                      ok;
                  {error, Cause} ->
                      ?warn("defer_stack/1",
                            [{addr_id, AddrId},
                             {key, Key}, {cause, Cause}]),
                      {error, Cause}
              end
      end;
  defer_stack_1(not_found,_) ->
      ok;
  defer_stack_1({error, Cause}, #?OBJECT{addr_id = AddrId,
                                         key = Key}) ->
      ?warn("defer_stack/1",
            [{addr_id, AddrId},
             {key, Key}, {cause, Cause}]),
      {error, Cause}.
  
  
  %% @doc Stack a object into the ordning&reda
  -spec(stack(Object) ->
               ok | {error, any()} when Object::#?OBJECT{}).
  stack(Object) ->
  