/** * Acquires a file system master client from the file system master client pool. * * @return the acquired file system master client */ public FileSystemMasterClient acquireMasterClient() { return mFileSystemMasterClientPool.acquire(); }
/** * Releases a file system master client into the file system master client pool. * * @param masterClient a file system master client to release */ public void releaseMasterClient(FileSystemMasterClient masterClient) { mFileSystemMasterClientPool.release(masterClient); }
@Test public void create() throws Exception { AlluxioConfiguration conf = ConfigurationTestUtils.defaults(); FileSystemMasterClient expectedClient = Mockito.mock(FileSystemMasterClient.class); PowerMockito.mockStatic(FileSystemMasterClient.Factory.class); Mockito.when(FileSystemMasterClient.Factory .create(Mockito.any(MasterClientContext.class))) .thenReturn(expectedClient); FileSystemMasterClient client; try (FileSystemMasterClientPool pool = new FileSystemMasterClientPool(ClientContext.create(conf), null)) { client = pool.acquire(); assertEquals(expectedClient, client); pool.release(client); } Mockito.verify(client).close(); } }
/** * Re-initializes the Block Store context. This method should only be used in * {@link ClientContext}. */ public void reset() { mFileSystemMasterClientPool.close(); mFileSystemMasterClientPool = new FileSystemMasterClientPool(ClientContext.getMasterAddress()); } }
mMasterInquireClient = masterInquireClient; mFileSystemMasterClientPool = new FileSystemMasterClientPool(mClientContext, mMasterInquireClient); mBlockMasterClientPool = new BlockMasterClientPool(mClientContext, mMasterInquireClient); mClosed.set(false);
/** * Closes all the resources associated with the context. Make sure all the resources are released * back to this context before calling this close. After closing the context, all the resources * that acquired from this context might fail. Only call this when you are done with using * the {@link FileSystem} associated with this {@link FileSystemContext}. */ public synchronized void close() throws IOException { if (!mClosed.get()) { mFileSystemMasterClientPool.close(); mFileSystemMasterClientPool = null; mBlockMasterClientPool.close(); mBlockMasterClientPool = null; mMasterInquireClient = null; if (mMetricsMasterClient != null) { ThreadUtils.shutdownAndAwaitTermination(mExecutorService, mClientContext.getConf().getMs(PropertyKey.METRICS_CONTEXT_SHUTDOWN_TIMEOUT)); mMetricsMasterClient.close(); mMetricsMasterClient = null; mClientMasterSync = null; } mLocalWorkerInitialized = false; mLocalWorker = null; mClosed.set(true); } else { LOG.warn("Attempted to close FileSystemContext with app ID {} which has already been closed" + " or not initialized.", mAppId); } }
/** * Creates a new file stream context. */ FileSystemContext() { mFileSystemMasterClientPool = new FileSystemMasterClientPool(ClientContext.getMasterAddress()); mAlluxioBlockStore = AlluxioBlockStore.get(); }
@Override public void close() { mFileSystemMasterClientPool.release(get()); } };
/** * Acquires a file system master client from the file system master client pool. The resource is * {@code Closeable}. * * @return the acquired file system master client resource */ public CloseableResource<FileSystemMasterClient> acquireMasterClientResource() { return new CloseableResource<FileSystemMasterClient>(mFileSystemMasterClientPool.acquire()) { @Override public void close() { mFileSystemMasterClientPool.release(get()); } }; }
/** * Releases a block master client into the block master client pool. * * @param masterClient a block master client to release */ public void releaseMasterClient(FileSystemMasterClient masterClient) { mFileSystemMasterClientPool.release(masterClient); }
/** * Acquires a block master client from the block master client pool. * * @return the acquired block master client */ public FileSystemMasterClient acquireMasterClient() { return mFileSystemMasterClientPool.acquire(); }