tree b0fef3ade1c9c522640ec5dcfcd85cd7daa38b9d
parent d57d81ff9f843c58c811d9fe0854dd1de1d807b3
author Abdullah Alamoudi <bamousaa@gmail.com> 1501130147 -0700
committer abdullah alamoudi <bamousaa@gmail.com> 1501137310 -0700

[ASTERIXDB-1992][ING] Suspend/Resume active entities

- user model changes: wait for completion only returns
  when the entity becomes inactive.
- storage format changes: no
- interface changes:
  01) Introduce:
      IMetadataLockManager for entity locking.
      IActiveNotificationHandler for handling active events.
      IRetryPolicy for recovery of failed active jobs.
      IActiveEntityController for controlling active entities.
  02) IJobLifecycleListener.notifyJobFinish now passes the
      JobStatus and Exceptions.
  03) IActiveEntityEventsListener.isActive() returns true,
      if entity is active, false otherwise.
  04) IActiveEntityEventsListener.unregister() removes the
      listener upon entity deletion.
  05) IActiveEntityEventsListener.getJobFailure() returns
      the job failure if the entity is in a failed state.
  06) IStatementExecutor.getComponentProvider() returns
      the storage component provider.
  07) IStatementExecutor.getApplicationContext() returns
      the application context.
  08) IMetadataManager.upsertEntity to perfrom metadata
      entities' upsert operations.
  09) IMetadataNode.upsertEntity to perfrom metadata
      entities' upsert operations
  10) ICcApplicationContext.getMetadataLockManager() returns
      the lock manger.
  11) ICcApplicationContext.getClusterStateManager() returns
      the cluster state manager.

details:
- Starting and stopping of active entities now go through
  their listeners rather than having the listener indicating
  active entity and not having it indicating inactive entity.
  This facilitates suspend/resume operations of long running
  active jobs for the sake of DDL operations or topology
  changes.
- Unit tests for the vast majority of code paths and
  different possible scenarios have been added.

Change-Id: Ifeac8c73e6bad39a13663b84a52121356e3c6b40
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1875
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
BAD: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
