@Override // ReplicaInPipeline public void setBytesAcked(long bytesAcked) { long newBytesAcked = bytesAcked - this.bytesAcked; this.bytesAcked = bytesAcked; // Once bytes are ACK'ed we can release equivalent space from the // volume's reservedForRbw count. We could have released it as soon // as the write-to-disk completed but that would be inefficient. getVolume().releaseReservedSpace(newBytesAcked); bytesReserved -= newBytesAcked; }
@Override public OutputStream createRestartMetaStream() throws IOException { File blockFile = getBlockFile(); File restartMeta = new File(blockFile.getParent() + File.pathSeparator + "." + blockFile.getName() + ".restart"); if (!getFileIoProvider().deleteWithExistsCheck(getVolume(), restartMeta)) { DataNode.LOG.warn("Failed to delete restart meta file: " + restartMeta.getPath()); } return getFileIoProvider().getFileOutputStream(getVolume(), restartMeta); }
fileIoProvider.rename(getVolume(), oldmeta, newmeta); } catch (IOException e) { throw new IOException("Block " + oldReplicaInfo + " reopen failed. " + fileIoProvider.rename(getVolume(), oldBlockFile, newBlkFile); } catch (IOException e) { try { fileIoProvider.rename(getVolume(), newmeta, oldmeta); } catch (IOException ex) { LOG.warn("Cannot move meta file " + newmeta +
getFileIoProvider().getRandomAccessFile(getVolume(), metaFile, "rw"); try { blockOut = fileIoProvider.getFileOutputStream( getVolume(), new RandomAccessFile(blockFile, "rw").getFD()); crcOut = fileIoProvider.getFileOutputStream(getVolume(), metaRAF.getFD()); if (!isCreate) { blockOut.getChannel().position(blockDiskSize); getVolume(), fileIoProvider); } catch (IOException e) { IOUtils.closeStream(blockOut);