public class RunStorageZk extends java.lang.Object implements RunStorage
/smila/jobmanager/jobs/<job-name>/workflow-runs/<workflow-run-id>/data/tasks/<task-id> ............................................................................/transient-bulks/<bulkstore+objectId> ......................................................................./finishing ................................./data/<data-node> // job counters etc. ................................./worker-data/<workername> // worker specific counters etc. ................................./jobrun-definitions/ // definitions used in a job run ..................................................../jobdef ................................................... /wfdef ..................................................../bucketdef/<bucket-name> ....................../buckets/<bucket-id>/<job-name> // jobs triggered by bucket
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
JOBMANAGER_PREFIX
prefix for jobmanager data.
|
static java.lang.String |
NODE_BUCKETS
data of a job run.
|
static java.lang.String |
NODE_DATA
global data of a job run.
|
static java.lang.String |
NODE_JOBS
data of a job run.
|
static java.lang.String |
NODE_RUN_DEFINITIONS
root node for stored definitions that are used by a job run.
|
static java.lang.String |
NODE_RUN_DEFINITIONS_BUCKET
stores bucket definitions used by a job run.
|
static java.lang.String |
NODE_RUN_DEFINITIONS_JOB
stores job definition used by a job run.
|
static java.lang.String |
NODE_RUN_DEFINITIONS_WORKFLOW
stores workflow definition used by a job run.
|
static java.lang.String |
NODE_TASKS
tasks of a workflow step.
|
static java.lang.String |
NODE_TRANSIENT_BULKS
transient bulks of a workflow run.
|
static java.lang.String |
NODE_WORKERDATA
worker specific data of a job run.
|
static java.lang.String |
NODE_WORKFLOW_RUN_FINISHING
indicates whether a workflow run is currently finished.
|
static java.lang.String |
NODE_WORKFLOW_RUNS
workflow runs of a job run.
|
| Constructor and Description |
|---|
RunStorageZk() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
activate(ComponentContext context)
OSGi Declarative Services service activation method.
|
void |
addJobTrigger(java.lang.String bucketId,
java.lang.String jobName) |
void |
addTransientBulk(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String bulk)
Stores a transient bulk for the given workflow run.
|
java.util.List<java.lang.String> |
cancelJobRun(java.lang.String jobName,
java.lang.String jobRunId)
Cancels the given job run data -> active workflow runs and current tasks will be canceled.
|
boolean |
checkAndCleanupActiveWorkflowRuns(java.lang.String jobName,
java.lang.String jobRunId)
Checks if there are active workflow runs.
|
void |
clear()
Remove all jobmanager run data.
|
protected void |
deactivate(ComponentContext context)
OSGi Declarative Services service deactivation method.
|
void |
deleteJobRun(java.lang.String jobName,
java.lang.String jobRunId)
Removes the job run data of the given job run.
|
void |
deleteWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
Deletes the given workflow run.
|
void |
deleteWorkflowRunData(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
Deletes the data of the given workflow run.
|
void |
failedTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
boolean failedAfterRetry,
java.util.Map<java.lang.String,java.lang.String> properties)
Called when a task is failed.
|
void |
failedWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
Called when a workflow run failed.
|
boolean |
finishJobRun(java.lang.String jobName,
java.lang.String jobRunId)
Called when a job run is finished.
|
void |
finishTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
java.util.Map<java.lang.String,java.lang.Number> workerCounter,
java.util.Map<java.lang.String,java.lang.String> properties)
Called when a task is successfully finished.
|
java.util.Collection<java.lang.String> |
getCurrentJobs() |
java.lang.String |
getCurrentTimestamp() |
AnyMap |
getJobRunData(java.lang.String jobName,
boolean returnDetails) |
java.lang.String |
getJobRunId(java.lang.String jobName) |
JobRunInfo |
getJobRunInfo(java.lang.String jobName) |
JobState |
getJobState(java.lang.String jobName) |
JobState |
getJobState(java.lang.String jobName,
java.lang.String jobRunId) |
int |
getTaskRetries(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId)
get the number of retries for the task.
|
java.util.Collection<java.lang.String> |
getTransientBulks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId) |
java.util.Collection<java.lang.String> |
getTriggeredJobs(java.lang.String bucketId) |
AnyMap |
getWorkerData(java.lang.String jobName,
java.lang.String worker) |
AnyMap |
getWorkflowRunData(java.lang.String jobName,
java.lang.String workflowRunId)
get information about a workflow run.
|
boolean |
hasTask(java.lang.String jobName,
java.lang.String workflowRunId,
java.lang.String taskId)
Check if the given task with the given task id exists for the job and workflowrun.
|
boolean |
hasTasks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId) |
boolean |
hasWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId) |
void |
obsoleteTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
java.util.Map<java.lang.String,java.lang.String> properties)
Called when a task finished as obsolete.
|
boolean |
prepareToFinishWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
Called before a workflow run is finished and deleted.
|
void |
registerJobRunListener(JobRunListener jobRunListener,
java.lang.String jobName) |
void |
removeJobTrigger(java.lang.String bucketId,
java.lang.String jobName) |
void |
retriedTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
boolean retryByWorker,
java.util.Map<java.lang.String,java.lang.String> properties)
Called when a task is retried.
|
void |
setJobState(java.lang.String jobName,
java.lang.String jobRunId,
JobState jobState)
Sets the state for the given job run.
|
boolean |
setJobState(java.lang.String jobName,
java.lang.String jobRunId,
JobState expectedState,
JobState newState)
Sets the state for the given job run if the given expected state matches the current state.
|
void |
setZooKeeperService(ZooKeeperService zkService)
method for DS to set a service reference.
|
java.lang.String |
startCompletionWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId)
Called when a new completing workflow run is started for the given job run.
|
void |
startJobRun(java.lang.String jobName,
java.lang.String jobRunId,
JobRunMode jobRunMode,
JobRunDefinitions jobRunDefs)
Starts a job run.
|
void |
startTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId)
Called when a new task is started for the given step in the given workflow of the given job run.
|
void |
startTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
int numberOfRetries)
Called when a new task is started for the given step in the given workflow of the given job run.
|
void |
startTasks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.util.Collection<Task> tasks)
Start multiple new tasks for a given job/workflow run at once.
|
java.lang.String |
startWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId)
Called when a new workflow run is started for the given job run.
|
void |
successfulWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
Called when a workflow run successfully finished.
|
void |
unsetZooKeeperService(ZooKeeperService zkService)
method for DS to unset a service reference.
|
public static final java.lang.String JOBMANAGER_PREFIX
public static final java.lang.String NODE_WORKFLOW_RUNS
public static final java.lang.String NODE_BUCKETS
public static final java.lang.String NODE_JOBS
public static final java.lang.String NODE_DATA
public static final java.lang.String NODE_WORKERDATA
public static final java.lang.String NODE_TASKS
public static final java.lang.String NODE_TRANSIENT_BULKS
public static final java.lang.String NODE_RUN_DEFINITIONS
public static final java.lang.String NODE_RUN_DEFINITIONS_JOB
public static final java.lang.String NODE_RUN_DEFINITIONS_WORKFLOW
public static final java.lang.String NODE_RUN_DEFINITIONS_BUCKET
public static final java.lang.String NODE_WORKFLOW_RUN_FINISHING
public java.lang.String getCurrentTimestamp()
getCurrentTimestamp in interface RunStorageprotected void activate(ComponentContext context)
context - OSGi service component context.protected void deactivate(ComponentContext context)
context - OSGi service component context.public void setZooKeeperService(ZooKeeperService zkService)
zkService - ZooKeeperService reference.public void unsetZooKeeperService(ZooKeeperService zkService)
zkService - ZooKeeperService reference.public void startJobRun(java.lang.String jobName,
java.lang.String jobRunId,
JobRunMode jobRunMode,
JobRunDefinitions jobRunDefs)
throws RunStorageException
startJobRun in interface RunStoragejobName - The name of the job to start.jobRunId - The job run id for the started job run.jobRunMode - The job run mode for the started job run.jobRunDefs - The job run definitions that are stored for this job run.RunStorageException - If there's an error while accessing the run storage.public boolean finishJobRun(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
finishJobRun in interface RunStoragejobName - The job namejobRunId - The job run id for the finished job run.RunStorageException - errorpublic java.util.List<java.lang.String> cancelJobRun(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
cancelJobRun in interface RunStoragejobName - the jobjobRunId - the job run for which to remove the dataRunStorageException - errorpublic void deleteJobRun(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
deleteJobRun in interface RunStoragejobName - the jobjobRunId - the job run for which to remove the dataRunStorageException - errorpublic java.util.Collection<java.lang.String> getCurrentJobs()
throws RunStorageException
getCurrentJobs in interface RunStorageJobState.PREPARING,JobState.RUNNING, or JobState.FINISHING, but while cleaning up
jobs in states JobState.SUCCEEDED and JobState.FAILED, they are still in RunStorage, too.RunStorageException - errorpublic java.lang.String getJobRunId(java.lang.String jobName)
throws RunStorageException
getJobRunId in interface RunStoragejobName - the jobRunStorageException - errorpublic AnyMap getJobRunData(java.lang.String jobName, boolean returnDetails) throws RunStorageException
getJobRunData in interface RunStoragejobName - jobreturnDetails - whether to return details (e.g. workflow/bucket definition)RunStorageException - errorpublic AnyMap getWorkflowRunData(java.lang.String jobName, java.lang.String workflowRunId) throws RunStorageException
getWorkflowRunData in interface RunStorageRunStorageException - jobrun or workflowrun are not active anymore.public AnyMap getWorkerData(java.lang.String jobName, java.lang.String worker)
public JobState getJobState(java.lang.String jobName) throws RunStorageException
getJobState in interface RunStoragejobName - jobRunStorageException - errorpublic JobState getJobState(java.lang.String jobName, java.lang.String jobRunId) throws RunStorageException
getJobState in interface RunStoragejobName - jobjobRunId - job runRunStorageException - errorpublic JobRunInfo getJobRunInfo(java.lang.String jobName) throws RunStorageException
getJobRunInfo in interface RunStoragejobName - jobRunStorageException - errorpublic void setJobState(java.lang.String jobName,
java.lang.String jobRunId,
JobState jobState)
throws RunStorageException
setJobState in interface RunStoragejobName - jobjobRunId - job runjobState - the new state to setRunStorageException - errorpublic boolean setJobState(java.lang.String jobName,
java.lang.String jobRunId,
JobState expectedState,
JobState newState)
throws RunStorageException
setJobState in interface RunStoragejobName - jobjobRunId - job runexpectedState - the old state that is expected to be the current statenewState - the new state to setRunStorageException - errorpublic java.lang.String startWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
startWorkflowRun in interface RunStoragejobName - jobjobRunId - job runRunStorageException - errorpublic java.lang.String startCompletionWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
startCompletionWorkflowRun in interface RunStoragejobName - jobjobRunId - job runRunStorageException - errorpublic boolean prepareToFinishWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
RunStorage.deleteWorkflowRun(String, String, String).prepareToFinishWorkflowRun in interface RunStorageRunStorageExceptionpublic void successfulWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
successfulWorkflowRun in interface RunStorageRunStorageExceptionpublic void failedWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
failedWorkflowRun in interface RunStorageRunStorageExceptionpublic void deleteWorkflowRunData(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
deleteWorkflowRunData in interface RunStorageRunStorageExceptionpublic void deleteWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
deleteWorkflowRun in interface RunStorageRunStorageExceptionpublic boolean checkAndCleanupActiveWorkflowRuns(java.lang.String jobName,
java.lang.String jobRunId)
throws RunStorageException
checkAndCleanupActiveWorkflowRuns in interface RunStorageRunStorageExceptionpublic boolean hasWorkflowRun(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
hasWorkflowRun in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runRunStorageException - errorpublic boolean hasTasks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
hasTasks in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runRunStorageException - errorpublic void startTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId)
throws RunStorageException
startTask in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runstepId - step idtaskId - task idRunStorageExceptionpublic void startTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
int numberOfRetries)
throws RunStorageException
startTask in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runstepId - step idtaskId - task idnumberOfRetries - current number of retries for this taskRunStorageException - if task already exists, or other error while storing taskpublic void startTasks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.util.Collection<Task> tasks)
throws RunStorageException
startTasks in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runtasks - new tasksRunStorageException - error while storing taskpublic void finishTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
java.util.Map<java.lang.String,java.lang.Number> workerCounter,
java.util.Map<java.lang.String,java.lang.String> properties)
throws RunStorageException
finishTask in interface RunStorageRunStorageExceptionpublic void obsoleteTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
java.util.Map<java.lang.String,java.lang.String> properties)
throws RunStorageException
obsoleteTask in interface RunStorageRunStorageExceptionpublic void failedTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
boolean failedAfterRetry,
java.util.Map<java.lang.String,java.lang.String> properties)
throws RunStorageException
failedTask in interface RunStorageRunStorageExceptionpublic void retriedTask(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId,
boolean retryByWorker,
java.util.Map<java.lang.String,java.lang.String> properties)
throws RunStorageException
retriedTask in interface RunStorageretryByWorker - whether the retry was triggered by a workerRunStorageExceptionpublic boolean hasTask(java.lang.String jobName,
java.lang.String workflowRunId,
java.lang.String taskId)
throws RunStorageException
hasTask in interface RunStoragejobName - the name of the job.workflowRunId - the id of the workflow runtaskId - the id of the taskRunStorageException - an exception occurred while checking for task existence.public int getTaskRetries(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String stepId,
java.lang.String taskId)
throws RunStorageException
getTaskRetries in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runstepId - step idtaskId - task idRunStorageException - if task already exists, or other error while storing taskpublic void addTransientBulk(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId,
java.lang.String bulk)
throws RunStorageException
addTransientBulk in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runbulk - the bulk idRunStorageException - errorpublic java.util.Collection<java.lang.String> getTransientBulks(java.lang.String jobName,
java.lang.String jobRunId,
java.lang.String workflowRunId)
throws RunStorageException
getTransientBulks in interface RunStoragejobName - jobjobRunId - job runworkflowRunId - workflow runRunStorageException - errorpublic void clear()
throws RunStorageException
clear in interface RunStorageRunStorageException - errorpublic java.util.Collection<java.lang.String> getTriggeredJobs(java.lang.String bucketId)
throws RunStorageException
getTriggeredJobs in interface RunStoragebucketId - a bucket IDRunStorageException - errorpublic void addJobTrigger(java.lang.String bucketId,
java.lang.String jobName)
throws RunStorageException
addJobTrigger in interface RunStoragebucketId - a bucket IDjobName - job nameRunStorageException - errorpublic void removeJobTrigger(java.lang.String bucketId,
java.lang.String jobName)
throws RunStorageException
removeJobTrigger in interface RunStoragebucketId - a bucket IDjobName - job nameRunStorageException - errorpublic void registerJobRunListener(JobRunListener jobRunListener, java.lang.String jobName)
registerJobRunListener in interface RunStoragejobRunListener - listener to be notified about job run events.jobName - job on which to listen