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 RunStorage
protected 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 RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- the jobjobRunId
- the job run for which to remove the dataRunStorageException
- errorpublic java.util.Collection<java.lang.String> getCurrentJobs() throws RunStorageException
getCurrentJobs
in interface RunStorage
JobState.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 RunStorage
jobName
- the jobRunStorageException
- errorpublic AnyMap getJobRunData(java.lang.String jobName, boolean returnDetails) throws RunStorageException
getJobRunData
in interface RunStorage
jobName
- 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 RunStorage
RunStorageException
- 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 RunStorage
jobName
- jobRunStorageException
- errorpublic JobState getJobState(java.lang.String jobName, java.lang.String jobRunId) throws RunStorageException
getJobState
in interface RunStorage
jobName
- jobjobRunId
- job runRunStorageException
- errorpublic JobRunInfo getJobRunInfo(java.lang.String jobName) throws RunStorageException
getJobRunInfo
in interface RunStorage
jobName
- jobRunStorageException
- errorpublic void setJobState(java.lang.String jobName, java.lang.String jobRunId, JobState jobState) throws RunStorageException
setJobState
in interface RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- jobjobRunId
- job runRunStorageException
- errorpublic java.lang.String startCompletionWorkflowRun(java.lang.String jobName, java.lang.String jobRunId) throws RunStorageException
startCompletionWorkflowRun
in interface RunStorage
jobName
- 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 RunStorage
RunStorageException
public void successfulWorkflowRun(java.lang.String jobName, java.lang.String jobRunId, java.lang.String workflowRunId) throws RunStorageException
successfulWorkflowRun
in interface RunStorage
RunStorageException
public void failedWorkflowRun(java.lang.String jobName, java.lang.String jobRunId, java.lang.String workflowRunId) throws RunStorageException
failedWorkflowRun
in interface RunStorage
RunStorageException
public void deleteWorkflowRunData(java.lang.String jobName, java.lang.String jobRunId, java.lang.String workflowRunId) throws RunStorageException
deleteWorkflowRunData
in interface RunStorage
RunStorageException
public void deleteWorkflowRun(java.lang.String jobName, java.lang.String jobRunId, java.lang.String workflowRunId) throws RunStorageException
deleteWorkflowRun
in interface RunStorage
RunStorageException
public boolean checkAndCleanupActiveWorkflowRuns(java.lang.String jobName, java.lang.String jobRunId) throws RunStorageException
checkAndCleanupActiveWorkflowRuns
in interface RunStorage
RunStorageException
public boolean hasWorkflowRun(java.lang.String jobName, java.lang.String jobRunId, java.lang.String workflowRunId) throws RunStorageException
hasWorkflowRun
in interface RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- jobjobRunId
- job runworkflowRunId
- workflow runstepId
- step idtaskId
- task idRunStorageException
public 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 RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
RunStorageException
public 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 RunStorage
RunStorageException
public 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 RunStorage
RunStorageException
public 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 RunStorage
retryByWorker
- whether the retry was triggered by a workerRunStorageException
public boolean hasTask(java.lang.String jobName, java.lang.String workflowRunId, java.lang.String taskId) throws RunStorageException
hasTask
in interface RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- 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 RunStorage
jobName
- jobjobRunId
- job runworkflowRunId
- workflow runRunStorageException
- errorpublic void clear() throws RunStorageException
clear
in interface RunStorage
RunStorageException
- errorpublic java.util.Collection<java.lang.String> getTriggeredJobs(java.lang.String bucketId) throws RunStorageException
getTriggeredJobs
in interface RunStorage
bucketId
- a bucket IDRunStorageException
- errorpublic void addJobTrigger(java.lang.String bucketId, java.lang.String jobName) throws RunStorageException
addJobTrigger
in interface RunStorage
bucketId
- a bucket IDjobName
- job nameRunStorageException
- errorpublic void removeJobTrigger(java.lang.String bucketId, java.lang.String jobName) throws RunStorageException
removeJobTrigger
in interface RunStorage
bucketId
- a bucket IDjobName
- job nameRunStorageException
- errorpublic void registerJobRunListener(JobRunListener jobRunListener, java.lang.String jobName)
registerJobRunListener
in interface RunStorage
jobRunListener
- listener to be notified about job run events.jobName
- job on which to listen