@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoReadWriteLock.AutoLock l = executableDigestMapLock.lockForWrite()) { if (event == Broadcaster.Event.DROP) executableDigestMap.removeLocal(cacheKey); else executableDigestCrud.reloadQuietly(cacheKey); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = extFilterMapLock.lockForWrite()) { if (event == Event.DROP) extFilterMap.removeLocal(cacheKey); else extFilterCrud.reloadQuietly(cacheKey); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoReadWriteLock.AutoLock l = lock.lockForWrite()) { if (event == Broadcaster.Event.DROP) userMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) kafkaMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } } }
public void removeLocalCubeDesc(String name) throws IOException { try (AutoLock lock = descMapLock.lockForWrite()) { cubeDescMap.removeLocal(name); clearCuboidCache(name); } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = srcExtMapLock.lockForWrite()) { if (event == Event.DROP) srcExtMap.removeLocal(cacheKey); else srcExtCrud.reloadQuietly(cacheKey); } } }
public void removeProjectLocal(String proj) { try (AutoLock lock = prjMapLock.lockForWrite()) { projectMap.removeLocal(proj); clearL2Cache(proj); } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { String streamingName = cacheKey; try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) streamingMap.removeLocal(streamingName); else crud.reloadQuietly(streamingName); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoLock l = lock.lockForWrite()) { if (event == Broadcaster.Event.DROP) tmpStatMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoReadWriteLock.AutoLock l = executableOutputDigestMapLock.lockForWrite()) { if (!isTaskExecutableOutput(cacheKey)) { if (event == Broadcaster.Event.DROP) executableOutputDigestMap.removeLocal(cacheKey); else executableOutputDigestCrud.reloadQuietly(cacheKey); } } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoLock l = lock.lockForWrite()) { if (event == Broadcaster.Event.DROP) aclMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } broadcaster.notifyProjectACLUpdate(cacheKey); }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Broadcaster.Event event, String cacheKey) throws IOException { try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) tableACLMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } broadcaster.notifyProjectACLUpdate(cacheKey); } }
public void removeCubeLocal(String cubeName) { try (AutoLock lock = cubeMapLock.lockForWrite()) { CubeInstance cube = cubeMap.get(cubeName); if (cube != null) { cubeMap.removeLocal(cubeName); for (CubeSegment segment : cube.getSegments()) { usedStorageLocation.remove(segment.getUuid()); } Cuboid.clearCache(cube); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = modelMapLock.lockForWrite()) { if (event == Event.DROP) dataModelDescMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } for (ProjectInstance prj : ProjectManager.getInstance(config).findProjectsByModel(cacheKey)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } }
@Override public ExecutableOutputPO reloadAt(String path) { try { ExecutableOutputPO executableOutputPO = readJobOutputResource(path); if (executableOutputPO == null) { logger.warn("No job output found at {}, returning null", path); executableOutputDigestMap.removeLocal(resourceName(path)); return null; } // create a digest ExecutableOutputPO digestExecutableOutputPO = new ExecutableOutputPO(); digestExecutableOutputPO.setUuid(executableOutputPO.getUuid()); digestExecutableOutputPO.setLastModified(executableOutputPO.getLastModified()); digestExecutableOutputPO.setStatus(executableOutputPO.getStatus()); executableOutputDigestMap.putLocal(resourceName(path), digestExecutableOutputPO); return digestExecutableOutputPO; } catch (Exception e) { throw new IllegalStateException("Error loading execute at " + path, e); } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { if ("hybrid".equals(entity)) { String hybridName = cacheKey; try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) hybridMap.removeLocal(hybridName); else crud.reloadQuietly(hybridName); } for (ProjectInstance prj : ProjectManager.getInstance(config).findProjects(RealizationType.HYBRID, hybridName)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } else if ("cube".equals(entity)) { String cubeName = cacheKey; try (AutoLock l = lock.lockForWrite()) { for (HybridInstance hybrid : getHybridInstancesByChild(RealizationType.CUBE, cubeName)) { crud.reloadQuietly(hybrid.getName()); } } } } }
@Override public ExecutablePO reloadAt(String path) { try { ExecutablePO executablePO = readJobResource(path); if (executablePO == null) { logger.warn("No job found at {}, returning null", path); executableDigestMap.removeLocal(resourceName(path)); return null; } // create a digest ExecutablePO digestExecutablePO = new ExecutablePO(); digestExecutablePO.setUuid(executablePO.getUuid()); digestExecutablePO.setName(executablePO.getName()); digestExecutablePO.setLastModified(executablePO.getLastModified()); digestExecutablePO.setType(executablePO.getType()); digestExecutablePO.setParams(executablePO.getParams()); executableDigestMap.putLocal(resourceName(path), digestExecutablePO); return digestExecutablePO; } catch (Exception e) { throw new IllegalStateException("Error loading execute at " + path, e); } }
/** * the project-specific table desc will be expand by computed columns from the projects' models * when the projects' model list changed, project-specific table should be reset and get expanded * again */ public void resetProjectSpecificTableDesc(String prj) throws IOException { // avoid cyclic locks ProjectInstance project = ProjectManager.getInstance(config).getProject(prj); try (AutoLock lock = srcTableMapLock.lockForWrite()) { for (String tableName : project.getTables()) { String tableIdentity = getTableIdentity(tableName); String key = mapKey(tableIdentity, prj); TableDesc originTableDesc = srcTableMap.get(key); if (originTableDesc == null) { continue; } if (originTableDesc.isBorrowedFromGlobal()) { srcTableMap.removeLocal(key);//delete it so that getProjectSpecificTableDesc will create again } else { srcTableCrud.reload(key); } } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = srcTableMapLock.lockForWrite()) { if (event == Event.DROP) srcTableMap.removeLocal(cacheKey); else srcTableCrud.reloadQuietly(cacheKey); } Pair<String, String> pair = TableDesc.parseResourcePath(cacheKey); String table = pair.getFirst(); String prj = pair.getSecond(); if (prj == null) { for (ProjectInstance p : ProjectManager.getInstance(config).findProjectsByTable(table)) { broadcaster.notifyProjectSchemaUpdate(p.getName()); } } else { broadcaster.notifyProjectSchemaUpdate(prj); } } }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = srcExtMapLock.lockForWrite()) { if (event == Event.DROP) srcExtMap.removeLocal(cacheKey); else srcExtCrud.reloadQuietly(cacheKey); } } }