(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-02
(45)【発行日】2023-11-13
(54)【発明の名称】データ処理方法、装置、およびコンピューティングデバイス
(51)【国際特許分類】
G06F 3/06 20060101AFI20231106BHJP
G06F 9/50 20060101ALI20231106BHJP
【FI】
G06F3/06 301X
G06F9/50 120Z
(21)【出願番号】P 2020537757
(86)(22)【出願日】2019-01-07
(86)【国際出願番号】 CN2019070580
(87)【国際公開番号】W WO2019137321
(87)【国際公開日】2019-07-18
【審査請求日】2021-12-10
(31)【優先権主張番号】201810020121.0
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジンシン リウ
(72)【発明者】
【氏名】チョンユー ドン
(72)【発明者】
【氏名】シャンヤン リウ
【審査官】打出 義尚
(56)【参考文献】
【文献】特開2006-164283(JP,A)
【文献】米国特許出願公開第2014/0325168(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加することと、
前記ターゲットデータを格納エンドに送信することであって、前記予約済みフィールドは、前記格納エンド内の対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれる、ことと、
を含むデータ処理方法であって、
前記格納エンドは、複数のデータ格納ノードを含み、前記ターゲットデータを前記格納エンドに送信することは、
前記格納されるデータに別々に対応する前記複数のデータ格納ノードの複数の要求メタデータを決定することと、
前記ターゲットデータと前記複数の要求メタデータとの合計データサイズを計算することと、
前記合計データサイズと一致する
データサイズを有し、前記ターゲットデータと前記複数の要求メタデータとを前記格納エンドに送信する前に一時的に格納する第1のメモリを割り当てることと、
を含む、方法。
【請求項2】
前記ターゲットデータを前記格納エンドに前記送信することは、
前記ターゲットデータおよび前記複数の要求メタデータを前記第1のメモリに入れることと、
前記ターゲットデータおよび対応する1つの要求メタデータを前記
複数のデータ格納ノードの各々に別々に送信することと、
をさらに含む、請求項1の方法。
【請求項3】
前記ターゲットデータを前記格納エンドに前記送信することは、
前記ターゲットデータを前記第1のメモリに入れ、前記複数の要求メタデータを前記ターゲットデータの最後に順次入れることと、
任意のデータ格納ノードについて、前記第1のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する1つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記1つの要求メタデータの前に位置する1つ以上の要求メタデータを前記任意のデータ格納ノードに送信することであって、前記任意のデータ格納ノードは、受信データの最後から対応する1つの要求メタデータを読み取るように構成されている、ことと、
をさらに含む、請求項1の方法。
【請求項4】
前記複数の要求メタデータを前記ターゲットデータの前記最後に順次入れることは、
前記複数のデータ格納ノードの送信順序に従って、前記複数のデータ格納ノードに対応するそれぞれの複数の要求メタデータを前記ターゲットデータの前記最後に順次入れることを含み、
前記任意のデータ格納ノードについて、前記第1のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する前記1つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記1つの要求メタデータの前に位置する前記1つ以上の要求メタデータを前記任意のデータ格納ノードに送信することは、
前記任意のデータ格納ノードについて、前記ターゲットデータ、前記1つの要求メタデータは、前記任意のデータ格納ノードの前記送信順序に対応し、および前記任意のデータ格納ノードの前記送信順序に対応する前記1つの要求メタデータの前に位置する前記1つ以上の要求メタデータを前記第1のメモリから前記任意のデータ格納ノードに送信することを含む、請求項3の方法。
【請求項5】
前記ターゲットデータを取得するために、前記格納されるデータに前記予約済みフィールドを追加することは、
前記ターゲットデータを取得するために、前記格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列を前記予約済みフィールドとして追加することを含む、請求項1の方法。
【請求項6】
ターゲットデータを取得することであって、前記ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含むことと、
前記ターゲットデータをキャッシュするための第2のメモリを割り当てることと、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成することと、
前記第2のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込むことと、
を含むデータ処理方法であって、
前記ターゲットデータを取得することは、
前記要求エンドによって送信された書き込み要求を受信することであって、前記書き込み要求は、前記ターゲットデータおよび少なくとも1つの要求メタデータを含む、ことと、
ターゲット要求メタデータを決定することと、を含み、
前記ターゲットデータ内の前記格納されるデータの前記データメタデータを生成することは、
前記ターゲット要求メタデータに基づいて前記格納されるデータを読み取ることと、
前記ターゲット要求メタデータおよび前記格納されるデータに基づいて前記データメタデータを生成することと、
を含み、
前記要求エンドの前記書き込み要求は、第1のメモリ内の、前記要求エンドによって送信されるように要求された前記ターゲットデータ、前記ターゲット要求メタデータ、および前記ターゲット要求メタデータの前に位置する要求メタデータを含み、前記ターゲット要求メタデータを決定することは、
前記要求メタデータのデータサイズに基づいて、前記書き込み要求の最後から前記ターゲット要求メタデータを読み取ることを含む、データ処理方法。
【請求項7】
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュールと、
前記ターゲットデータを格納エンドに送信するように構成されたデータ送信モジュールであって、前記予約済みフィールドは、前記格納エンドの対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれ、
前記格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
前記ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
前記合計
データサイズと一致する
データサイズを有し、前記ターゲットデータと前記複数の要求メタデータとを前記格納エンドに送信する前に一時的に格納する第1のメモリを割り当てる、
ように構成される、
データ送信モジュールと、
を含むデータ処理装置。
【請求項8】
前記データ送信モジュールは、
前記ターゲットデータおよび前記複数の要求メタデータを前記第1のメモリに入れ、
前記ターゲットデータおよび対応する1つの要求メタデータを前記
複数のデータ格納ノードの各々に別々に送信する、
ようにさらに構成される、請求項
7に記載のデータ処理装置。
【請求項9】
前記データ送信モジュールは、
前記ターゲットデータを前記第1のメモリに入れることにおいて、前記複数の要求メタデータを前記ターゲットデータの最後に順次入れ、
任意のデータ格納ノードについて、前記第1のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する1つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記1つの要求メタデータの前に位置する1つ以上の要求メタデータを前記任意のデータ格納ノードに送信し、前記任意のデータ格納ノードは、受信データの最後から対応する1つの要求メタデータを読み取るように構成される、
ようにさらに構成される、請求項
7に記載のデータ処理装置。
【請求項10】
ターゲットデータを取得するように構成されたデータ取得モジュールであって、前記ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュールと、
前記ターゲットデータをキャッシュするための第2のメモリを割り当てるように構成されたメモリ割り当てモジュールと、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュールと、
前記第2のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込むように構成されたデータ書き込みモジュールと、
を含むデータ処理装置であって、
前記データ取得モジュールは、前記要求エンドによって送信された書き込み要求を受信するように構成され、前記書き込み要求は、前記ターゲットデータおよび少なくとも1つの要求メタデータを含み、
ターゲット要求メタデータを決定するように構成され、
前記データ生成モジュールは、前記ターゲット要求メタデータに基づいて、送信されたデータから前記格納されるデータを読み取り、前記ターゲット要求メタデータおよび前記格納されるデータに基づいて前記データメタデータを生成するように構成され、
前記書き込み要求は、前記要求エンドが第1のメモリから送信することを要求する、前記ターゲットデータ、前記ターゲット要求メタデータ、および前記ターゲット要求メタデータの前の要求メタデータを含み、
前記ターゲット要求メタデータを決定する前記データ取得モジュールは、前記要求メタデータのデータサイズに基づいて、前記書き込み要求の最後から前記ターゲット要求メタデータを読み取るように構成される、データ処理装置。
【請求項11】
格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスであって、
前記格納コンポーネントは、1つ以上のコンピュータ命令を格納するように構成されており、前記1つ以上のコンピュータ命令は、呼び出しおよび実行のために前記処理コンポーネントに提供され、
前記処理コンポーネントは、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
前記ターゲットデータを格納エンドに送信する、
ように構成されており、前記予約済みフィールドは、前記格納エンド内の対応するメモリロケーションに前記格納されるデータのデータメタデータを書き込むために使用され、その結果、前記格納されるデータおよび前記データメタデータは、まとめてストレージデバイスに書き込まれ、
前記格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
前記ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
前記合計
データサイズと一致する
データサイズを有し、前記ターゲットデータと前記複数の要求メタデータとを前記格納エンドに送信する前に一時的に格納する第1のメモリを割り当てる、
ように構成される、
コンピューティングデバイス。
【請求項12】
前記処理コンポーネントは、
前記ターゲットデータおよび前記複数の要求メタデータを前記第1のメモリに入れ、
前記ターゲットデータおよび対応する1つの要求メタデータを前記
複数のデータ格納ノードの各々に別々に送信する、
ようにさらに構成される、請求項
11のコンピューティングデバイス。
【請求項13】
前記処理コンポーネントは、
前記ターゲットデータを前記第1のメモリに入れることにおいて、前記複数の要求メタデータを前記ターゲットデータの最後に順次入れ、
任意のデータ格納ノードについて、前記第1のメモリ内の、前記ターゲットデータ、前記任意のデータ格納ノードに対応する1つの要求メタデータ、および前記任意のデータ格納ノードに対応する前記1つの要求メタデータの前に位置する1つ以上の要求メタデータを前記任意のデータ格納ノードに送信し、前記任意のデータ格納ノードは、受信データの最後から対応する1つの要求メタデータを読み取るように構成される、
ようにさらに構成される、請求項11のコンピューティングデバイス。
【請求項14】
格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスであって、
前記格納コンポーネントは、1つ以上のコンピュータ命令を格納するように構成されており、前記1つ以上のコンピュータ命令は、呼び出しおよび実行のために前記処理コンポーネントに提供され、
前記処理コンポーネントは、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
前記ターゲットデータをキャッシュするための第2のメモリを割り当て、
前記ターゲットデータ内の前記格納されるデータのデータメタデータを生成し、
前記第2のメモリ内の前記予約済みフィールドに対応するメモリロケーションに前記データメタデータを書き込み、
前記ターゲットデータを取得することは、
前記要求エンドによって送信された書き込み要求を受信することであって、前記書き込み要求は、前記ターゲットデータおよび少なくとも1つの要求メタデータを含む、ことと、
ターゲット要求メタデータを決定することと、を含み、
前記ターゲットデータ内の前記格納されるデータの前記データメタデータを生成することは、
前記ターゲット要求メタデータに基づいて前記格納されるデータを読み取ることと、
前記ターゲット要求メタデータおよび前記格納されるデータに基づいて前記データメタデータを生成することと、
を含み、
前記要求エンドの前記書き込み要求は、第1のメモリ内の、前記要求エンドによって送信されるように要求された前記ターゲットデータ、前記ターゲット要求メタデータ、および前記ターゲット要求メタデータの前に位置する要求メタデータを含み、前記ターゲット要求メタデータを決定することは、
前記要求メタデータのデータサイズに基づいて、前記書き込み要求の最後から前記ターゲット要求メタデータを読み取ることを含む、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2018年1月9日に出願され、「Data Processing Method, Apparatus, and Computing Device」と題された中国出願第2018/10020121.0号の優先権を主張し、その内容は参照により本明細書に組み入れられる。
【0002】
本出願は、データ処理技術の分野に関し、詳細には、データ処理方法、装置、およびシステムに関する。
【背景技術】
【0003】
データを格納するとき、ストレージシステムは、通常、データのセキュリティを確保するために、格納されるデータの最後に、格納されるデータの関連属性を記述するメタデータ(データメタデータとしても知られる)を追加し、その結果、格納されるデータおよびデータメタデータを一度に格納デバイスに書き込むことができる。
【0004】
要求エンドによって送信された格納されるデータを受信すると、格納エンドは、格納されるデータをキャッシュするための、格納されるデータのものと同じデータサイズを有する1つのメモリを受動的に割り当てる。格納されるデータおよびデータメタデータを一度にストレージデバイスに書き込むことができるようにするために、既存の技術の実装方法は、1つの書き込みディスクメモリを再申請し、書き込みディスクメモリのサイズは、格納されるデータのデータサイズにデータメタデータのデータサイズを加えたものであり、次に、格納されるデータを書き込みディスクメモリにコピーし、データメタデータを書き込みディスクメモリにスプライシングし、その結果、格納されるデータおよびデータメタデータが一緒に編成される。そのため、書き込み操作のみを1回実行するだけでよく、すなわち、書き込みディスクメモリ内の格納されるデータおよびデータメタデータを、まとめてストレージデバイスに書き込むことができる。
【0005】
しかしながら、上記の説明から分かるように、既存の技術では、最初に、格納されるデータを、データのコピーによって書き込みディスクメモリにコピーする必要があり、これはデータ格納の効率に影響を与える。
【発明の概要】
【0006】
本出願の実施形態は、既存の技術におけるデータ格納の低効率の技術的問題を解決するためのデータ処理方法、装置、およびコンピューティングデバイスを提供する。
【0007】
第1の態様では、本出願の実施形態は、データ処理方法を提供し、データ処理方法は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加することと、
ターゲットデータを格納エンドに送信することであって、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる、送信することと、を含む。
【0008】
第2の態様では、本出願の実施形態は、データ処理方法を提供し、データ処理方法は、
ターゲットデータを取得することであって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、取得することと、
ターゲットデータをキャッシュするための第2のメモリを割り当てることと、
ターゲットデータ内の格納されるデータのデータメタデータを生成することと、
第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むことと、を含む。
【0009】
第3の態様では、本出願の実施形態は、データ処理装置を提供し、データ処理装置は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュールと、
ターゲットデータを格納エンドに送信するように構成されたデータ送信モジュールであって、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる、データ送信モジュールと、を含む。
【0010】
第4の態様によれば、本出願の実施形態は、データ処理装置を提供し、データ処理装置は、
ターゲットデータを取得するように構成されたデータ取得モジュールであって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュールと、
ターゲットデータをキャッシュするための第2のメモリを割り当てるように構成されたメモリ割り当てモジュールと、
ターゲットデータ内の格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュールと、
第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むように構成されたデータ書き込みモジュールと、を含む。
【0011】
第5の態様では、本出願の実施形態は、格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスを提供し、
格納コンポーネントは、1つ以上のコンピュータ命令を格納するように構成されており、1つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供され、
処理コンポーネントは、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
ターゲットデータを格納エンドに送信する、ように構成されており、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用され、その結果、格納されるデータおよびデータメタデータは、まとめてストレージデバイスに書き込まれる。
【0012】
第6の態様では、本出願の実施形態は、格納コンポーネントおよび処理コンポーネントを含むコンピューティングデバイスを提供し、
格納コンポーネントは、1つ以上のコンピュータ命令を格納するように構成されており、1つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供され、
処理コンポーネントは、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
ターゲットデータをキャッシュするための第2のメモリを割り当て、
ターゲットデータ内の格納されるデータのデータメタデータを生成し、
第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む、ように構成されている。
【0013】
本出願の実施形態では、要求エンドは、ターゲットデータとして格納されるデータを構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計である。要求エンドは、ターゲットデータを格納エンドに送信する。格納エンドは、ターゲットデータをキャッシュするためのメモリを割り当てる。予約済みフィールドはターゲットデータで予約されているので、予約済みフィールドに対応するメモリスペースは、データメタデータを書き込むのに十分である可能性があり、そのため、格納エンドは、新しいメモリを割り当てる必要がなく、これは、メモリの浪費を引き起こさず、データのコピーを回避する。したがって、データ格納の効率および関連システムの性能が向上する。
【0014】
本出願のこれらの態様または本出願の他の態様は、以下の実施形態の説明において、より明確になり、理解しやすくなるであろう。
【図面の簡単な説明】
【0015】
本出願の実施形態または既存の技術における技術的解決策をより明確に説明するために、実施形態または既存の技術の説明に必要とされる添付の図面が本明細書で簡単に記載される。明らかに、記載される図面は、本出願のいくつかの実施形態を表す。当業者は、いかなる創造的な努力もすることなく、これらの図面に基づいて他の図面を取得することができる。
【
図1】本出願によって提供される例示的なデータ処理方法のフローチャートを示す図である。
【
図2】本出願によって提供される別の例示的なデータ処理方法のフローチャートを示す図である。
【
図3】本出願によって提供される例示的なデータ処理方法のフローチャートを示す図である。
【
図4a】本出願の実施形態によって提供されるデータ構造の概略図である。
【
図4b】本出願の実施形態によって提供される別のデータ構造の概略図である。
【
図5】本出願によって提供される別の例示的なデータ処理方法のフローチャートを示す図である。
【
図6】本出願の実施形態によって提供される実用的応用におけるデータ処理相互作用の概略図である。
【
図7】本出願によって提供される例示的なデータ処理装置の概略構造図である。
【
図8】本出願によって提供される例示的なコンピューティングデバイスの概略構造図である。
【
図9】本出願によって提供される別の例示的なデータ処理装置の概略構造図である。
【
図10】本出願によって提供される別の例示的なコンピューティングデバイス装置の概略構造図である。
【発明を実施するための形態】
【0016】
当業者が本発明の解決策をより良好に理解することを可能にするために、本出願の実施形態における技術的解決策が、本出願の実施形態の図面と組み合わせて、以下に明確かつ完全に記載される。
【0017】
本出願の明細書および特許請求の範囲並びに上記の図面に記載されているいくつかのプロセスは、特定の順序に従って現れる複数の動作を含む。しかしながら、これらの動作は、本文に現れる順序で実行する必要はなく、または並行して実行されてもよいことを明確に理解されたい。101、102などの動作のシーケンス番号は、異なる動作を区別するためにのみ使用され、シーケンス番号自体は、いかなる実行のシーケンスも表すものではない。これらのプロセスが含む動作は、より多くてもよく、またはより少なくてもよく、これらの動作は、順次または並行して実行されてよい。本文中の「第1」、「第2」などの記載は、様々な情報、デバイス、モジュールなどを区別するために使用されており、順序を表すものではなく、「第1」および「第2」が異なるタイプに制限されるものでもないことに留意されたい。
【0018】
本出願の実施形態の技術的解決策は、主にストレージシステムに適用される。ストレージシステムは、従来のストレージシステムまたは分散ストレージシステムであり得る。
【0019】
理解を容易にするために、最初に、本出願の実施形態に現れる可能性のある技術用語について、以下のように説明する。
【0020】
格納エンド:データアクセス操作を担当する。従来のストレージシステムは、データを格納するために集中型ストレージサーバを使用し、格納エンドは、ストレージサーバと呼ぶことができ、分散ストレージシステムは、複数のデータ格納ノードにデータを格納し、格納エンドは、1つ以上のデータ格納ノードと呼ぶことができる。
【0021】
データ格納ノード:分散ストレージシステムにおけるデータ格納を担当するノードであり、通常、物理サーバである。
【0022】
要求エンド:読み取り/書き込み要求の送信を担当し、上位レベルのサービスシステムは、要求エンドを介して格納エンドのデータにアクセスし、またはそのデータを更新する。
【0023】
要求メタデータ:要求エンドによって格納エンドに送信される、格納されるデータのデータガイダンス情報であり、格納されるデータのデータ長および/またはデータ位置、並びに格納指示情報、すなわち、格納されるデータが書き込まれるストレージデバイスを示すとも呼ばれる格納指示情報を含んでいてもよく、要求されたメタデータは、格納されたデータに書き込まれない。
【0024】
データメタデータ(DataMeta):格納されるデータの関連属性を記載するために使用されるメタデータであり、データ長、データチェックサム、格納位置、それが属するファイル名などを含んでいてもよく、データメタデータは、格納されるデータとともにストレージデバイスに書き込まれる。
【0025】
マルチコピー技術:分散ストレージシステムでのデータ冗長技術であり、普段は、データ格納ノードの障害に起因するデータ損失を防ぐために、元のデータのコピーをいくつか作成し、データの各コピーは、異なるデータ格納ノードに格納されており、元のデータの各コピーは、コピーデータと呼ばれる。
【0026】
ストレージデバイス:ストレージシステムにデータを格納するために使用されるハードウェアデバイスであり、最終的に、データを磁気ディスクなどの記憶媒体であり得るストレージデバイスに書き込む必要がある。
【0027】
既存の技術では、格納されるデータおよびデータメタデータをストレージデバイスに書き込むために、格納エンドは、追加の書き込みディスクメモリを割り当てる必要がある。格納されるデータを受信すると、格納エンドは、格納されるデータをキャッシュするための1つのメモリを受動的に割り当てる。したがって、格納されるデータを再度書き込みディスクメモリにコピーする必要がある。格納されるデータをいったんコピーする必要があり、データをコピーすることは、データ格納の効率および関連システムの性能に影響を及ぼす。
【0028】
システム性能を向上させ、データ格納の効率を確保するために、発明者は、一連の研究を通じて本出願の技術的解決策を提案した。本出願の実施形態では、要求エンドは、ターゲットデータとして格納されるデータを構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドに対応するデータサイズとの合計である。要求エンドは、ターゲットデータを格納エンドに送信する。格納エンドは、ターゲットデータをキャッシュするための1つのメモリを割り当てる。ターゲットデータは、予約済みフィールドを含んでいるので、予約済みフィールドに対応するメモリスペースは、データメタデータを書き込むのに十分である。格納エンドは、追加の、および新しいメモリを割り当てる必要がなく、これは、メモリの浪費を引き起こさず、同時に、データのコピーを回避する。したがって、データ格納の効率およびシステム性能を向上させることができる。
【0029】
本出願の実施形態における技術的解決策が、本出願の実施形態の図面と組み合わせて、以下に明確かつ完全に記載される。明らかに、記載される実施形態は、本出願の実施形態の全部ではなく、一部のみを表す。本出願の実施形態に基づいて、いかなる創造的な努力もすることなく当業者によって取得される他のすべての実施形態は、本出願の保護の範囲内に入る。
【0030】
図1は、本出願による例示的なデータ処理方法のフローチャートである。本実施形態の技術的解決策は要求エンドに適用され、要求エンドは実行を担当する。
この方法は、以下のステップを含み得る。
101:ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【0031】
本出願の実施形態では、書き込み要求を構築するとき、要求エンドは、格納されるデータに予約済みフィールドを追加し、予約済みフィールドは、あるデータ長を占有する。予約済みフィールドと一緒に格納されるデータは、新しいデータ形式を形成し、ターゲットデータを構成する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しい。
【0032】
予約済みフィールドは、格納されるデータの最後に位置してもよく、それにより占有されるデータサイズは、事前に定義されており、データメタデータのデータサイズと組み合わせて設定されてもよい。予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である必要がある。
【0033】
任意選択で、予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズと等しくてもよい。
【0034】
データメタデータは、格納されるデータのデータメタデータを指し、格納されるデータに基づいて生成される。データメタデータは、通常、固定された情報を含んでいるので、通常、異なるデータのデータメタデータのサイズは同じであり、それに応じて、予約済みフィールドによって占有されるデータサイズが設定されてもよい。
【0035】
本出願の実施形態に関与するデータサイズは、バイト(英語:Byte、略称:B)またはキロバイト(英語:Kbytes、略称:K)の単位で表され、データサイズは、データ長と呼ばれることもある。
【0036】
任意選択の方法として、ターゲットデータを取得するために、格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列が予約済みフィールドとして追加されてもよい。
【0037】
所定の文字列は、空の文字列であってもよく、または合意された文字列であってもよい。
【0038】
102:ターゲットデータを格納エンドに送信する。
【0039】
要求エンドは、ターゲットデータを含む書き込み要求を格納エンドに送信してもよく、書き込まれるデータとして機能するターゲットデータは、格納エンドに送信される。
【0040】
ターゲットデータを取得した後、格納エンドは、ターゲットデータをキャッシュするための1つのメモリを受動的に割り当てる。説明における区別の便宜上、ターゲットデータをキャッシュするための、格納エンドによって受動的に割り当てられるメモリは、「第2のメモリ」と名付けられる。格納エンドは、格納されるデータをターゲットデータから読み取り、それに基づいてデータメタデータを生成してもよい。ターゲットデータで予約済みフィールドが予約されているので、予約済みフィールドは、書き込まれるデータメタデータには十分である。したがって、格納エンドは、第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むことができる。
【0041】
具体的には、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【0042】
本実施形態では、要求エンドは、ターゲットデータとして再構築するために、格納されるデータに予約済みフィールドを追加する。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しいので、データメタデータを書き込むには、格納エンドによって受動的に割り当てられた第2のメモリで十分である。そのため、追加のディスク書き込みメモリを申請する必要がなく、データのコピーも必要なく、それにより、ゼロコピーが達成される。したがって、メモリのいかなる浪費も引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【0043】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、いくつかの実施形態では、ターゲットデータを格納エンドに送信することは、
ターゲットデータのデータサイズと一致する第1のメモリを割り当てることと、
ターゲットデータを第1のメモリに入れることと、
ターゲットデータを第1のメモリから格納エンドに送信することと、を含み得る。
【0044】
本出願の実施形態において、第1のメモリは、説明における区別の便宜上、「第1のメモリ」と名付けられた、格納エンドに送信されるターゲットデータを格納するために割り当てられたメモリと呼ばれる。当業者は、「第1のメモリ」および「第2のメモリ」における「第1」および「第2」は、説明における区別のために使用されるだけであり、配信および包含などのいかなる関係も表さないことを理解することができる。
【0045】
要求エンドおよび格納エンドは、ターゲットデータ内の予約済みフィールドの位置、および、例えば、予約済みフィールドとして、ターゲットデータ内の最後の32バイトなど、格納されるデータの位置を合意することができる。そのため、格納エンドは、合意されたルールに従って、格納されるデータをターゲットデータから読み取り、予約済みフィールドを決定することができる。
【0046】
要求エンドは、要求メタデータを格納エンドに送信することもでき、格納エンドは、要求メタデータ内の格納されるデータのデータ長および/またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定することができる。
【0047】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスなどを示すこともできる。
【0048】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、要求メタデータもメモリに入れることができ、その結果、格納されるデータおよび要求メタデータを一緒に送信することができる。
【0049】
したがって、ターゲットデータを格納エンドに送信することには、
ターゲットデータと要求メタデータとの合計データサイズを計算することと、
合計データサイズと一致する第1のメモリを割り当てることと、
ターゲットメモリおよび要求メタデータを第1のメモリに入れることと、
ターゲットデータを第1のメモリから格納エンドに送信することと、を含み得る。
【0050】
実用的応用では、本出願の技術的解決策を分散ストレージシステムに適用することができる。分散ストレージシステムでは、あるデータ格納ノードの障害によって引き起こされるデータ損失を回避するために、通常、元のデータのコピーをいくつか作成するために、マルチコピー技術が採用され、データの各コピーは、異なるデータ格納ノードに格納される。元のデータの各コピーデータは、コピーデータである。したがって、格納されるデータは、コピーデータと呼ばれることがある。
【0051】
分散ストレージシステムは、クラスタシステムを形成するいくつかのデータ格納ノードによって形成されるので、格納されるデータを複数のデータ格納ノードに送信して格納する必要がある。例えば、格納されるデータがコピーデータであるとき、コピーデータは、複数のデータ格納ノードに別々に送信される必要がある。
【0052】
格納されるデータを複数のデータ格納ノードに送信する必要がある場合、要求エンドは、データ格納ノードごとに対応する要求メタデータを送信する必要がある。複数のデータ格納ノードに別々に送信される要求メタデータは、格納されるデータのデータ長、データ位置などを含んでいてもよく、格納指示情報など、異なるデータ格納ノードに対応する区別された情報を含んでいてもよい。格納されるデータは、様々なデータ格納ノードに関連付けられたストレージデバイスに格納するための様々な要件を有する場合がある。
【0053】
分散ストレージシステムでは、本出願の実施形態における格納エンドは、複数のデータ格納ノードを含み得る。
【0054】
したがって、ターゲットデータを格納エンドに送信することは、ターゲットデータおよび対応する要求メタデータを複数のデータ格納ノードに送信することを含む。
【0055】
現在、要求エンドがターゲットデータおよび対応する要求メタデータを複数のデータ格納ノードに送信すると、要求エンドは、最初に、ターゲットデータと1つの要求メタデータとの合計データサイズを計算し、合計データサイズと一致する第1のメモリを割り当て、ターゲットデータを第1のメモリに入れ得る。格納されるデータをデータ格納ノードのうちのいずれか1つに送信する必要がある場合、任意のデータ格納ノードに対応する要求メタデータが第1のメモリにステッチされ、次に、ターゲットデータおよび要求メタデータが任意のデータ格納ノードに送信される。格納されるデータを別のデータ格納ノードに送信する必要がある場合、前の要求メタデータを上書きするために、他のデータ格納ノードに対応する要求メタデータが第1のメモリにコピーされ、次に送信される。
【0056】
上記の説明から分かるように、現在、このタイプの方法で複数のデータ格納ノードに格納されるデータを送信するとき、要求メタデータをコピーする複数の面倒な操作が必要とされる。これは、送信の効率にも影響を及ぼし、データ格納の効率にも影響を及ぼす。
【0057】
さらなる検討の後、発明者は、本出願の技術的解決策の別の実施形態を提案する。
【0058】
図2は、本出願による別の例示的なデータ処理方法のフローチャートである。この方法は、以下のステップを含み得る。
【0059】
201:ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【0060】
202:格納されるデータがデータ格納ノードの複数の要求メタデータに別々に対応することを決定する。
【0061】
203:ターゲットデータと複数の要求メタデータとの合計データサイズを計算する。
【0062】
204:合計データサイズと一致する第1のメモリを割り当てる。言い換えれば、第1のメモリのメモリサイズは、合計データサイズと等しくてもよい。
【0063】
205:ターゲットデータおよび複数の要求メタデータを第1のメモリに入れる。
【0064】
最初に、ターゲットデータが第1のメモリに入れられ、次に、複数の要求メタデータが第1のメモリに順次入れられ、ターゲットデータの最後にスプライスされ得る。
【0065】
206:ターゲットデータおよび対応する1つの要求メタデータをデータ格納ノードの各々に別々に送信する。
【0066】
要求エンドは、ターゲットデータ、および複数のデータ格納ノードの各々に対応するそれぞれ1つの要求メタデータを含めるために、書き込み要求を複数のデータ格納ノードに別々に送信し得る。
【0067】
具体的には、任意のデータ格納ノードについて、第1のメモリ内の任意のデータ格納ノードに対応するターゲットデータおよび要求メタデータが、任意のデータ格納ノードに送信される。
【0068】
第1のメモリでは、複数の要求メタデータを、複数のデータ格納ノードの送信順序に従って第1のメモリに順次入れることができる。例えば、送信順序で最初のものとして位置する第1のデータ格納ノードの1つの要求メタデータは、ターゲットデータの最後に位置し、送信順序で第2のものとして位置する第2のデータ格納ノードの1つの要求データは、第1のデータ格納ノードの1つの要求メタデータの最後に位置するなど、以下同様である。言い換えれば、複数の要求メタデータを第1のメモリに順次入れることができる。書き込み要求を任意のデータ格納ノードに送信する必要があるとき、要求メタデータのデータサイズはわかっているので、任意のデータ格納ノードに関連付けられた送信順序に従って、対応する1つの要求メタデータを見つけることができる。
【0069】
任意のデータ格納ノードは、要求エンドによって送信された受信データを取得した後、受信データの最後から必要な1つの要求メタデータを読み取ることができ、1つの要求メタデータに基づいてターゲットデータから格納されるデータおよび予約済みフィールドなどを決定することができる。
【0070】
本実施形態では、データ格納ノードごとに1つの要求メタデータを特化する必要なく、割り当てられた第1のメモリに複数の要求メタデータを書き込むことができる。次に、単一の動作を実行すると、データが異なるデータ格納ノードに送信され得る。動作が簡単になり、送信の効率が向上する。そのため、データ格納の効率およびシステム性能を向上させることができる。
【0071】
要求エンドおよび各データ格納ノードの動作を容易にするために、
図3に示されるようなさらに別の実施形態では、データ処理方法は、以下を含み得る。
【0072】
301:ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加する。
【0073】
302:格納されるデータがデータ格納ノードの複数の要求メタデータに別々に対応することを決定する。
【0074】
303:ターゲットデータと複数の要求メタデータとの合計データサイズを計算する。
【0075】
304:合計データサイズと一致する第1のメモリを割り当てる。言い換えれば、第1のメモリのメモリサイズは、合計データサイズと等しくてもよい。
【0076】
305:ターゲットデータを第1のメモリに入れ、複数の要求メタデータをターゲットデータの最後に順次入れる。
【0077】
複数の要求メタデータを、データ格納ノードの送信順序に従って第1のメモリに順次入れることができる。例えば、送信順序で最初である第1のデータ格納ノードの1つの要求メタデータは、ターゲットデータの最後に位置し、送信順序で第2である第2のデータ格納ノードの1つの要求データは、第1のデータ格納ノードの1つの要求メタデータの最後に位置するなど、以下同様である。言い換えれば、複数の要求メタデータを第1のメモリに順次入れることができる。
【0078】
さらに別の実施形態として、複数の要求メタデータをターゲットデータの最後に順次入れることは、
複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードにそれぞれ対応する複数の要求メタデータをターゲットデータの最後に順次入れることを含む。
【0079】
306:任意のデータ格納ノードについて、第1のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する1つの要求メタデータ、および任意のデータ格納ノードに対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを任意の格納ノードに送信する。
【0080】
要求エンドは、ターゲットデータ、任意のデータ格納ノードに対応する1つの要求メタデータ、および任意のデータ格納ノードに対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを運ぶために、任意のデータ格納ノードに書き込み要求を送信し得る。
【0081】
受信データの最後から対応する1つの要求メタデータを読み取るために、任意のデータ格納ノードが使用される。
【0082】
複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードの各々に対応するそれぞれ1つの要求メタデータがターゲットデータの最後に順次入れられる。
【0083】
任意選択で、ステップ306の動作は、
任意のデータ格納ノードについて、第1のメモリ内の、ターゲットデータ、任意のデータ格納ノードの送信順序に対応する1つの要求メタデータ、および任意のデータ格納ノードの送信順序に対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを任意の格納ノードに送信することを含み得る。
【0084】
本実施形態の方法を使用して、1つの要求メタデータのデータサイズに基づいて、データ格納ノードは、受信データの最後から対応する1つの要求メタデータを解析し、取得することができる。
【0085】
1つの要求メタデータは、格納されるデータのデータサイズおよび/またはデータ位置を含んでいるので、1つの要求メタデータに基づいて、1つの要求メタデータによって示されるデータサイズのデータを、受信データの先頭から読み取ることができ、すなわち、格納されるデータは、データ位置に従って、受信データから取得することができ、または位置特定され、取得することができる。
【0086】
以下では理解を容易にするために、3つのデータ格納ノードが一例として使用される。
図4aは、ターゲットデータのデータ構造の概略図である。分かるように、ターゲットデータは、格納されるデータ401および予約済みフィールド402から構成されている。
【0087】
図4bは、第1のメモリ内のデータ構造の概略図であり、ターゲットデータ403と、ターゲットデータ403の最後に順次入れられる3つの要求メタデータm1、m2、およびm3とからなる。
【0088】
3つの要求メタデータは、3つのデータ格納ノードの送信順序に従って入れることができ、1つの要求メタデータm1は、第1のデータ格納ノードに対応し、1つの要求メタデータm2は、第2のデータ格納ノードに対応し、1つの要求メタデータm3は、第3のデータ格納ノードに対応する。
【0089】
任意選択の方法として、第1のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403および1つの要求メタデータm1を第1のデータ格納ノードに送信してもよい。第2のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403および1つの要求メタデータm2を第2のデータ格納ノードに送信してもよい。第3のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403および1つの要求メタデータm3を第3のデータ格納ノードに送信してもよい。
【0090】
別の任意選択の方法として、第1のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403および1つの要求メタデータm1を第1のデータ格納ノードに送信してもよい。第2のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403、1つの要求メタデータm1、および1つの要求メタデータm2を第2のデータ格納ノードに送信してもよい。第3のデータ格納ノードへの書き込み操作を実行すると、要求エンドは、ターゲットデータ403、1つの要求メタデータm1、1つの要求メタデータm2、および1つの要求メタデータm3を第3のデータ格納ノードに送信してもよい。
【0091】
図5は、本出願によって提供される別の例示的なデータ処理方法のフローチャートである。本実施形態の技術的解決策は、格納エンドに適用される。従来のストレージシステムでは、ストレージサーバがこの方法を実行し得る。分散ストレージシステムでは、任意のデータ格納ノードがこの方法を実行し得る。
【0092】
この方法は、以下のステップを含み得る。
501:ターゲットデータを取得する。
【0093】
ターゲットデータは、要求エンドによって格納されるデータに予約済みフィールドを追加することによって形成される。
【0094】
ターゲットデータは、要求エンドの書き込み要求に含まれていてもよく、格納エンドは、書き込み要求からターゲットデータを取得してもよい。
【0095】
502:ターゲットデータをキャッシュするための第2のメモリを割り当てる。
【0096】
ターゲットデータを取得した後、格納エンドは、ターゲットデータを一時的に格納するために、第2のメモリを受動的に割り当てる。第2のメモリのメモリサイズは、ターゲットデータのデータサイズと一致している。
【0097】
503:ターゲットデータ内の格納されるデータのデータメタデータを生成する。
【0098】
504:第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む。
【0099】
その後、格納エンドは、第2のメモリに格納されるデータを1つのデータメタデータとしてストレージデバイスに書き込むことができる。
【0100】
予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である。第2のメモリは、データメタデータを書き込むことが可能なスペースを十分有している。格納エンドは、格納されるデータをデータメタデータとしてストレージデバイスに書き込むために、追加の書き込みディスクメモリを割り当てる必要はない。データのコピーを実行する必要はなく、ゼロコピーが達成される。したがって、メモリのいかなる浪費も引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【0101】
要求エンドおよび格納エンドは、ターゲットデータ内の予約済みフィールドの位置、および格納されるデータの位置を合意することができる。例えば、ターゲットデータ内の最後の32バイトは、予約済みフィールドに対応する。格納エンドは、格納されるデータを読み取り、合意されたルールに基づいて予約済みフィールドを決定することができる。
【0102】
したがって、いくつかの実施形態では、予約済みフィールドは、格納されるデータの最後に位置し得る。
【0103】
ターゲットデータ内の格納されるデータのデータメタデータを生成することは、
予約済みフィールドのあらかじめ設定されたサイズに基づいて、ターゲットデータ内の格納されるデータおよび予約済みフィールドを決定することと、
格納されるデータのデータメタデータを生成することと、を含み得る。
【0104】
したがって、格納エンドは、格納されるデータに基づいてデータメタデータを生成することができる。
【0105】
要求エンドは、要求メタデータを格納エンドに送信することもでき、格納エンドは、要求メタデータ内の格納されるデータのデータ長および/またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定することができる。
【0106】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスなどを示すこともできる。
【0107】
データメタデータは、要求メタデータおよび格納されるデータに基づいて生成され得る。
【0108】
分散ストレージシステムでは、格納されるデータが、複数のデータ格納ノードに送信されて格納される状況(例えば、格納されるデータがコピーデータであるとき)が存在する。前述の実施形態における説明に基づいて、要求エンドによって格納エンドに送信されるデータには、ターゲットデータおよび少なくとも1つの要求メタデータが含まれ得る。
【0109】
したがって、いくつかの実施形態では、ターゲットデータを取得することは、
要求エンドによって送信された書き込み要求を受信することであって、書き込み要求は、ターゲットデータおよび少なくとも1つの要求メタデータを含む、受信することと、
ターゲット要求メタデータを決定することと、を含み得る。
ターゲットデータ内の格納されるデータのデータメタデータを生成することは、
ターゲット要求メタデータに基づいて格納されるデータを読み取ることと、
ターゲット要求メタデータおよび格納されるデータに基づいてデータメタデータを生成することと、を含む。
【0110】
例えば、ターゲット要求メタデータは、格納されるデータのデータサイズを含み、格納されるデータのデータサイズは、データメタデータの情報として使用されてもよい。データチェックサムなど、データメタデータに含まれる他の情報は、格納されるデータに基づいて生成することができる。データチェックサムは、本明細書では繰り返さない既存の技術と同じであるCRC(Cyclic Redundancy Check、巡回冗長検査)アルゴリズムを使用して実施することができる。
【0111】
図3に示される実施形態に従って、要求エンドがターゲットデータを送信する場合、要求エンドの書き込み要求は、第1のメモリ内の、要求エンドによって送信されるように要求されたターゲットデータ、ターゲット要求メタデータ、およびターゲット要求メタデータの前に位置する要求メタデータを含み得る。
【0112】
したがって、ターゲット要求メタデータを決定することは、
要求メタデータのデータサイズに基づいて、書き込み要求のデータの最後からターゲット要求メタデータを読み取ることを含み得る。
【0113】
したがって、ターゲット要求メタデータに基づいて、送信されたデータから格納されるデータを読み取ることができる。
【0114】
分散ストレージシステムにおいてコピーデータとして格納されるデータを一例として取り上げることで、本出願の実施形態の技術的解決策について以下に記載する。分散ストレージシステムでは、通常、マルチコピー技術を使用して、障害に起因する元のデータの損失の問題を解決する。
【0115】
図6に示されるように、要求エンド60は、最初に、ターゲットデータ601を構築し、予約済みフィールド603をコピーデータ602の最後に追加する。予約済みフィールドは、コピーデータの最後に、あらかじめ設定されたサイズの空の文字列を追加することにより形成されてもよい。
【0116】
3つのデータ格納ノードは、それぞれ第1のデータ格納ノード61、第2のデータ格納ノード62、および第3のデータ格納ノード63を含む、コピーデータを受信すると仮定する。言い換えれば、要求エンドは、3つのデータ格納ノードにコピーデータを送信する必要がある。要求エンドは、必要な3つのデータ格納ノードの各々に対応するそれぞれの要求メタデータを別々に決定する。第1のデータ格納ノード61に対応する1つの要求メタデータをm1と仮定する。第2のデータ格納ノード62に対応する1つの要求メタデータをm2と仮定する。第3のデータ格納ノード63に対応する1つの要求メタデータをm3と仮定する。
【0117】
要求エンドは、第1のメモリを申請し、ターゲットデータ601を第1のメモリに書き込み、3つのデータ格納ノードの送信順序(送信順序は、第1のデータ格納ノード61、第2のデータ格納ノード62、および第3のデータ格納ノード63であると仮定する)に従って、3つの要求メタデータをターゲットデータ601の最後に順次入れ、3つの要求メタデータの配列の順序はm1、m2、およびm3である。
【0118】
任意のデータ格納ノードについて、要求エンドは、コピーデータ、任意の格納ノードに対応する1つの要求メタデータ、および任意の格納ノードに対応する1つの要求メタデータの前の任意の数の要求メタデータを第1のメモリから読み取り、任意のデータ格納ノードに書き込み要求を送信することができる。
【0119】
図6に示されるように、要求エンド60は、ターゲットデータ601およびm1を第1のデータ格納ノード61に送信し、ターゲットデータ601、m1、およびm2を第2のデータ格納ノードに送信し、ターゲットデータ601、m1、m2、およびm3を第3のデータ格納ノードに送信する。
【0120】
したがって、任意のデータ格納ノードが書き込み要求を受信した後、任意のデータ格納ノードは、書き込み要求の最後から、他のデータ格納ノードとは異なるターゲット要求メタデータを読み取り、取得することができる。
【0121】
各データ格納ノードは、いくつかの要求メタデータおよび要求メタデータのデータサイズに基づいて、書き込み要求からターゲットデータを決定し、ターゲットデータを一時的に格納するために、第2のメモリを割り当てることができる。
【0122】
その後、各データ格納ノードは、ターゲット要求メタデータに基づいてターゲットデータからコピーデータを決定し、それに応じてデータメタデータを生成し、次に、データメタデータを第2のメモリに書き込むことができる。
【0123】
各データ格納ノードは、第2のメモリに書き込まれたコピーデータおよびデータメタデータをそれぞれのストレージデバイス64に書き込むことができる。
【0124】
上記の説明から分かるように、要求エンドは、第1のメモリを申請し、3つのデータ格納ノードの複数の要求メタデータを一度に第1のメモリに入れ、それにより、操作を簡略化し、データ送信の効率を確保する。さらに、要求エンドは、ターゲットデータを形成するために、コピーデータに予約済みフィールドを追加し、その結果、ターゲットデータを一時的に格納するためにデータ格納ノードによって受動的に割り当てられた第2のメモリは、データメタデータを書き込むためのスペースを十分有する。したがって、書き込みディスクメモリの再申請およびデータコピーの操作を行う必要なく、データ格納を達成することができる。ゼロコピーの方式を使用することにより、システム性能およびデータ格納の効率が向上する。さらに、追加のメモリを申請する必要がなく、メモリの浪費の問題が軽減される。
【0125】
図7は、本出願による例示的なデータ処理装置の概略構造図である。データ処理装置は、要求エンドに構成されてもよい。装置は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加するように構成されたデータ構築モジュール701を含み得る。
【0126】
任意選択で、データ構築モジュールは、具体的に、ターゲットデータを取得するために、格納されるデータの最後に、あらかじめ設定されたサイズの所定の文字列を予約済みフィールドとして追加することができる。
【0127】
データ送信モジュール702は、ターゲットデータを格納エンドに送信するように構成され、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【0128】
本実施形態では、ターゲットデータを構築するために、格納されるデータに予約済みフィールドが追加される。ターゲットデータのデータサイズは、格納されるデータのデータサイズと予約済みフィールドによって占有されるデータサイズとの合計に等しいので、データメタデータを書き込むには、格納エンドによって受動的に割り当てられた第2のメモリで十分大きい。したがって、追加の書き込みディスクメモリを申請する必要がなく、データのコピーも必要なく、ゼロコピーが達成される。これにより、メモリの浪費を引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【0129】
格納されるデータは、送信される前にメモリに一時的に格納する必要があるので、いくつかの実施形態では、データ送信モジュールは、具体的には、ターゲットデータのデータサイズと一致する第1のメモリを割り当て、ターゲットデータを第1のメモリに入れ、第1のメモリ内のターゲットデータを格納エンドに送信するように構成され得る。
【0130】
要求メタデータは、格納エンドに送信されてもよく、格納エンドは、要求メタデータ内の格納されるデータのデータ長および/またはデータ位置に従って、ターゲットデータ内の格納されるデータを決定し得る。
【0131】
要求メタデータは、格納エンドが格納されるデータを格納するストレージデバイスを示すこともできる。
【0132】
格納されるデータは、送信される前にメモリに一時的に格納される必要があるので、要求メタデータもメモリに入れることができ、その結果、格納されるデータおよび要求メタデータを一緒に送信することができる。
【0133】
したがって、いくつかの実施形態では、データ送信モジュールは、具体的には、
ターゲットデータと要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第1のメモリを割り当て、
ターゲットメモリおよび要求メタデータを第1のメモリに入れ、
ターゲットデータを第1のメモリから格納エンドに送信する、ように構成され得る。
【0134】
実用的応用では、本出願の技術的解決策を分散ストレージシステムに適用することができる。分散ストレージシステムでは、あるデータ格納ノードの障害によって引き起こされるデータ損失を回避するために、通常、元のデータのコピーをいくつか作成するために、マルチコピー技術が採用され、データの各コピーは、異なるデータ格納ノードに格納される。元のデータの各コピーデータは、コピーデータである。したがって、格納されるデータは、コピーデータと呼ばれることがある。
【0135】
分散ストレージシステムは、クラスタシステムを形成するいくつかのデータ格納ノードによって形成されるので、格納されるデータを複数のデータ格納ノードに送信して格納する必要がある。例えば、格納されるデータがコピーデータであるとき、コピーデータは、複数のデータ格納ノードに別々に送信される必要がある。
【0136】
したがって、いくつかの実施形態では、格納エンドは、複数のデータ格納ノードを含み得る。
任意選択の方法として、データ送信モジュールは、具体的には、
格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第1のメモリを割り当て、
ターゲットメモリおよび複数の要求メタデータを第1のメモリに入れ、
ターゲットデータおよび対応する1つの要求メタデータを複数のデータ格納ノードに別々に送信する、ように構成され得る。
【0137】
別の任意選択の方法として、データ送信モジュールは、具体的には、
格納されるデータに別々に対応する複数のデータ格納ノードの複数の要求メタデータを決定し、
ターゲットデータと複数の要求メタデータとの合計データサイズを計算し、
合計データサイズと一致する第1のメモリを割り当て、
ターゲットデータを第1のメモリに入れ、複数の要求メタデータをターゲットデータの最後に順次入れ、
任意のデータ格納ノードについて、第1のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する1つの要求メタデータ、および任意のデータ格納ノードに対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを任意の格納ノードに送信する、ように構成されてもよく、任意のデータ格納ノードは、受信データの最後から対応する1つの要求メタデータを読み取るように構成されている。
【0138】
任意選択で、データ送信モジュールが複数の要求メタデータをターゲットデータの最後に順次入れることは、具体的には、複数のデータ格納ノードの送信順序に従って、複数のデータ格納ノードに対応するそれぞれの複数の要求メタデータをターゲットデータの最後に順次入れることを含み得る。
【0139】
データ送信モジュールが、任意のデータ格納ノードについて、第1のメモリ内の、ターゲットデータ、任意のデータ格納ノードに対応する1つの要求メタデータ、および任意のデータに対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを任意の格納ノードに送信することは、具体的には、任意のデータ格納ノードについて、ターゲットデータ、1つの要求メタデータは、任意のデータ格納ノードの送信順序に対応し、および任意のデータ格納ノードの送信順序に対応する1つの要求メタデータの前に位置する1つ以上の要求メタデータを第1のメモリから任意の格納ノードに送信することを含み得る。
【0140】
可能な設計では、
図7に示される実施形態のデータ処理装置は、コンピューティングデバイスとして実装され得る。コンピューティングデバイスは、要求サーバであり得る要求エンドに配備される。
図8に示されるように、コンピューティングデバイスは、格納コンポーネント801および処理コンポーネント802を含み得る。
【0141】
格納コンポーネント801は、1つ以上のコンピュータ命令を格納するように構成されており、1つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供される。
【0142】
処理コンポーネント802は、
ターゲットデータを取得するために、格納されるデータに予約済みフィールドを追加し、
ターゲットデータを格納エンドに送信する、ように構成され、予約済みフィールドは、格納エンドの対応するメモリロケーションに格納されるデータのデータメタデータを書き込むために使用される。
【0143】
処理コンポーネント802は、ターゲットデータおよび/または要求メタデータを格納コンポーネント801にキャッシュするために第1のメモリを適用し得る。
【0144】
処理コンポーネント802は、上記の
図1から
図3に示される実施形態のいずれか1つに記載されたデータ処理方法を実行するように構成されてもよい。
【0145】
処理コンポーネント802は、コンピュータ命令を実行して、上記の方法のステップの全部または一部を完了するための1つ以上のプロセッサを含み得る。明らかに、処理コンポーネントは、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または上記の方法を実装するための他の電子コンポーネントのうちの1つ以上でもよい。
【0146】
格納コンポーネント801は、コンピューティングデバイス上での動作をサポートするために様々なタイプのデータを格納するように構成されている。メモリは、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気ストレージデバイス、フラッシュメモリ、磁気ディスク、または光ディスクなど、任意のタイプの揮発性または不揮発性ストレージデバイスまたはそれらの組み合わせで実装することができる。
【0147】
明らかに、コンピューティングデバイスは、入出力インターフェース、通信コンポーネントなど他のコンポーネントも必然的に含み得る。
【0148】
本出願の実施形態は、コンピュータプログラムを格納するコンピュータ可読記憶媒体も提供し、コンピュータによって実行されると、コンピュータプログラムは、
図1~3の実施形態のいずれか1つに示されるデータ処理方法を実装することができる。
【0149】
図9は、本出願によって提供される別の例示的なデータ処理装置の概略構造図である。装置は、格納エンドに構成されてもよく、装置は、
ターゲットデータを取得するように構成されたデータ取得モジュール901であって、ターゲットデータは、要求エンドによって格納されるデータに追加された予約済みフィールドを含む、データ取得モジュール901と、
ターゲットデータをキャッシュするための第2のメモリを割り当てるように構成されたメモリ割り当てモジュール902と、
ターゲットデータ内の格納されるデータのデータメタデータを生成するように構成されたデータ生成モジュール903と、
第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込むように構成されたデータ書き込みモジュール904と、を含み得る。
【0150】
予約済みフィールドによって占有されるデータサイズは、データメタデータのデータサイズ以上である。第2のメモリにはデータメタデータを書き込むための十分なスペースがあり、格納エンドは、追加の書き込みディスクメモリを割り当てる必要がない。データメタデータは、データのコピーを行うことなく、ストレージデバイスに書き込まれ、ゼロコピーが達成される。したがって、メモリの浪費を引き起こすことなく、システム性能およびデータ格納の効率を向上させることができる。
【0151】
いくつかの実施形態では、ターゲットデータ内の予約済みフィールドの位置および格納されるデータの位置は、要求エンドと合意することができる。例えば、ターゲットデータ内の最後の32バイトは、予約済みフィールドに対応する。格納エンドは、格納されるデータをターゲットデータから読み取り、そのような合意されたルールに基づいて予約済みフィールドを決定することができる。
【0152】
したがって、いくつかの実施形態では、予約済みフィールドは、格納されるデータの最後に位置し得る。
【0153】
データ生成モジュールは、具体的には、予約済みフィールドのあらかじめ設定されたサイズに基づいて、ターゲットデータ内の格納されるデータおよび予約済みフィールドを決定し、格納されるデータのデータメタデータを生成するように構成されてもよい。
【0154】
要求エンドは、要求メタデータを格納エンドに送信し得る。したがって、いくつかの実施形態では、データ取得モジュールは、具体的には、
要求エンドによって送信された書き込み要求を受信するように構成され、書き込み要求は、ターゲットデータおよび少なくとも1つの要求メタデータを含み、
ターゲット要求メタデータを決定するように構成され得る。
【0155】
データ生成モジュールは、具体的には、ターゲット要求メタデータに基づいて、送信されたデータから格納されるデータを読み取り、ターゲット要求メタデータおよび格納されるデータに基づいてデータメタデータを生成するように構成され得る。
【0156】
いくつかの実施形態では、書き込み要求は、要求エンドが第1のメモリから送信することを要求する、ターゲットデータ、ターゲット要求メタデータ、およびターゲット要求メタデータの前の要求メタデータを含み得る。
【0157】
ターゲット要求メタデータを決定するデータ取得モジュールは、具体的には、要求メタデータのデータサイズに基づいて、書き込み要求の最後からターゲット要求メタデータを読み取ることを含み得る。
【0158】
可能な設計では、
図9に示される実施形態のデータ処理装置は、コンピューティングデバイスとして実装され得る。コンピューティングデバイスは、従来のストレージシステムのストレージサーバ、または物理サーバであり得る分散ストレージシステムのデータ格納ノードとすることができる。
図10に示されるように、コンピューティングデバイスは、格納コンポーネント1001および処理コンポーネント1002を含み得る。
【0159】
格納コンポーネント1001は、1つ以上のコンピュータ命令を格納するように構成されており、1つ以上のコンピュータ命令は、呼び出しおよび実行のために処理コンポーネントに提供される。
【0160】
処理コンポーネント1002は、
要求エンドによって格納されるデータに追加された予約済みフィールドを含むターゲットデータを取得し、
格納コンポーネント1001に、ターゲットデータをキャッシュするための第2のメモリを割り当て、
ターゲットデータ内の格納されるデータのデータメタデータを生成し、
第2のメモリ内の予約済みフィールドに対応するメモリロケーションにデータメタデータを書き込む、ように構成されている。
【0161】
加えて、処理コンポーネント1002を使用して、上記の実施形態のいずれかに記載されたデータ処理方法を実行してもよい。
【0162】
処理コンポーネント1002は、コンピュータ命令を実行して、上記の方法のステップの全部または一部を完了するための1つ以上のプロセッサを含み得る。明らかに、処理コンポーネントは、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または上記の方法を実装するための他の電子コンポーネントのうちの1つ以上でもよい。
【0163】
格納コンポーネント1001は、コンピューティングデバイス上での動作をサポートするために様々なタイプのデータを格納するように構成されている。メモリは、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気ストレージデバイス、フラッシュメモリ、磁気ディスク、または光ディスクなど、任意のタイプの揮発性または不揮発性ストレージデバイスまたはそれらの組み合わせで実装することができる。
【0164】
明らかに、コンピューティングデバイスは、入出力インターフェース、通信コンポーネントなど他のコンポーネントも必然的に含み得る。
【0165】
本出願の実施形態は、コンピュータプログラムを格納するコンピュータ可読記憶媒体も提供し、コンピュータによって実行されると、コンピュータプログラムは、
図4の実施形態のいずれか1つに示されるデータ処理方法を実装することができる。
【0166】
当業者は、上記のシステム、装置、およびユニットの特定の作業プロセスが、説明の便宜および簡略化のために、本明細書で繰り返されない前述の方法実施形態の対応するプロセスを参照できることを明確に理解できる。
【0167】
上記の装置実施形態は、単なる概略であり、別個のコンポーネントとして記載されるユニットは、物理的に分離されていてもよく、または分離されていなくてもよい。ユニットとして表示されるコンポーネントは、物理的なユニットであってもよく、またはそうでなくてもよく、すなわち、単一の場所に位置してもよく、または複数のネットワークユニットに分散されていてもよい。モジュールの一部または全部は、本実施形態の解決策の目的を達成するための実際の必要性に応じて選択され得る。当業者は、いかなる創造的な努力もすることなく、それを理解し、実施することができる。
【0168】
上記の実施形態の説明を通じて、当業者は、各実施形態がソフトウェアおよび必要な一般的なハードウェアプラットフォームによって実施することができ、明らかにハードウェアによっても実施することもできることを明確に理解することができる。そのような理解に基づいて、上記の技術的解決策の本質または既存の技術に貢献する部分をソフトウェア製品の形式で具体化することができる。そのようなコンピュータソフトウェア製品は、ROM/RAM、磁気ディスク、光ディスクなどのコンピュータ可読記憶媒体に格納することができ、コンピューティングデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスなどであり得る)が様々な実施形態または実施形態のいくつかの部分で記載された方法を実行することを可能にするためのいくつかの命令を含み得る。
【0169】
最後に、上記の実施形態は、本出願の技術的解決策を例証するためだけに使用され、限定するものではないことに留意されたい。本出願について、前述の実施形態を参照して詳細に記載したが、当業者は、前述の実施形態に記載された技術的解決策において修正を行うことができ、または技術的特徴の一部を同等に置き換えることができることを理解されたい。これらの修正または置換は、対応する技術的解決策の本質を、本出願の実施形態の技術的解決策の意図および範囲から逸脱するものではない。