@Override public void close() throws IOException { if (mClosed) { return; } // TODO(calvin): Perhaps verify that something was read from this stream ClientContext.getClientMetrics().incBlocksReadRemote(1); mClosed = true; }
@Override protected void incrementBytesReadMetric(int bytes) { ClientContext.getClientMetrics().incBytesReadLocal(bytes); } }
/** * Increments the number of bytes read metric. * * @param bytes number of bytes to record as read */ @Override protected void incrementBytesReadMetric(int bytes) { ClientContext.getClientMetrics().incBytesReadRemote(bytes); }
private void writeToRemoteBlock(byte[] b, int off, int len) throws IOException { mRemoteWriter.write(b, off, len); mFlushedBytes += len; ClientContext.getClientMetrics().incBytesWrittenRemote(len); } }
@Override public void flush() throws IOException { int bytesToWrite = mBuffer.position(); if (mReservedBytes < bytesToWrite) { mReservedBytes += requestSpace(bytesToWrite - mReservedBytes); } MappedByteBuffer mappedBuffer = mLocalFileChannel.map(FileChannel.MapMode.READ_WRITE, mFlushedBytes, bytesToWrite); mappedBuffer.put(mBuffer.array(), 0, bytesToWrite); BufferUtils.cleanDirectBuffer(mappedBuffer); mReservedBytes -= bytesToWrite; mFlushedBytes += bytesToWrite; mBuffer.clear(); ClientContext.getClientMetrics().incBytesWrittenLocal(bytesToWrite); }
@Override protected void unBufferedWrite(byte[] b, int off, int len) throws IOException { if (mReservedBytes < len) { mReservedBytes += requestSpace(len - mReservedBytes); } MappedByteBuffer mappedBuffer = mLocalFileChannel.map(FileChannel.MapMode.READ_WRITE, mFlushedBytes, len); mappedBuffer.put(b, off, len); BufferUtils.cleanDirectBuffer(mappedBuffer); mReservedBytes -= len; mFlushedBytes += len; ClientContext.getClientMetrics().incBytesWrittenLocal(len); }
@Override public void close() throws IOException { if (mClosed) { return; } flush(); mCloser.close(); if (mWrittenBytes > 0) { mWorkerClient.cacheBlock(mBlockId); ClientContext.getClientMetrics().incBlocksWrittenLocal(1); } mContext.releaseWorkerClient(mWorkerClient); mClosed = true; }
@Override protected WorkerClient createNewResource() { long clientId = ClientContext.getRandomNonNegativeLong(); return new WorkerClient(mWorkerNetAddress, ClientContext.getExecutorService(), ClientContext.getConf(), clientId, true, ClientContext.getClientMetrics()); } }
@Override public void close() throws IOException { if (mClosed) { return; } try { if (mBlockIsRead) { mWorkerClient.accessBlock(mBlockId); ClientContext.getClientMetrics().incBlocksReadLocal(1); } mWorkerClient.unlockBlock(mBlockId); } finally { mContext.releaseWorkerClient(mWorkerClient); mCloser.close(); if (mBuffer != null && mBuffer.isDirect()) { BufferUtils.cleanDirectBuffer(mBuffer); } } mClosed = true; }
@Override public void write(int b) throws IOException { if (mShouldCacheCurrentBlock) { try { if (mCurrentBlockOutStream == null || mCurrentBlockOutStream.remaining() == 0) { getNextBlock(); } mCurrentBlockOutStream.write(b); } catch (IOException ioe) { handleCacheWriteException(ioe); } } if (mUnderStorageType.isSyncPersist()) { mUnderStorageOutputStream.write(b); ClientContext.getClientMetrics().incBytesWrittenUfs(1); } }
ClientContext.getClientMetrics().incBytesWrittenUfs(len);
@Override public void close() throws IOException { if (mClosed) { return; } flush(); mRemoteWriter.close(); if (mFlushedBytes > 0) { mWorkerClient.cacheBlock(mBlockId); ClientContext.getClientMetrics().incBlocksWrittenRemote(1); } else { mWorkerClient.cancelBlock(mBlockId); } mContext.releaseWorkerClient(mWorkerClient); mClosed = true; }