@ThreadSafe public class MetadataCachingFileSystem extends DelegatingFileSystem
FileSystem.Factory
mDelegatedFileSystem
Constructor and Description |
---|
MetadataCachingFileSystem(FileSystem fileSystem,
FileSystemContext context) |
Modifier and Type | Method and Description |
---|---|
void |
asyncUpdateFileAccessTime(AlluxioURI path)
Asynchronously update file's last access time.
|
void |
close() |
void |
createDirectory(AlluxioURI path,
CreateDirectoryPOptions options)
Creates a directory.
|
FileOutStream |
createFile(AlluxioURI path,
CreateFilePOptions options)
Creates a file.
|
void |
delete(AlluxioURI path,
DeletePOptions options)
Deletes a file or a directory.
|
void |
dropMetadataCache(AlluxioURI uri)
Best efforts to drops metadata cache of a given uri,
all its ancestors and descendants.
|
void |
dropMetadataCacheAll()
Drop all metadata cache.
|
List<BlockLocationInfo> |
getBlockLocations(AlluxioURI path)
Builds a list of
BlockLocationInfo for the given file. |
long |
getMetadataCacheSize() |
URIStatus |
getStatus(AlluxioURI path,
GetStatusPOptions options)
Gets the
URIStatus object that represents the metadata of an Alluxio path. |
void |
iterateStatus(AlluxioURI path,
ListStatusPOptions options,
java.util.function.Consumer<? super URIStatus> action)
Performs a specific action on each
URIStatus in the result of FileSystem.listStatus(alluxio.AlluxioURI) . |
List<URIStatus> |
listStatus(AlluxioURI path,
ListStatusPOptions options)
If the path is a directory, returns the
URIStatus of all the direct entries in it. |
FileInStream |
openFile(AlluxioURI path,
OpenFilePOptions options)
Opens a file for reading.
|
void |
rename(AlluxioURI src,
AlluxioURI dst,
RenamePOptions options)
Renames an existing Alluxio path to another Alluxio path in Alluxio.
|
checkAccess, exists, free, getBlockLocations, getConf, getJobProgress, getMountTable, getSyncPathList, getUnderlyingFileSystem, isClosed, listStatusPartial, loadMetadata, mount, needsSync, openFile, persist, reverseResolve, setAcl, setAttribute, startSync, stopJob, stopSync, submitJob, unmount, updateMount
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createDirectory, createFile, delete, exists, free, getMountTable, getStatus, iterateStatus, listStatus, loadMetadata, mount, openFile, persist, rename, setAcl, setAttribute, unmount
public MetadataCachingFileSystem(FileSystem fileSystem, FileSystemContext context)
fileSystem
- the file systemcontext
- the fs contextpublic void createDirectory(AlluxioURI path, CreateDirectoryPOptions options) throws FileAlreadyExistsException, InvalidPathException, IOException, AlluxioException
FileSystem
createDirectory
in interface FileSystem
createDirectory
in class DelegatingFileSystem
path
- the path of the directory to create in Alluxio spaceoptions
- options to associate with this operationFileAlreadyExistsException
- if there is already a file or directory at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public FileOutStream createFile(AlluxioURI path, CreateFilePOptions options) throws IOException, AlluxioException
FileSystem
createFile
in interface FileSystem
createFile
in class DelegatingFileSystem
path
- the path of the file to create in Alluxio spaceoptions
- options to associate with this operationFileOutStream
which will write data to the newly created fileFileAlreadyExistsException
- if there is already a file at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public void delete(AlluxioURI path, DeletePOptions options) throws IOException, AlluxioException
FileSystem
delete
in interface FileSystem
delete
in class DelegatingFileSystem
path
- the path to delete in Alluxio spaceoptions
- options to associate with this operationFileDoesNotExistException
- if the given path does not existDirectoryNotEmptyException
- if recursive is false and the path is a nonempty directoryIOException
AlluxioException
public void rename(AlluxioURI src, AlluxioURI dst, RenamePOptions options) throws IOException, AlluxioException
FileSystem
rename
in interface FileSystem
rename
in class DelegatingFileSystem
src
- the path of the source, this must already existdst
- the path of the destination, this path should not existoptions
- options to associate with this operationFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public List<BlockLocationInfo> getBlockLocations(AlluxioURI path) throws IOException, AlluxioException
FileSystem
BlockLocationInfo
for the given file. Each list item contains a list
of WorkerNetAddress
which allows a user to determine the physical location of a block
of the given file stored within Alluxio. In the case where data is stored in a UFS, but not in
Alluxio this function will only include a WorkerNetAddress
if the block stored in the
UFS is co-located with an Alluxio worker.
However if there are no co-located Alluxio workers for the block, then the behavior is
controlled by the PropertyKey.USER_UFS_BLOCK_LOCATION_ALL_FALLBACK_ENABLED
. If
this property is set to true
then every Alluxio worker will be returned.
Blocks which are stored in the UFS and are *not* co-located with any Alluxio worker will return
an empty list. If the file block is within Alluxio *and* the UFS then this will only return
Alluxio workers which currently store the block.getBlockLocations
in interface FileSystem
getBlockLocations
in class DelegatingFileSystem
path
- the path to get block info forFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public URIStatus getStatus(AlluxioURI path, GetStatusPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
object that represents the metadata of an Alluxio path.getStatus
in interface FileSystem
getStatus
in class DelegatingFileSystem
path
- the path to obtain information aboutoptions
- options to associate with this operationURIStatus
of the fileFileDoesNotExistException
- if the path does not existIOException
AlluxioException
public void iterateStatus(AlluxioURI path, ListStatusPOptions options, java.util.function.Consumer<? super URIStatus> action) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
in the result of FileSystem.listStatus(alluxio.AlluxioURI)
.
This method is preferred when iterating over directories with a large number of files or
sub-directories inside. The caller can proceed with partial result without waiting for all
result returned.iterateStatus
in interface FileSystem
iterateStatus
in class DelegatingFileSystem
path
- the path to list information aboutoptions
- options to associate with this operationaction
- action to apply on each URIStatus
FileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public List<URIStatus> listStatus(AlluxioURI path, ListStatusPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
of all the direct entries in it.
Otherwise returns a list with a single URIStatus
element for the file.listStatus
in interface FileSystem
listStatus
in class DelegatingFileSystem
path
- the path to list information aboutoptions
- options to associate with this operationURIStatus
s containing information about the files and directories
which are children of the given pathFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public FileInStream openFile(AlluxioURI path, OpenFilePOptions options) throws FileDoesNotExistException, OpenDirectoryException, FileIncompleteException, IOException, AlluxioException
FileSystem
openFile
in interface FileSystem
openFile
in class DelegatingFileSystem
path
- the file to read fromoptions
- options to associate with this operationFileInStream
for the given pathFileDoesNotExistException
- when path does not existOpenDirectoryException
- when path is a directoryFileIncompleteException
- when path is a file and is not completed yetIOException
AlluxioException
public void asyncUpdateFileAccessTime(AlluxioURI path)
path
- the path to the filepublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class DelegatingFileSystem
IOException
public void dropMetadataCache(AlluxioURI uri)
uri
- the uri need to drop metadata cachepublic void dropMetadataCacheAll()
public long getMetadataCacheSize()
Copyright © 2023. All Rights Reserved.