接口 LeaseRecoverable

LeaseRecoverable 接口告知当前文件系统的给定路径是否可以对未显式续约租约或持有它的客户端消失的打开文件执行租约恢复。

如果需要,此接口应相应地实现到支持租约恢复的任何文件系统,例如 DistributedFileSystem (HDFS) 和 ViewDistributedFileSystem

public interface LeaseRecoverable {
  boolean recoverLease(Path file) throws IOException;
  boolean isFileClosed(Path file) throws IOException;
}

此接口有两个主要功能,一个执行租约恢复,另一个验证文件是否已关闭。

boolean recoverLease(Path file)

此函数对给定的文件路径执行租约恢复,且不支持目录路径恢复。1. 如果文件已关闭或不需要租约恢复,则返回 true。1. 如果租约恢复尚未完成,则返回 false。1. 如果给定的输入为目录路径,则抛出 IOException

boolean isFileClosed(Path file)

此函数仅检查给定的文件路径是否已关闭,且不支持目录验证。1. 如果文件已关闭,则返回 true。1. 如果文件仍处于打开状态,则返回 false。1. 如果给定的输入为目录路径,则抛出 IOException

Path Capabilities 应声明

如果文件系统支持 LeaseRecoverable,则它应针对给定的路径返回 truePathCapabilities.hasPathCapability(path, "fs.capability.lease.recoverable")