/** * Persist dataset state of a given dataset identified by the dataset URN. */ private void persistDatasetState(String datasetUrn, JobState.DatasetState datasetState) throws IOException { log.info("Persisting dataset state for dataset " + datasetUrn); this.jobContext.getDatasetStateStore().persistDatasetState(datasetUrn, datasetState); }
@Override public void execute() throws IOException { log.info("Persisting dataset state for dataset " + this.datasetUrn); getDatasetStateStore().persistDatasetState(this.datasetUrn, this.datasetState); }
private static void migrateStateForJob(DatasetStateStore srcDatasetStateStore, DatasetStateStore dstDatasetStateStore, String jobName, boolean deleteFromSource) throws IOException { Map<String, JobState.DatasetState> map = srcDatasetStateStore.getLatestDatasetStatesByUrns(jobName); for (Map.Entry<String, JobState.DatasetState> entry : map.entrySet()) { dstDatasetStateStore.persistDatasetState(entry.getKey(), entry.getValue()); } if (deleteFromSource) { try { srcDatasetStateStore.delete(jobName); } catch (IOException ioe) { log.warn("The source state store has been deleted", ioe); } } }
@Test(dependsOnMethods = "testGetJobState") public void testPersistDatasetState() throws IOException { JobState.DatasetState datasetState = new JobState.DatasetState(TEST_JOB_NAME, TEST_JOB_ID); datasetState.setDatasetUrn(TEST_DATASET_URN); datasetState.setState(JobState.RunningState.COMMITTED); datasetState.setId(TEST_DATASET_URN); datasetState.setStartTime(this.startTime); datasetState.setEndTime(this.startTime + 1000); datasetState.setDuration(1000); for (int i = 0; i < 3; i++) { TaskState taskState = new TaskState(); taskState.setJobId(TEST_JOB_ID); taskState.setTaskId(TEST_TASK_ID_PREFIX + i); taskState.setId(TEST_TASK_ID_PREFIX + i); taskState.setWorkingState(WorkUnitState.WorkingState.COMMITTED); datasetState.addTaskState(taskState); } zkDatasetStateStore.persistDatasetState(TEST_DATASET_URN, datasetState); // persist a second dataset state to test that retrieval of multiple dataset states works datasetState.setDatasetUrn(TEST_DATASET_URN2); datasetState.setId(TEST_DATASET_URN2); datasetState.setDuration(2000); zkDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState); // second job name for testing getting store names in a later test case datasetState.setJobName(TEST_JOB_NAME2); zkDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState); }
dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN, datasetState); datasetState.setDuration(2000); dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState); datasetState.setDuration(3000); dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN_LOWER, datasetState); dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState);
this.dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN1, datasetState); this.dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN1, datasetState); this.dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN1, datasetState); this.dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState); datasetState.setJobName(TEST_JOB_NAME2); this.dbDatasetStateStore.persistDatasetState(TEST_DATASET_URN2, datasetState);
@Override public void execute() throws IOException { log.info("Persisting dataset state for dataset " + this.datasetUrn); getDatasetStateStore().persistDatasetState(this.datasetUrn, this.datasetState); }
/** * Persist dataset state of a given dataset identified by the dataset URN. */ private void persistDatasetState(String datasetUrn, JobState.DatasetState datasetState) throws IOException { log.info("Persisting dataset state for dataset " + datasetUrn); this.jobContext.getDatasetStateStore().persistDatasetState(datasetUrn, datasetState); }
private static void migrateStateForJob(DatasetStateStore srcDatasetStateStore, DatasetStateStore dstDatasetStateStore, String jobName, boolean deleteFromSource) throws IOException { Map<String, JobState.DatasetState> map = srcDatasetStateStore.getLatestDatasetStatesByUrns(jobName); for (Map.Entry<String, JobState.DatasetState> entry : map.entrySet()) { dstDatasetStateStore.persistDatasetState(entry.getKey(), entry.getValue()); } if (deleteFromSource) { try { srcDatasetStateStore.delete(jobName); } catch (IOException ioe) { log.warn("The source state store has been deleted", ioe); } } }