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); }
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(); }
/** * 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; }