anchor.diff:  update_gc_stats(Stats) ->
       gen_server:cast(?MODULE, {update_gc_stats, Stats}).
   
  --spec update_nodes([{node(), boolean(), boolean()}]) -> 'ok'.
  +-type nodes_update() :: [{node(), boolean(), boolean()}].
  +-spec update_nodes(nodes_update()) -> 'ok'.
   update_nodes(DDFSNodes) ->
       gen_server:cast(?MODULE, {update_nodes, DDFSNodes}).
   
  
positive.code: get_nodeinfo(all) ->
      gen_server:call(?MODULE, {get_nodeinfo, all}).
  
  -spec get_read_nodes() -> {'ok', [node()], non_neg_integer()}.
  get_read_nodes() ->
      gen_server:call(?MODULE, get_read_nodes).
  
  
negative.code: %% ===================================================================
  %% gen_server callbacks
  
  -spec init(_) -> {ok, state()}.
  init(_Args) ->
      spawn_link(fun() -> monitor_diskspace() end),
      spawn_link(fun() -> ddfs_gc:start_gc(disco:get_setting("DDFS_DATA")) end),
  