(57)【特許請求の範囲】
【請求項１】
ファイルストレージにおけるインデックス付け実施方法であって、
ファイルのインデックス操作要求を得るステップと、
増分区間を検索して、前記増分区間が前記ファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定するステップと、
前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納するとき、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い、前記インデックス操作要求に対する応答を生成するステップと、
前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納しないとき、前記増分区間に対応する全量区間に従い、前記インデックス操作要求を処理するステップと、
を有し、
メタデータの各々のピースは、前記ファイルに対応するインデックスを有する、方法。
【請求項２】
前記インデックス操作要求は、インデックス取得要求を有し、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い前記インデックス操作要求に対する応答を生成するステップは、
前記増分区間から見付かる、前記ファイルに対応するメタデータの各ピースの書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、抽出したメタデータを発行するステップ、を有する、
請求項１に記載の方法。
【請求項３】
前記増分区間に対応する前記全量区間に従い前記インデックス操作要求を処理するステップは、
前記増分区間に対応する前記全量区間を検索して、前記全量区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを有するか否かを決定するステップと、
前記全量区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを有するとき、
前記全量区間から見付かる、前記ファイルに対応するメタデータの各ピースの書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、抽出したメタデータを発行するステップと、
を有する、請求項２に記載の方法。
【請求項４】
前記インデックス操作要求は、インデックス削除要求を有し、
前記増分区間の中のメタデータの前記少なくとも１つのピースに従い前記インデックス操作要求に対する応答を生成するステップは、
前記インデックス削除要求に従い、前記増分区間の中のメタデータの少なくとも１つのピースの中のインデックスを削除でマーク付けするインデックス削除操作を実行し、前記インデックス削除操作に対応する削除タイムスタンプを追加するステップ、
を有する、請求項１に記載の方法。
【請求項５】
前記インデックス操作要求は、インデックス生成要求を有し、
前記インデックス操作要求を得るステップの後に、前記方法は、
前記インデックス生成要求に従い記憶位置の割り当てをトリガするステップと、
前記割り当てられた記憶位置に従い前記ファイルのインデックスを生成し、前記インデックスを用いて前記ファイルの前記メタデータを生成するステップと、
前記メタデータに書き込みタイムスタンプを追加するステップと、
前記増分区間を位置決めし、新規データ追加モードで、前記メタデータを前記位置決めした増分区間に書き込むステップと、
を更に有する請求項１に記載の方法。
【請求項６】
前記インデックス生成要求に従い前記記憶位置の前記割り当てをトリガするステップは、
前記インデックス生成要求からファイル識別（ＩＤ）を抽出するステップと、
前記ファイルが前記記憶位置に書き込まれるように、前記ファイルの前記記憶位置の割り当ての操作をトリガするステップと、
を有する、請求項５に記載の方法。
【請求項７】
前記割り当てられた記憶位置を用いて前記ファイルの前記メタデータを生成するステップは、
前記ファイルＩＤと前記割り当てられた記憶位置との間のマッピング関係を生成し、前記マッピング関係を前記インデックスとして取り入れて前記ファイルの前記メタデータを生成するステップ、
を有する、請求項６に記載の方法。
【請求項８】
マージタスクを開始するステップと、
前記マージタスクにより前記増分区間と全量区間のマージをトリガして、マージ区間を生成するステップと、
前記マージ区間を複数の全量区間に分割するステップと、
前記複数の全量区間にそれぞれ対応する複数の増分区間を生成して、前記ファイルの前記インデックス操作要求に対して書き込みサービスを提供するステップと、
を更に有する請求項１に記載の方法。
【請求項９】
前記マージタスクにより前記増分区間と全量区間のマージをトリガするステップは、
前記マージタスクにより前記増分区間及び前記対応する全量区間の中のメタデータのエクスポート操作をトリガするステップと、
前記増分区間及び前記対応する全量区間を前記マージ区間にマージするステップと、
所定のマージ方針に従い、前記エクスポートされたメタデータをマージするステップと、
前記マージ区間にマージしたメタデータを書き込むステップと、
を有する、請求項８に記載の方法。
【請求項１０】
前記所定のマージ方針に従い、前記エクスポートしたメタデータをマージするステップは、
前記エクスポートしたメタデータから、インデックスが削除でマーク付けされたメタデータを削除するステップ、
を有する、請求項９に記載の方法。
【請求項１１】
ファイルストレージにおけるインデックス付け実施システムであって、
ファイルのインデックス操作要求を得る要求取得モジュールと、
増分検索モジュールであって、増分区間を検索し、前記増分区間が前記ファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定し、前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納するとき、増分応答モジュールに通知し、前記増分区間が前記ファイルに対応するメタデータを格納しないとき、全量応答モジュールに通知する、増分検索モジュールと、
を有し、
前記増分応答モジュールは、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い、前記インデックス操作要求に対する応答を生成し、
前記全量応答モジュールは、前記増分区間に対応する全量区間に従い、前記インデックス操作要求を処理し、
メタデータの各ピースは、前記ファイルに対応するインデックスを有する、
システム。
【請求項１２】
前記インデックス操作要求は、インデックス取得要求を有し、
前記増分応答モジュールは、前記増分区間から見付かる、前記ファイルに対応するメタデータの前記少なくとも１つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、前記メタデータを発行する、
請求項１１に記載のシステム。
【請求項１３】
前記全量応答モジュールは、
検索ユニットであって、前記増分区間に対応する前記全量区間を検索して、前記全量区間が前記ファイルに対応するメタデータの少なくとも１つのピースを有するか否かを決定し、前記全量区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを有するとき、抽出ユニットに通知する、検索ユニット、
を有し、
前記抽出ユニットは、前記全量区間から見付かる、前記ファイルに対応するメタデータの前記少なくとも１つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、前記メタデータを発行する、
請求項１２に記載のシステム。
【請求項１４】
前記インデックス操作要求は、インデックス削除要求を有し、
前記増分応答モジュールは、さらに、前記インデックス削除要求に従い、前記増分区間の中のメタデータの少なくとも１つのピースの中のインデックスを削除でマーク付けするインデックス削除操作を実行し、前記インデックス削除操作に対応する削除タイムスタンプを追加する、
請求項１１に記載のシステム。
【請求項１５】
前記インデックス操作要求は、インデックス生成要求を有し、
前記システムは、
前記インデックス生成要求に従い記憶位置の割り当てをトリガする位置割り当てモジュールと、
記憶位置に従い前記ファイルのインデックスを生成し、前記インデックスを用いて前記メタデータを生成するメタデータ生成モジュールと、
前記メタデータに書き込みタイムスタンプを追加するタイムスタンプ追加モジュールと、
前記増分区間を位置決めし、新規データ追加モードで、前記メタデータを前記位置決めした増分区間に書き込む書き込みモジュールと、
を更に有する請求項１１に記載のシステム。
【請求項１６】
前記位置割り当てモジュールは、
前記インデックス生成要求からファイル識別（ＩＤ）を抽出する識別（ＩＤ）抽出ユニットと、
前記ファイルが前記記憶位置に書き込まれるように、前記ファイルの前記記憶位置の割り当ての操作をトリガする書き込みユニットと、
を有する、請求項１５に記載のシステム。
【請求項１７】
前記メタデータ生成モジュールは、さらに、前記ファイルＩＤと前記記憶位置との間のマッピング関係を生成し、前記マッピング関係を前記インデックスとして取り入れて前記ファイルの前記メタデータを生成する、
請求項１６に記載のシステム。
【請求項１８】
マージタスクを開始するタスク開始モジュールと、
前記マージタスクにより前記増分区間と全量区間のマージをトリガして、マージ区間を生成するマージモジュールと、
前記マージ区間を複数の全量区間に分割する分割モジュールと、
前記複数の全量区間にそれぞれ対応する複数の増分区間を生成して、前記ファイルの前記インデックス操作要求に対して書き込みサービスを提供する増分区間生成モジュールと、
を更に有する請求項１１に記載のシステム。
【請求項１９】
前記マージモジュールは、
前記マージタスクにより、前記増分区間及び前記対応する全量区間の中のメタデータのエクスポート操作をトリガするデータエクスポートユニットと、
前記増分区間及び前記対応する全量区間を１つのマージ区間にマージする区間マージユニットと、
所定のマージ方針に従い、前記エクスポートされたメタデータをマージするデータマージユニットと、
を有する、請求項１８に記載のシステム。
【請求項２０】
命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、１又は複数のプロセッサにより実行されると、
ファイルのインデックス操作要求を取得し、
増分区間を検索して、前記増分区間が前記ファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定し、
前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納するとき、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い、前記インデックス操作要求に対する応答を生成し、
前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納しないとき、前記増分区間に対応する全量区間に従い、前記インデックス操作要求を処理し、
メタデータの各々のピースは、前記ファイルに対応するインデックスを有する、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、中国特許出願第２０１５１０７４１０５６．７、２０１５年１１月４日出願、名称「An  indexing  implementing  method  and  system  in  file  storage」の利益及び優先権を主張する。前記の出願の全開示は、参照により本願明細書に組み込まれる。
【０００２】
本開示は、コンピュータアプリケーション技術分野に関し、より具体的には、ファイルストレージにおけるインデックス付け実施方法及びシステムに関する。
【背景技術】
【０００３】
大容量ファイルの記憶は、分散型ストレージクラスタにより実施されることがあり、関連するデータセンタは、この分散型ストレージクラスタにためにインデックスを格納するよう設定され得る。該インデックスは、データセンタにおいて、ファイル読み出し及び書き込みサービスを実施するために使用されることがある。
【０００４】
分散型ストレージクラスタの中の各ファイルの記憶場所は、データセンタ及びインデックス設定により維持され得る。現在、最も一般的なモードは、各ファイルの記憶場所を維持し及びファイル読み出し及び書き込み要求に対する応答を生成するために、データセンタにおいて、ファイル識別（ＩＤ）及びその記憶場所を格納することによりインデックスを管理することである。
【０００５】
具体的に、ファイルＩＤがキーであり、キーと記憶場所との間のマッピング関係がインデックスを用いてセグメントに格納され得ることを前提とする。しかしながら、大容量記憶の要件を階層化するために、セグメントは、比較的大きなキー空間を有し、その結果、単一セグメントが非常に多くのインデックスを格納する場合があり、インデックスに対応する動作性能が有意に低下する場合がある。
【発明の概要】
【０００６】
本開示の一実施形態は、大容量記憶の要件を満たし、インデックスの操作性能を有意に向上し得る、ファイルストレージにおけるインデックス付け実施方法を提供し得る。
【０００７】
本開示の一実施形態は、大容量記憶の要件を満たし、インデックスの操作性能を有意に向上し得る、ファイルストレージにおけるインデックス付け実施システムを提供し得る。
【０００８】
ファイルストレージにおけるインデックス付け実施方法であって、ファイルのインデックス操作要求を得るステップと、増分区間を検索して、前記増分区間が前記ファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定するステップと、前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納するとき、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い、前記インデックス操作要求に対する応答を生成するステップと、前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納しないとき、前記増分区間に対応する全量区間に従い、前記インデックス操作要求を処理するステップと、を有し、メタデータの各々のピースは、前記ファイルに対応するインデックスを有する、方法。
【０００９】
ファイルストレージにおけるインデックス付け実施システムであって、ファイルのインデックス操作要求を得る要求取得モジュールと、増分検索モジュールであって、増分区間を検索し、前記増分区間が前記ファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定し、前記増分区間が前記ファイルに対応するメタデータの前記少なくとも１つのピースを格納するとき、増分応答モジュールに通知し、前記増分区間が前記ファイルに対応するメタデータを格納しないとき、全量応答モジュールに通知する、増分検索モジュールと、を有し、前記増分応答モジュールは、前記増分区間の中のメタデータの前記少なくとも１つのピースに従い、前記インデックス操作要求に対する応答を生成し、前記全量応答モジュールは、前記増分区間に対応する全量区間に従い、前記インデックス操作要求を処理し、メタデータの各ピースは、前記ファイルに対応するインデックスを有する、システム。
【００１０】
上述の技術的方式から、任意のファイルのインデックス操作要求に関して、増分区間がファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定するために、増分区間が検索されて良いことが分かる。ファイルに対応するメタデータの少なくとも１つのピースが増分区間から見付かるとき、メタデータは、ファイルに対応するインデックスを含み、インデックス操作要求に対する応答が、増分区間内のメタデータに従い生成されて良い。ファイルに対応するメタデータが増分区間から見付からないとき、インデックス操作要求は、対応する全量区間に従い処理されて良い。大量のファイルの記憶は、増分区間及び対応する全量区間の共同により実施されて良く、データ記憶区間の読み出し及び書き込み性能は向上され、インデックスの操作性能は更に向上され得る。
【図面の簡単な説明】
【００１１】
【図１】本開示の種々の実施形態によるサーバの構造を示す図である。
【図２】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施方法を示すフローチャートである。
【図３】本開示の種々の実施形態による増分区間に対応する全量区間について開始されたインデックス操作要求を処理する方法を示すフローチャートである。
【図４】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施方法を示すフローチャートである。
【図５】本開示の種々の実施形態によるインデックス生成要求に従い記憶場所を割り当てる方法を示すフローチャートである。
【図６】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施方法を示すフローチャートである。
【図７】本開示の種々の実施形態によるマージタスクを開始することにより増分区間及び全量区間のマージをトリガする方法を示すフローチャートである。
【図８】本開示の種々の実施形態によるメタデータ記憶サービスを示す図である。
【図９】本開示の種々の実施形態によるインデックス生成のシーケンス図である。
【図１０】本開示の種々の実施形態によるインデックス取得を示すシーケンス図である。
【図１１】本開示の種々の実施形態によるインデックス削除を示すシーケンス図である。
【図１２】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施システムの構造を示す図である。
【図１３】本開示の種々の実施形態による全量応答モジュールの構造を示す図である。
【図１４】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施システムの構造を示す図である。
【図１５】本開示の種々の実施形態による位置割り当てモジュールの構造を示す図である。
【図１６】本開示の種々の実施形態によるファイルストレージにおけるインデックス付け実施システムの構造を示す図である。
【図１７】本開示の種々の実施形態によるマージモジュールの構造を示す図である。
【発明を実施するための形態】
【００１２】
本開示の特徴及び利点を具現化する実施形態は、以下の説明に詳細に記載される。これは、包括的であること又は本開示を制限することを意図しない。本開示の実施形態は、本開示の範囲から逸脱することなく、多くの方法で変更されて良い。説明及び図面は、本開示を記載するために使用され、本開示を制限するために使用されない。
【００１３】
分散型記憶は、２つのインデックス管理モードを含み得る。第１の種類は、データセンタの代わりに、一貫ハッシュ法を用いてインデックスを管理することであって良い。他の種類は、ファイルＩＤ及びその記憶場所を格納するために、データセンタを用いてインデックスを管理することであって良い。
【００１４】
どのモードが採用されるかに拘わらず、大容量ファイルの記憶に関して、膨大な益々拡大するインデックスが適時維持される必要がある。
【００１５】
しかしながら、既存の大量インデックスにより、動作性能は、インデックスクエリの遅延により決定される場合がある。既存のインデックス管理モードでは、大量のデータが検索されるので、動作性能は向上できない。したがって、ファイルストレージにおけるインデックス付けの実施は最適化されるべきである。
【００１６】
本開示の実施形態は、ファイルストレージにおけるインデックス付けの実施方法を提供し、種々のインデックス操作の処理性能を向上できる。
【００１７】
ファイルストレージにおけるインデックス付け実施方法は、コンピュータプログラムにより実施されて良い。したがって、構造化ファイルストレージにおけるインデックス付け実施システムは、種々のインデックス操作を実施するプロセスを走らせるため及びインデックスの追加、削除、検索、及び偏光操作を実施するために、サーバ又はサーバクラスタに格納されて良い。
【００１８】
図１は、本開示の種々の実施形態によるサーバの構造を示す図である。サーバ１００は、異なる構成及び性能により大きく異なって良く、（１以上のプロセッサのような）１以上のＣＰＵ（Central  Processing  Unit）１１０、記憶装置１２０、１以上の記憶プログラム１３１、又はデータ１３３の（１以上の大容量記憶装置のような）記憶媒体１３０を有して良い。記憶装置１２０及び記憶媒体１３０は、一時的又は永久的にデータを格納して良い。記憶媒体１３０に格納されたプログラムは、１以上のモジュール（図示しない）を有して良い。各モジュールは、サーバの一連の命令動作を有して良い。さらに、ＣＰＵ１１０は、記憶媒体１３０と通信し、記憶媒体１３０内の一連の命令動作を実行するよう構成されて良い。サーバは、１以上の電源１５０、１以上の有線／無線ネットワークインタフェース１７０、１以上の入力／出力インタフェース１８０、及び／又はＷｉｎｄｏｗｓＳｅｒｖｅｒ（商標）、ＭａｃＯＳ  Ｘ（商標）、Ｕｎｉｘ（商標）、Ｌｉｎｕｘ（商標）、ＦｒｅｅＢＳＤ（商標）、等のような１以上のオペレーティングシステム（ＯＳ）１３５、を更に有して良い。サーバにより実行される以下のブロックは、図１に示すサーバの構造に基づいて良い。
【００１９】
上述の観点から、本開示の実施形態に適用され得るサーバ１００は、格納されたファイルをインデックス付けするために、プログラム命令のフォーマットで、ファイルのインデクス操作要求に対する応答を生成して良い。
【００２０】
さらに、本開示の実施形態は、回路又はソフトウェア命令と結合される回路により実施されても良い。したがって、本開示の実施形態は、特定の回路、ソフトウェア、又はそれらの組合せに限定されない。
【００２１】
一実施形態では、具体的に、ファイルストレージにおけるインデックス付け実施方法は、図２に示すことができ、以下のブロックを有して良い。
【００２２】
ブロック２１０で、ファイルにインデックスを付けることを要求する、ファイルのインデックス操作要求が得られて良い。
【００２３】
このファイルは、格納されるべきファイル、つまり、分散型記憶システムに格納されるべきファイル、又は分散型記憶システムに格納されている任意のファイルであって良い。ファイルのインデックス付け操作は、分散型記憶システム内のファイルの操作に対応して良く、インデックス付け操作は、必要なファイル操作に従いトリガされて良い。
【００２４】
例えば、分散型記憶システム内のファイルのファイル操作は、ファイルを書き込み、読み出し、又は削除するための、書き込み操作、読み出し操作、削除操作、等を有して良い。したがって、ファイルのインデックス操作は、ファイルを生成し、取得し、及び削除することを有して良い。
【００２５】
大量のファイルが格納され、新しいファイルが書き込まれているので、ファイルに対してファイル操作を実行し得る大量のクライアント装置が存在し、クライアント装置からのファイルインデックス操作要求が絶えず受信され得る。
【００２６】
ブロック２３０で、ファイルに対応するメタデータが増分区間に格納されるか否かを決定するために、検索操作が実行されて良い。ファイルに対応するメタデータが増分区間に格納されるとき、ブロック２５０が実行されて良い。その他の場合、ブロック２７０が実行されて良い。
【００２７】
一実施形態では、メタデータ及びメタデータを格納する増分区間は、メタデータクラスタ又は他の装置内に実装されて良い。メタデータクラスタは、メタデータを格納し及びメタデータ記憶サービスを提供するために使用されて良い。任意のメタデータは以下を含んで良い。ファイルに対応するインデックス、及び関連する属性。メタデータは、ファイルＩＤ、つまりキー、により区別できる。メタデータ記憶サービスは、プログラムであって良い。該プログラムは、メタデータに基づきサービスを提供して良く、インデックス操作要求に対する応答を生成するときに呼び出され得るデータ追加、削除、検索、又は変更インタフェースを提供して良い。
【００２８】
メタデータクラスタでは、キー区間は、増分区間と全量区間とに分割されて良い。増分区間及び全量区間は、メタデータの複数のピースを格納して良い。一実施形態では、増分区間に格納されたデータは、全量区間に格納されたデータより少なくて良い。
【００２９】
格納されたファイルに関し、格納されたファイルが取得されるか又は削除されるかに関わらず、クライアント装置は、ファイルのインデックス操作要求を開始して良い。インデックス操作要求は、インデックス取得要求又はインデックス削除要求であって良い。
【００３０】
インデックス操作要求が取得された後、検索要求が、メタデータが格納され得る増分区間の中で実行されて良い。増分区間が対応するメタデータを格納するとき、メタデータを用いてインデックス操作要求に対する応答が生成されて良い。
【００３１】
増分区間は比較的少ないデータを格納し得るので、増分区間において実行される検索操作の性能は高く、検索操作により引き起こされる遅延を削減できる。
【００３２】
ブロック２５０で、増分区間の中のメタデータを用いてインデックス操作要求に対する応答が生成されて良い。
【００３３】
インデックス操作要求に対応するメタデータが、増分区間について実行された検索操作により取得された後、インデックス操作がメタデータに対して実行されて良く、処理結果がクライアント装置に返されて良く、インデックス操作要求に対する応答を終了する。つまり、増分区間の中のメタデータの少なくとも１つのピースに従いインデックス操作要求に対する応答を生成する方法は、増分区間の中のメタデータの少なくとも１つのピースに対してインデックス操作を実行することを有して良い。
【００３４】
ブロック２７０で、インデックス操作要求は、増分区間に対応する全量区間により処理されて良い。
【００３５】
インデックス操作要求に対応するメタデータが増分区間内に見付からないとき、これは、メタデータが全量区間内に格納されている場合があることを示し得る。したがって、インデックス操作要求の処理は、全量区間において実行されて良い。つまり、増分区間に対応する全量区間に従いインデックス操作要求を処理する方法は、増分区間に対応する全量区間の中のメタデータの少なくとも１つのピースに対してインデックス操作を実行することを有して良い。
【００３６】
つまり、分散型記憶システムのデータセンタのようなメタデータクラスタは、インデックスを格納し及び管理して良い。ストレージサービスのアーキテクチャは、以下の通りであって良い。
【００３７】
メタデータクラスタでは、キー区間は、増分区間と全量区間とに分割されて良い。ファイルのインデックス操作要求を取得した後に、ファイルＩＤに従いキー区間が決定されて良い。決定されたキー区間内で、先ず、増分区間内で検索操作が実行されて良い。対応するメタデータが増分区間から見付からないとき、検索操作は、全量区間内で実行されて良い。メタデータが増分区間から見付かるとき、多くのコンピュータリソースが節約でき、大容量データの記憶の高い信頼性が保証できる。
【００３８】
一実施形態では、上述のインデックス操作要求は、インデックス取得要求を有して良く、ブロック２５０は以下の処理を含んで良い。
【００３９】
メタデータは、書き込みタイムスタンプ、つまりメタデータが増分区間に書き込まれたタイムスタンプ、に従い増分区間から見付かったファイルに対応するメタデータから抽出されて良く、抽出されたメタデータは発行されて良い。
【００４０】
メタデータは、ファイルに対応するインデックス、及び関連する属性を有して良い。属性は、メタデータが増分区間に書き込まれるときの書き込みタイムスタンプのような、インデックスについて実行される操作に対応するタイムスタンプを有して良い。
【００４１】
書き込みタイムスタンプに従い、メタデータは、ファイルＩＤにより区別されるだけでなく、タイムスタンプによっても区別できる。したがって、同じファイルがメタデータの複数のピースに対応して良く、増分区間又は全量区間に格納されて良く、又は増分区間及び全量区間に格納されて良い。メタデータは、同じファイルＩＤを有して良く、メタデータの書き込みタイムスタンプは異なって良い。
【００４２】
一実施形態では、増分区間から見付かったファイルに対応するメタデータの複数のピースの中の各メタデータの書き込みスタンプは、メタデータを抽出するために、最新のタイムスタンプと比較されて良く、最新のタイムスタンプを有するメタデータが発行されて良い。
【００４３】
さらに、本実施形態では、図３に示すように、ブロック２７０は以下のブロックを有して良い。
【００４４】
ブロック２７１で、ファイルに対応するメタデータが増分区間に対応する全量区間に格納されるか否かを決定するために、検索操作が実行されて良い。ファイルに対応するメタデータが増分区間に対応する全量区間に格納されるとき、ブロック２７３が実行されて良い。その他の場合、ブロック２７５が実行されて良い。
【００４５】
メタデータが増分区間内に見つからないとき、メタデータは増分区間に対応する全量区間内で検索されて良い。
【００４６】
具体的に、全量区間は、インデックス操作要求内のファイルＩＤに従い、ファイルＩＤを含むメタデータを見付けるために、検索されて良い。見付かったメタデータは、ファイルに対応するものであって良い。
【００４７】
ブロック２７３で、メタデータは、書き込みタイムスタンプに従い全量区間から見付かったファイルに対応するメタデータから抽出されて良く、発行されて良い。
【００４８】
各メタデータは、対応するタイムスタンプを有して良い。したがって、最新のタイムスタンプに対応するメタデータは、書き込みタイムスタンプに従い抽出されて良い。
【００４９】
ブロック２７５で、ファイルに対応するインデックスレコードが存在しないことを示す結果情報が返されて良い。
【００５０】
全量区間からメタデータが見付からないとき、結果情報が、インデックス操作要求を開始したクライアント装置に返されて良い。
【００５１】
一実施形態では、上述のインデックス操作要求は、インデックス削除要求を有して良く、ブロック２５０は以下の処理を含んで良い。
【００５２】
インデックス削除操作は、ファイルのインデックス削除要求に従い増分区間に格納されたメタデータ内にマーク付けされて良く、インデックス削除操作に対応する削除タイムスタンプが追加されて良い。
【００５３】
削除操作が格納されたファイルに対して実行される前に、インデックスの削除操作が先ず実行されて良い。したがって、クライアント装置は、先ず、メタデータクラスタに対しインデックス削除要求を開始して良い。
【００５４】
メタデータクラスタに関し、インデックス削除要求が取得されて良く、対応するメタデータが増分区間から見付かって良い。メタデータは、ファイルのインデックス削除要求に従い削除としてマーク付けされて良い。つまり、メタデータを削除する代わりに、インデックスをマーク付けする操作。そして、削除タイムスタンプが、メタデータの属性に追加されて良い。
【００５５】
上述の削除処理により、現在バージョンのメタデータは、現在バージョンのメタデータの損失を回避するために、履歴データとして格納されて良い。したがって、格納されたファイルが削除された後に、ユーザは、後のフォールバック操作において削除したファイルを依然として取得できる。
【００５６】
一実施形態では、上述のインデックス操作要求は、インデックス生成要求を含んで良い。ブロック２１０で、上述の方法は、以下のブロックを更に有して良い。
【００５７】
ブロック３１０で、インデックス生成要求に従い、記憶位置の割り当てがトリガされて良い。
【００５８】
インデックス生成要求は、ファイルＩＤを含んで良く、ファイルＩＤは、現在書き込まれるべきファイルに対応して良い。任意のクライアント装置が分散型記憶システムにファイルを書き込むとき、先ず、ファイルのためにインデックスが生成される必要があって良い。
【００５９】
具体的に、クライアント装置は、メタデータクラスタへのインデックス生成要求を開始して良い。したがって、クライアント装置により開始されたインデックス生成要求を受信した後に、サーバは、記憶位置に書き込まれるべきファイルの記憶位置を割り当てる操作をトリガして良い。記憶位置は、ファイルが格納され得る物理的位置であって良い。
【００６０】
記憶位置が割り当てられると、現在書き込まれるべきファイルは、記憶位置に従い格納されて良い。さらに、本実施形態では、図５に示すように、ブロック３１０は以下のブロックを有して良い。
【００６１】
ブロック３１１で、インデックス生成要求の中のファイルＩＤが抽出されて良い。
【００６２】
ブロック３１３で、記憶位置にファイルを書き込むために、ファイルの記憶位置を割り当てる操作がトリガされて良い。
【００６３】
ブロック３３０で、ファイルのインデックスが、割り当てられた記憶位置に従い生成されて良く、ファイルのメタデータが、インデックスを用いて生成されて良い。
【００６４】
メタデータ内のインデックスは、ファイルＩＤと記憶位置との間のマッピング関係であって良い。上述のように、メタデータの任意のピースは、ファイルに対応するインデックス、及び関連する属性を有して良い。したがって、書き込まれるファイルのインデックスを生成する処理において、メタデータのインデックスは、ファイルＩＤ及び記憶位置を用いて生成されて良く、メタデータの属性はタイムスタンプを追加することにより生成されて良い。
【００６５】
具体的に、記憶位置を用いてファイルのメタデータを生成する処理は、ファイルＩＤと割り当てられた記憶位置との間のマッピング関係を生成し、マッピング関係をインデックスとして取り入れてファイルのメタデータを生成することを有して良い。
【００６６】
複数の記憶位置を用いてファイルをバックアップするために、１又は複数の記憶位置が割り当てられて良い。
【００６７】
ブロック３５０で、書き込みタイムスタンプがメタデータに追加されて良い。
【００６８】
ブロック３７０で、増分区間が位置決めされて良く、メタデータは、新規データ追加モードで位置決めされた増分区間に書き込まれて良い。
【００６９】
増分区間を位置決めする特定の処理は、インデックス生成要求の中のファイルＩＤに従い、メタデータクラスタに対応するキー区間を取得することを有して良い。キー区間の中の増分区間は、現在インデックスのために生成されてものであって良い。
【００７０】
新規データを書き込むフォーマットは、履歴データを保持するために、上書きフォーマットではなく、付加フォーマットであって良く、同じファイルの異なるバージョンが追跡できる。
【００７１】
別の実施形態は、図６に示すように、上述の方法は以下のブロックを更に有して良い。
【００７２】
ブロック４１０で、マージタスクが開始されて良い。
【００７３】
マージタスクは、増分区間及び対応する全量区間内のメタデータをマージすることを表して良い。マージ操作がトリガされると、マージタスクが開始されて良い。既存の増分区間及び対応する全量区間の動作は、マージタスクを実施するためにマージ操作によりマージされて良い。マージ操作は、オフライン操作であって良い。
【００７４】
ブロック４３０で、増分区間及び対応する全量区間のマージが、マージタスクを開始することによりトリガされて良い。
【００７５】
新しいメタデータは、新規データ追加モードで、増分区間に書き込まれて良い。データクラスタ内のメタデータの削除に関し、対応するマークが増分区間に追加されて良い。したがって、全量区間内のメタデータは、変更されなくて良く、増分区間のメタデータのみが変更されて良い。
【００７６】
全量区間は、メタデータの履歴データを記録するために使用されて良く、増分区間は、新しいメタデータを格納するために使用されて良く、メタデータは増分区間から削除されて良い。全量区間及び増分区間は、履歴データ及び新しいメタデータをそれぞれ見付けるために検索されて良い。
【００７７】
新しいファイルの書き込みにより、増分区間内のメタデータは増加し続ける。したがって、増分区間内のデータが全量区間内のデータより少ないことを保証するため、及び増分区間内のインデックスの読み出し及び書き込み性能を保証するために、区間が動的に調整される必要があって良い。
【００７８】
区間を動的に調整する処理は、既存の増分区間及び全量区間をマージし、新しい増分区間を生成することを有して良い。
【００７９】
ブロック４５０で、マージされた区間は、複数の全量区間に分割されて良い。
【００８０】
既存の増分区間及び対応する全量区間をマージすることにより得られたセグメントは、大量のメタデータを含み得る。データ量は非常に大きく、複数の全量区間を得るため及び全量区間のメタデータの効率的記憶及び効率的インデックス付け操作を保証するために、セグメントは分割される必要があって良い。
【００８１】
ブロック４７０で、ファイルのインデックス操作要求のために書き込みサービスを提供するために、複数の全量区間に対応する増分区間が生成されて良い。
【００８２】
各全量区間は、対応する増分区間を有して良い。したがって、全量区間に対してパーティショニング操作が実行され、増分区間は、パーティショニング操作により得られた各セグメントについて生成される必要があって良い。
【００８３】
後のファイル書き込み操作において、インデックスが生成され、新たに生成された増分区間に書き込まれて良い。つまり、新しい増分区間が生成され、対応するメタデータは新しい増分区間に書き込まれて良い。
【００８４】
上述の処理により、セグメントの動的調整が、マージタスクにより実施され得る。したがって、メタデータクラスタ内で設定された増分区間及び全量区間は、メタデータの量に適応され得る。これは、メタデータの記憶、インデックスの追加、削除、検索、及び偏光のような関連記憶サービスの信頼性を向上できる。
【００８５】
さらに、本実施形態では、図７に示すように、ブロック４３０は以下のブロックを有して良い。
【００８６】
ブロック４３１で、増分区間及び対応する全量区間内のメタデータをエクスポートする操作が、開始されたマージタスクによりトリガされて良い。
【００８７】
マージタスクが開始されると、この時点の前に書き込まれていたメタデータはマージされて良く、この時点の後に書き込まれる得るメタデータは新しい増分区間に書き込まれて良い。したがって、増分区間及び対応する全量区間内のメタデータをエクスポートする操作が、開始されたマージタスクによりトリガされて良い。エクスポート処理及びマージ処理は、分散型モードで、つまり非同期モードで、実行されて良い。
【００８８】
ブロック４３３で、増分区間及び対応する全量区間は、１区間にマージされて良い。
【００８９】
ブロック４３５で、メタデータは、所定のマージ方針に従いエクスポートされて良い。
【００９０】
所定のマージ方針は、（１）削除としてマーク付けされているメタデータを削除すべきか否か、（２）同じファイルＩＤ及び異なるタイムスタンプを有するメタデータをマージすべきか否か、（３）マージ操作により得られたセグメントをパーティショニングすることにより得られる各セグメントのサイズ、を有して良い。メタデータをマージするために使用され得るマージ方針は、上述の方針のうちのいずれか、又は幾つかの方針の組合せであって良い。これは、必要に応じて決定されて良く、又は柔軟であって良い。
【００９１】
さらに、ブロック４３５は、以下を有して良い：削除としてマーク付けされたメタデータを削除するマージ方針を実施するために、削除としてマーク付けされたメタデータが、エクスポートされたメタデータから削除されて良い。
【００９２】
ブロック４３７で、マージされたメタデータは、区間内に書き込まれて良い。
【００９３】
上述のファイルストレージにおけるインデックス付け実施方法は、特定の実施形態を伴い詳細に記載される。本実施形態では、図８に示すように、実際に、メタデータのストレージサービスは、増分区間（デルタと称す）及び増分区間に対応する全量区間（スナップショットと称す）により実施されて良い。
【００９４】
メタデータのアクセスは、２種類に分類できる。つまり、デルタのアクセスとスナップショットのアクセスである。つまり、メタデータのアクセスは、図８に示すデルタ読み出し処理であって良い。
【００９５】
図８に示すブロックは、デルタ内のデータがスナップショット内のデータより遙かに少ないことを明確に示す。新規データの書き込み、つまりインデックスの生成は、デルタに対して実行されて良い。
【００９６】
図９を参照すると、クライアント装置がデータノードセレクタへのインデックス生成要求を開始すると、データノードセレクタは、記憶位置を割り当てる操作をトリガして良い。ブロック６１０で、クライアント装置は、インデックスを生成する要求を、データノードセレクタへ送信して良い。ブロック６２０で、データノードセレクタは、記憶位置を割り当てて良い。つまり、ブロック６２０が実行されて、クライアントへ割り当て結果を返して良い、つまりブロック６３０。
【００９７】
クライアント装置は、ブロック６５０を実行するために、ブロック６４０で記憶位置に対応するデータノードにファイルをアップロードして良い。ブロック６５０で、このデータノードにおいて、ファイルはディスクに格納されて良い。
【００９８】
ブロック６７０で、クライアント装置は、データノードにより返されたアップロード結果を受信して、ファイルがアップロードに成功したか否かを得て良い。ファイルがアップロードに成功すると、ファイルＩＤ及び割り当てられた記憶位置に従いメタデータが生成されて良く、メタデータのアップロード操作は、ブロック６８０において更に実行されて、デルタにメタデータを書き込み、ファイルに対応するインデックスを生成して良い。ブロック６９０で、デルタは、アップロード結果をクライアント装置に返して良い。
【００９９】
留意すべきことに、本実施形態におけるデータノードセレクタは、サービスを提供するために使用され得る、メタデータクラスタ内のプログラムであって良く、一方で、データノードは、記憶媒体を提供するために使用され得る、分散型記憶システム内のコンピュータであって良い。
【０１００】
インデックスの生成が終了した後、図１０を参照し、クライアント装置は、クライアント装置とデータセレクタとの間の相互作用により、インデックスを取得して良い。
【０１０１】
具体的に、クライアント装置は、ブロック７１０を実行し、インデックスを要求するために、データノードセレクタに対するインデックス取得要求を開始して良い。ブロック７２０で、データノードセレクタは、インデックス取得要求の中のファイルＩＤに従い、インデックスが配置され得るキー区間を決定して良い。ブロック７３０で、データノードセレクタは、クライアント装置に結果を返して良い。
【０１０２】
クライアント装置は、ブロック７４０で、先ず、キー区間のデルタからインデックスをダウンロードして良く、インデックスを含むメタデータがデルタ内に格納されるか否かを決定するためにデルタを検索し、対応する検索結果を返す。
【０１０３】
検索結果に従い、インデックスを含むメタデータがデルタから見付かると、ブロック７５０で、クライアント装置は、デルタからインデックスを直接ダウンロードして良い。インデックスを含むメタデータがデルタから見付からないとき、ブロック７５０で、クライアント装置は、デルタから「見付からない（Ｎｏｔ  Ｆｏｕｎｄ）」を受信して良い。ブロック７６０で、クライアント装置は、インデックス付け操作を再び実行して良い。
【０１０４】
インデックスを含むメタデータがデルタから見付からないとき、インデックスは、対応するスナップショットからダウンロードされて良い。つまり、ブロック７７０からブロック７９０が実行されて良く、データノードからメタデータをダウンロードし、データノードから結果を受信し、ダウンロード結果を返す。
【０１０５】
他方で、生成され格納されたインデックスに関し、ファイルが削除されると、インデックスは相応して削除されて良い。
【０１０６】
図１１に示すように、ファイルの削除処理中、ブロック８１０で、クライアント装置は、データノードセレクタに対し、インデックスを削除することを要求するインデックス削除要求を開始して良い。データノードセレクタは、ブロック８２０を実行して良く、インデックスを含むメタデータがデルタに格納され得るかを決定し、つまり、インデックス区間を決定し、ブロック８３０でクライアント装置へ結果を返す。ブロック８４０で、デルタは、クライアント装置から、インデックスを削除する要求を受信し、メタデータ内のインデックスを削除して良い。つまりブロック８５０が実行される。そして、ブロック８７０で、データセレクタは、インデックスが成功裏に削除できることをクライアント装置に通知して良い。ブロック８８０で、クライアント装置は、削除が成功したことを示す結果を返して良い。
【０１０７】
メタデータがデルタに書き込まれ、デルタ内のメタデータが削除として注記されるとき、図８に示すマージ処理を参照して、デルタ及びスナップショットは、新しいスナップショットとしてマージされて、新しいスナップショットに対応する新しいデルタを生成し、セグメントの動的調整を実施する。
【０１０８】
本開示の一実施形態は、ファイルストレージにおけるインデックス付け実施システムであって、要求取得モジュール９１０と、増分検索モジュール９３０と、増分応答モジュール９５０と、全量応答モジュール９７０と、を有するシステムを更に提供し得る。
【０１０９】
要求取得モジュール９１０は、ファイルのインデックス操作要求を取得して良い。
【０１１０】
増分検索モジュール９３０は、増分区間を検索して、増分区間がファイルに対応するメタデータの少なくとも１つのピースを格納するか否かを決定し、増分区間がファイルに対応するメタデータの少なくとも１つのピースを格納するとき、増分応答モジュール９５０に通知し、増分区間がファイルに対応するメタデータを格納しないとき、全量応答モジュール９７０に通知して良い。
【０１１１】
増分応答モジュール９５０は、増分区間内のメタデータの少なくとも１つのピースに従い、インデックス操作要求に対する応答を生成して良い。
【０１１２】
全量応答モジュール９７０は、増分区間に対応する全量区間に従いインデックス操作要求を処理して良い。
【０１１３】
メタデータの各ピースは、ファイルに対応するインデックスを有して良い。
【０１１４】
一実施形態では、インデックス操作要求は、インデックス取得要求を有し、増分応答モジュール９５０は、さらに、増分区間から見付かる、ファイルに対応するメタデータの少なくとも１つのピースの各々の書き込みタイムスタンプに従い、メタデータを抽出し、メタデータを発行して良い。
【０１１５】
一実施形態では、増分応答モジュール９５０は、さらに、増分区間から見付かる、ファイルに対応するメタデータの少なくとも１つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出し、メタデータを発行して良い。
【０１１６】
一実施形態は、図１３に示すように、全量応答モジュール９７０は、検索ユニット９７１と、抽出ユニット９７３と、結果返信ユニット９７５と、を有して良い。
【０１１７】
検索ユニット９７１は、増分区間に対応する全量区間を検索して、全量区間がファイルに対応するメタデータの少なくとも１つのピースを有するか否かを決定し、全量区間がファイルに対応するメタデータの少なくとも１つのピースを有するとき、抽出ユニット９７３に通知し、全量区間がファイルに対応するメタデータのピースを有しないとき、結果返信ユニット９７５に通知して良い。
【０１１８】
抽出ユニット９７３は、全量区間から見付かるファイルに対応するメタデータの少なくとも１つのピースの各々の書き込みタイムスタンプに従い、メタデータを抽出し、メタデータを発行して良い。
【０１１９】
一実施形態では、抽出ユニット９７３は、さらに、全量区間から見付かる、ファイルに対応するメタデータの少なくとも１つのピースの各々の書き込みタイムスタンプに従い、最新の書き込みタイムスタンプを有するメタデータを抽出して良い。
【０１２０】
結果返信ユニット９７５は、ファイルに対応するインデックスレコードが存在しないことを示す結果情報を返して良い。
【０１２１】
一実施形態では、インデックス操作要求は、インデックス削除要求を有し、増分応答モジュール９５０は、さらに、インデックス削除要求に従い、増分区間の中のメタデータの少なくとも１つのピースの中のインデックスを削除でマーク付けするインデックス削除操作を実行し、インデックス削除操作に対応する削除タイムスタンプを追加して良い。
【０１２２】
一実施形態では、インデックス操作要求は、インデックス生成要求を有して良く、図１４に示すように、システムは、位置割り当てモジュール１０１０と、メタデータ生成モジュール１０３０と、タイムスタンプ追加モジュール１０５０と、書き込みモジュール１０７０と、を有して良い。
【０１２３】
位置割り当てモジュール１０１０は、インデックス生成要求に従い記憶位置の割り当てをトリガして良い。
【０１２４】
メタデータ生成モジュール１０３０は、記憶位置に従いファイルのインデックスを生成し、インデックスを用いてメタデータを生成して良い。
【０１２５】
タイムスタンプ追加モジュール１０５０は、メタデータに書き込みタイムスタンプを追加して良い。
【０１２６】
書き込みモジュールは、増分区間を位置決めし、新規データ追加モードで、位置決めした増分区間にメタデータを書き込んで良い。
【０１２７】
さらに、一実施形態では、図１５に示すように、位置割り当てモジュール１０１０は、インデックス生成要求からファイルＩＤを抽出するＩＤ抽出ユニットと、ファイルが記憶位置に書き込まれるように、ファイルの記憶位置の割り当ての操作をトリガする書き込みユニット１０１３と、を有して良い。
【０１２８】
さらに、メタデータ生成モジュール１０３０は、さらに、ファイルＩＤと記憶位置との間のマッピング関係を生成し、マッピング関係をインデックスとして取り入れてファイルのメタデータを生成して良い。
【０１２９】
一実施形態では、図１６に示すように、上述のシステムは、さらに、タスク開始モジュール１１１０と、マージモジュール１１３０と、分割モジュール１１５０と、増分区間生成モジュール１１７０と、を有して良い。
【０１３０】
タスク開始モジュールは、マージタスクを開始して良い。
【０１３１】
マージモジュール１１３０は、マージタスクにより、増分区間及び全量区間のマージをトリガして良い。
【０１３２】
分割モジュール１１５０は、マージタスクを複数の全量区間に分割して良い。
【０１３３】
増分区間生成モジュール１１７０は、ファイルのインデックス操作要求のために書き込みサービスを提供するために、複数の全量区間にそれぞれ対応する複数の増分区間を生成して良い。
【０１３４】
一実施形態では、図１７に示すように、マージモジュール１１３０は、データエクスポートユニット１１３１と、区間マージユニット１１３３と、データマージユニット１１３５と、データ書き込みユニット１１３７と、を有して良い。
【０１３５】
データエクスポートユニット１１３１は、マージタスクにより、増分区間及び対応する全量区間内のメタデータをエクスポートする操作をトリガして良い。
【０１３６】
区間マージユニット１１３３は、増分区間及び対応する全量区間を１つのマージ区間にマージして良い。
【０１３７】
データマージユニット１１３５は、所定のマージ方針に従い、エクスポートされたメタデータをマージして良い。
【０１３８】
一実施形態では、データマージユニット１１３５は、さらに、エクスポートされたメタデータから、インデックスが削除でマーク付けされたメタデータを削除して良い。
【０１３９】
データ書き込みユニット１１３７は、区間にマージしたメタデータを書き込んで良い。
【０１４０】
当業者は、前述の実施形態のステップの全部又は一部が、ハードウェアを使用することにより実装されて良く、又は関連するハードウェアに指示するプログラムにより実装されて良いことを理解する。プログラムは、コンピュータ可読記憶媒体に格納されて良い。記憶媒体は、リードオンリーメモリ、磁気ディスク、光ディスク、等であって良い。
【０１４１】
上述の説明は、本発明の単なる好適な実施形態であり、本開示を制限することを意図しない。本開示の精神及び原理の範囲内で行われる変更、等価置換、及び改良は、本開示の保護範囲に含まれるべきである。
【図１】
0006501916.tif 000002
【図２】
0006501916.tif 000003
【図３】
0006501916.tif 000004
【図４】
0006501916.tif 000005
【図５】
0006501916.tif 000006
【図６】
0006501916.tif 000007
【図７】
0006501916.tif 000008
【図８】
0006501916.tif 000009
【図９】
0006501916.tif 000010
【図１０】
0006501916.tif 000011
【図１１】
0006501916.tif 000012
【図１２】
0006501916.tif 000013
【図１３】
0006501916.tif 000014
【図１４】
0006501916.tif 000015
【図１５】
0006501916.tif 000016
【図１６】
0006501916.tif 000017
【図１７】
0006501916.tif 000018