インターフェース LeaseRecoverable

LeaseRecoverable インターフェースは、現在のファイルシステムの指定されたパスが、リースが明示的に更新されていないか、リースを保持しているクライアントがなくなった場合に、開いているファイルのリースリカバリを実行できるかどうかを示します。

このインターフェースは、リースリカバリをサポートするファイルシステム(例:DistributedFileSystem(HDFS)およびViewDistributedFileSystem)に必要な場合に、適宜実装する必要があります。

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

このインターフェースには、リースリカバリを実行する機能と、ファイルが閉じられているかどうかを確認する機能の2つの主要な機能があります。

boolean recoverLease(Path file)

この関数は、指定されたファイルパスのリースリカバリを実行します。ディレクトリパスのリカバリはサポートしていません。1. ファイルがすでに閉じられているか、リースリカバリが必要ない場合は、trueを返します。2. リースリカバリがまだ完了していない場合は、falseを返します。3. ディレクトリパスが入力として指定された場合は、IOExceptionをスローします。

boolean isFileClosed(Path file)

この関数は、指定されたファイルパスが閉じられているかどうかのみを確認し、ディレクトリの確認はサポートしていません。1. ファイルが閉じられている場合は、trueを返します。2. ファイルがまだ開いている場合は、falseを返します。3. ディレクトリパスが入力として指定された場合は、IOExceptionをスローします。

パス機能は宣言する必要があります(SHOULD BE declared)

ファイルシステムがLeaseRecoverableをサポートしている場合、指定されたパスに対してPathCapabilities.hasPathCapability(path, "fs.capability.lease.recoverable")trueを返す必要があります。