anchor.diff:  %% @doc Expire the specified index_hashtree
   expire(Tree) ->
       gen_server:call(Tree, expire, infinity).
  +
  +%% @doc Estimate total number of keys in index_hashtree
  +estimate_keys(Tree) ->
  +    gen_server:call(Tree, estimate_keys, infinity).
  +
  +%% @doc Estimate total number of keys in index_hashtree
  +estimate_keys(Tree, IndexN) ->
  +    gen_server:call(Tree, {estimate_keys, IndexN}, infinity).
   
   %%%===================================================================
   %%% gen_server callbacks
  
positive.code:          determine_data_root/0,
           exchange_bucket/4,
           exchange_segment/3,
           hash_index_data/1,
           hash_object/2,
           update/2,
  
negative.code:     State2 = State#state{expired=true},
      lager:info("Manually expired tree: ~p", [State#state.index]),
      {reply, ok, State2};
  
  handle_call(estimate_keys, _From,  State=#state{trees=Trees}) ->
      EstimateNrKeys =
          orddict:fold(fun(_, Tree, Acc) ->
                               {ok, Value} = hashtree:estimate_keys(Tree) ,
                               Value + Acc
                       end,
                       0, Trees),
      {reply, {ok, EstimateNrKeys}, State};
  
  handle_call({estimate_keys, IndexN}, _From,  State=#state{trees=Trees}) ->
      {ok, Tree} = orddict:find(IndexN, Trees),
       lager:info("emiklix ~p ~p ~p", [IndexN, Trees, Tree]),
      {ok, EstimateNrKeys} = hashtree:estimate_keys(Tree),
      {reply, {ok, EstimateNrKeys}, State};
  
  handle_call(_Request, _From, State) ->
      Reply = ok,
  