【手続補正書】
【提出日】令和2年9月18日(2020.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションがメタデータを読み込む第１の要求を発行することに応答して、メタデータ記憶領域から第１のメタデータユニットを読み込むことと、
前記メタデータ記憶領域内の前記第１のメタデータユニットの終了位置を判定することであって、
前記メタデータ記憶領域が不揮発性記憶ユニット内にある、判定することと、
前記アプリケーションがメタデータを読み込む第２の要求を発行することに応答して、前記メタデータ記憶領域内の第２のメタデータユニットの開始位置を判定することと、
前記終了位置と前記開始位置とを比較することによって、メタデータ先読み動作を実行することができるかどうかを判定することと、
前記終了位置と前記開始位置とが前記不揮発性記憶ユニットにおいて互いに隣接しているという判定に応答して、前記アプリケーションが第３のメタデータユニットを読み込む要求を発行する前に、前記メタデータ記憶領域から前記第３のメタデータユニットを読み込むことと、を含み、
前記第３のメタデータユニットを読み込むことは、メタデータ先読み動作を生成することを含む、方法。
【請求項２】
前記メタデータ記憶領域が、複数のｉノードを含み、
前記第１のメタデータユニットが、前記複数のｉノードのうちの１つ以上を含み、
前記第１のメタデータユニットが、構造ファイルの一部であり、
前記構造ファイルが、前記不揮発性記憶ユニットに記憶されている、請求項１に記載の方法。
【請求項３】
コア内ｉノードを作成することであって、
前記コア内ｉノードが、前記構造ファイルに対応する、作成することと、
前記コア内ｉノード内に前記第１のメタデータユニットの前記終了位置を記憶することであって、
前記終了位置が、前記第１のメタデータユニットの終了オフセットにより識別される、記憶することと、を更に含む、請求項２に記載の方法。
【請求項４】
前記終了オフセットを、前記メタデータ先読み動作によって読み取られた別のメタデータユニットの別の終了オフセットと置き換えることによって、前記終了オフセットを更新することであって、
前記別のメタデータユニットが、別の最後に読み取ったメタデータチャンクである、更新することを更に含む、請求項３に記載の方法。
【請求項５】
前記開始位置が前記終了オフセットに隣接していない場合に、前記終了オフセットを現在のメタデータ読み取り動作の終了オフセットと置き換えることによって前記終了オフセットを更新することを更に含む、請求項３に記載の方法。
【請求項６】
１つ以上のディスク上ｉノードを読み取るコマンドをインターセプトすることであって、
前記１つ以上のディスク上ｉノードが、前記複数のｉノードの一部であり、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドをもたらす、インターセプトすることと、
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に、前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、を更に含む、請求項２に記載の方法。
【請求項７】
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項６に記載の方法。
【請求項８】
プログラム命令を含む非一過性コンピュータ可読記憶媒体であって、前記プログラム命令が、
アプリケーションがメタデータを読み込む第１の要求を発行することに応答して、メタデータ記憶領域から第１のメタデータユニットを読み込むことと、
前記メタデータ記憶領域内の前記第１のメタデータユニットの終了位置を判定することであって、
前記メタデータ記憶領域が、不揮発性記憶ユニット内にある、判定することと、
前記アプリケーションがメタデータを読み込む第２の要求を発行することに応答して、前記メタデータ記憶領域内の第２のメタデータユニットの開始位置を判定することと、
前記終了位置と前記開始位置とを比較することによって、メタデータ先読み動作を実行することができるかどうかを判定することと、
前記終了位置と前記開始位置とが前記不揮発性記憶ユニットにおいて互いに隣接しているという判定に応答して、前記アプリケーションが第３のメタデータユニットを読み込む要求を発行する前に、前記メタデータ記憶領域から前記第３のメタデータユニットを読み込むことと、を含み、
前記第３のメタデータユニットを読み込むことは、メタデータ先読み動作を生成することを含む、方法を実行可能である、非一過性コンピュータ可読記憶媒体。
【請求項９】
前記メタデータ記憶領域が、複数のｉノードを含み、
前記第１のメタデータユニットが、前記複数のｉノードのうちの１つ以上を含み、
前記第１のメタデータユニットが、構造ファイルの一部であり、
前記構造ファイルが、前記不揮発性記憶ユニットに記憶されている、請求項８に記載の非一過性コンピュータ可読記憶媒体。
【請求項１０】
前記方法は、
コア内ｉノードを作成することであって、
前記コア内ｉノードが、前記構造ファイルに対応する、作成することと、
前記コア内ｉノード内に前記第１のメタデータユニットの前記終了位置を記憶することであって、
前記終了位置が、前記第１のメタデータユニットの終了オフセットにより識別される、記憶することと、を更に含む、請求項９に記載の非一過性コンピュータ可読記憶媒体。
【請求項１１】
前記方法は、
前記開始位置が前記終了オフセットに隣接している場合に、前記終了オフセットを、前記メタデータ先読み動作によって読み取られた別のメタデータユニットの別の終了オフセットと置き換えることによって前記終了オフセットを更新することであって、
前記別のメタデータユニットが、別の最後に読み取ったメタデータチャンクである、更新することと、
前記開始位置が前記終了オフセットに隣接していない場合に、前記終了オフセットを現在のメタデータ読み取り動作の終了オフセットと置き換えることによって前記終了オフセットを更新することと、を更に含む、請求項１０に記載の非一過性コンピュータ可読記憶媒体。
【請求項１２】
１つ以上のディスク上ｉノードを読み取るコマンドをインターセプトすることであって、
前記１つ以上のディスク上ｉノードが、前記複数のｉノードの一部であり、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドをもたらす、インターセプトすることと、
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に、前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項９に記載の非一過性コンピュータ可読記憶媒体。
【請求項１３】
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたメモリと、を備え、前記メモリが、前記１つ以上のプロセッサによって実行可能なプログラム命令を記憶し、前記プログラム命令が、
アプリケーションがメタデータを読み込む第１の要求を発行することに応答して、メタデータ記憶領域から第１のメタデータユニットを読み込むことと、
前記メタデータ記憶領域内の前記第１のメタデータユニットの終了位置を判定することであって、
前記メタデータ記憶領域が、不揮発性記憶ユニット内にある、判定することと、
前記アプリケーションがメタデータを読み込む第２の要求を発行することに応答して、前記メタデータ記憶領域内の第２のメタデータユニットの開始位置を判定することと、
前記終了位置と前記開始位置とを比較することによって、メタデータ先読み動作を実行することができるかどうかを判定することと、
前記終了位置と前記開始位置とが前記不揮発性記憶ユニットにおいて互いに隣接しているという判定に応答して、前記アプリケーションが第３のメタデータユニットを読み込む要求を発行する前に、前記メタデータ記憶領域から前記第３のメタデータユニットを読み込むことと、を含み、
前記第３のメタデータユニットを読み込むことは、メタデータ先読み動作を生成することを含む、方法を実行可能である、システム。
【請求項１４】
前記メタデータ記憶領域が、複数のｉノードを含み、
前記第１のメタデータユニットが、前記複数のｉノードのうちの１つ以上を含み、
前記第１のメタデータユニットが、構造ファイルの一部であり、
前記構造ファイルが、前記不揮発性記憶ユニットに記憶されている、請求項１３に記載のシステム。
【請求項１５】
前記方法は、
コア内ｉノードを作成することであって、
前記コア内ｉノードが、前記構造ファイルに対応する、作成することと、
前記コア内ｉノード内に前記第１のメタデータユニットの前記終了位置を記憶することであって、
前記終了位置が、前記第１のメタデータユニットの終了オフセットにより識別される、記憶することと、を更に含む、請求項１４に記載のシステム。
【請求項１６】
前記方法は、
前記開始位置が前記終了オフセットに隣接している場合に、前記終了オフセットを、前記メタデータ先読み動作によって読み取られた別のメタデータユニットの別の終了オフセットと置き換えることによって前記終了オフセットを更新することであって、
前記別のメタデータユニットが、別の最後に読み取ったメタデータチャンクである、更新することと、
前記開始位置が前記終了オフセットに隣接していない場合に、前記終了オフセットを現在のメタデータ読み取り動作の終了オフセットと置き換えることによって前記終了オフセットを更新することと、を更に含む、請求項１５に記載のシステム。
【請求項１７】
１つ以上のディスク上ｉノードを読み取るコマンドをインターセプトすることであって、
前記１つ以上のディスク上ｉノードが、前記複数のｉノードの一部であり、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドをもたらす、インターセプトすることと、
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項１４に記載のシステム。
【請求項１８】
ｉノードにアクセスすることと、
前記ｉノードのディレクトリを判定することと、
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することと、
前記エントリが前記グローバルｉノードリスト内に存在する場合に、
前記ディレクトリのファイル構造がシーケンシャルであるか非シーケンシャルであるかを判定し、
前記ディレクトリの前記ファイル構造がシーケンシャルであるとの判定に応答して、メタデータ先読み動作が発行されるべきであると判定された場合、前記メタデータ先読み動作を発行し、
前記ディレクトリの前記ファイル構造が非シーケンシャルであるとの判定に応答して、ｉノードリストを取り出すことと、
前記エントリが前記グローバルｉノードリスト内に存在しない場合に、前記グローバルｉノードリスト内に前記ディレクトリの新しいエントリを追加することと、を含む、方法。
【請求項１９】
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することは、
前記エントリの前記グローバルｉノードリストを探索することを含む、請求項１８に記載の方法。
【請求項２０】
前記ディレクトリの前記ファイル構造がシーケンシャルである場合に、前記ディレクトリがシーケンシャルフラグを含むかどうかを判定することと、
前記ディレクトリが前記シーケンシャルフラグを含む場合に、前記ｉノードリスト内の複数のｉノードのうちの１つ以上のｉノードに対する前記メタデータ先読み動作を発行することと、を更に含む、請求項１８に記載の方法。
【請求項２１】
前記ｉノードリストを取り出すことは、前記ディレクトリの前記ファイル構造が非シーケンシャルである場合に、前記ディレクトリの前記複数のｉノードのｉノードリストを取り出すことであって、
前記方法は、
前記ディレクトリの前記複数のｉノードの前記ｉノードリスト内の前記１つ以上のｉノードに対する前記メタデータ先読み動作を発行することと、を更に含む、請求項２０に記載の方法。
【請求項２２】
前記１つ以上のｉノードを読み取るコマンドをインターセプトすることであって、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドをもたらす、インターセプトすることを更に含む、請求項２１に記載の方法。
【請求項２３】
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、を更に含む、請求項２２に記載の方法。
【請求項２４】
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項２３に記載の方法。
【請求項２５】
前記ｉノードが、ディスク上ｉノードである、請求項１８に記載の方法。
【請求項２６】
プログラム命令を備える非一過性コンピュータ可読記憶媒体であって、前記プログラム命令が、
ｉノードにアクセスすることと、
前記ｉノードのディレクトリを判定することと、
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することと、
前記エントリが前記グローバルｉノードリスト内に存在する場合に、
前記ディレクトリのファイル構造がシーケンシャルであるか非シーケンシャルであるかを判定し、
前記ディレクトリの前記ファイル構造がシーケンシャルであるとの判定に応答して、メタデータ先読み動作が発行されるべきであると判定された場合、前記メタデータ先読み動作を発行し、
前記ディレクトリの前記ファイル構造が非シーケンシャルであるとの判定に応答して、ｉノードリストを取り出すことと、
前記エントリが前記グローバルｉノードリスト内に存在しない場合に、前記グローバルｉノードリスト内に前記ディレクトリの新しいエントリを追加することと、を含む、方法を実行可能である、非一過性コンピュータ可読記憶媒体。
【請求項２７】
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することが、
前記エントリの前記グローバルｉノードリストを探索することを含み、
前記ｉノードが、ディスク上ｉノードである、請求項２６に記載の非一過性コンピュータ可読記憶媒体。
【請求項２８】
前記方法は、
前記ディレクトリの前記ファイル構造がシーケンシャルである場合に、前記ディレクトリがシーケンシャルフラグを含むかどうかを判定することと、
前記ディレクトリが前記シーケンシャルフラグを含む場合に、前記ｉノードリスト内の複数のｉノードのうちの１つ以上のｉノードに対する前記メタデータ先読み動作を発行することであって、
前記ｉノードリストを取り出すことは、前記ディレクトリの前記ファイル構造が非シーケンシャルである場合に、前記ディレクトリの前記複数のｉノードのｉノードリストを取り出すことである、発行することと、
前記ディレクトリの前記複数のｉノードの前記ｉノードリスト内の前記１つ以上のｉノードに対する前記メタデータ先読み動作を発行することと、を更に含む、請求項２６に記載の非一過性コンピュータ可読記憶媒体。
【請求項２９】
前記方法は、
前記１つ以上のｉノードを読み取るコマンドをインターセプトすることであって、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドをもたらす、インターセプトすることを更に含む、請求項２８に記載の非一過性コンピュータ可読記憶媒体。
【請求項３０】
前記方法は、
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、を更に含む、請求項２９に記載の非一過性コンピュータ可読記憶媒体。
【請求項３１】
前記方法は、
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項３０に記載の非一過性コンピュータ可読記憶媒体。
【請求項３２】
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたメモリと、を備え、前記メモリが、前記１つ以上のプロセッサによって実行可能なプログラム命令を記憶し、前記プログラム命令が、
ｉノードにアクセスすることと、
前記ｉノードのディレクトリを判定することと、
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することと、
前記エントリが前記グローバルｉノードリスト内に存在する場合に、
前記ディレクトリのファイル構造がシーケンシャルであるか非シーケンシャルであるかを判定し、
前記ディレクトリの前記ファイル構造がシーケンシャルであるとの判定に応答して、メタデータ先読み動作が発行されるべきであると判定された場合、前記メタデータ先読み動作を発行し、
前記ディレクトリの前記ファイル構造が非シーケンシャルであるとの判定に応答して、ｉノードリストを取り出すことと、
前記エントリが前記グローバルｉノードリスト内に存在しない場合に、前記グローバルｉノードリスト内に前記ディレクトリの新しいエントリを追加することと、を含む、方法を実行可能である、システム。
【請求項３３】
前記ディレクトリのエントリがグローバルｉノードリスト内に存在するかどうかを判定することが、
前記エントリの前記グローバルｉノードリストを探索することを含み、
前記ｉノードが、ディスク上ｉノードである、請求項３２に記載のシステム。
【請求項３４】
前記方法は、
前記ディレクトリの前記ファイル構造がシーケンシャルである場合に、前記ディレクトリがシーケンシャルフラグを含むかどうかを判定することと、
前記ディレクトリが前記シーケンシャルフラグを含む場合に、前記ｉノードリスト内の複数のｉノードのうちの１つ以上のｉノードに対する前記メタデータ先読み動作を発行することであって、
前記ｉノードリストを取り出すことは、前記ディレクトリの前記ファイル構造が非シーケンシャルである場合に、前記ディレクトリの前記複数のｉノードのｉノードリストを取り出すことである、発行することと、
前記ディレクトリの前記複数のｉノードの前記ｉノードリスト内の前記１つ以上のｉノードに対する前記メタデータ先読み動作を発行することと、を更に含む、請求項３２に記載のシステム。
【請求項３５】
前記方法は、
前記１つ以上のｉノードを読み取るコマンドをインターセプトすることであって、
前記インターセプトが、入出力（Ｉ／Ｏ）動作に応答して実行され、
前記Ｉ／Ｏ動作が、前記コマンドを、もたらす、インターセプトすることを更に含む、請求項３４に記載のシステム。
【請求項３６】
前記方法は、
前記メタデータ先読み動作において発行されたメタデータ先読み値を解析することであって、
前記解析が、前記発行されたメタデータ先読み値と前記コマンド内のチャンク合計とを比較することを含む、解析することと、
前記Ｉ／Ｏ動作が完了するであろうことを前記解析が示す場合に、前記Ｉ／Ｏ動作が完了するのを待つことと、
非同期メタデータ先読み命令が発行され得ることを前記解析が示す場合に、非同期メタデータ先読み命令を発行することと、を更に含む、請求項３５に記載のシステム。
【請求項３７】
前記方法は、
前記Ｉ／Ｏ動作が完了しているかどうかを判定することと、
前記Ｉ／Ｏ動作が完了している場合に、待ち行列を生成することであって、
前記待ち行列が、前記チャンク合計のメタデータの１つ以上の残りのチャンクを含み、
前記メタデータの前記１つ以上の残りのチャンクが、前記非同期メタデータ先読み命令に含まれていない、生成することと、
前記Ｉ／Ｏ動作が完了していない場合に、前記チャンク合計を前記メタデータ先読み動作において更新することと、を更に含む、請求項３６に記載のシステム。