anchor.diff:  end.">>)).
   -define(GET_CLUSTER_SNAPSHOT,?GET_CONFIG(snapshotCluster,[],true)).
   -define(GET_CLUSTER_SNAPSHOT_TABLES,?GET_CONFIG(snapshotClusterTables,[],[ddAccount,ddRole,ddConfig])).
  --define(GET_CLUSTER_SNAPSHOT_INTERVAL,?GET_CONFIG(snapshotClusterInterval,[],86400000)).
  +-define(GET_CLUSTER_SNAPSHOT_TOD,?GET_CONFIG(snapshotClusterHourOfDay,[],19)).
  +-define(CLUSTER_SNAP_CHECK_INTERVAL, 3600000).
  +%-define(CLUSTER_SNAP_CHECK_INTERVAL, 40000).
   
   -ifdef(TEST).
       start_snap_loop() -> ok.
  
positive.code:             erlang:whereis(?MODULE) ! imem_snap_loop
          end).
  -endif.
  
  fire_cluster_snap(Tables) ->
      IntervalMs = ?GET_CLUSTER_SNAPSHOT_INTERVAL,
      ?Info("starting ~p snapshot after ~pms", [Tables, IntervalMs]),
      erlang:send_after(IntervalMs, ?MODULE, {cluster_snap, Tables}).
  
  
  %% ----- SERVER INTERFACE ------------------------------------------------
  
negative.code: 
  take_chunked(Tab) ->
      {_, SnapDir} = application:get_env(imem, imem_snapshot_dir),
      take_chunked(Tab, SnapDir).
  take_chunked(Tab, SnapDir) ->
      BackFile = filename:join([SnapDir, atom_to_list(Tab)++?BKP_EXTN]),
      NewBackFile = filename:join([SnapDir, atom_to_list(Tab)++?BKP_TMP_EXTN]),
      % truncates the file if already exists and writes the table props
  