(57)【要約】本出願の実施形態によって、データ処理方法、装置およびモバイル端末が提供される。要求エンドは、ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、ターゲットデータを格納エンドに送信する。格納エンドは、ターゲットデータをキャッシュするためのメモリを割り当て、ターゲットデータ内の格納されるデータのデータメタデータを生成し、メモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む。本出願の実施形態は、ゼロコピーを実現し、データ格納の効率を確保し、システム性能を向上させる。
2021510222.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加することと、
前記ターゲットデータを格納エンドに送信することであって、前記予約済みフィールドは、前記格納エンド内の対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれる、ことと、
を含むデータ処理方法。
【請求項２】
前記格納エンドは、複数の格納ノードを含み、前記ターゲットデータを前記格納エンドに送信することは、
前記格納されるデータに別々に対応する前記複数のデータ格納ノードの複数の要求メタデータを決定することと、
前記ターゲットデータと前記複数の要求メタデータとの合計データサイズを計算することと、
前記合計データサイズと一致する第１のメモリを割り当てることと、
前記ターゲットデータおよび前記複数の要求メタデータを前記第１のメモリに入れることと、
前記ターゲットデータおよび対応する１つの要求メタデータを前記データ格納ノードの各々に別々に送信することと、
を含む、請求項１の方法。
【請求項３】
前記格納エンドは、複数の格納ノードを含み、前記ターゲットデータを前記格納エンドに送信することは、
前記格納されるデータに別々に対応する前記複数のデータ格納ノードの複数の要求メタデータを決定することと、
前記ターゲットデータと前記複数の要求メタデータとの合計データサイズを計算することと、
前記合計データサイズと一致する第１のメモリを割り当てることと、
前記ターゲットデータを前記第１のメモリに入れ、前記複数の要求メタデータを前記ターゲットデータの最後に順次入れることと、
任意のデータ格納ノードについて、前記第１のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する１つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記１つの要求メタデータの前に位置する１つ以上の要求メタデータを前記任意の格納ノードに送信することであって、前記任意のデータ格納ノードは、受信データの最後から対応する１つの要求メタデータを読み取るように構成されている、ことと、
を含む、請求項１の方法。
【請求項４】
前記複数の要求メタデータを前記ターゲットデータの前記最後に順次入れることは、
前記複数のデータ格納ノードの送信順序に従って、前記複数のデータ格納ノードに対応するそれぞれの複数の要求メタデータを前記ターゲットデータの前記最後に順次入れることを含み、
前記任意のデータ格納ノードについて、前記第１のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する前記１つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記１つの要求メタデータの前に位置する前記１つ以上の要求メタデータを前記任意の格納ノードに送信することは、
前記任意のデータ格納ノードについて、前記ターゲットデータ、前記１つの要求メタデータは、前記任意のデータ格納ノードの前記送信順序に対応し、および前記任意のデータ格納ノードの前記送信順序に対応する前記１つの要求メタデータの前に位置する前記１つ以上の要求メタデータを前記第１のメモリから前記任意の格納ノードに送信することを含む、請求項３の方法。
【請求項５】
前記ターゲットデータを取得するために、前記格納されるデータに前記予約済みフィールドを追加することは、
前記ターゲットデータを取得するために、前記格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列を前記予約済みフィールドとして追加することを含む、請求項１の方法。
【請求項６】
前記ターゲットデータを前記格納エンドに送信することは、
前記ターゲットデータのデータサイズと一致する第１のメモリを割り当てることと、
前記ターゲットデータを前記第１のメモリに入れることと、
前記ターゲットデータを前記第１のメモリから前記格納エンドに送信することと、
を含む、請求項１の方法。
【請求項７】
ターゲットデータを取得することであって、前記ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、取得することと、
前記ターゲットデータをキャッシュするための第２のメモリを割り当てることと、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成することと、
前記第２のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込むことと、
を含むデータ処理方法。
【請求項８】
前記予約済みフィールドは、前記格納されるデータの最後に位置し、前記ターゲットデータ内の前記格納されるデータの前記データメタデータを生成することは、
前記予約済みフィールドのあらかじめ設定されたサイズに基づいて、前記ターゲットデータ内の前記格納されるデータを決定することと、
前記格納されるデータの前記データメタデータを生成することと、
を含む、請求項７の方法。
【請求項９】
前記ターゲットデータを取得することは、
要求エンドによって送信された書き込み要求を受信することであって、前記書き込み要求は、前記ターゲットデータおよび少なくとも１つの要求メタデータを含む、ことと、
ターゲット要求メタデータを決定することと、を含み、
前記ターゲットデータ内の前記格納されるデータの前記データメタデータを生成することは、
前記ターゲット要求メタデータに基づいて前記格納されるデータを読み取ることと、
前記ターゲット要求メタデータおよび前記格納されるデータに基づいて前記データメタデータを生成することと、
を含む、請求項７の方法。
【請求項１０】
前記要求エンドの前記書き込み要求は、第１のメモリ内の、前記要求エンドによって送信されるように要求された前記ターゲットデータ、前記ターゲット要求メタデータ、および前記ターゲット要求メタデータの前に位置する要求メタデータを含み、前記ターゲット要求メタデータを決定することは、
前記要求メタデータのデータサイズに基づいて、前記書き込み要求の最後から前記ターゲット要求メタデータを読み取ることを含む、請求項９の方法。
【請求項１１】
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュールと、
前記ターゲットデータを格納エンドに送信するように構成されたデータ送信モジュールであって、前記予約済みフィールドは、前記格納エンドの対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれる、データ送信モジュールと、
を含むデータ処理装置。
【請求項１２】
ターゲットデータを取得するように構成されたデータ取得モジュールであって、前記ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュールと、
前記ターゲットデータをキャッシュするための第２のメモリを割り当てるように構成されたメモリ割り当てモジュールと、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュールと、
前記第２のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込むように構成されたデータ書き込みモジュールと、
を含むデータ処理装置。
【請求項１３】
格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスであって、
前記格納コンポーネントは、１つ以上のコンピュータ命令を格納するように構成されており、前記１つ以上のコンピュータ命令は、呼び出しおよび実行のために前記処理コンポーネントに提供され、
前記処理コンポーネントは、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
前記ターゲットデータを格納エンドに送信する、
ように構成されており、前記予約済みフィールドは、前記格納エンド内の対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれる、コンピューティングデバイス。
【請求項１４】
格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスであって、
前記格納コンポーネントは、１つ以上のコンピュータ命令を格納するように構成されており、前記１つ以上のコンピュータ命令は、呼び出しおよび実行のために前記処理コンポーネントに提供され、
前記処理コンポーネントは、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
前記ターゲットデータをキャッシュするための第２のメモリを割り当て、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成し、
前記第２のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込む、
ように構成されている、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2018年1月9日に出願され、「Data Processing Method, Apparatus, and Computing Device」と題された中国出願第2018/10020121.0号の優先権を主張し、その内容は参照により本明細書に組み入れられる。
【０００２】
本出願は、データ処理技術の分野に関し、詳細には、データ処理方法、装置、およびシステムに関する。
【背景技術】
【０００３】
データを格納するとき、ストレージシステムは、通常、データのセキュリティを確保するために、格納されるデータの最後に、格納されるデータの関連属性を記述するメタデータ（データメタデータとしても知られる）を追加し、その結果、格納されるデータおよびデータメタデータを一度に格納デバイスに書き込むことができる。
【０００４】
要求エンドによって送信された格納されるデータを受信すると、格納エンドは、格納されるデータをキャッシュするための、格納されるデータのものと同じデータサイズを有する１つのメモリを受動的に割り当てる。格納されるデータおよびデータメタデータを一度にストレージデバイスに書き込むことができるようにするために、既存の技術の実装方法は、１つの書き込みディスクメモリを再申請し、書き込みディスクメモリのサイズは、格納されるデータのデータサイズにデータメタデータのデータサイズを加えたものであり、次に、格納されるデータを書き込みディスクメモリにコピーし、データメタデータを書き込みディスクメモリにスプライシングし、その結果、格納されるデータおよびデータメタデータが一緒に編成される。そのため、書き込み操作のみを１回実行するだけでよく、すなわち、書き込みディスクメモリ内の格納されるデータおよびデータメタデータを、まとめてストレージデバイスに書き込むことができる。
【０００５】
しかしながら、上記の説明から分かるように、既存の技術では、最初に、格納されるデータを、データのコピーによって書き込みディスクメモリにコピーする必要があり、これはデータ格納の効率に影響を与える。
【発明の概要】
【０００６】
本出願の実施形態は、既存の技術におけるデータ格納の低効率の技術的問題を解決するためのデータ処理方法、装置、およびコンピューティングデバイスを提供する。
【０００７】
第１の態様では、本出願の実施形態は、データ処理方法を提供し、データ処理方法は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加することと、
ターゲットデータを格納エンドに送信することであって、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる、送信することと、を含む。
【０００８】
第２の態様では、本出願の実施形態は、データ処理方法を提供し、データ処理方法は、
ターゲットデータを取得することであって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、取得することと、
ターゲットデータをキャッシュするための第２のメモリを割り当てることと、
ターゲットデータ内の格納されるデータのデータメタデータを生成することと、
第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むことと、を含む。
【０００９】
第３の態様では、本出願の実施形態は、データ処理装置を提供し、データ処理装置は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュールと、
ターゲットデータを格納エンドに送信するように構成されたデータ送信モジュールであって、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる、データ送信モジュールと、を含む。
【００１０】
第４の態様によれば、本出願の実施形態は、データ処理装置を提供し、データ処理装置は、
ターゲットデータを取得するように構成されたデータ取得モジュールであって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュールと、
ターゲットデータをキャッシュするための第２のメモリを割り当てるように構成されたメモリ割り当てモジュールと、
ターゲットデータ内の格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュールと、
第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むように構成されたデータ書き込みモジュールと、を含む。
【００１１】
第５の態様では、本出願の実施形態は、格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスを提供し、
格納コンポーネントは、１つ以上のコンピュータ命令を格納するように構成されており、１つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供され、
処理コンポーネントは、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
ターゲットデータを格納エンドに送信する、ように構成されており、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる。
【００１２】
第６の態様では、本出願の実施形態は、格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスを提供し、
格納コンポーネントは、１つ以上のコンピュータ命令を格納するように構成されており、１つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供され、
処理コンポーネントは、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
ターゲットデータをキャッシュするための第２のメモリを割り当て、
ターゲットデータ内の格納されるデータのデータメタデータを生成し、
第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む、ように構成されている。
【００１３】
本出願の実施形態では、要求エンドは、ターゲットデータとして格納されるデータを構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計である。要求エンドは、ターゲットデータを格納エンドに送信する。格納エンドは、ターゲットデータをキャッシュするためのメモリを割り当てる。予約済みフィールドはターゲットデータで予約されているので、予約済みフィールドに対応するメモリスペースは、データメタデータを書き込むのに十分である可能性があり、そのため、格納エンドは、新しいメモリを割り当てる必要がなく、これは、メモリの浪費を引き起こさず、データのコピーを回避する。したがって、データ格納の効率および関連システムの性能が向上する。
【００１４】
本出願のこれらの態様または本出願の他の態様は、以下の実施形態の説明において、より明確になり、理解しやすくなるであろう。
【図面の簡単な説明】
【００１５】
本出願の実施形態または既存の技術における技術的解決策をより明確に説明するために、実施形態または既存の技術の説明に必要とされる添付の図面が本明細書で簡単に記載される。明らかに、記載される図面は、本出願のいくつかの実施形態を表す。当業者は、いかなる創造的な努力もすることなく、これらの図面に基づいて他の図面を取得することができる。
【図１】本出願によって提供される例示的なデータ処理方法のフローチャートを示す図である。
【図２】本出願によって提供される別の例示的なデータ処理方法のフローチャートを示す図である。
【図３】本出願によって提供される例示的なデータ処理方法のフローチャートを示す図である。
【図４ａ】本出願の実施形態によって提供されるデータ構造の概略図である。
【図４ｂ】本出願の実施形態によって提供される別のデータ構造の概略図である。
【図５】本出願によって提供される別の例示的なデータ処理方法のフローチャートを示す図である。
【図６】本出願の実施形態によって提供される実用的応用におけるデータ処理相互作用の概略図である。
【図７】本出願によって提供される例示的なデータ処理装置の概略構造図である。
【図８】本出願によって提供される例示的なコンピューティングデバイスの概略構造図である。
【図９】本出願によって提供される別の例示的なデータ処理装置の概略構造図である。
【図１０】本出願によって提供される別の例示的なコンピューティングデバイス装置の概略構造図である。
【発明を実施するための形態】
【００１６】
当業者が本発明の解決策をより良好に理解することを可能にするために、本出願の実施形態における技術的解決策が、本出願の実施形態の図面と組み合わせて、以下に明確かつ完全に記載される。
【００１７】
本出願の明細書および特許請求の範囲並びに上記の図面に記載されているいくつかのプロセスは、特定の順序に従って現れる複数の動作を含む。しかしながら、これらの動作は、本文に現れる順序で実行する必要はなく、または並行して実行されてもよいことを明確に理解されたい。１０１、１０２などの動作のシーケンス番号は、異なる動作を区別するためにのみ使用され、シーケンス番号自体は、いかなる実行のシーケンスも表すものではない。これらのプロセスが含む動作は、より多くてもよく、またはより少なくてもよく、これらの動作は、順次または並行して実行されてよい。本文中の「第１」、「第２」などの記載は、様々な情報、デバイス、モジュールなどを区別するために使用されており、順序を表すものではなく、「第１」および「第２」が異なるタイプに制限されるものでもないことに留意されたい。
【００１８】
本出願の実施形態の技術的解決策は、主にストレージシステムに適用される。ストレージシステムは、従来のストレージシステムまたは分散ストレージシステムであり得る。
【００１９】
理解を容易にするために、最初に、本出願の実施形態に現れる可能性のある技術用語について、以下のように説明する。
【００２０】
格納エンド：データアクセス操作を担当する。従来のストレージシステムは、データを格納するために集中型ストレージサーバを使用し、格納エンドは、ストレージサーバと呼ぶことができ、分散ストレージシステムは、複数のデータ格納ノードにデータを格納し、格納エンドは、１つ以上のデータ格納ノードと呼ぶことができる。
【００２１】
データ格納ノード：分散ストレージシステムにおけるデータ格納を担当するノードであり、通常、物理サーバである。
【００２２】
要求エンド：読み取り／書き込み要求の送信を担当し、上位レベルのサービスシステムは、要求エンドを介して格納エンドのデータにアクセスし、またはそのデータを更新する。
【００２３】
要求メタデータ：要求エンドによって格納エンドに送信される、格納されるデータのデータガイダンス情報であり、格納されるデータのデータ長および／またはデータ位置、並びに格納指示情報、すなわち、格納されるデータが書き込まれるストレージデバイスを示すとも呼ばれる格納指示情報を含んでいてもよく、要求されたメタデータは、格納されたデータに書き込まれない。
【００２４】
データメタデータ（ＤａｔａＭｅｔａ）：格納されるデータの関連属性を記載するために使用されるメタデータであり、データ長、データチェックサム、格納位置、それが属するファイル名などを含んでいてもよく、データメタデータは、格納されるデータとともにストレージデバイスに書き込まれる。
【００２５】
マルチコピー技術：分散ストレージシステムでのデータ冗長技術であり、普段は、データ格納ノードの障害に起因するデータ損失を防ぐために、元のデータのコピーをいくつか作成し、データの各コピーは、異なるデータ格納ノードに格納されており、元のデータの各コピーは、コピーデータと呼ばれる。
【００２６】
ストレージデバイス：ストレージシステムにデータを格納するために使用されるハードウェアデバイスであり、最終的に、データを磁気ディスクなどの記憶媒体であり得るストレージデバイスに書き込む必要がある。
【００２７】
既存の技術では、格納されるデータおよびデータメタデータをストレージデバイスに書き込むために、格納エンドは、追加の書き込みディスクメモリを割り当てる必要がある。格納されるデータを受信すると、格納エンドは、格納されるデータをキャッシュするための１つのメモリを受動的に割り当てる。したがって、格納されるデータを再度書き込みディスクメモリにコピーする必要がある。格納されるデータをいったんコピーする必要があり、データをコピーすることは、データ格納の効率および関連システムの性能に影響を及ぼす。
【００２８】
システム性能を向上させ、データ格納の効率を確保するために、発明者は、一連の研究を通じて本出願の技術的解決策を提案した。本出願の実施形態では、要求エンドは、ターゲットデータとして格納されるデータを構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドに対応するデータサイズとの合計である。要求エンドは、ターゲットデータを格納エンドに送信する。格納エンドは、ターゲットデータをキャッシュするための１つのメモリを割り当てる。ターゲットデータは、予約済みフィールドを含んでいるので、予約済みフィールドに対応するメモリスペースは、データメタデータを書き込むのに十分である。格納エンドは、追加の、および新しいメモリを割り当てる必要がなく、これは、メモリの浪費を引き起こさず、同時に、データのコピーを回避する。したがって、データ格納の効率およびシステム性能を向上させることができる。
【００２９】
本出願の実施形態における技術的解決策が、本出願の実施形態の図面と組み合わせて、以下に明確かつ完全に記載される。明らかに、記載される実施形態は、本出願の実施形態の全部ではなく、一部のみを表す。本出願の実施形態に基づいて、いかなる創造的な努力もすることなく当業者によって取得される他のすべての実施形態は、本出願の保護の範囲内に入る。
【００３０】
図１は、本出願による例示的なデータ処理方法のフローチャートである。本実施形態の技術的解決策は要求エンドに適用され、要求エンドは実行を担当する。  
この方法は、以下のステップを含み得る。  
１０１：ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【００３１】
本出願の実施形態では、書き込み要求を構築するとき、要求エンドは、格納されるデータに予約済みフィールドを追加し、予約済みフィールドは、あるデータ長を占有する。予約済みフィールドと一緒に格納されるデータは、新しいデータ形式を形成し、ターゲットデータを構成する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しい。
【００３２】
予約済みフィールドは、格納されるデータの最後に位置してもよく、それにより占有されるデータサイズは、事前に定義されており、データメタデータのデータサイズと組み合わせて設定されてもよい。予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である必要がある。
【００３３】
任意選択で、予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズと等しくてもよい。
【００３４】
データメタデータは、格納されるデータのデータメタデータを指し、格納されるデータに基づいて生成される。データメタデータは、通常、固定された情報を含んでいるので、通常、異なるデータのデータメタデータのサイズは同じであり、それに応じて、予約済みフィールドによって占有されるデータサイズが設定されてもよい。
【００３５】
本出願の実施形態に関与するデータサイズは、バイト（英語：Ｂｙｔｅ、略称：Ｂ）またはキロバイト（英語：Ｋｂｙｔｅｓ、略称：Ｋ）の単位で表され、データサイズは、データ長と呼ばれることもある。
【００３６】
任意選択の方法として、ターゲットデータを取得するために、格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列が予約済みフィールドとして追加されてもよい。
【００３７】
所定の文字列は、空の文字列であってもよく、または合意された文字列であってもよい。
【００３８】
１０２：ターゲットデータを格納エンドに送信する。
【００３９】
要求エンドは、ターゲットデータを含む書き込み要求を格納エンドに送信してもよく、書き込まれるデータとして機能するターゲットデータは、格納エンドに送信される。
【００４０】
ターゲットデータを取得した後、格納エンドは、ターゲットデータをキャッシュするための１つのメモリを受動的に割り当てる。説明における区別の便宜上、ターゲットデータをキャッシュするための、格納エンドによって受動的に割り当てられるメモリは、「第２のメモリ」と名付けられる。格納エンドは、格納されるデータをターゲットデータから読み取り、それに基づいてデータメタデータを生成してもよい。ターゲットデータで予約済みフィールドが予約されているので、予約済みフィールドは、書き込まれるデータメタデータには十分である。したがって、格納エンドは、第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むことができる。
【００４１】
具体的には、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【００４２】
本実施形態では、要求エンドは、ターゲットデータとして再構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しいので、データメタデータを書き込むには、格納エンドによって受動的に割り当てられた第２のメモリで十分である。そのため、追加のディスク書き込みメモリを申請する必要がなく、データのコピーも必要なく、それにより、ゼロコピーが達成される。したがって、メモリのいかなる浪費も引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【００４３】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、いくつかの実施形態では、ターゲットデータを格納エンドに送信することは、
ターゲットデータのデータサイズと一致する第１のメモリを割り当てることと、
ターゲットデータを第１のメモリに入れることと、
ターゲットデータを第１のメモリから格納エンドに送信することと、を含み得る。
【００４４】
本出願の実施形態において、第１のメモリは、説明における区別の便宜上、「第１のメモリ」と名付けられた、格納エンドに送信されるターゲットデータを格納するために割り当てられたメモリと呼ばれる。当業者は、「第１のメモリ」および「第２のメモリ」における「第１」および「第２」は、説明における区別のために使用されるだけであり、配信および包含などのいかなる関係も表さないことを理解することができる。
【００４５】
要求エンドおよび格納エンドは、ターゲットデータ内の予約済みフィールドの位置、および、例えば、予約済みフィールドとして、ターゲットデータ内の最後の３２バイトなど、格納されるデータの位置を合意することができる。そのため、格納エンドは、合意されたルールに従って、格納されるデータをターゲットデータから読み取り、予約済みフィールドを決定することができる。
【００４６】
要求エンドは、要求メタデータを格納エンドに送信することもでき、格納エンドは、要求メタデータ内の格納されるデータのデータ長および／またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定することができる。
【００４７】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスなどを示すこともできる。
【００４８】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、要求メタデータもメモリに入れることができ、その結果、格納されるデータおよび要求メタデータを一緒に送信することができる。
【００４９】
したがって、ターゲットデータを格納エンドに送信することには、
ターゲットデータと要求メタデータとの合計データサイズを計算することと、
合計データサイズと一致する第１のメモリを割り当てることと、
ターゲットメモリおよび要求メタデータを第１のメモリに入れることと、
ターゲットデータを第１のメモリから格納エンドに送信することと、を含み得る。
【００５０】
実用的応用では、本出願の技術的解決策を分散ストレージシステムに適用することができる。分散ストレージシステムでは、あるデータ格納ノードの障害によって引き起こされるデータ損失を回避するために、通常、元のデータのコピーをいくつか作成するために、マルチコピー技術が採用され、データの各コピーは、異なるデータ格納ノードに格納される。元のデータの各コピーデータは、コピーデータである。したがって、格納されるデータは、コピーデータと呼ばれることがある。
【００５１】
分散ストレージシステムは、クラスタシステムを形成するいくつかのデータ格納ノードによって形成されるので、格納されるデータを複数のデータ格納ノードに送信して格納する必要がある。例えば、格納されるデータがコピーデータであるとき、コピーデータは、複数のデータ格納ノードに別々に送信される必要がある。
【００５２】
格納されるデータを複数のデータ格納ノードに送信する必要がある場合、要求エンドは、データ格納ノードごとに対応する要求メタデータを送信する必要がある。複数のデータ格納ノードに別々に送信される要求メタデータは、格納されるデータのデータ長、データ位置などを含んでいてもよく、格納指示情報など、異なるデータ格納ノードに対応する区別された情報を含んでいてもよい。格納されるデータは、様々なデータ格納ノードに関連付けられたストレージデバイスに格納するための様々な要件を有する場合がある。
【００５３】
分散ストレージシステムでは、本出願の実施形態における格納エンドは、複数のデータ格納ノードを含み得る。
【００５４】
したがって、ターゲットデータを格納エンドに送信することは、ターゲットデータおよび対応する要求メタデータを複数のデータ格納ノードに送信することを含む。
【００５５】
現在、要求エンドがターゲットデータおよび対応する要求メタデータを複数のデータ格納ノードに送信すると、要求エンドは、最初に、ターゲットデータと１つの要求メタデータとの合計データサイズを計算し、合計データサイズと一致する第１のメモリを割り当て、ターゲットデータを第１のメモリに入れ得る。格納されるデータをデータ格納ノードのうちのいずれか１つに送信する必要がある場合、任意のデータ格納ノードに対応する要求メタデータが第１のメモリにステッチされ、次に、ターゲットデータおよび要求メタデータが任意のデータ格納ノードに送信される。格納されるデータを別のデータ格納ノードに送信する必要がある場合、前の要求メタデータを上書きするために、他のデータ格納ノードに対応する要求メタデータが第１のメモリにコピーされ、次に送信される。
【００５６】
上記の説明から分かるように、現在、このタイプの方法で複数のデータ格納ノードに格納されるデータを送信するとき、要求メタデータをコピーする複数の面倒な操作が必要とされる。これは、送信の効率にも影響を及ぼし、データ格納の効率にも影響を及ぼす。
【００５７】
さらなる検討の後、発明者は、本出願の技術的解決策の別の実施形態を提案する。
【００５８】
図２は、本出願による別の例示的なデータ処理方法のフローチャートである。この方法は、以下のステップを含み得る。
【００５９】
２０１：ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【００６０】
２０２：格納されるデータがデータ格納ノードの複数の要求メタデータに別々に対応することを決定する。
【００６１】
２０３：ターゲットデータと複数の要求メタデータとの合計データサイズを計算する。
【００６２】
２０４：合計データサイズと一致する第１のメモリを割り当てる。言い換えれば、第１のメモリのメモリサイズは、合計データサイズと等しくてもよい。
【００６３】
２０５：ターゲットデータおよび複数の要求メタデータを第１のメモリに入れる。
【００６４】
最初に、ターゲットデータが第１のメモリに入れられ、次に、複数の要求メタデータが第１のメモリに順次入れられ、ターゲットデータの最後にスプライスされ得る。
【００６５】
２０６：ターゲットデータおよび対応する１つの要求メタデータをデータ格納ノードの各々に別々に送信する。
【００６６】
要求エンドは、ターゲットデータ、および複数のデータ格納ノードの各々に対応するそれぞれ１つの要求メタデータを含めるために、書き込み要求を複数のデータ格納ノードに別々に送信し得る。
【００６７】
具体的には、任意のデータ格納ノードについて、第１のメモリ内の任意のデータ格納ノードに対応するターゲットデータおよび要求メタデータが、任意のデータ格納ノードに送信される。
【００６８】
第１のメモリでは、複数の要求メタデータを、複数のデータ格納ノードの送信順序に従って第１のメモリに順次入れることができる。例えば、送信順序で最初のものとして位置する第１のデータ格納ノードの１つの要求メタデータは、ターゲットデータの最後に位置し、送信順序で第２のものとして位置する第２のデータ格納ノードの１つの要求データは、第１のデータ格納ノードの１つの要求メタデータの最後に位置するなど、以下同様である。言い換えれば、複数の要求メタデータを第１のメモリに順次入れることができる。書き込み要求を任意のデータ格納ノードに送信する必要があるとき、要求メタデータのデータサイズはわかっているので、任意のデータ格納ノードに関連付けられた送信順序に従って、対応する１つの要求メタデータを見つけることができる。
【００６９】
任意のデータ格納ノードは、要求エンドによって送信された受信データを取得した後、受信データの最後から必要な１つの要求メタデータを読み取ることができ、１つの要求メタデータに基づいてターゲットデータから格納されるデータおよび予約済みフィールドなどを決定することができる。
【００７０】
本実施形態では、データ格納ノードごとに１つの要求メタデータを特化する必要なく、割り当てられた第１のメモリに複数の要求メタデータを書き込むことができる。次に、単一の動作を実行すると、データが異なるデータ格納ノードに送信され得る。動作が簡単になり、送信の効率が向上する。そのため、データ格納の効率およびシステム性能を向上させることができる。
【００７１】
要求エンドおよび各データ格納ノードの動作を容易にするために、図３に示されるようなさらに別の実施形態では、データ処理方法は、以下を含み得る。
【００７２】
３０１：ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【００７３】
３０２：格納されるデータがデータ格納ノードの複数の要求メタデータに別々に対応することを決定する。
【００７４】
３０３：ターゲットデータと複数の要求メタデータとの合計データサイズを計算する。
【００７５】
３０４：合計データサイズと一致する第１のメモリを割り当てる。言い換えれば、第１のメモリのメモリサイズは、合計データサイズと等しくてもよい。
【００７６】
３０５：ターゲットデータを第１のメモリに入れ、複数の要求メタデータをターゲットデータの最後に順次入れる。
【００７７】
複数の要求メタデータを、データ格納ノードの送信順序に従って第１のメモリに順次入れることができる。例えば、送信順序で最初である第１のデータ格納ノードの１つの要求メタデータは、ターゲットデータの最後に位置し、送信順序で第２である第２のデータ格納ノードの１つの要求データは、第１のデータ格納ノードの１つの要求メタデータの最後に位置するなど、以下同様である。言い換えれば、複数の要求メタデータを第１のメモリに順次入れることができる。
【００７８】
さらに別の実施形態として、複数の要求メタデータをターゲットデータの最後に順次入れることは、
複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードにそれぞれ対応する複数の要求メタデータをターゲットデータの最後に順次入れることを含む。
【００７９】
３０６：任意のデータ格納ノードについて、第１のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する１つの要求メタデータ、および任意のデータ格納ノードに対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを任意の格納ノードに送信する。
【００８０】
要求エンドは、ターゲットデータ、任意のデータ格納ノードに対応する１つの要求メタデータ、および任意のデータ格納ノードに対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを運ぶために、任意のデータ格納ノードに書き込み要求を送信し得る。
【００８１】
受信データの最後から対応する１つの要求メタデータを読み取るために、任意のデータ格納ノードが使用される。
【００８２】
複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードの各々に対応するそれぞれ１つの要求メタデータがターゲットデータの最後に順次入れられる。
【００８３】
任意選択で、ステップ３０６の動作は、
任意のデータ格納ノードについて、第１のメモリ内の、ターゲットデータ、任意のデータ格納ノードの送信順序に対応する１つの要求メタデータ、および任意のデータ格納ノードの送信順序に対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを任意の格納ノードに送信することを含み得る。
【００８４】
本実施形態の方法を使用して、１つの要求メタデータのデータサイズに基づいて、データ格納ノードは、受信データの最後から対応する１つの要求メタデータを解析し、取得することができる。
【００８５】
１つの要求メタデータは、格納されるデータのデータサイズおよび／またはデータ位置を含んでいるので、１つの要求メタデータに基づいて、１つの要求メタデータによって示されるデータサイズのデータを、受信データの先頭から読み取ることができ、すなわち、格納されるデータは、データ位置に従って、受信データから取得することができ、または位置特定され、取得することができる。
【００８６】
以下では理解を容易にするために、３つのデータ格納ノードが一例として使用される。図４ａは、ターゲットデータのデータ構造の概略図である。分かるように、ターゲットデータは、格納されるデータ４０１および予約済みフィールド４０２から構成されている。
【００８７】
図４ｂは、第１のメモリ内のデータ構造の概略図であり、ターゲットデータ４０３と、ターゲットデータ４０３の最後に順次入れられる３つの要求メタデータｍ１、ｍ２、およびｍ３とからなる。
【００８８】
３つの要求メタデータは、３つのデータ格納ノードの送信順序に従って入れることができ、１つの要求メタデータｍ１は、第１のデータ格納ノードに対応し、１つの要求メタデータｍ２は、第２のデータ格納ノードに対応し、１つの要求メタデータｍ３は、第３のデータ格納ノードに対応する。
【００８９】
任意選択の方法として、第１のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３および１つの要求メタデータｍ１を第１のデータ格納ノードに送信してもよい。第２のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３および１つの要求メタデータｍ２を第２のデータ格納ノードに送信してもよい。第３のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３および１つの要求メタデータｍ３を第３のデータ格納ノードに送信してもよい。
【００９０】
別の任意選択の方法として、第１のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３および１つの要求メタデータｍ１を第１のデータ格納ノードに送信してもよい。第２のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３、１つの要求メタデータｍ１、および１つの要求メタデータｍ２を第２のデータ格納ノードに送信してもよい。第３のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ４０３、１つの要求メタデータｍ１、１つの要求メタデータｍ２、および１つの要求メタデータｍ３を第３のデータ格納ノードに送信してもよい。
【００９１】
図５は、本出願によって提供される別の例示的なデータ処理方法のフローチャートである。本実施形態の技術的解決策は、格納エンドに適用される。従来のストレージシステムでは、ストレージサーバがこの方法を実行し得る。分散ストレージシステムでは、任意のデータ格納ノードがこの方法を実行し得る。
【００９２】
この方法は、以下のステップを含み得る。  
５０１：ターゲットデータを取得する。
【００９３】
ターゲットデータは、要求エンドによって格納されるデータに予約済みフィールドを追加することによって形成される。
【００９４】
ターゲットデータは、要求エンドの書き込み要求に含まれていてもよく、格納エンドは、書き込み要求からターゲットデータを取得してもよい。
【００９５】
５０２：ターゲットデータをキャッシュするための第２のメモリを割り当てる。
【００９６】
ターゲットデータを取得した後、格納エンドは、ターゲットデータを一時的に格納するために、第２のメモリを受動的に割り当てる。第２のメモリのメモリサイズは、ターゲットデータのデータサイズと一致している。
【００９７】
５０３：ターゲットデータ内の格納されるデータのデータメタデータを生成する。
【００９８】
５０４：第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む。
【００９９】
その後、格納エンドは、第２のメモリに格納されるデータを１つのデータメタデータとしてストレージデバイスに書き込むことができる。
【０１００】
予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である。第２のメモリは、データメタデータを書き込むことが可能なスペースを十分有している。格納エンドは、格納されるデータをデータメタデータとしてストレージデバイスに書き込むために、追加の書き込みディスクメモリを割り当てる必要はない。データのコピーを実行する必要はなく、ゼロコピーが達成される。したがって、メモリのいかなる浪費も引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【０１０１】
要求エンドおよび格納エンドは、ターゲットデータ内の予約済みフィールドの位置、および格納されるデータの位置を合意することができる。例えば、ターゲットデータ内の最後の３２バイトは、予約済みフィールドに対応する。格納エンドは、格納されるデータを読み取り、合意されたルールに基づいて予約済みフィールドを決定することができる。
【０１０２】
したがって、いくつかの実施形態では、予約済みフィールドは、格納されるデータの最後に位置し得る。
【０１０３】
ターゲットデータ内の格納されるデータのデータメタデータを生成することは、
予約済みフィールドのあらかじめ設定されたサイズに基づいて、ターゲットデータ内の格納されるデータおよび予約済みフィールドを決定することと、
格納されるデータのデータメタデータを生成することと、を含み得る。
【０１０４】
したがって、格納エンドは、格納されるデータに基づいてデータメタデータを生成することができる。
【０１０５】
要求エンドは、要求メタデータを格納エンドに送信することもでき、格納エンドは、要求メタデータ内の格納されるデータのデータ長および／またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定することができる。
【０１０６】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスなどを示すこともできる。
【０１０７】
データメタデータは、要求メタデータおよび格納されるデータに基づいて生成され得る。
【０１０８】
分散ストレージシステムでは、格納されるデータが、複数のデータ格納ノードに送信されて格納される状況（例えば、格納されるデータがコピーデータであるとき）が存在する。前述の実施形態における説明に基づいて、要求エンドによって格納エンドに送信されるデータには、ターゲットデータおよび少なくとも１つの要求メタデータが含まれ得る。
【０１０９】
したがって、いくつかの実施形態では、ターゲットデータを取得することは、
要求エンドによって送信された書き込み要求を受信することであって、書き込み要求は、ターゲットデータおよび少なくとも１つの要求メタデータを含む、受信することと、
ターゲット要求メタデータを決定することと、を含み得る。  
ターゲットデータ内の格納されるデータのデータメタデータを生成することは、
ターゲット要求メタデータに基づいて格納されるデータを読み取ることと、
ターゲット要求メタデータおよび格納されるデータに基づいてデータメタデータを生成することと、を含む。
【０１１０】
例えば、ターゲット要求メタデータは、格納されるデータのデータサイズを含み、格納されるデータのデータサイズは、データメタデータの情報として使用されてもよい。データチェックサムなど、データメタデータに含まれる他の情報は、格納されるデータに基づいて生成することができる。データチェックサムは、本明細書では繰り返さない既存の技術と同じであるＣＲＣ（Cyclic Redundancy Check、巡回冗長検査）アルゴリズムを使用して実施することができる。
【０１１１】
図３に示される実施形態に従って、要求エンドがターゲットデータを送信する場合、要求エンドの書き込み要求は、第１のメモリ内の、要求エンドによって送信されるように要求されたターゲットデータ、ターゲット要求メタデータ、およびターゲット要求メタデータの前に位置する要求メタデータを含み得る。
【０１１２】
したがって、ターゲット要求メタデータを決定することは、
要求メタデータのデータサイズに基づいて、書き込み要求のデータの最後からターゲット要求メタデータを読み取ることを含み得る。
【０１１３】
したがって、ターゲット要求メタデータに基づいて、送信されたデータから格納されるデータを読み取ることができる。
【０１１４】
分散ストレージシステムにおいてコピーデータとして格納されるデータを一例として取り上げることで、本出願の実施形態の技術的解決策について以下に記載する。分散ストレージシステムでは、通常、マルチコピー技術を使用して、障害に起因する元のデータの損失の問題を解決する。
【０１１５】
図６に示されるように、要求エンド６０は、最初に、ターゲットデータ６０１を構築し、予約済みフィールド６０３をコピーデータ６０２の最後に追加する。予約済みフィールドは、コピーデータの最後に、あらかじめ設定されたサイズの空の文字列を追加することにより形成されてもよい。
【０１１６】
３つのデータ格納ノードは、それぞれ第１のデータ格納ノード６１、第２のデータ格納ノード６２、および第３のデータ格納ノード６３を含む、コピーデータを受信すると仮定する。言い換えれば、要求エンドは、３つのデータ格納ノードにコピーデータを送信する必要がある。要求エンドは、必要な３つのデータ格納ノードの各々に対応するそれぞれの要求メタデータを別々に決定する。第１のデータ格納ノード６１に対応する１つの要求メタデータをｍ１と仮定する。第２のデータ格納ノード６２に対応する１つの要求メタデータをｍ２と仮定する。第３のデータ格納ノード６３に対応する１つの要求メタデータをｍ３と仮定する。
【０１１７】
要求エンドは、第１のメモリを申請し、ターゲットデータ６０１を第１のメモリに書き込み、３つのデータ格納ノードの送信順序（送信順序は、第１のデータ格納ノード６１、第２のデータ格納ノード６２、および第３のデータ格納ノード６３であると仮定する）に従って、３つの要求メタデータをターゲットデータ６０１の最後に順次入れ、３つの要求メタデータの配列の順序はｍ１、ｍ２、およびｍ３である。
【０１１８】
任意のデータ格納ノードについて、要求エンドは、コピーデータ、任意の格納ノードに対応する１つの要求メタデータ、および任意の格納ノードに対応する１つの要求メタデータの前の任意の数の要求メタデータを第１のメモリから読み取り、任意のデータ格納ノードに書き込み要求を送信することができる。
【０１１９】
図６に示されるように、要求エンド６０は、ターゲットデータ６０１およびｍ１を第１のデータ格納ノード６１に送信し、ターゲットデータ６０１、ｍ１、およびｍ２を第２のデータ格納ノードに送信し、ターゲットデータ６０１、ｍ１、ｍ２、およびｍ３を第３のデータ格納ノードに送信する。
【０１２０】
したがって、任意のデータ格納ノードが書き込み要求を受信した後、任意のデータ格納ノードは、書き込み要求の最後から、他のデータ格納ノードとは異なるターゲット要求メタデータを読み取り、取得することができる。
【０１２１】
各データ格納ノードは、いくつかの要求メタデータおよび要求メタデータのデータサイズに基づいて、書き込み要求からターゲットデータを決定し、ターゲットデータを一時的に格納するために、第２のメモリを割り当てることができる。
【０１２２】
その後、各データ格納ノードは、ターゲット要求メタデータに基づいてターゲットデータからコピーデータを決定し、それに応じてデータメタデータを生成し、次に、データメタデータを第２のメモリに書き込むことができる。
【０１２３】
各データ格納ノードは、第２のメモリに書き込まれたコピーデータおよびデータメタデータをそれぞれのストレージデバイス６４に書き込むことができる。
【０１２４】
上記の説明から分かるように、要求エンドは、第１のメモリを申請し、３つのデータ格納ノードの複数の要求メタデータを一度に第１のメモリに入れ、それにより、操作を簡略化し、データ送信の効率を確保する。さらに、要求エンドは、ターゲットデータを形成するために、コピーデータに予約済みフィールドを追加し、その結果、ターゲットデータを一時的に格納するためにデータ格納ノードによって受動的に割り当てられた第２のメモリは、データメタデータを書き込むためのスペースを十分有する。したがって、書き込みディスクメモリの再申請およびデータコピーの操作を行う必要なく、データ格納を達成することができる。ゼロコピーの方式を使用することにより、システム性能およびデータ格納の効率が向上する。さらに、追加のメモリを申請する必要がなく、メモリの浪費の問題が軽減される。
【０１２５】
図７は、本出願による例示的なデータ処理装置の概略構造図である。データ処理装置は、要求エンドに構成されてもよい。装置は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュール７０１を含み得る。
【０１２６】
任意選択で、データ構築モジュールは、具体的に、ターゲットデータを取得するために、格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列を予約済みフィールドとして追加することができる。
【０１２７】
データ送信モジュール７０２は、ターゲットデータを格納エンドに送信するように構成され、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【０１２８】
本実施形態では、ターゲットデータを構築するために、格納されるデータに予約済みフィールドが追加される。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しいので、データメタデータを書き込むには、格納エンドによって受動的に割り当てられた第２のメモリで十分大きい。したがって、追加の書き込みディスクメモリを申請する必要がなく、データのコピーも必要なく、ゼロコピーが達成される。これにより、メモリの浪費を引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【０１２９】
格納されるデータは、送信される前にメモリに一時的に格納する必要があるので、いくつかの実施形態では、データ送信モジュールは、具体的には、ターゲットデータのデータサイズと一致する第１のメモリを割り当て、ターゲットデータを第１のメモリに入れ、第１のメモリ内のターゲットデータを格納エンドに送信するように構成され得る。
【０１３０】
要求メタデータは、格納エンドに送信されてもよく、格納エンドは、要求メタデータ内の格納されるデータのデータ長および／またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定し得る。
【０１３１】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスを示すこともできる。
【０１３２】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、要求メタデータもメモリに入れることができ、その結果、格納されるデータおよび要求メタデータを一緒に送信することができる。
【０１３３】
したがって、いくつかの実施形態では、データ送信モジュールは、具体的には、
ターゲットデータと要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第１のメモリを割り当て、
ターゲットメモリおよび要求メタデータを第１のメモリに入れ、
ターゲットデータを第１のメモリから格納エンドに送信する、ように構成され得る。
【０１３４】
実用的応用では、本出願の技術的解決策を分散ストレージシステムに適用することができる。分散ストレージシステムでは、あるデータ格納ノードの障害によって引き起こされるデータ損失を回避するために、通常、元のデータのコピーをいくつか作成するために、マルチコピー技術が採用され、データの各コピーは、異なるデータ格納ノードに格納される。元のデータの各コピーデータは、コピーデータである。したがって、格納されるデータは、コピーデータと呼ばれることがある。
【０１３５】
分散ストレージシステムは、クラスタシステムを形成するいくつかのデータ格納ノードによって形成されるので、格納されるデータを複数のデータ格納ノードに送信して格納する必要がある。例えば、格納されるデータがコピーデータであるとき、コピーデータは、複数のデータ格納ノードに別々に送信される必要がある。
【０１３６】
したがって、いくつかの実施形態では、格納エンドは、複数のデータ格納ノードを含み得る。  
任意選択の方法として、データ送信モジュールは、具体的には、
格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第１のメモリを割り当て、
ターゲットメモリおよび複数の要求メタデータを第１のメモリに入れ、
ターゲットデータおよび対応する１つの要求メタデータを複数のデータ格納ノードに別々に送信する、ように構成され得る。
【０１３７】
別の任意選択の方法として、データ送信モジュールは、具体的には、
格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第１のメモリを割り当て、
ターゲットデータを第１のメモリに入れ、複数の要求メタデータをターゲットデータの最後に順次入れ、
任意のデータ格納ノードについて、第１のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する１つの要求メタデータ、および任意のデータ格納ノードに対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを任意の格納ノードに送信する、ように構成されてもよく、任意のデータ格納ノードは、受信データの最後から対応する１つの要求メタデータを読み取るように構成されている。
【０１３８】
任意選択で、データ送信モジュールが複数の要求メタデータをターゲットデータの最後に順次入れることは、具体的には、複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードに対応するそれぞれの複数の要求メタデータをターゲットデータの最後に順次入れることを含み得る。
【０１３９】
データ送信モジュールが、任意のデータ格納ノードについて、第１のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する１つの要求メタデータ、および任意のデータに対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを任意の格納ノードに送信することは、具体的には、任意のデータ格納ノードについて、ターゲットデータ、１つの要求メタデータは、任意のデータ格納ノードの送信順序に対応し、および任意のデータ格納ノードの送信順序に対応する１つの要求メタデータの前に位置する１つ以上の要求メタデータを第１のメモリから任意の格納ノードに送信することを含み得る。
【０１４０】
可能な設計では、図７に示される実施形態のデータ処理装置は、コンピューティングデバイスとして実装され得る。コンピューティングデバイスは、要求サーバであり得る要求エンドに配備される。図８に示されるように、コンピューティングデバイスは、格納コンポーネント８０１および処理コンポーネント８０２を含み得る。
【０１４１】
格納コンポーネント８０１は、１つ以上のコンピュータ命令を格納するように構成されており、１つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供される。
【０１４２】
処理コンポーネント８０２は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
ターゲットデータを格納エンドに送信する、ように構成され、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【０１４３】
処理コンポーネント８０２は、ターゲットデータおよび／または要求メタデータを格納コンポーネント８０１にキャッシュするために第１のメモリを適用し得る。
【０１４４】
処理コンポーネント８０２は、上記の図１から図３に示される実施形態のいずれか１つに記載されたデータ処理方法を実行するように構成されてもよい。
【０１４５】
処理コンポーネント８０２は、コンピュータ命令を実行して、上記の方法のステップの全部または一部を完了するための１つ以上のプロセッサを含み得る。明らかに、処理コンポーネントは、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または上記の方法を実装するための他の電子コンポーネントのうちの１つ以上でもよい。
【０１４６】
格納コンポーネント８０１は、コンピューティングデバイス上での動作をサポートするために様々なタイプのデータを格納するように構成されている。メモリは、スタティックランダムアクセスメモリ（ＳＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、読み取り専用メモリ（ＲＯＭ）、磁気ストレージデバイス、フラッシュメモリ、磁気ディスク、または光ディスクなど、任意のタイプの揮発性または不揮発性ストレージデバイスまたはそれらの組み合わせで実装することができる。
【０１４７】
明らかに、コンピューティングデバイスは、入出力インターフェース、通信コンポーネントなど他のコンポーネントも必然的に含み得る。
【０１４８】
本出願の実施形態は、コンピュータプログラムを格納するコンピュータ可読記憶媒体も提供し、コンピュータによって実行されると、コンピュータプログラムは、図１〜３の実施形態のいずれか１つに示されるデータ処理方法を実装することができる。
【０１４９】
図９は、本出願によって提供される別の例示的なデータ処理装置の概略構造図である。装置は、格納エンドに構成されてもよく、装置は、
ターゲットデータを取得するように構成されたデータ取得モジュール９０１であって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュール９０１と、
ターゲットデータをキャッシュするための第２のメモリを割り当てるように構成されたメモリ割り当てモジュール９０２と、
ターゲットデータ内の格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュール９０３と、
第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むように構成されたデータ書き込みモジュール９０４と、を含み得る。
【０１５０】
予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である。第２のメモリにはデータメタデータを書き込むための十分なスペースがあり、格納エンドは、追加の書き込みディスクメモリを割り当てる必要がない。データメタデータは、データのコピーを行うことなく、ストレージデバイスに書き込まれ、ゼロコピーが達成される。したがって、メモリの浪費を引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【０１５１】
いくつかの実施形態では、ターゲットデータ内の予約済みフィールドの位置および格納されるデータの位置は、要求エンドと合意することができる。例えば、ターゲットデータ内の最後の３２バイトは、予約済みフィールドに対応する。格納エンドは、格納されるデータをターゲットデータから読み取り、そのような合意されたルールに基づいて予約済みフィールドを決定することができる。
【０１５２】
したがって、いくつかの実施形態では、予約済みフィールドは、格納されるデータの最後に位置し得る。
【０１５３】
データ生成モジュールは、具体的には、予約済みフィールドのあらかじめ設定されたサイズに基づいて、ターゲットデータ内の格納されるデータおよび予約済みフィールドを決定し、格納されるデータのデータメタデータを生成するように構成されてもよい。
【０１５４】
要求エンドは、要求メタデータを格納エンドに送信し得る。したがって、いくつかの実施形態では、データ取得モジュールは、具体的には、
要求エンドによって送信された書き込み要求を受信するように構成され、書き込み要求は、ターゲットデータおよび少なくとも１つの要求メタデータを含み、
ターゲット要求メタデータを決定するように構成され得る。
【０１５５】
データ生成モジュールは、具体的には、ターゲット要求メタデータに基づいて、送信されたデータから格納されるデータを読み取り、ターゲット要求メタデータおよび格納されるデータに基づいてデータメタデータを生成するように構成され得る。
【０１５６】
いくつかの実施形態では、書き込み要求は、要求エンドが第１のメモリから送信することを要求する、ターゲットデータ、ターゲット要求メタデータ、およびターゲット要求メタデータの前の要求メタデータを含み得る。
【０１５７】
ターゲット要求メタデータを決定するデータ取得モジュールは、具体的には、要求メタデータのデータサイズに基づいて、書き込み要求の最後からターゲット要求メタデータを読み取ることを含み得る。
【０１５８】
可能な設計では、図９に示される実施形態のデータ処理装置は、コンピューティングデバイスとして実装され得る。コンピューティングデバイスは、従来のストレージシステムのストレージサーバ、または物理サーバであり得る分散ストレージシステムのデータ格納ノードとすることができる。図１０に示されるように、コンピューティングデバイスは、格納コンポーネント１００１および処理コンポーネント１００２を含み得る。
【０１５９】
格納コンポーネント１００１は、１つ以上のコンピュータ命令を格納するように構成されており、１つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供される。
【０１６０】
処理コンポーネント１００２は、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
格納コンポーネント１００１に、ターゲットデータをキャッシュするための第２のメモリを割り当て、
ターゲットデータ内の格納されるデータのデータメタデータを生成し、
第２のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む、ように構成されている。
【０１６１】
加えて、処理コンポーネント１００２を使用して、上記の実施形態のいずれかに記載されたデータ処理方法を実行してもよい。
【０１６２】
処理コンポーネント１００２は、コンピュータ命令を実行して、上記の方法のステップの全部または一部を完了するための１つ以上のプロセッサを含み得る。明らかに、処理コンポーネントは、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または上記の方法を実装するための他の電子コンポーネントのうちの１つ以上でもよい。
【０１６３】
格納コンポーネント１００１は、コンピューティングデバイス上での動作をサポートするために様々なタイプのデータを格納するように構成されている。メモリは、スタティックランダムアクセスメモリ（ＳＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、読み取り専用メモリ（ＲＯＭ）、磁気ストレージデバイス、フラッシュメモリ、磁気ディスク、または光ディスクなど、任意のタイプの揮発性または不揮発性ストレージデバイスまたはそれらの組み合わせで実装することができる。
【０１６４】
明らかに、コンピューティングデバイスは、入出力インターフェース、通信コンポーネントなど他のコンポーネントも必然的に含み得る。
【０１６５】
本出願の実施形態は、コンピュータプログラムを格納するコンピュータ可読記憶媒体も提供し、コンピュータによって実行されると、コンピュータプログラムは、図４の実施形態のいずれか１つに示されるデータ処理方法を実装することができる。
【０１６６】
当業者は、上記のシステム、装置、およびユニットの特定の作業プロセスが、説明の便宜および簡略化のために、本明細書で繰り返されない前述の方法実施形態の対応するプロセスを参照できることを明確に理解できる。
【０１６７】
上記の装置実施形態は、単なる概略であり、別個のコンポーネントとして記載されるユニットは、物理的に分離されていてもよく、または分離されていなくてもよい。ユニットとして表示されるコンポーネントは、物理的なユニットであってもよく、またはそうでなくてもよく、すなわち、単一の場所に位置してもよく、または複数のネットワークユニットに分散されていてもよい。モジュールの一部または全部は、本実施形態の解決策の目的を達成するための実際の必要性に応じて選択され得る。当業者は、いかなる創造的な努力もすることなく、それを理解し、実施することができる。
【０１６８】
上記の実施形態の説明を通じて、当業者は、各実施形態がソフトウェアおよび必要な一般的なハードウェアプラットフォームによって実施することができ、明らかにハードウェアによっても実施することもできることを明確に理解することができる。そのような理解に基づいて、上記の技術的解決策の本質または既存の技術に貢献する部分をソフトウェア製品の形式で具体化することができる。そのようなコンピュータソフトウェア製品は、ＲＯＭ／ＲＡＭ、磁気ディスク、光ディスクなどのコンピュータ可読記憶媒体に格納することができ、コンピューティングデバイス（パーソナルコンピュータ、サーバ、またはネットワークデバイスなどであり得る）が様々な実施形態または実施形態のいくつかの部分で記載された方法を実行することを可能にするためのいくつかの命令を含み得る。
【０１６９】
最後に、上記の実施形態は、本出願の技術的解決策を例証するためだけに使用され、限定するものではないことに留意されたい。本出願について、前述の実施形態を参照して詳細に記載したが、当業者は、前述の実施形態に記載された技術的解決策において修正を行うことができ、または技術的特徴の一部を同等に置き換えることができることを理解されたい。これらの修正または置換は、対応する技術的解決策の本質を、本出願の実施形態の技術的解決策の意図および範囲から逸脱するものではない。
【図１】
2021510222.tif 000003
【図２】
2021510222.tif 000004
【図３】
2021510222.tif 000005
【図４ａ】
2021510222.tif 000006
【図４ｂ】
2021510222.tif 000007
【図５】
2021510222.tif 000008
【図６】
2021510222.tif 000009
【図７】
2021510222.tif 000010
【図８】
2021510222.tif 000011
【図９】
2021510222.tif 000012
【図１０】
2021510222.tif 000013
【国際調査報告】
2021510222.tif 000014
2021510222.tif 000015
2021510222.tif 000016
2021510222.tif 000017