anchor.diff:  
   
   %% @doc Handle 'state' event
  +handle_sync_event(state_of_workers, _From, StateName, #state{server_pairs = ServerPairs} = State) ->
  +    Ret = [
  +           [{status, CStatus},
  +            {interval, I},
  +            {num_of_batch_procs, N},
  +            {is_locked, L}
  +           ]
  +           || {CStatus, #compaction_worker_state{
  +                           interval = I,
  +                           num_of_batch_procs = N,
  +                           is_locked = L
  +                          }}
  +                  <-  [sys:get_state(WorkerId)
  +                       || {WorkerId,_} <- ServerPairs]
  +          ],
  +    {reply, {ok, Ret}, StateName, State};
   handle_sync_event(state, _From, StateName, #state{status = Status,
                                                     total_num_of_targets = TotalNumOfTargets,
                                                     reserved_targets     = ReservedTargets,
  
positive.code:          lock/1,
           suspend/0, resume/0,
           state/0,
           finish/2, finish/3,
           increase/0,
           decrease/0
  
negative.code:           num_of_concurrency = 1 :: non_neg_integer(),
            is_diagnosing = false  :: boolean(),
            is_recovering = false  :: boolean(),
            callback_fun             :: function() | undefined,
            total_num_of_targets = 0 :: non_neg_integer(),
            reserved_targets = []    :: [atom()],
            pending_targets  = []    :: [atom()],
            ongoing_targets  = []    :: [atom()],
            locked_targets   = []    :: [atom()],
            child_pids       = []    :: orddict:orddict(), %% {Child :: pid(), hasJob :: boolean()}
            start_datetime   = 0     :: non_neg_integer(), %% gregory-sec
            reports          = []    :: [#compaction_report{}],
            status = ?ST_IDLING :: compaction_state()
           }).
  
  