/** * Notify the worker to checkpoint the file asynchronously. * * @param fileId The id of the file * @return true if succeed, false otherwise * @throws IOException * @throws TException */ public boolean asyncCheckpoint(int fileId) throws IOException, TException { ClientFileInfo fileInfo = mMasterClient.getFileStatus(fileId, ""); if (fileInfo.getDependencyId() != -1) { synchronized (mDependencyLock) { mUncheckpointFiles.add(fileId); if (!mDepIdToFiles.containsKey(fileInfo.getDependencyId())) { mDepIdToFiles.put(fileInfo.getDependencyId(), new HashSet<Integer>()); } mDepIdToFiles.get(fileInfo.getDependencyId()).add(fileId); } return true; } return false; }