(58)【調査した分野】(Int.Cl.,DB名)
前記インデックス操作要求は、インデックス取得要求を有し、前記増分区間の中のメタデータの前記少なくとも1つのピースに従い前記インデックス操作要求に対する応答を生成するステップは、
前記増分区間から見付かる、前記ファイルに対応するメタデータの各ピースの書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、抽出したメタデータを発行するステップ、を有する、
請求項1に記載の方法。
前記メタデータ生成モジュールは、さらに、前記ファイルIDと前記記憶位置との間のマッピング関係を生成し、前記マッピング関係を前記インデックスとして取り入れて前記ファイルの前記メタデータを生成する、
請求項16に記載のシステム。
【発明を実施するための形態】
【0012】
本開示の特徴及び利点を具現化する実施形態は、以下の説明に詳細に記載される。これは、包括的であること又は本開示を制限することを意図しない。本開示の実施形態は、本開示の範囲から逸脱することなく、多くの方法で変更されて良い。説明及び図面は、本開示を記載するために使用され、本開示を制限するために使用されない。
【0013】
分散型記憶は、2つのインデックス管理モードを含み得る。第1の種類は、データセンタの代わりに、一貫ハッシュ法を用いてインデックスを管理することであって良い。他の種類は、ファイルID及びその記憶場所を格納するために、データセンタを用いてインデックスを管理することであって良い。
【0014】
どのモードが採用されるかに拘わらず、大容量ファイルの記憶に関して、膨大な益々拡大するインデックスが適時維持される必要がある。
【0015】
しかしながら、既存の大量インデックスにより、動作性能は、インデックスクエリの遅延により決定される場合がある。既存のインデックス管理モードでは、大量のデータが検索されるので、動作性能は向上できない。したがって、ファイルストレージにおけるインデックス付けの実施は最適化されるべきである。
【0016】
本開示の実施形態は、ファイルストレージにおけるインデックス付けの実施方法を提供し、種々のインデックス操作の処理性能を向上できる。
【0017】
ファイルストレージにおけるインデックス付け実施方法は、コンピュータプログラムにより実施されて良い。したがって、構造化ファイルストレージにおけるインデックス付け実施システムは、種々のインデックス操作を実施するプロセスを走らせるため及びインデックスの追加、削除、検索、及び偏光操作を実施するために、サーバ又はサーバクラスタに格納されて良い。
【0018】
図1は、本開示の種々の実施形態によるサーバの構造を示す図である。サーバ100は、異なる構成及び性能により大きく異なって良く、(1以上のプロセッサのような)1以上のCPU(Central Processing Unit)110、記憶装置120、1以上の記憶プログラム131、又はデータ133の(1以上の大容量記憶装置のような)記憶媒体130を有して良い。記憶装置120及び記憶媒体130は、一時的又は永久的にデータを格納して良い。記憶媒体130に格納されたプログラムは、1以上のモジュール(図示しない)を有して良い。各モジュールは、サーバの一連の命令動作を有して良い。さらに、CPU110は、記憶媒体130と通信し、記憶媒体130内の一連の命令動作を実行するよう構成されて良い。サーバは、1以上の電源150、1以上の有線/無線ネットワークインタフェース170、1以上の入力/出力インタフェース180、及び/又はWindowsServer(商標)、MacOS X(商標)、Unix(商標)、Linux(商標)、FreeBSD(商標)、等のような1以上のオペレーティングシステム(OS)135、を更に有して良い。サーバにより実行される以下のブロックは、
図1に示すサーバの構造に基づいて良い。
【0019】
上述の観点から、本開示の実施形態に適用され得るサーバ100は、格納されたファイルをインデックス付けするために、プログラム命令のフォーマットで、ファイルのインデクス操作要求に対する応答を生成して良い。
【0020】
さらに、本開示の実施形態は、回路又はソフトウェア命令と結合される回路により実施されても良い。したがって、本開示の実施形態は、特定の回路、ソフトウェア、又はそれらの組合せに限定されない。
【0021】
一実施形態では、具体的に、ファイルストレージにおけるインデックス付け実施方法は、
図2に示すことができ、以下のブロックを有して良い。
【0022】
ブロック210で、
ファイルにインデックスを付けることを要求する、ファイルのインデックス操作要求が得られて良い。
【0023】
このファイルは、格納されるべきファイル、つまり、分散型記憶システムに格納されるべきファイル、又は分散型記憶システムに格納されている任意のファイルであって良い。ファイルのインデックス付け操作は、分散型記憶システム内のファイルの操作に対応して良く、インデックス付け操作は、必要なファイル操作に従いトリガされて良い。
【0024】
例えば、分散型記憶システム内のファイルのファイル操作は、ファイルを書き込み、読み出し、又は削除するための、書き込み操作、読み出し操作、削除操作、等を有して良い。したがって、ファイルのインデックス操作は、ファイルを生成し、取得し、及び削除することを有して良い。
【0025】
大量のファイルが格納され、新しいファイルが書き込まれているので、ファイルに対してファイル操作を実行し得る大量のクライアント装置が存在し、クライアント装置からのファイルインデックス操作要求が絶えず受信され得る。
【0026】
ブロック230で、ファイルに対応するメタデータが増分区間に格納されるか否かを決定するために、検索操作が実行されて良い。ファイルに対応するメタデータが増分区間に格納されるとき、ブロック250が実行されて良い。その他の場合、ブロック270が実行されて良い。
【0027】
一実施形態では、メタデータ及びメタデータを格納する増分区間は、メタデータクラスタ又は他の装置内に実装されて良い。メタデータクラスタは、メタデータを格納し及びメタデータ記憶サービスを提供するために使用されて良い。任意のメタデータは以下を含んで良い。ファイルに対応するインデックス、及び関連する属性。メタデータは、ファイルID、つまりキー、により区別できる。メタデータ記憶サービスは、プログラムであって良い。該プログラムは、メタデータに基づきサービスを提供して良く、インデックス操作要求に対する応答を生成するときに呼び出され得るデータ追加、削除、検索、又は変更インタフェースを提供して良い。
【0028】
メタデータクラスタでは、キー区間は、増分区間と全量区間とに分割されて良い。増分区間及び全量区間は、メタデータの複数のピースを格納して良い。一実施形態では、増分区間に格納されたデータは、全量区間に格納されたデータより少なくて良い。
【0029】
格納されたファイルに関し、格納されたファイルが取得されるか又は削除されるかに関わらず、クライアント装置は、ファイルのインデックス操作要求を開始して良い。インデックス操作要求は、インデックス取得要求又はインデックス削除要求であって良い。
【0030】
インデックス操作要求が取得された後、検索要求が、メタデータが格納され得る増分区間の中で実行されて良い。増分区間が対応するメタデータを格納するとき、メタデータを用いてインデックス操作要求に対する応答が生成されて良い。
【0031】
増分区間は比較的少ないデータを格納し得るので、増分区間において実行される検索操作の性能は高く、検索操作により引き起こされる遅延を削減できる。
【0032】
ブロック250で、増分区間の中のメタデータを用いてインデックス操作要求に対する応答が生成されて良い。
【0033】
インデックス操作要求に対応するメタデータが、増分区間について実行された検索操作により取得された後、インデックス操作がメタデータに対して実行されて良く、処理結果がクライアント装置に返されて良く、インデックス操作要求に対する応答を終了する。
つまり、増分区間の中のメタデータの少なくとも1つのピースに従いインデックス操作要求に対する応答を生成する方法は、増分区間の中のメタデータの少なくとも1つのピースに対してインデックス操作を実行することを有して良い。
【0034】
ブロック270で、インデックス操作要求は、増分区間に対応する全量区間により処理されて良い。
【0035】
インデックス操作要求に対応するメタデータが増分区間内に見付からないとき、これは、メタデータが全量区間内に格納されている場合があることを示し得る。したがって、インデックス操作要求の処理は、全量区間において実行されて良い。
つまり、増分区間に対応する全量区間に従いインデックス操作要求を処理する方法は、増分区間に対応する全量区間の中のメタデータの少なくとも1つのピースに対してインデックス操作を実行することを有して良い。
【0036】
つまり、分散型記憶システムのデータセンタのようなメタデータクラスタは、インデックスを格納し及び管理して良い。ストレージサービスのアーキテクチャは、以下の通りであって良い。
【0037】
メタデータクラスタでは、キー区間は、増分区間と全量区間とに分割されて良い。ファイルのインデックス操作要求を取得した後に、ファイルIDに従いキー区間が決定されて良い。決定されたキー区間内で、先ず、増分区間内で検索操作が実行されて良い。対応するメタデータが増分区間から見付からないとき、検索操作は、全量区間内で実行されて良い。メタデータが増分区間から見付かるとき、多くのコンピュータリソースが節約でき、大容量データの記憶の高い信頼性が保証できる。
【0038】
一実施形態では、上述のインデックス操作要求は、インデックス取得要求を有して良く、ブロック250は以下の処理を含んで良い。
【0039】
メタデータは、書き込みタイムスタンプ
、つまりメタデータが増分区間に書き込まれたタイムスタンプ、に従い増分区間から見付かったファイルに対応するメタデータから抽出されて良く、抽出されたメタデータは発行されて良い。
【0040】
メタデータは、ファイルに対応するインデックス、及び関連する属性を有して良い。属性は、メタデータが増分区間に書き込まれるときの書き込みタイムスタンプのような、インデックスについて実行される操作に対応するタイムスタンプを有して良い。
【0041】
書き込みタイムスタンプに従い、メタデータは、ファイルIDにより区別されるだけでなく、タイムスタンプによっても区別できる。したがって、同じファイルがメタデータの複数のピースに対応して良く、増分区間又は全量区間に格納されて良く、又は増分区間及び全量区間に格納されて良い。メタデータは、同じファイルIDを有して良く、メタデータの書き込みタイムスタンプは異なって良い。
【0042】
一実施形態では、増分区間から見付かったファイルに対応するメタデータの複数のピースの中の各メタデータの書き込みスタンプは、メタデータを抽出するために、最新のタイムスタンプと比較されて良く、最新のタイムスタンプを有するメタデータが発行されて良い。
【0043】
さらに、本実施形態では、
図3に示すように、ブロック270は以下のブロックを有して良い。
【0044】
ブロック271で、ファイルに対応するメタデータが増分区間に対応する全量区間に格納されるか否かを決定するために、検索操作が実行されて良い。ファイルに対応するメタデータが増分区間に対応する全量区間に格納されるとき、ブロック273が実行されて良い。その他の場合、ブロック275が実行されて良い。
【0045】
メタデータが増分区間内に見つからないとき、メタデータは増分区間に対応する全量区間内で検索されて良い。
【0046】
具体的に、全量区間は、インデックス操作要求内のファイルIDに従い、ファイルIDを含むメタデータを見付けるために、検索されて良い。見付かったメタデータは、ファイルに対応するものであって良い。
【0047】
ブロック273で、メタデータは、書き込みタイムスタンプに従い全量区間から見付かったファイルに対応するメタデータから抽出されて良く、発行されて良い。
【0048】
各メタデータは、対応するタイムスタンプを有して良い。したがって、最新のタイムスタンプに対応するメタデータは、書き込みタイムスタンプに従い抽出されて良い。
【0049】
ブロック275で、ファイルに対応するインデックスレコードが存在しないことを示す結果情報が返されて良い。
【0050】
全量区間からメタデータが見付からないとき、結果情報が、インデックス操作要求を開始したクライアント装置に返されて良い。
【0051】
一実施形態では、上述のインデックス操作要求は、インデックス削除要求を有して良く、ブロック250は以下の処理を含んで良い。
【0052】
インデックス削除操作は、ファイルのインデックス削除要求に従い増分区間に格納されたメタデータ内にマーク付けされて良く、インデックス削除操作に対応する削除タイムスタンプが追加されて良い。
【0053】
削除操作が格納されたファイルに対して実行される前に、インデックスの削除操作が先ず実行されて良い。したがって、クライアント装置は、先ず、メタデータクラスタに対しインデックス削除要求を開始して良い。
【0054】
メタデータクラスタに関し、インデックス削除要求が取得されて良く、対応するメタデータが増分区間から見付かって良い。メタデータは、ファイルのインデックス削除要求に従い削除としてマーク付けされて良い。つまり、メタデータを削除する代わりに、インデックスをマーク付けする操作。そして、削除タイムスタンプが、メタデータの属性に追加されて良い。
【0055】
上述の削除処理により、現在バージョンのメタデータは、現在バージョンのメタデータの損失を回避するために、履歴データとして格納されて良い。したがって、格納されたファイルが削除された後に、ユーザは、後のフォールバック操作において削除したファイルを依然として取得できる。
【0056】
一実施形態では、上述のインデックス操作要求は、インデックス生成要求を含んで良い。ブロック210で、上述の方法は、以下のブロックを更に有して良い。
【0057】
ブロック310で、インデックス生成要求に従い、記憶位置の割り当てがトリガされて良い。
【0058】
インデックス生成要求は、ファイルIDを含んで良く、ファイルIDは、現在書き込まれるべきファイルに対応して良い。任意のクライアント装置が分散型記憶システムにファイルを書き込むとき、先ず、ファイルのためにインデックスが生成される必要があって良い。
【0059】
具体的に、クライアント装置は、メタデータクラスタへのインデックス生成要求を開始して良い。したがって、クライアント装置により開始されたインデックス生成要求を受信した後に、サーバは、記憶位置に書き込まれるべきファイルの記憶位置を割り当てる操作をトリガして良い。記憶位置は、ファイルが格納され得る物理的位置であって良い。
【0060】
記憶位置が割り当てられると、現在書き込まれるべきファイルは、記憶位置に従い格納されて良い。さらに、本実施形態では、
図5に示すように、ブロック310は以下のブロックを有して良い。
【0061】
ブロック311で、インデックス生成要求の中のファイルIDが抽出されて良い。
【0062】
ブロック313で、記憶位置にファイルを書き込むために、ファイルの記憶位置を割り当てる操作がトリガされて良い。
【0063】
ブロック330で、ファイルのインデックスが、割り当てられた記憶位置に従い生成されて良く、ファイルのメタデータが、インデックスを用いて生成されて良い。
【0064】
メタデータ内のインデックスは、ファイルIDと記憶位置との間のマッピング関係であって良い。上述のように、メタデータの任意のピースは、ファイルに対応するインデックス、及び関連する属性を有して良い。したがって、書き込まれるファイルのインデックスを生成する処理において、メタデータのインデックスは、ファイルID及び記憶位置を用いて生成されて良く、メタデータの属性はタイムスタンプを追加することにより生成されて良い。
【0065】
具体的に、記憶位置を用いてファイルのメタデータを生成する処理は、ファイルIDと割り当てられた記憶位置との間のマッピング関係を生成し、マッピング関係をインデックスとして取り入れてファイルのメタデータを生成することを有して良い。
【0066】
複数の記憶位置を用いてファイルをバックアップするために、1又は複数の記憶位置が割り当てられて良い。
【0067】
ブロック350で、書き込みタイムスタンプがメタデータに追加されて良い。
【0068】
ブロック370で、増分区間が位置決めされて良く、メタデータは、新規データ追加モードで位置決めされた増分区間に書き込まれて良い。
【0069】
増分区間を位置決めする特定の処理は、インデックス生成要求の中のファイルIDに従い、メタデータクラスタに対応するキー区間を取得することを有して良い。キー区間の中の増分区間は、現在インデックスのために生成されてものであって良い。
【0070】
新規データを書き込むフォーマットは、履歴データを保持するために、上書きフォーマットではなく、付加フォーマットであって良く、同じファイルの異なるバージョンが追跡できる。
【0071】
別の実施形態は、
図6に示すように、上述の方法は以下のブロックを更に有して良い。
【0072】
ブロック410で、マージタスクが開始されて良い。
【0073】
マージタスクは、増分区間及び対応する全量区間内のメタデータをマージすることを表して良い。マージ操作がトリガされると、マージタスクが開始されて良い。既存の増分区間及び対応する全量区間の動作は、マージタスクを実施するためにマージ操作によりマージされて良い。マージ操作は、オフライン操作であって良い。
【0074】
ブロック430で、増分区間及び対応する全量区間のマージが、マージタスクを開始することによりトリガされて良い。
【0075】
新しいメタデータは、新規データ追加モードで、増分区間に書き込まれて良い。データクラスタ内のメタデータの削除に関し、対応するマークが増分区間に追加されて良い。したがって、全量区間内のメタデータは、変更されなくて良く、増分区間のメタデータのみが変更されて良い。
【0076】
全量区間は、メタデータの履歴データを記録するために使用されて良く、増分区間は、新しいメタデータを格納するために使用されて良く、メタデータは増分区間から削除されて良い。全量区間及び増分区間は、履歴データ及び新しいメタデータを
それぞれ見付けるために検索されて良い。
【0077】
新しいファイルの書き込みにより、増分区間内のメタデータは増加し続ける。したがって、増分区間内のデータが全量区間内のデータより少ないことを保証するため、及び増分区間内のインデックスの読み出し及び書き込み性能を保証するために、区間が動的に調整される必要があって良い。
【0078】
区間を動的に調整する処理は、既存の増分区間及び全量区間をマージし、新しい増分区間を生成することを有して良い。
【0079】
ブロック450で、マージされた区間は、複数の全量区間に分割されて良い。
【0080】
既存の増分区間及び対応する全量区間をマージすることにより得られたセグメントは、大量のメタデータを含み得る。データ量は非常に大きく、複数の全量区間を得るため及び全量区間のメタデータの効率的記憶及び効率的インデックス付け操作を保証するために、セグメントは分割される必要があって良い。
【0081】
ブロック470で、ファイルのインデックス操作要求のために書き込みサービスを提供するために、複数の全量区間に対応する増分区間が生成されて良い。
【0082】
各全量区間は、対応する増分区間を有して良い。したがって、全量区間に対してパーティショニング操作が実行され、増分区間は、パーティショニング操作により得られた各セグメントについて生成される必要があって良い。
【0083】
後のファイル書き込み操作において、インデックスが生成され、新たに生成された増分区間に書き込まれて良い。つまり、新しい増分区間が生成され、対応するメタデータは新しい増分区間に書き込まれて良い。
【0084】
上述の処理により、セグメントの動的調整が、マージタスクにより実施され得る。したがって、メタデータクラスタ内で設定された増分区間及び全量区間は、メタデータの量に適応され得る。これは、メタデータの記憶、インデックスの追加、削除、検索、及び偏光のような関連記憶サービスの信頼性を向上できる。
【0085】
さらに、本実施形態では、
図7に示すように、ブロック430は以下のブロックを有して良い。
【0086】
ブロック431で、増分区間及び対応する全量区間内のメタデータをエクスポートする操作が、開始されたマージタスクによりトリガされて良い。
【0087】
マージタスクが開始されると、この時点の前に書き込まれていたメタデータはマージされて良く、この時点の後に書き込まれる得るメタデータは新しい増分区間に書き込まれて良い。したがって、増分区間及び対応する全量区間内のメタデータをエクスポートする操作が、開始されたマージタスクによりトリガされて良い。エクスポート処理及びマージ処理は、分散型モードで
、つまり非同期モードで、実行されて良い。
【0088】
ブロック433で、増分区間及び対応する全量区間は、1区間にマージされて良い。
【0089】
ブロック435で、メタデータは、所定のマージ方針に従いエクスポートされて良い。
【0090】
所定のマージ方針は、(1)削除としてマーク付けされているメタデータを削除すべきか否か、(2)同じファイルID及び異なるタイムスタンプを有するメタデータをマージすべきか否か、(3)マージ操作により得られたセグメントをパーティショニングすることにより得られる各セグメントのサイズ、を有して良い。メタデータをマージするために使用され得るマージ方針は、上述の方針のうちのいずれか、又は幾つかの方針の組合せであって良い。これは、必要に応じて決定されて良く、又は柔軟であって良い。
【0091】
さらに、ブロック435は、以下を有して良い:削除としてマーク付けされたメタデータを削除するマージ方針を実施するために、削除としてマーク付けされたメタデータが、エクスポートされたメタデータから削除されて良い。
【0092】
ブロック437で、マージされたメタデータは、区間内に書き込まれて良い。
【0093】
上述のファイルストレージにおけるインデックス付け実施方法は、特定の実施形態を伴い詳細に記載される。本実施形態では、
図8に示すように、実際に、メタデータのストレージサービスは、増分区間(デルタと称す)及び増分区間に対応する全量区間(スナップショットと称す)により実施されて良い。
【0094】
メタデータのアクセスは、2種類に分類できる。つまり、デルタのアクセスとスナップショットのアクセスである。つまり、メタデータのアクセスは、
図8に示すデルタ読み出し処理であって良い。
【0095】
図8に示すブロックは、デルタ内のデータがスナップショット内のデータより遙かに少ないことを明確に示す。新規データの書き込み、つまりインデックスの生成は、デルタに対して実行されて良い。
【0096】
図9を参照すると、クライアント装置がデータノードセレクタへのインデックス生成要求を開始すると、データノードセレクタは、記憶位置を割り当てる操作をトリガして良い。
ブロック610で、クライアント装置は、インデックスを生成する要求を、データノードセレクタへ送信して良い。ブロック620で、データノードセレクタは、記憶位置を割り当てて良い。つまり、ブロック620が実行されて、クライアントへ割り当て結果を返して良い、つまりブロック630。
【0097】
クライアント装置は、ブロック650を実行するために、
ブロック640で記憶位置に対応するデータノードにファイルをアップロードして良い。
ブロック650で、このデータノードにおいて、ファイルはディスクに格納されて良い。
【0098】
ブロック670で、クライアント装置は、データノードにより返されたアップロード結果を受信して、ファイルがアップロードに成功したか否かを得て良い。ファイルがアップロードに成功すると、ファイルID及び割り当てられた記憶位置に従いメタデータが生成されて良く、メタデータのアップロード操作は、ブロック680において更に実行されて、デルタにメタデータを書き込み、ファイルに対応するインデックスを生成して良い。
ブロック690で、デルタは、アップロード結果をクライアント装置に返して良い。
【0099】
留意すべきことに、本実施形態におけるデータノードセレクタは、サービスを提供するために使用され得る、メタデータクラスタ内のプログラムであって良く、一方で、データノードは、記憶媒体を提供するために使用され得る、分散型記憶システム内のコンピュータであって良い。
【0100】
インデックスの生成が終了した後、
図10を参照し、クライアント装置は、クライアント装置とデータセレクタとの間の相互作用により、インデックスを取得して良い。
【0101】
具体的に、クライアント装置は、ブロック710を実行し、インデックスを要求するために、データノードセレクタに対するインデックス取得要求を開始して良い。
ブロック720で、データノードセレクタは、インデックス取得要求の中のファイルIDに従い、インデックスが配置され得るキー区間を決定して良い。
ブロック730で、データノードセレクタは、クライアント装置に結果を返して良い。
【0102】
クライアント装置は、
ブロック740で、先ず、キー区間のデルタからインデックスをダウンロードして良く、インデックスを含むメタデータがデルタ内に格納されるか否かを決定するためにデルタを検索し、対応する検索結果を返す。
【0103】
検索結果に従い、インデックスを含むメタデータがデルタから見付かると、
ブロック750で、クライアント装置は、デルタからインデックスを直接ダウンロードして良い。
インデックスを含むメタデータがデルタから見付からないとき、ブロック750で、クライアント装置は、デルタから「見付からない(Not Found)」を受信して良い。ブロック760で、クライアント装置は、インデックス付け操作を再び実行して良い。
【0104】
インデックスを含むメタデータがデルタから見付からないとき、インデックスは、対応するスナップショットからダウンロードされて良い。つまり、ブロック770からブロック790が実行されて良
く、データノードからメタデータをダウンロードし、データノードから結果を受信し、ダウンロード結果を返す。
【0105】
他方で、生成され格納されたインデックスに関し、ファイルが削除されると、インデックスは相応して削除されて良い。
【0106】
図11に示すように、ファイルの削除処理中、
ブロック810で、クライアント装置は、データノードセレクタに対し
、インデックスを削除することを要求するインデックス削除要求を開始して良い。データノードセレクタは、ブロック820を実行して良く、インデックスを含むメタデータがデルタに格納され得るかを決定し、
つまり、インデックス区間を決定し、ブロック830でクライアント装置へ結果を返す。ブロック840で、デルタは、クライアント装置から、インデックスを削除する要求を受信し、メタデータ内のインデックスを削除
して良い。つまりブロック850が実行される。そして、
ブロック870で、データセレクタは、インデックスが成功裏に削除できることをクライアント装置に通知して良い。
ブロック880で、クライアント装置は、削除が成功したことを示す結果を返して良い。
【0107】
メタデータがデルタに書き込まれ、デルタ内のメタデータが削除として注記されるとき、
図8に示すマージ処理を参照して、デルタ及びスナップショットは、新しいスナップショットとしてマージされて、新しいスナップショットに対応する新しいデルタを生成し、セグメントの動的調整を実施する。
【0108】
本開示の一実施形態は、ファイルストレージにおけるインデックス付け実施システムであって、要求取得モジュール910と、増分検索モジュール930と、増分応答モジュール950と、全量応答モジュール970と、を有するシステムを更に提供し得る。
【0109】
要求取得モジュール910は、ファイルのインデックス操作要求を取得して良い。
【0110】
増分検索モジュール930は、増分区間を検索して、増分区間がファイルに対応するメタデータの少なくとも1つのピースを格納するか否かを決定し、増分区間がファイルに対応するメタデータの少なくとも1つのピースを格納するとき、増分応答モジュール950に通知し、増分区間がファイルに対応するメタデータを格納しないとき、全量応答モジュール970に通知して良い。
【0111】
増分応答モジュール950は、増分区間内のメタデータの少なくとも1つのピースに従い、インデックス操作要求に対する応答を生成して良い。
【0112】
全量応答モジュール970は、増分区間に対応する全量区間に従いインデックス操作要求を処理して良い。
【0113】
メタデータの各ピースは、ファイルに対応するインデックスを有して良い。
【0114】
一実施形態では、インデックス操作要求は、インデックス取得要求を有し、増分応答モジュール
950は、さらに、増分区間から見付かる、ファイルに対応するメタデータの少なくとも1つのピースの各々の書き込みタイムスタンプに従い、メタデータを抽出し、メタデータを発行して良い。
【0115】
一実施形態では、増分応答モジュール
950は、さらに、増分区間から見付かる、ファイルに対応するメタデータの少なくとも1つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、メタデータを発行して良い。
【0116】
一実施形態は、
図13に示すように、全量応答モジュール970は、検索ユニット971と、抽出ユニット973と、結果返信ユニット975と、を有して良い。
【0117】
検索ユニット971は、増分区間に対応する全量区間を検索して、全量区間がファイルに対応するメタデータの少なくとも1つのピースを有するか否かを決定し、全量区間がファイルに対応するメタデータの少なくとも1つのピースを有するとき、抽出ユニット973に通知し、全量区間がファイルに対応するメタデータのピースを有しないとき、結果返信ユニット975に通知して良い。
【0118】
抽出ユニット973は、全量区間から見付かるファイルに対応するメタデータの少なくとも1つのピースの各々の書き込みタイムスタンプに従い、メタデータを抽出し、メタデータを発行して良い。
【0119】
一実施形態では、抽出ユニット973は、さらに、全量区間から見付かる、ファイルに対応するメタデータの少なくとも1つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出して良い。
【0120】
結果返信ユニット975は、ファイルに対応するインデックスレコードが存在しないことを示す結果情報を返して良い。
【0121】
一実施形態では、インデックス操作要求は、インデックス削除要求を有し、増分応答モジュール
950は、さらに、インデックス削除要求に従い、増分区間の中のメタデータの少なくとも1つのピースの中のインデックスを削除でマーク付けするインデックス削除操作を実行し、インデックス削除操作に対応する削除タイムスタンプを追加して良い。
【0122】
一実施形態では、インデックス操作要求は、インデックス生成要求を有して良く、
図14に示すように、システムは、位置割り当てモジュール1010と、メタデータ生成モジュール1030と、タイムスタンプ追加モジュール1050と、書き込みモジュール1070と、を有して良い。
【0123】
位置割り当てモジュール1010は、インデックス生成要求に従い記憶位置の割り当てをトリガして良い。
【0124】
メタデータ生成モジュール1030は、記憶位置に従いファイルのインデックスを生成し、インデックスを用いてメタデータを生成して良い。
【0125】
タイムスタンプ追加モジュール1050は、メタデータに書き込みタイムスタンプを追加して良い。
【0126】
書き込みモジュールは、増分区間を位置決めし、新規データ追加モードで、位置決めした増分区間にメタデータを書き込んで良い。
【0127】
さらに、一実施形態では、
図15に示すように、位置割り当てモジュール1010は、インデックス生成要求からファイルIDを抽出するID抽出ユニットと、ファイルが記憶位置に書き込まれるように、ファイルの記憶位置の割り当ての操作をトリガする書き込みユニット1013と、を有して良い。
【0128】
さらに、メタデータ生成モジュール1030は、さらに、ファイルIDと記憶位置との間のマッピング関係を生成し、マッピング関係をインデックスとして取り入れてファイルのメタデータを生成して良い。
【0129】
一実施形態では、
図16に示すように、上述のシステムは、さらに、タスク開始モジュール1110と、マージモジュール1130と、分割モジュール1150と、増分区間生成モジュール1170と、を有して良い。
【0130】
タスク開始モジュールは、マージタスクを開始して良い。
【0131】
マージモジュール1130は、マージタスクにより、増分区間及び全量区間のマージをトリガして良い。
【0132】
分割モジュール1150は、マージタスクを複数の全量区間に分割して良い。
【0133】
増分区間生成モジュール1170は、ファイルのインデックス操作要求のために書き込みサービスを提供するために、複数の全量区間にそれぞれ対応する複数の増分区間を生成して良い。
【0134】
一実施形態では、
図17に示すように、マージモジュール1130は、データエクスポートユニット1131と、区間マージユニット1133と、データマージユニット1135と、データ書き込みユニット1137と、を有して良い。
【0135】
データエクスポートユニット1131は、マージタスクにより、増分区間及び対応する全量区間内のメタデータをエクスポートする操作をトリガして良い。
【0136】
区間マージユニット1133は、増分区間及び対応する全量区間を1つのマージ区間にマージして良い。
【0137】
データマージユニット1135は、所定のマージ方針に従い、エクスポートされたメタデータをマージして良い。
【0138】
一実施形態では、データマージユニット1135は、さらに、エクスポートされたメタデータから、インデックスが削除でマーク付けされたメタデータを削除して良い。
【0139】
データ書き込みユニット1137は、区間にマージしたメタデータを書き込んで良い。
【0140】
当業者は、前述の実施形態のステップの全部又は一部が、ハードウェアを使用することにより実装されて良く、又は関連するハードウェアに指示するプログラムにより実装されて良いことを理解する。プログラムは、コンピュータ可読記憶媒体に格納されて良い。記憶媒体は、リードオンリーメモリ、磁気ディスク、光ディスク、等であって良い。
【0141】
上述の説明は、本発明の単なる好適な実施形態であり、本開示を制限することを意図しない。本開示の精神及び原理の範囲内で行われる変更、等価置換、及び改良は、本開示の保護範囲に含まれるべきである。