Interface FsVolumeSpi
- All Superinterfaces:
Checkable<FsVolumeSpi.VolumeCheckContext,VolumeCheckResult>
- All Known Implementing Classes:
FsVolumeImpl
This is an interface for the underlying volume.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceBlockIterator will return ExtendedBlock entries from a block pool in this volume.static classTracks the files and other information related to a block on the disk Missing file is indicated by setting the corresponding member to null.static classContext for theCheckable.check(K)call. -
Method Summary
Modifier and TypeMethodDescriptionvoidcompileReport(String bpid, Collection<FsVolumeSpi.ScanInfo> report, DirectoryScanner.ReportCompiler reportCompiler) Compile a list ofFsVolumeSpi.ScanInfofor the blocks in the block pool with idbpid.longString[]Get the FSDatasetSpi which this volume is a part of.org.apache.hadoop.fs.StorageTypeorg.apache.hadoop.fs.DFgetUsageStats(org.apache.hadoop.conf.Configuration conf) booleanReturns true if the volume is backed by RAM storage.booleanReturns true if the volume is NOT backed by persistent storage.loadBlockIterator(String bpid, String name) Load a saved block iterator.byte[]loadLastPartialChunkChecksum(File blockFile, File metaFile) Load last partial chunk checksum from checksum file.newBlockIterator(String bpid, String name) Create a new block iterator.Obtain a reference object that had increased 1 reference count of the volume.voidreleaseLockedMemory(long bytesToRelease) Release reserved memory for an RBW block written to transient storage i.e.voidreleaseReservedSpace(long bytesToRelease) Release disk space previously reserved for block opened for write.voidreserveSpaceForReplica(long bytesToReserve) Reserve disk space for a block (RBW or Re-replicating) so a writer does not run out of space before the block is full.
-
Method Details
-
obtainReference
Obtain a reference object that had increased 1 reference count of the volume. It is caller's responsibility to closeFsVolumeReferenceto decrease the reference count on the volume.- Throws:
ClosedChannelException
-
getStorageID
String getStorageID()- Returns:
- the StorageUuid of the volume
-
getBlockPoolList
String[] getBlockPoolList()- Returns:
- a list of block pools.
-
getAvailable
- Returns:
- the available storage space in bytes.
- Throws:
IOException
-
getBaseURI
URI getBaseURI()- Returns:
- the base path to the volume
-
getUsageStats
org.apache.hadoop.fs.DF getUsageStats(org.apache.hadoop.conf.Configuration conf) -
getStorageLocation
StorageLocation getStorageLocation()- Returns:
- the
StorageLocationto the volume
-
getStorageType
org.apache.hadoop.fs.StorageType getStorageType()- Returns:
- the
StorageTypeof the volume
-
isTransientStorage
boolean isTransientStorage()Returns true if the volume is NOT backed by persistent storage. -
isRAMStorage
boolean isRAMStorage()Returns true if the volume is backed by RAM storage. -
reserveSpaceForReplica
void reserveSpaceForReplica(long bytesToReserve) Reserve disk space for a block (RBW or Re-replicating) so a writer does not run out of space before the block is full. -
releaseReservedSpace
void releaseReservedSpace(long bytesToRelease) Release disk space previously reserved for block opened for write. -
releaseLockedMemory
void releaseLockedMemory(long bytesToRelease) Release reserved memory for an RBW block written to transient storage i.e. RAM. bytesToRelease will be rounded down to the OS page size since locked memory reservation must always be a multiple of the page size. -
newBlockIterator
Create a new block iterator. It will start at the beginning of the block set.- Parameters:
bpid- The block pool id to iterate over.name- The name of the block iterator to create.- Returns:
- The new block iterator.
-
loadBlockIterator
Load a saved block iterator.- Parameters:
bpid- The block pool id to iterate over.name- The name of the block iterator to load.- Returns:
- The saved block iterator.
- Throws:
IOException- If there was an IO error loading the saved block iterator.
-
getDataset
FsDatasetSpi getDataset()Get the FSDatasetSpi which this volume is a part of. -
loadLastPartialChunkChecksum
Load last partial chunk checksum from checksum file. Need to be called with FsDataset lock acquired.- Parameters:
blockFile-metaFile-- Returns:
- the last partial checksum
- Throws:
IOException
-
compileReport
void compileReport(String bpid, Collection<FsVolumeSpi.ScanInfo> report, DirectoryScanner.ReportCompiler reportCompiler) throws InterruptedException, IOException Compile a list ofFsVolumeSpi.ScanInfofor the blocks in the block pool with idbpid.- Parameters:
bpid- block pool id to scanreport- the list onto which blocks reports are placedreportCompiler-- Throws:
InterruptedExceptionIOException
-
getFileIoProvider
FileIoProvider getFileIoProvider() -
getMetrics
DataNodeVolumeMetrics getMetrics()
-