public void refreshBegin(Dataset dataset) { String key = dataset.getDataverseName() + "." + dataset.getDatasetName(); ExternalDatasetAccessManager datasetAccessMgr = globalRegister.get(key); if (datasetAccessMgr == null) { datasetAccessMgr = globalRegister.put(key, new ExternalDatasetAccessManager()); } // aquire the correct lock datasetAccessMgr.refreshBegin(); }
public void buildIndexBegin(Dataset dataset, boolean firstIndex) { String key = dataset.getDataverseName() + "." + dataset.getDatasetName(); ExternalDatasetAccessManager datasetAccessMgr = globalRegister.get(key); if (datasetAccessMgr == null) { globalRegister.putIfAbsent(key, new ExternalDatasetAccessManager()); datasetAccessMgr = globalRegister.get(key); } // aquire the correct lock datasetAccessMgr.buildIndexBegin(firstIndex); }
/** * Get the current version of the dataset * * @param dataset * @return */ public int getDatasetVersion(Dataset dataset) { String key = dataset.getDataverseName() + "." + dataset.getDatasetName(); ExternalDatasetAccessManager datasetAccessMgr = globalRegister.get(key); if (datasetAccessMgr == null) { globalRegister.putIfAbsent(key, new ExternalDatasetAccessManager()); datasetAccessMgr = globalRegister.get(key); } return datasetAccessMgr.getVersion(); }
public int getAndLockDatasetVersion(Dataset dataset, MetadataProvider metadataProvider) { Map<String, Integer> locks; String lockKey = dataset.getDataverseName() + "." + dataset.getDatasetName(); // check first if the lock was aquired already locks = metadataProvider.getExternalDataLocks(); if (locks == null) { locks = new HashMap<>(); metadataProvider.setExternalDataLocks(locks); } else { // if dataset was accessed already by this job, return the registered version Integer version = locks.get(lockKey); if (version != null) { return version; } } ExternalDatasetAccessManager datasetAccessMgr = globalRegister.get(lockKey); if (datasetAccessMgr == null) { globalRegister.putIfAbsent(lockKey, new ExternalDatasetAccessManager()); datasetAccessMgr = globalRegister.get(lockKey); } // aquire the correct lock int version = datasetAccessMgr.queryBegin(); locks.put(lockKey, version); return version; }
public void releaseAcquiredLocks(MetadataProvider metadataProvider) { Map<String, Integer> locks = metadataProvider.getExternalDataLocks(); if (locks == null) { return; } else { // if dataset was accessed already by this job, return the registered version Set<Entry<String, Integer>> aquiredLocks = locks.entrySet(); for (Entry<String, Integer> entry : aquiredLocks) { ExternalDatasetAccessManager accessManager = globalRegister.get(entry.getKey()); if (accessManager != null) { accessManager.queryEnd(entry.getValue()); } } locks.clear(); } } }
public void refreshEnd(Dataset dataset, boolean success) { String key = dataset.getDataverseName() + "." + dataset.getDatasetName(); globalRegister.get(key).refreshEnd(success); }
public void buildIndexEnd(Dataset dataset, boolean firstIndex) { String key = dataset.getDataverseName() + "." + dataset.getDatasetName(); globalRegister.get(key).buildIndexEnd(firstIndex); }