(57)【要約】      （修正有）【課題】分散型オブジェクトストレージに関して、データを記憶するための方法、システム、電子装置及びコンピュータプログラムを提供する。【解決手段】方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定するステップ２０１と、ストレージファイルにおいて記憶対象レコードの属するタイプの現在のストレージ情報を検索するステップ２０２と、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するステップ２０３と、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶するステップ２０４と、を含む。【選択図】図２
2020038623.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための方法であって、前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、
前記方法は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含むデータを記憶するための方法。
【請求項２】
前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、
前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、
前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含むことを特徴とする
請求項１に記載のデータを記憶するための方法。
【請求項３】
前記少なくとも２つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることを特徴とする
請求項１に記載のデータを記憶するための方法。
【請求項４】
前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、
前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを含むことを特徴とする
請求項１乃至３のいずれか一項に記載のデータを記憶するための方法。
【請求項５】
前記ディスクに少なくとも２つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されていることを特徴とする
請求項４に記載のデータを記憶するための方法。
【請求項６】
前記ディレクトリから読み取り対象レコードの位置情報を検索することと、
前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、
前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含むことを特徴とする
請求項５に記載のデータを記憶するための方法。
【請求項７】
前記ディレクトリから削除対象レコードの位置情報を検索することと、
前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、
獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、
前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含むことを特徴とする
請求項５に記載のデータを記憶するための方法。
【請求項８】
前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、
前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、
当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含むことを特徴とする
請求項７に記載のデータを記憶するための方法。
【請求項９】
前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、
記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、
当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含むことを特徴とする
請求項１乃至８のいずれか一項に記載のデータを記憶するための方法。
【請求項１０】
前記サブオブジェクトの記憶対象レコードを生成することは、
配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の１つと同じであるか否かを確定することと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの１つの記憶対象レコードを生成するようにすることと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の１つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、
前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプであることを特徴とする
請求項９に記載のデータを記憶するための方法。
【請求項１１】
データを記憶するための装置であって、前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、
前記装置は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第１割り当てユニットと、を備えるデータを記憶するための装置。
【請求項１２】
データを記憶するためのシステムであって、
第１サブシステム、第２サブシステム及び請求項１乃至１０のいずれか一項に記載のスタンドアロンストレージエンジンがインストールされた第３サブシステムを備え、
前記第１サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも１つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係を前記第２サブシステムに送信し、前記少なくとも１つのサブオブジェクトを前記第３サブシステムに送信するように構成され、
前記第２サブシステムは、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、
前記第３サブシステムは、前記少なくとも１つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶するように構成されるデータを記憶するためのシステム。
【請求項１３】
前記第３サブシステムは、データ記憶完了を表示するための応答情報を前記第１サブシステムに送信するようにさらに構成され、
前記第１サブシステムは、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするようにさらに構成されることを特徴とする
請求項１２に記載のデータを記憶するためのシステム。
【請求項１４】
前記第１サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第２サブシステムに送信するようにさらに構成され、
前記第２サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第３サブシステムに送信するようにさらに構成され、
前記第３サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第１サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第１サブシステムに送信するようにさらに構成されることを特徴とする
請求項１３に記載のデータを記憶するためのシステム。
【請求項１５】
電子機器であって、
１つまたは複数のプロセッサーと、
１つまたは複数のプログラムを記憶するための記憶装置と、を備え、
前記１つまたは複数のプログラムが前記１つまたは複数のプロセッサーによって実行されると、前記１つまたは複数のプロセッサーが請求項１乃至１０のいずれか一項に記載の方法を実現する電子機器。
【請求項１６】
コンピュータプログラムが記憶されているコンピュータ可読媒体であって、
前記コンピュータプログラムがプロセッサーによって実行される時、請求項１乃至１０のいずれか一項に記載の方法が実現されるコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、分散型オブジェクトストレージの技術分野に関し、具体的には、データを記憶するための方法、装置及びシステムに関する。
【背景技術】
【０００２】
分散型ストレージシステムは、通常、データを複数の独立した機器に分散して記憶する。従来のネットワークストレージシステムは、すべてのデータを記憶するために集中型ストレージサーバを使用している。この時のストレージサーバは、システムパフォーマンスのボトルネックになり、信頼性と安全性の焦点にもなって、大規模なストレージアプリケーションのニーズを満たすことができない。分散型ネットワークストレージシステムは、スケーラブルなシステム構造を使用することが多く、複数のストレージサーバを利用してストレージ負荷を共有し、位置サーバを利用してストレージ情報の位置を確定する。これは、システムの信頼性、可用性、アクセス効率を向上させるだけでなく、拡張も容易にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の実施形態は、データを記憶するための方法、装置及びシステムを提供する。
【課題を解決するための手段】
【０００４】
第１の態様において、本発明の実施形態は、データを記憶するための方法を提供する。前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、前記方法は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含む。
【０００５】
一部の実施形態において、データを記憶するための方法は、前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含む。
【０００６】
一部の実施形態において、前記少なくとも２つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。
【０００７】
一部の実施形態において、データを記憶するための方法は、前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを含む。
【０００８】
一部の実施形態において、前記ディスクに少なくとも２つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されている。
【０００９】
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから読み取り対象レコードの位置情報を検索することと、前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含む。
【００１０】
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから削除対象レコードの位置情報を検索することと、前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含む。
【００１１】
一部の実施形態において、前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含む。
【００１２】
一部の実施形態において、前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含む。
【００１３】
一部の実施形態において、前記サブオブジェクトの記憶対象レコードを生成することは、配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の１つと同じであるか否かを確定することと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの１つの記憶対象レコードを生成するようにすることと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の１つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプである。
【００１４】
第２の態様において、本発明の実施形態は、データを記憶するための装置を提供する。前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、前記装置は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第１割り当てユニットと、を備える。
【００１５】
一部の実施形態において、当該データを記憶するための装置は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが、記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように配置されるサイズ確定ユニットと、残りのストレージスペースが記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように配置される第２割り当てユニットと、をさらに備える。
【００１６】
一部の実施形態において、少なくとも２つのデータブロックのストレージスペースは同じであり、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。
【００１７】
一部の実施形態において、当該データを記憶するための装置は、当該タイプの現在のストレージ情報を更新し、記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように配置される位置生成ユニットをさらに備え、ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを含む。
【００１８】
一部の実施形態において、ディスクに少なくとも２つの前記ストレージファイルが構成され、且つディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶される。
【００１９】
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから読み取り対象レコードの位置情報を検索するように配置される第１位置検索ユニットと、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように配置される確定ユニットと、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力するように配置される読み取りユニットと、をさらに備える。
【００２０】
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから削除対象レコードの位置情報を検索するように配置される第２位置検索ユニットと、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように配置される獲得ユニットと、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように配置される転送ユニットと、及び読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように配置される修正ユニットと、をさらに備える。
【００２１】
一部の実施形態において、当該データを記憶するための装置は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように配置される回収ユニットをさらに備える。
【００２２】
一部の実施形態において、当該データを記憶するための装置は、記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように配置されるコーディングユニットと、当該副本の説明情報及びデータに対して配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように配置されるレコード生成ユニットと、をさらに備える。
【００２３】
一部の実施形態において、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の１つと同じであるか否かを確定するように配置される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズを目標タイプに対応するデータのサイズと同じにし、また副本当該サブオブジェクトの１つの記憶対象レコードを生成する第１生成サブユニットであって、目標タイプは、当該一部のタイプのうちの対応するデータのサイズが最も小さいタイプである、第１生成サブユニットと、当該副本のデータのサイズが各タイプに対応するデータのサイズの最大値より大きい場合、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の１つとそれぞれ同じであるように、当該副本に分割及びゼロ埋めを行い、当該サブオブジェクトの少なくとも二つの記憶対象レコードを生成するように配置される第２生成サブユニットと、を備える。
【００２４】
第３の態様において、本発明の実施形態は、第１サブシステム、第２サブシステム及び第１の態様のいずれか１つの実施形態に記載のスタンドアロンストレージエンジンがインストールされた第３サブシステムを備えるシステムを提供する。前記第１サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも１つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係を前記第２サブシステムに送信し、前記少なくとも１つのサブオブジェクトを前記第３サブシステムに送信するように構成され、前記第２サブシステムは、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、前記第３サブシステムは、前記少なくとも１つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶する。
【００２５】
一部の実施形態において、前記第３サブシステムはさらに、データ記憶完了を表示するための応答情報を前記第１サブシステムに送信するようにさらに構成され、前記第１サブシステムはさらに、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするように構成される。
【００２６】
一部の実施形態において、前記第１サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第２サブシステムに送信するようにさらに構成され、前記第２サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第３サブシステムに送信するようにさらに構成され、前記第３サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第１サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第１サブシステムに送信するようにさらに構成される。
【００２７】
第４の態様において、本発明の実施形態は、１つまたは複数のプロセッサーと、１つまたは複数のプログラムを記憶するための記憶装置とを備え、前記１つまたは複数のプログラムが前記１つまたは複数のプロセッサーによって実行されると、前記１つまたは複数のプロセッサーが第１の態様のいずれかの実施形態に記載の方法を実現する電子機器を提供する。
【００２８】
第５の態様において、本発明の実施形態は、コンピュータプログラムが記憶され、前記プログラムがプロセッサーによって実行される時、第１の態様のいずれかの実施形態に記載の方法が実現されるコンピュータ可読媒体を提供する。
【発明の効果】
【００２９】
本発明の実施形態によって提供されるデータを記憶するための方法、装置及びシステムは、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。それにより、ストレージファイルにおいてタイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースがないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。これにより、スペースデブリの発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。
【図面の簡単な説明】
【００３０】
図面を参照して非限定的な実施例に対してなされる詳細な説明によって、本発明の他の特徴、目的及び利点は、さらに明らかになる。
【図１】本発明の１つの実施例が応用される例示的なシステムアーキテクチャ図である。
【図２】本発明に係るデータを記憶するための方法の１つの実施例のフローチャートである。
【図３】本発明に係るデータを記憶するための方法のもう１つの実施例のフローチャートである。
【図４】本発明に係るデータを記憶するための方法のもう１つの実施例のフローチャートである。
【図５Ａ】本発明におけるストレージファイルの１つの実施例の論理構造模式図である。
【図５Ｂ】本発明におけるレコードの１つの実施例の構造模式図である。
【図５Ｃ】本発明におけるディスクの１つの実施例の構造模式図である。
【図６】本発明に係るデータを記憶するための装置の１つの実施例の構造模式図である。
【図７】本発明に係るデータを記憶するためのシステムの１つの実施例のタイミング図である。
【図８】本発明の実施例の電子機器を実現するためのコンピュータシステムの構造模式図である。
【発明を実施するための形態】
【００３１】
以下、図面と実施例を結び付けて本発明に対してさらに詳細に説明する。ここで説明される具体的な実施例は、当該発明に対する限定ではなく、単に関連する発明を解釈するために使用されることが理解される。なお、説明の便宜上、図面には発明に関連する部分のみを示している。
【００３２】
説明すべき点は、矛盾のない場合、本発明における実施例及び実施例における特徴は相互に組み合わせることができる。以下、図面を参照し、実施例に結び付けて本発明を詳細に説明する。
【００３３】
図１は、本発明の実施例が応用されるデータを記憶するための方法、装置及びシステムの例示的なシステムアーキテクチャ１００を示す。
【００３４】
図１に示すように、システムアーキテクチャ１００は、端末１０１、１０２、１０３、ネットワーク１０４及びサーバ１０５を備えることができる。ネットワーク１０４は、端末１０１、１０２、１０３とサーバ１０５との間で通信リンクを提供するための媒体として使用される。ネットワーク１０４は、有線、無線通信リンクまたは光ファイバケーブルなどの様々な接続を備えることができる。
【００３５】
ユーザは、端末１０１、１０２、１０３を使用して、ネットワーク１０４を介してサーバ１０５とインタラクションしてメッセージなどを送受信することができる。端末１０１、１０２、１０３には、ウェブブラウザ、ショッピングアプリケーション、ビデオアプリケーション、メールボックス及びインスタントメッセージングツールなどの各種のクライアントアプリケーションがインストールされることができる。
【００３６】
ここで、端末１０１、１０２、１０３は、ハードウェアであることができ、ソフトウェアであることもできる。端末１０１、１０２、１０３がハードウェアである場合、表示画面を有する様々な電子機器であってもよい。当該電子機器は、スマートフォン、タブレットコンピュータ、スマートＴＶ、電子書籍リーダー、ＭＰ３（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＩＩ、動画専門家集団オーディオレイヤ３）プレーヤー、ラップトップコンピュータ、及びデスクトップコンピュータなどであってもよいが、これらに限定されない。端末１０１、１０２、１０３がソフトウェアである場合、前記に列挙された電子機器にインストールされることができる。（例えば、分散型サービスの提供に使用される）複数のソフトウェアまたはソフトウェアモジュールとして、あるいは単一のソフトウェアまたはソフトウェアモジュールとして実現されることができる。ここで具体的に限定しない。
【００３７】
サーバ１０５は、様々なサービスを提供するサーバであることができ、例えば、端末１０１、１０２、１０３にインストールされた様々なアプリケーションにサポートを提供するバックグラウンドサーバであることができる。バックグラウンドサーバは、ユーザが端末１０１、１０２、１０３を介して送信したデータ処理要求（例えば、データ記憶要求）に対して分析処理することができ、処理結果（例えば、記憶が完了されたことを表示するフィードバック情報またはデータ記憶後の位置情報など）を端末１０１、１０２、１０３にリターンさせることができる。
【００３８】
ここで、サーバ１０５は、同じハードウェアであることができ、ソフトウェアであることもできる。サーバ１０５がハードウェアである場合、複数のサーバで構成される分散型サーバグループで実現されることができ、一つのサーバで実現されることもできる。サーバ１０５がソフトウェアである場合、（例えば、分散型サービスの提供に使用される）複数のソフトウェアまたはソフトウェアモジュールで実現されることができ、一つのソフトウェアまたはソフトウェアモジュールで実現されることもできる。ここで具体的に限定しない。
【００３９】
例えば、サーバ１０５のうち、データを記憶するためのディスク（即ち、ストレージスペース）に複数のストレージファイル１０５１、１０５２が構成されることができる。これらのストレージファイルは、データを記憶するための実際の容器であることができ、これによりデータの分散型記憶を実現する。
【００４０】
説明すべき点は、本発明の実施例が提供するデータを記憶するための方法は、一般にサーバ１０５によって実行される。それに対応して、データを記憶するための装置は、一般にサーバ１０５に設置される。
【００４１】
理解すべき点は、図１中の端末、ネットワーク、サーバ及びサーバ中のストレージファイルの数は単に例示的である。実現需要に応じて、任意の数の端末、ネットワーク、サーバ及びサーバ中のストレージファイルを備えることができる。
【００４２】
続いて図２を参照すると、本発明に係るデータを記憶するための方法の１つの実施例のフロー２００が示されている。当該データを記憶するための方法は、以下のようなステップを含むことができる。
【００４３】
ステップ２０１において、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定する。
【００４４】
本実施例において、データを記憶するための方法は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用されることができる。また、当該スタンドアロンストレージエンジンのディスクにストレージファイルが構成されることができる。ここで、ストレージファイルは、データを記憶するための実際の容器であることができる。即ち、データは、ストレージファイルに記憶される。ここで、ストレージファイルのストレージスペースは、少なくとも２つのデータブロックに分けられることができる。ストレージファイルのストレージスペースは、さらに複数の記憶区間（即ち、データブロック）に分けられることができる。また、ストレージスペースの連続性を保証するために、少なくとも２つのデータブロック間でリンクリスト構造を使用することができる。即ち、リンクリスト方式で同じストレージファイル中の各データブロックをリンクさせる。
【００４５】
説明すべき点は、ストレージファイルのストレージ容量は、実際の状況に応じて設定することができ、例えば、３２Ｇであることができる。また、同じストレージファイル中の各データブロックのストレージスペースは同じ（例えば、２Ｍ）であることができ、異なることもできる。なお、ストレージファイルの内部では、記憶対象データのサイズに基づいて、記憶対象データに対して分類して記憶することができる。また、各タイプにただ一つのサイズのデータを記憶することができる。即ち、同じタイプで記憶されたデータのサイズは同じであることができる。異なるタイプで記憶されたデータのサイズは異なることができる。ここで、分類方法は、本発明で制限しない。
【００４６】
本実施例において、データを記憶するための方法の実行主体（例えば、図１に示されたサーバ１０５）は、有線接続方式または無線接続方式を介して、端末（例えば、図１に示された端末１０１、１０２、１０３）またはクラウドなどから、記憶対象レコードを獲得することができる。また、記憶対象レコードのデータのサイズに基づいて、所定の分類方法によって記憶対象レコードのタイプを確定する。例えば、記憶対象レコードのデータのサイズは、４ＫＢである。データのサイズが０ＫＢより大きく且つ４ＫＢより大きくない場合、第１タイプに属し、この場合、実行主体は、当該記憶対象レコードのタイプを第１タイプと確定することができる。ここで、記憶対象レコードは、ディスク分散型オブジェクトストレージ技術を使用して記憶する任意のデータであることができる。そのコンテンツは、数字、文字、アルファベットまたは記号などの少なくとも一つの文字符号の文字列を含むことができる。
【００４７】
本実施例のある選択可能な実施形態において、管理の便利上、同じストレージファイル中の少なくとも２つのデータブロックのストレージスペースは、同じであることができる。同じストレージファイルのうち異なるタイプで記憶されたレコードのデータのサイズは、すべて所定の数値の整数倍であることができる。これは算出過程を簡素化して、処理効率を向上させることに役立つ。図５Ａに示すように、データブロックのストレージスペースはすべて２Ｍである。データのサイズの最小値が一般に４ＫＢであることを考慮すると、異なるタイプに対応するデータのサイズはすべて４ＫＢの整数倍である。また、ディスクの読み書き性能を考慮すると、データのサイズの最大値は、実際の状況に応じて設定することができ、例えば、５１２ＫＢに設定することができる。言い換えれば、ストレージファイルの内部でレコードのデータのサイズを４ＫＢ、８ＫＢ……５１２ＫＢなどの複数のタイプに分けることができる。
【００４８】
ステップ２０２において、ストレージファイルにおいてタイプの現在のストレージ情報を検索し、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を含む。
【００４９】
本実施例では、実行主体は、ストレージファイルにおいて、記憶対象レコードの属するタイプの現在のストレージ情報を検索することができる。ここで、現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。即ち、当該タイプに現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報を検索する。ここで、データブロックの情報は、データブロックの間のリンク順序、データブロックの識別子、データブロックのストレージスペースなどのうち少なくとも１つを含むが、これに限定されない。レコード情報は、レコードの識別子、レコードのデータのサイズ、レコードの位置するデータブロックの識別子などのうち少なくとも１つを含むが、これに限定されない。ここで、識別子は、データブロックまたはレコードを一意に示すために使用されることができるものであり、数字、アルファベットなどの文字符号のうちの少なくとも１つであることができる。言い換えれば、当該タイプの現在のストレージ情報を検索した後、実行主体は、当該タイプにどのようなデータブロックが存在するか、及びどのような記録が記憶されているかが分かる。
【００５０】
説明すべき点は、同じタイプのレコードは、一般に１つずつ隣り合って記憶される。即ち、論理的にこれらのレコードは、全体で連続的なスペースを占める。これは、ディスク断片の発生を防止することにより、ストレージスペースの利用率を向上させることができる。
【００５１】
例示として、図５Ａの記憶対象レコードがＸであるとすると、実行主体が、そのタイプ（ｔｙｐｅ）が１２８であると確定する場合、当該タイプの現在のストレージ情報を検索することができる。即ち、ストレージスペースは、２Ｍのデータブロック（ｂｌｏｃｋ）３７であり、レコード（ｒｅｃｏｒｄ）の数は、４であり、各レコードのデータのサイズは、５１２ＫＢである。数字番号（１、２、３など）をレコードの識別子として使用することを理解することができる。このようにして、同じタイプの異なるレコードを区別することができるだけでなく、各レコードの記憶順序を容易に確定することもできる。
【００５２】
ステップ２０３において、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定する。
【００５３】
本実施例において、実行主体は、ステップ２０２で検索された現在のストレージ情報に基づいて、当該タイプ（即ち、記憶対象レコードが属するタイプ）の現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。例示として、図５Ａに示すように、実行主体は、ｔｙｐｅ＝１２８中の現在のストレージ情報に基づいて、ｂｌｏｃｋ３７に残りのストレージスペースがないと確定することができ、即ち、５１２ＫＢ×４＝２Ｍである。
【００５４】
ここで、現在割り当てられたデータブロックに残りのストレージスペースが存在する場合、実行主体は、記憶対象レコードを残りのストレージスペースに記憶することができる。現在割り当てられたデータブロックに残りのストレージスペースが存在しない場合、実行主体は、続いてステップ２０４を実行することができる。
【００５５】
選択可能に、実行主体は、割り当てられたデータブロックに残りのストレージスペースが存在すると確定された場合、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定することができる。残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定された場合、記憶対象レコードの一部のデータを残りのストレージスペースに記憶することができる。そして、当該タイプに新しいデータブロックを割り当てて、残りの記憶対象レコードを新しいデータブロックに記憶することができる。
【００５６】
例示として、図５Ａに示すように、データのサイズは、記憶対象レコードＹの５０４ＫＢである。実行主体は、ｔｙｐｅ＝１２６の現在のストレージ情報によって、ｂｌｏｃｋ３の残りのストレージスペースが６４ＫＢ（４Ｍ−５０４ＫＢ×８）であることを確定することができる。このとき、実行主体は、当該タイプの下に１つの新しい２Ｍのデータブロック（ｂｌｏｃｋ４）を割り当てることができる。このようにして、記憶対象レコードＹの前の６４ＫＢをｂｌｏｃｋ３に記憶することができる。また、記憶対象レコードＹの後の４４０ＫＢをｂｌｏｃｋ４に記憶することができる。即ち、記憶対象レコードＹを２つの隣接するデータブロックに記憶することができる。
【００５７】
ステップ２０４において、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。
【００５８】
本実施例において、実行主体は、現在割り当てられたデータブロックに残りのストレージスペースが存在しないと確定された場合、当該タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。例示として、図５Ａの記憶対象レコードＸである。ｂｌｏｃｋ３７に残りのストレージスペースが存在しないので、実行主体は、１つの新しいｂｌｏｃｋ４９を割り当てることができる。このとき、記憶対象レコードＸをｂｌｏｃｋ４９に記憶することができる。
【００５９】
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードを分類して記憶することができる。データの連続記憶を確保するとともに、ディスク断片の生成を減少または防止することができる。このようにして、ストレージスペースの利用率の向上、ディスクの読み書き性能の改善に役立つ。なお、分散型オブジェクトストレージ方法も充実させる。
【００６０】
本実施例のある選択可能な実施形態において、記憶対象レコードを記憶した後、実行主体は、それが属するタイプの現在のストレージ情報を更新することもできる。そして、記憶対象レコードが記憶された後の位置情報を生成することができる。また、当該位置情報を出力することができる。ここで、位置情報は、記憶対象レコードの記憶位置を説明するためのものであってもよい。例えば、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを含むことができ、また、位置情報は出力される。ここで、出力とは、記憶し出力することであってもよい。例えば、位置情報を実行主体ローカルまたは他の電子機器に記憶することができ、例えば、位置情報を端末などに送信するような伝送出力であることもできる。
【００６１】
例示として、図５Ａの記憶対象レコードＸの場合、その位置情報は、［ｒｅｃｏｒｄ＿ｔｙｐｅ＝１２８，ｒｅｃｏｒｄ＿ｉｄ＝５，ｂｌｏｃｋ＿ｉｄ＝４９，ｎｅｘｔ＿ｂｌｏｃｋ＿ｉｄ＝０］であることができる。位置情報が［ｒｅｃｏｒｄ＿ｔｙｐｅ＝１２８，ｒｅｃｏｒｄ＿ｉｄ＝５］または［ｒｅｃｏｒｄ＿ｉｄ＝５，ｂｌｏｃｋ＿ｉｄ＝４９］である場合にも、実行主体はレコードＸを検索できることを理解できる。
【００６２】
説明すべき点は、同じタイプで記憶されたレコードのデータのサイズが同じであるようにするために、選択可能に、実行主体は、記憶対象レコードを記憶する前に、記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであるか否かを確定することができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであると確定された場合、実行主体は、記憶処理を行うことができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズでないと確定され、一般に当該タイプに対応するデータのサイズより小さい場合、実行主体は、記憶対象レコードの所定の位置（例えば、前面または後面）に所定のデータ（例えば、０または他の文字列など）を補充することができる。これにより、補充された後の記憶対象レコードのデータのサイズは、当該タイプに対応するデータのサイズになる。その後、実行主体は、補充された後の記憶対象レコードを記憶することができる。
【００６３】
ある応用シナリオにおいて、記憶対象レコードのデータのサイズに基づいて記憶対象レコードのタイプを確定する前に、実行主体は、データを処理して記憶対象レコードを獲得することができる。例えば、記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトに対して、実行主体は、当該サブオブジェクトをコーディング（例えば、ＥＣコーディング）して副本を獲得する。その後、当該副本の説明情報とデータに対して配列化処理して、当該サブオブジェクトの記憶対象レコードを生成する。
【００６４】
説明すべき点は、記憶待ちオブジェクトの分割過程は、実行主体によって完成されることができ、他の電子機器によって完成されることもできる。他の電子機器は、分割して得られた少なくとも１つのサブオブジェクトを実行主体に送信することができる。
【００６５】
さらに、同じタイプで記憶されたレコードデータのサイズを同じにするように、実行主体は、配列化後の当該副本を分析処理して、必要なデータのサイズ（即ち、各タイプに対応するデータのサイズ中の１つ）の記憶対象レコードを生成することができる。
【００６６】
具体的に、まず、実行主体は、配列化後の当該副本のデータのサイズが、ストレージファイルのうち各タイプに対応するデータのサイズ中の１つと同じであるか否かを確定することができる。当該副本のデータのサイズが、各タイプに対応するデータのサイズ中の１つと同じである場合、実行主体は、当該サブオブジェクトの記憶対象レコードを直接に生成することができる。
【００６７】
当該副本のデータのサイズ（例えば、５ＫＢ）が、各タイプに対応するデータのサイズ（例えば、４ＫＢ、８ＫＢ及び１２ＫＢ）とすべて異なり、且つ一部のタイプに対応するデータのサイズ（例えば、８ＫＢ及び１２ＫＢ）よりも小さい場合、当該副本のデータの後ろをゼロで埋める。これにより、ゼロで埋めた後の当該副本のデータのサイズと目標タイプに対応するデータのサイズとを同じにすることができる。そして、当該サブオブジェクトの１つの記憶対象レコードを生成することができる。ここで、目標タイプは、当該一部のタイプの対応するデータのサイズが最も小さいタイプ（例えば、８ＫＢ及び１２ＫＢ中の８ＫＢ）であることができる。説明すべき点は、従来のデータに影響を与えない限り、本発明は、補充位置及び補充コンテンツについて限定しない。
【００６８】
当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値（例えば、５１２ＫＢ）よりも大きい場合、当該副本に対して分割及びゼロで埋めを行うことができる。これにより、分割後の各副本のデータのサイズが、各タイプに対応するデータのサイズ中の１つとそれぞれ同じにすることができ、当該サブオブジェクトの少なくとも２つの記憶対象レコードを生成する。例えば、副本のデータのサイズは、５１８ＫＢであり、それを５１２ＫＢ及び６ＫＢの２つのサブ副本に分割することができ、６ＫＢのサブ副本を８ＫＢになるようにゼロで埋める。または、それを５１２ＫＢ、４ＫＢ及び２ＫＢの３個のサブ副本に分割することができ、２ＫＢのサブ副本を４ＫＢにゼロで埋める。または、他のタイプに対応するデータのサイズに基づいて、当該副本を複数の対応されるデータのサイズのサブ副本に分割することができ、ゼロで埋め操作を行う必要はない。
【００６９】
例示として、記憶対象レコードには、図５Ｂに示したようなフィールド（ｆｉｅｌｄ）が含まれることができる。ここで、Ｓｈａｒｄ  Ｒｅｃｏｒｄ（共有記録）に副本（ｓｈａｒｄ）の一部のメタ情報（Ｍｅｔａ  ｉｎｆｏｒｍａｔｉｏｎ）を記録することができ、循環余剰検査コード（ｃｒｃ：Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）、長さ（ｌｅｎｇｔｈ）などのコンテンツを含むことができる。Ｋｅｙ＋ｍｅｔａ（キーメタ）中に、ユーザにより指定された説明情報を記録することができる。Ｂｉｎａｒｙ  ｄａｔａは、一般に副本の実際のデータ（ｓｈａｒｄ  ｄａｔａ）であることができる。当該データの後面に、固定されていない長さの、ゼロで埋めて合わせるためのフィールド（即ち、ｆｉｌｌｅｄ  ｚｅｒｏ）が存在することができる。これにより、各レコード（ｒｅｃｏｒｄ）がすべて４ｋｂの整数倍であることを確保することができる。
【００７０】
実行主体の負荷を減少するために、各ストレージファイルは、内部ストレージスペースの自己管理を行うこともできることが理解できる。例えば、１つのストレージファイルに対して、１つのデータブロック管理ユニット（ＢｌｏｃｋＭａｎａｇｅｒ）５０１と複数のタイプ管理ユニット（ＢｌｏｃｋＬｉｎｋＬｉｓｔ）５０２が設置されることができる。ここで、データブロック管理ユニットは、データブロックを割り当てて回収するために使用されることができる。各タイプ管理ユニットは、１つのタイプのストレージ情報を管理するためのものであることができる。例えば、図５Ａのｔｙｐｅ＝１２８のタイプ管理ユニットは、自分割り当てたデータブロックのリスト（例えば、ｂｌｏｃｋ３７）及び自分が入力したレコードの数（例えば、４個）を記憶することができる。このようにして、記録された数によって、最後の１つのデータブロック（例えば、ｂｌｏｃｋ３７）に使用可能な残りのストレージスペースがどれだけあるかを計算することができる。ストレージスペースが足りない場合、データブロックを割り当てたことを表示するための情報をデータブロック管理ユニットに送信することができる。このとき、データブロック管理ユニットは、それに１つの新しいデータブロック（例えば、ｂｌｏｃｋ４９）を割り当てることができる。このようにして、実行主体全体の処理効率及び性能を向上させることに役立つ。
【００７１】
このとき、各ストレージファイルの内部構造は、すべて自分で既に記憶し記録した位置情報（Ｌｏｃａｔｉｏｎ）によって構築されることができる。起動時に、各ストレージファイルは、自分のすべてのレコードを一度スキャンすることができる。これにより、ＢｌｏｃｋＭａｎａｇｅｒに自分で割り当てたすべでのデータブロックを表示することができる。また、ＢｌｏｃｋＬｉｎｋＬｉｓｔで各レコードの位置情報を復元するとこができる。スキャンを完了した後、ＢｌｏｃｋＭａｎａｇｅｒは自分のデータブロックの割り当て情報が分かるようになる。すべてのタイプのＢｌｏｃｋＬｉｎｋＬｉｓｔも自分のデータブロックの情報及び自分の現在のレコードの情報が分かるようになる。
【００７２】
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。これにより、ストレージファイルで、タイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースが存在しないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。このようにして、スペースの断片の発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。
【００７３】
図３に、本発明に係るデータを記憶するための方法のもう１つの実施例のフロー３００を示す。本実施例において、ディスクに少なくとも２つのストレージファイルが構成されることができる。また、ディスクのディレクトリ中に当該ディスク上の各ストレージファイルのインデックス情報が記憶されることができる。言い換えれば、各ストレージファイルは、インデックス情報とデータ情報を含むことができる。ここで、インデックス情報には、ストレージファイルの内部にどのようなレコード及びレコードの状態が記憶されているのかが記録される。データ情報は、主にストレージファイルの内部に記憶された実際のデータを指す。即ち、ディスクに入力されるレコードは、すべてディレクトリに当該レコードのインデックス情報が記録される。ここで、インデックス情報は、レコードの位置情報を含むことができる。
【００７４】
例示として、ディスクの構造を図５Ｃに示す。ここで、Ｒｏｃｋｓｄｂ５０３は、ディスクのディレクトリを表示し、キー値（ｋｅｙ−ｖａｌｕｅ）記憶方式を使用し、Ｖｌｅｔ５０４（Ｖｌｅｔ＿１１０＿３及びＶｌｅｔ……）は、ストレージファイルを表示することができる。説明すべき点は、１つのディスクは、一般的にただ１つのディレクトリ実例を有する。インデックス情報とデータ情報を分けて記憶することにより、レコードが存在するか否かを迅速に検索できるように確保することができる。選択可能に、インデックス情報は、フルメモリ方式で記憶することができるが、メモリのサイズに制限される。ここで、ディレクトリを使用して記憶すると、メモリの制限を受けないが、別のＩＯが発生することができる。このとき、キャッシュ（ｃａｃｈｅ）メモリを構成して、メモリの使用とＩＯの使用を好ましく平衡させることができる。
【００７５】
本実施例において、データを記憶するための方法は、以下のステップをさらに含むことができる。
【００７６】
ステップ３０１において、ディレクトリから読み取り対象レコードの位置情報を検索する。
【００７７】
本実施例において、データを記憶するための方法の実行主体（例えば、図１に示されたサーバ１０５）は、ディレクトリから読み取り対象レコードを検索することができる。読み取り対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。
【００７８】
ステップ３０２において、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定することができる。
【００７９】
本実施例において、位置情報にレコードのタイプが含まれた場合、実行主体は、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプを確定することができる。または、実行主体は、位置情報に基づいて、読み取り対象レコードが位置されるストレージファイル及びデータブロックを確定することができ、これによりそのタイプを確定することができる。併せて、それの位置するデータブロックのストレージスペース及び当該データブロックに記憶されたレコードの情報に基づいて、読み取り対象レコードの当該データブロックにおける位置オフセットを確定する。ここで、位置オフセットは、データブロックにおけるレコードの開始位置を表示するために使用されることができる。
【００８０】
例示として、図５Ａに示されたように、実行主体は、ディスクのディレクトリからレコードのＹの位置情報が［ｖｌｅｔ＿ｉｄ＝１１０＿３，ｒｅｃｏｒｄ＿ｔｙｐｅ＝１２６，ｒｅｃｏｒｄ＿ｉｄ＝９，ｂｌｏｃｋ＿ｉｄ＝３，ｎｅｘｔ＿ｂｌｏｃｋ＿ｉｄ＝４］であることを検索することができる。このとき、Ｖｌｅｔ＿１１０＿３のうちのデータブロックのストレージスペースに基づいて、レコードＹのｂｌｏｃｋ３中の位置オフセットが２Ｍ−６４ＫＢ（６４ＫＢ＝４Ｍ−８×５０４ＫＢ）であることを算出することができる。
【００８１】
ステップ３０３において、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって指示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取る。
【００８２】
本実施例において、実行主体は、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定することができる。さらに、実行主体は、ステップ３０２で確定された位置オフセットによって示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取ることができる。例えば、上記レコードＹのタイプが１２６である場合、その長さは、５０４ＫＢであることができる。このとき、実行主体は、ｂｌｏｃｋ  ３において２Ｍ−６４ＫＢの位置から開始して、長さが５０４ＫＢであるデータをメモリに１回で読み取ることができる。
【００８３】
ステップ３０４において、読み取ったデータを読み取り対象レコードとして出力する。
【００８４】
本実施例において、実行主体は、読み取ったデータを読み取り対象レコードとすることができ、それに対してコーディング解析を行うことができる。これにより、解析された後のデータを出力することができ、例えば、端末（例えば、図１に示された端末１０１、１０２、１０３）に送信する。
【００８５】
一部の実施形態において、すべてのインデックス情報が失われた場合にインデックス情報を復元するために、各レコードには、その記憶した後の位置情報のフィールドが含まれることができる。図５Ｂに示すように、レコードの最後の位置で（例えば、固定された２４個のバイト）Ｒｅｃｏｒｄ  Ｇｕａｒｄ（レコードガード）データ構造を使用する。
【００８６】
選択可能に、実行主体は、コーディング解析する前に、Ｒｅｃｏｒｄ  Ｇｕａｒｄ情報を検証することができる。併せて、読み取ったデータの所定の位置に補充された所定のデータ（例えば、０）が存在するか否かを検出することができる。所定のデータが存在する場合、読み取ったデータ中の所定のデータを除去または無視することができる。さらに、所定のデータを含まない検証後の読み取ったデータを解析する。
【００８７】
本実施例におけるデータを記憶するための方法において、データを読み取るステップを増加し、読み取り過程を詳細に説明した。本発明におけるデータを記憶するための方法を充実させ完全にした。また、読み取り及び入力過程は、すべて１回のＩＯＰＳ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ、毎秒の読み取り及び入力（Ｉ／Ｏ）操作を実行する回数）である。このようにして、方法の適用範囲を拡大することに役立つ。
【００８８】
さらに図４に、本発明に係るデータを記憶するための方法のもう１つの実施例のフロー４００を示す。当該データを記憶するための方法は、以下のステップを含む。
【００８９】
ステップ４０１において、ディレクトリから削除対象レコードの位置情報を検索する。
【００９０】
本実施例において、データを記憶するための方法の実行主体（例えば、図１に示されたサーバ１０５）は、ディレクトリから削除対象レコードを検索することができる。削除対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。
【００９１】
ステップ４０２において、削除対象レコードの位置情報に基づいて、対応するストレージファイルにおいて削除対象レコードが属するタイプの現在のストレージ情報を獲得する。
【００９２】
本実施例において、実行主体は、削除対象レコードの位置情報に基づいて、それの位置するストレージファイルを確定することができる。そして、当該ストレージファイルのうち、それが属するタイプの現在のストレージ情報を獲得することができる。
【００９３】
例示として、図５Ａに示すように、実行主体は、ディスクのディレクトリから、レコードＺの位置情報が［ｖｌｅｔ＿ｉｄ＝１１０＿３，ｒｅｃｏｒｄ＿ｔｙｐｅ＝１２８，ｒｅｃｏｒｄ＿ｉｄ＝２，ｂｌｏｃｋ＿ｉｄ＝３７，ｎｅｘｔ＿ｂｌｏｃｋ＿ｉｄ＝０］であることを検出することができる。このとき、実行主体は、Ｖｌｅｔ＿１１０＿３のうち、ｔｙｐｅ＝１２８の現在のストレージ情報、即ち、ｂｌｏｃｋ３７（ｒｅｃｏｒｄ１−４）及びｂｌｏｃｋ４９（ｒｅｃｏｒｄ５）を獲得することができる。
【００９４】
ステップ４０３において、獲得された現在のストレージ情報に基づいて、記憶されたレコードから最後の１つのレコードを読み取ることができ、削除対象レコードの位置する位置へ読み取られたレコードを伝送し記憶することができる。
【００９５】
本実施例において、獲得された現在のストレージ情報に基づいて、実行主体は、現在の記憶されたレコードから最後の１つのレコードを読み取ることができる。また、読み取られたレコードを、削除対象レコードの位置する位置へ伝送し記憶することができる。
【００９６】
例示として、図５Ａに示すように、実行主体は、ｒｅｃｏｒｄ＿ｉｄ＝５のレコードＸを読み取ることができる。これにより、レコードＸを転移（Ｍｏｖｅ）してｒｅｃｏｒｄ＿ｉｄ＝２の位置へ入力することができる。２つのレコードのデータ長さが同じであるので、上書きが可能である。
【００９７】
ステップ４０４において、読み取られたレコードの転送する前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正する。
【００９８】
本実施例において、実行主体は、読み取られたレコード（例えば、レコードＸ）の転送前のデータブロック（例えば、ｂｌｏｃｋ＿ｉｄ＝４９）中のデータ（例えば、ｒｅｃｏｒｄ５）をクリアすることができる。また、読み取られたレコードの位置情報を修正する必要がある。例えば、レコードＸの修正後の位置情報は、［ｒｅｃｏｒｄ＿ｔｙｐｅ＝１２８，ｒｅｃｏｒｄ＿ｉｄ＝２，ｂｌｏｃｋ＿ｉｄ＝３７，ｎｅｘｔ＿ｂｌｏｃｋ＿ｉｄ＝０］である。説明すべき点は、削除対象レコードを削除した後、関連する情報（例えば、ディスクのディレクトリ、対応するタイプの下の現在のストレージ情報、レコードＸのＲｅｃｏｒｄ  Ｇｕａｒｄなど）をさらに更新する必要がある。
【００９９】
ステップ４０５において、読み取られたレコードの転送前に位置するデータブロックにデータが存在するか否かを確定する。
【０１００】
本実施例において、実行主体は、読み取られたレコードが転送される前に位置したデータブロックに、データが存在するか否かをさらに確定することができる。例えば、図５Ａに示すように、レコードＸを転送し記憶した後、実行主体は、ｂｌｏｃｋ４９に他のデータが記憶されているか否かを確定する。
【０１０１】
ステップ４０６において、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収する。
【０１０２】
本実施例において、実行主体は、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収することができる。例えば、データブロックの既に割り当てられた状態を割り当てていない状態に修正することができる。例えば、図５Ａからわかるように、レコードＸを転送し記憶した後、ｂｌｏｃｋ４９のストレージスペースは、完全に空である。このとき、ＢｌｏｃｋＭａｎａｇｅｒは、当該データブロック（ＦｒｅｅＢｌｏｃｋ４９）を回収することができる。
【０１０３】
本実施例におけるデータを記憶するための方法において、データを削除するステップを増加し、削除過程を詳細に説明した。本発明におけるデータを記憶するための方法をさらに充実させ完全にした。また、削除過程は、１回の読み取り過程に１回の書き込み過程を加えることに相当し、ディスクの全体の性能を向上させることに役立つ。また、残りのデータ記憶の連続性を確保して、スペースの断片が発生しないようにする。
【０１０４】
理解できるのは、上記の各実施例におけるディスクにおいて、それに構築された各ストレージファイルのサイズは同じであることができるので、管理し易く、データ処理の効率を向上させることに有利である。各ストレージファイルのサイズは異なることもできるので、異なるユーザの要求を満たすために役立つ。なお、異なるストレージファイル中のデータブロックのサイズは同じであることができ、異なることもできる。管理の便宜上、各ストレージファイルに構成ファイルがインストールされることができる。ここで、構成ファイルは、ストレージファイルの構成パラメータ情報を説明するために使用されることができる。
【０１０５】
図５Ａに示すように、ストレージファイルの最後に１つの５１２ＫＢのファイル（即ち、ＶｌｅｔＩｎｆｏ）が存在してもよい。当該ファイルは、自分の構成パラメータ情報を記憶することができ、Ｐｒｏｔｏｂｕｆ（Ｇｏｏｇｌｅ  Ｐｒｏｔｏｃｏｌ  Ｂｕｆｆｅｒ）を使用することができ、シンプルで効率的な構造化データの記憶形式である。それはプラットフォームと言語にかかわらず、拡張可能で、使用が簡単で、解析速度が速いなどの特徴を有する。説明すべき点は、このファイルの中のコンテンツはストレージファイルの構成の時のみに生成され、後で修正することができない。
【０１０６】
ここで、構成パラメータ情報は、ストレージファイルのサイズ（例えば、３２ＧＢ）、データブロックのサイズ（例えば、２Ｍ）、レコード中の最小タイプ（たとえば、４ｋＢ）、レコード中の最大タイプ（例えば、５１２ＫＢ）、レコードタイプの間の間隔（例えば、４ｋＢ）などのうち少なくとも一つを含むことができるが、これに限定されない。言い換えれば、ストレージファイルの最後の一つのｐａｇｅにｖｌｅｔｉｎｆｏを記憶することに加えて、他の部分はすべて同じサイズのデータブロックであることができる。
【０１０７】
なお、説明すべき点は、大量の小さなファイルの記憶は、常に分散型ストレージシステムで解決するのに難しい問題である。ユーザは一般的に読み取り性能、空間利用率、及び削除の効率などの面で折衷する必要があったが、本発明の各実施例におけるデータを記憶する方法において、データの書き込みは、ディスクの１回のランダム読み書きに相当することができる。また、データの削除は、１回の読み取りに書き込みを加えることに相当することができる。このようにして、ディスクの読み書き性能及び削除効率を確保することに役立つ。また、データの書き込み及び削除の時に、スペースの断片が発生しない。また、すぐに空のストレージスペースを回収することができる。このようにして、ディスクの空間利用率を向上させることに役立つ。言い換えれば、本発明における方法は、ユーザの上記の要求をバランスよく合わせることができ、実際の使用中に良好な処理効果に達することができ、ユーザ体験を向上させることに有利であることができる。
【０１０８】
本発明の実施例におけるデータを記憶するための方法において、２つのデータブロックにまたがらない限り、すべてのデータの読み書きはすべて１回のＩＯＰＳある。ここで、データブロックのサイズを調整したり、データ入力の分割などの措置によって、２つのデータブロックにまたがる状況を減少または防止することができる。読み書き性能は、それぞれのディスクの１回のランダム読み取り、書き込みの消費時間と基本的に同じである。また、書き込みと削除の過程で断片が発生されず、すぐにスペースを回収することができる。削除時に１回の別途のＩＯ書き込みが発生することがあるが、従来の技術の解決手段に比べて、ＩＯの消費はまだ比較的に少ない。
【０１０９】
また、空間浪費の側面には、主に２つの部分が存在する。その一つは、同じタイプのデータのサイズをそろえることである。この部分の浪費は、入力データの平均サイズによって異なる。統計によって分かることができるように、ユーザの平均入力データは、一般的に２５６ＫＢである。結果として生じる空間の浪費は、約０．７％である。他の一つは、各種タイプで割り当てられた最後の１つのデータブロックが埋められないことである。最悪の場合、約１２７個のデータブロックが１つのレコードだけ存在する。この場合、空間の浪費は約（２Ｍ×１２７）÷３２Ｇ＝０．７％である。分析を通じて、この２つの部分空間の浪費はすべて受け入れ可能であることがわかる。したがって、スループット、遅延、空間利用率などの側面の総合的な比較からみると、上記の方法は、既存の技術よりも優れている。
【０１１０】
説明すべき点は、本発明の実施例の方法は、主にデータの規模がＥＢ級の場合、読み取りが書き込みより多い場合、書き込みが削除より多い場合に使用されることができる。これは、スペース使用率について極めて厳しく要求（即ち、コスト削減）する。併せて、読み書き遅延とスループットに比較的に高く要求する。
【０１１１】
続いて図６に示すように、上記の各図に示された方法の実現として、本発明は、データを記憶するための装置の１つの実施例を提供する。当該装置の実施例は、上記各実施例に示した方法の実施例と対応され、当該装置は、具体的に、様々な電子機器に適用されることができる。
【０１１２】
図６に示すように、本実施例のデータを記憶するための装置６００は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成されることができる。スタンドアロンストレージエンジンのディスクには、ストレージファイルが構成されることができる。ここで、ストレージファイルのストレージスペースは、少なくとも２つのデータブロックに分けられ、且つ少なくとも２つのデータブロックの間ではリンクリスト構造を使用することができる。当該装置６００は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニット６０１と、ストレージファイルでタイプの現在のストレージ情報を検索するように構成される検索ユニットであって、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含み、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なる、検索ユニット６０２と、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニット６０３と、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶するように構成される第１割り当てユニット６０４と、を備えることができる。
【０１１３】
本実施例のある選択可能な実施形態において、当該装置６００は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように構成されるサイズ確定ユニット（図６に図示せず）と、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように構成される第２割り当てユニット（図６に図示せず）と、をさらに備えることができる。
【０１１４】
選択可能に、少なくとも２つのデータブロックのストレージスペースは同じであることができ、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることができる。
【０１１５】
さらに、当該装置６００は、当該タイプの現在のストレージ情報を更新し、そして記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように構成される位置生成ユニット（図６に図示せず）をさらに備えることができる。ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを備える。
【０１１６】
一部の実施形態において、ディスクに少なくとも２つのストレージファイルが構成されることができ、且つディスクのディレクトリに各ストレージファイルのインデックス情報が記憶されることができる。
【０１１７】
選択可能に、当該装置６００は、ディレクトリから読み取り対象レコードの位置情報を検索するように構成される第１位置検索ユニット（図６に図示せず）と、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように構成される確定ユニット（図６に図示せず）と、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、そして読み取ったデータを前記読み取り対象レコードとして出力するように構成される読み取りユニット（図６に図示せず）と、をさらに備えることができる。
【０１１８】
さらに、当該装置６００は、ディレクトリから削除対象レコードの位置情報を検索するように構成される第２位置検索ユニット（図６に図示せず）と、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように構成される獲得ユニット（図６に図示せず）と、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように構成される転送ユニット（図６に図示せず）と、読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように構成される修正ユニット（図６に図示せず）と、をさらに備えることができる。
【０１１９】
一部の実施形態において、当該装置６００は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように構成される回収ユニット（図６に図示せず）をさらに備えることができる。
【０１２０】
一部の実施形態において、当該装置６００は、記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように構成されるコーディングユニット（図６に図示せず）と、当該副本の説明情報及びデータを配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように構成されるレコード生成ユニット（図６に図示せず）と、をさらに備えることができる。
【０１２１】
選択可能に、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の１つと同じであるか否かを確定するように構成される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズが当該一部のタイプのうち対応するデータのサイズが最も小さいタイプである目標タイプに対応するデータのサイズと同じにし、当該サブオブジェクトの１つの記憶対象レコードを生成するように構成される第１生成サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値よりも大きい場合、当該副本に分割及びゼロで埋めを行って、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の１つとそれぞれ同じにし、当該サブオブジェクトの少なくとも２つの記憶対象レコードを生成するように構成される第２生成サブユニットと、を備えることができる。
【０１２２】
理解できるのは、当該装置６００に記載のいくつかのユニットは、図２〜図４に説明された方法中の各ステップに対応される。これにより、上記の方法について説明した操作、機能、及び生成された有益な効果は、同様に、当該装置６００及びその中に含まれるユニットに適用され、ここで繰り返して説明しない。
【０１２３】
図７を参照すると、本発明に係るデータを記憶するためのシステムの１つの実施例のタイミング図を示す。
【０１２４】
本実施例におけるデータを記憶するためのシステムは、第１サブシステム、第２サブシステム及び上記の各実施例に説明したスタンドアロンストレージエンジンがインストールされた第３サブシステムを備えることができる。第１サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、記憶待ちオブジェクトを少なくとも１つのサブオブジェクトに分割し、記憶待ちオブジェクトと少なくとも１つのサブオブジェクトとの間の対応関係を前記第２サブシステムに送信し、少なくとも１つのサブオブジェクトを第３サブシステムに送信するように構成される。第２サブシステムは、記憶待ちオブジェクトと少なくとも１つのサブオブジェクトとの間の対応関係をリストに記憶するように構成される。第３サブシステムは、少なくとも１つのサブオブジェクト中のサブオブジェクトにコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶するように構成される。
【０１２５】
図７に示されたように、ステップ７０１において、第１サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。
【０１２６】
本実施例において、第１サブシステムは、有線接続方式または無線接続方式によって、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。ここで、記憶待ちオブジェクトは、分散型オブジェクトストレージシステムのでデータあることができる。
【０１２７】
ステップ７０２において、第１サブシステムは、記憶待ちオブジェクトを少なくとも１つのサブオブジェクトに分割することができる。ここで、分割方式は、実際の需要に応じて設定することができる。
【０１２８】
ステップ７０３において、第１サブシステムは、記憶待ちオブジェクトと少なくとも１つのサブオブジェクトとの間の対応関係を第２サブシステムに送信することができ、少なくとも１つのサブオブジェクトを第３サブシステムに送信することができる。
【０１２９】
ステップ７０４において、第２サブシステムは、記憶待ちオブジェクトと少なくとも１つのサブオブジェクトとの間の対応関係をリストに記憶することができる。
【０１３０】
ステップ７０５において、第３サブシステムは、少なくとも１つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶することができる。これは、図２の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。
【０１３１】
本実施例のある選択可能な実施形態において、例えば、ステップ７０６において、第３サブシステムは、データ記憶完了を表示するための応答情報を第１サブシステムに送信することができる。
【０１３２】
その後、ステップ７０７において、第１サブシステムは、応答情報を受信した場合、記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子をユーザにフィードバックする。このようにして、ユーザは、クエリ識別子によって、それが示したオブジェクトデータにアクセスすることができる。ここで、クエリ識別子は、数字、アルファベット、文字などの少なくとも一つの文字符号を含むがそれに限定されない。
【０１３３】
選択可能に、例えば、ステップ７０８において、第１サブシステムは、ユーザによって送信されたクエリ識別子を含む読み取り要求を受信することができる。
【０１３４】
続いて、ステップ７０９において、第１サブシステムは、読み取り要求中のクエリ識別子を第２サブシステムに送信することができる。
【０１３５】
その後、ステップ７１０において、第２サブシステムは、読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得することができ、サブオブジェクトリストを第３サブシステムに送信することができる。
【０１３６】
その後、ステップ７１１において、第３サブシステムは、サブオブジェクトリストに応じて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、オブジェクトデータを第１サブシステムに送信することができる。これは、図３の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。
【０１３７】
最後に、ステップ７１２において、第１サブシステムは、オブジェクトデータをユーザにフィードバックすることができる。
【０１３８】
あるアプリケーションシナリオにおいて、第１サブシステムは、ユーザによって送信されたクエリ識別子を含む削除要求をさらに受信することができる。このようにして、第３サブシステムは、図４の実施例に関連する説明に応じて、削除要求が示したオブジェクトデータを削除することができる。ここで繰り返して説明しない。
【０１３９】
理解できるのは、上記第１サブシステム、第２サブシステム及び第３サブシステムは、異なる電子機器（例えば、３台のサーバ）に位置されることができ、同じ電子機器（図１に示したサーバ１０５）に位置されることもできる。且つ一部の実施形態において、第１サブシステムに第２サブシステムの機能が備えられた場合、本実施例中のシステムは第２サブシステムをインストールしなくてもよい。
【０１４０】
本実施例のデータを記憶するためのシステムにおいて、新しいデータの記憶方法を適用し、即ち、データのサイズに応じて分類して記憶する。このようにして、データの分散型ストレージを実現することができるのみならず、データの安全性を向上させる。併せて、全体的なデータ処理性能を向上させ、動作コストを減少させることができる。
【０１４１】
以下、図８を参照すると、本出願の実施例に係る電子機器（例えば、図１に示されたサーバ１０５）を実現するために適用されるコンピュータシステム８００の構造模式図を示す。図８に示された電子機器は、ただ１つの実施例を示しただけで、本発明の実施例の機能と使用範囲に限定を加えるものではない。
【０１４２】
図８に示されたように、コンピュータシステム８００は、読み取り専用メモリ（ＲＯＭ）８０２におけるプログラムまたは記憶部分８０８からランダムアクセスメモリ（ＲＡＭ）８０３にローディングされたプログラムによって、様々な適切な動作及び処理を実行することができる中央処理装置（ＣＰＵ）８０１を備える。ＲＡＭ８０３にはさらにシステム８００の操作に必要な各種プログラムとデータが記憶されている。ＣＰＵ８０１、ＲＯＭ８０２及びＲＡＭ８０３は、バス８０４を介して相互接続される。入力／出力（Ｉ／Ｏ）インターフェース８０５もバス８０４に接続される。
【０１４３】
キーボード、マウスなどを備える入力部分８０６、陰極線管（ｃａｔｈｏｄｅ−ｒａｙ  ｔｕｂｅ、ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など及びスピーカなどを備える出力部分８０７、ハードディスクなどを備える記憶部分８０８、及びＬＡＮカード、モデムなどを備えるネットワークインターフェースカードの通信部分８０９は、Ｉ／Ｏインターフェース８０５に接続される。通信部分８０９は、インターネットなどのネットワークを介して通信処理を実行する。ドライバ８１０も必要に応じてＩ／Ｏインターフェース８０５に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル媒体８１１は、必要に応じてドライバ８１０に装着されて、それから読み出されるコンピュータプログラムが必要に応じて記憶部分８０８にインストールされるようにする。
【０１４４】
特に、本発明に係る実施例において、フローチャートを参照して上述した過程は、コンピュータソフトウェアプログラムとして実現されることができる。例えば、本開示の実施例は、コンピュータ可読媒体に担持されているコンピュータプログラムを備えるコンピュータプログラム製品を備え、当該コンピュータプログラムは、フローチャートに示された方法を実行するプログラムコードを備える。このような実施例において、当該コンピュータプログラムは、通信部分８０９を介してネットワークからダウンロード及びインストールされることができ、及び／またはリムーバブル媒体８１１からインストールされることができる。当該コンピュータプログラムが中央処理装置（ＣＰＵ）８０１によって実行される時、本発明の方法に限定された前記機能を実行する。本発明に記載のコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体または両方の任意の組み合わせであることができることを説明すべきである。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはこれらの任意の組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例は、１つまたは複数のワイヤを有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶素子、磁気記憶素子、またはこれらの任意の組み合わせを備えるが、これらに限定されない。本発明において、コンピュータ可読媒体は、プログラムを備えるかまたは記憶する任意の有形の媒体であることができ、当該プログラムは、指令実行システム、装置、または素子によって使用され、またはそれらとの結合によって使用される。本発明において、コンピュータ可読信号媒体は、コンピュータが読み取り可能なプログラムコードを担持し、ベースバンドに備えたり、または搬送波の一部として伝播されるデータ信号に備えることができる。このように伝播されたデータ信号は、電磁信号、光信号、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されない様々な形態をとることができる。コンピュータ可読信号媒体は、またコンピュータ可読記憶媒体以外のいずれのコンピュータ可読媒体であることができ、当該コンピュータ可読媒体は、指令実行システム、装置または素子によって使用され、またはそれらとの結合によって使用されるプログラムを送信、伝播、または移送することができる。コンピュータ可読媒体に含まれるプログラムコードは、無線、ワイヤ、光ファイバケーブル、ＲＦなど、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されないいずれの適切な媒体によって伝送されることができる。
【０１４５】
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びコンピュータプログラム製品の実現可能な実施形態の構造、機能、及び操作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、１つのモジュール、プログラムセグメントまたはコードの一部を表すことができ、当該モジュール、プログラムセグメントまたはコードの一部は、規定された論理機能を実現するための１つまたは複数の実行可能な指令を備える。また、代替実施形態において、ブロックに示されている機能は、図面に示されているものとは異なる順序で発生することもあることに留意されたい。例えば、連続して表示された２つのブロックは、実際には実質的に並列に実行されてもよく、それらは含まれる機能に応じて逆の順序で実行されてもよい。また、ブロック図及び／またはフローチャートの各ブロック、及びブロック図及び／またはフローチャートのブロックの組み合わせは、規定された機能または操作を実行する専用のハードウェアベースのシステムで実現され、または専用のハードウェアとコンピュータ指令の組み合わせによって実現されることができることにも留意されたい。
【０１４６】
本発明の実施例で言及されたユニットは、ソフトウェアによって実現されることができ、またはハードウェアによって実現されることもできる。記述されたユニットは、また、例えば、タイプ確定ユニット、検索ユニット、スペース確定ユニット及び第１割り当てユニットを備えるプロセッサーとして記述されるプロセッサーに設置されることができる。ここで、これらのユニットの名称は、当該ユニット自体を限定するものではない場合があり、例えば、タイプ確定ユニットは、また、「記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定するユニット」と記述されることもできる。
【０１４７】
他の態様として、本発明は、コンピュータ可読媒体をさらに提供し、当該コンピュータ可読媒体は、前記実施例で説明した電子機器に含まれることができ、または別途に存在し、当該電子機器にインストールされていないことができる。前記コンピュータ可読媒体は、１つまたは複数のプログラムが担持されることができ、１つまたは複数のプログラムが当該サーバによって実行される場合、当該電子機器は、記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定し、ストレージファイルで、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を備える、タイプの下の現在のストレージ情報を検索し、ここで、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なり、現在のストレージ情報に応じて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定し、残りのストレージスペースがないと確定されたことに応答して、タイプの下に新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。
【０１４８】
以上の説明は、本発明の好ましい実施例及び応用された技術の原理の説明にすぎない。本発明で言及される本発明の範囲は、前記の技術的特徴の特定の組み合わせに限定されず、併せて、前記の発明構想から逸脱することなく、前記の技術的な特徴または均等な特徴を任意に組み合わせて形成された。例えば、前記の特徴と本発明において開示されるがこれに限定されない技術的特徴と類似した機能を有する技術的特徴が互いに交換されて形成される他の技術的解決手段を網羅すべきであることを当業者は理解すべきである。
【図１】
2020038623.tif 000003
【図２】
2020038623.tif 000004
【図３】
2020038623.tif 000005
【図４】
2020038623.tif 000006
【図５Ａ】
2020038623.tif 000007
【図５Ｂ】
2020038623.tif 000008
【図５Ｃ】
2020038623.tif 000009
【図６】
2020038623.tif 000010
【図７】
2020038623.tif 000011
【図８】
2020038623.tif 000012
【手続補正書】
【提出日】令和1年7月10日(2019.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを記憶するための方法であって、前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、
前記方法は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含むデータを記憶するための方法。
【請求項２】
前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、
前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、
前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含むことを特徴とする
請求項１に記載のデータを記憶するための方法。
【請求項３】
前記少なくとも２つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることを特徴とする
請求項１に記載のデータを記憶するための方法。
【請求項４】
前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、
前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも１つを含むことを特徴とする
請求項１乃至３のいずれか一項に記載のデータを記憶するための方法。
【請求項５】
前記ディスクに少なくとも２つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されていることを特徴とする
請求項４に記載のデータを記憶するための方法。
【請求項６】
前記ディレクトリから読み取り対象レコードの位置情報を検索することと、
前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、
前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含むことを特徴とする
請求項５に記載のデータを記憶するための方法。
【請求項７】
前記ディレクトリから削除対象レコードの位置情報を検索することと、
前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、
獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、
前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含むことを特徴とする
請求項５に記載のデータを記憶するための方法。
【請求項８】
前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、
前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、
当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含むことを特徴とする
請求項７に記載のデータを記憶するための方法。
【請求項９】
前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、
記憶待ちオブジェクトを分割して得られた少なくとも１つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、
当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含むことを特徴とする
請求項１乃至８のいずれか一項に記載のデータを記憶するための方法。
【請求項１０】
前記サブオブジェクトの記憶対象レコードを生成することは、
配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の１つと同じであるか否かを確定することと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの１つの記憶対象レコードを生成するようにすることと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の１つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、
前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプであることを特徴とする
請求項９に記載のデータを記憶するための方法。
【請求項１１】
データを記憶するための装置であって、前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも２つのデータブロックに分けられ、且つ前記少なくとも２つのデータブロックの間ではリンクリスト構造を使用し、
前記装置は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第１割り当てユニットと、を備えるデータを記憶するための装置。
【請求項１２】
データを記憶するためのシステムであって、
第１サブシステム、第２サブシステム及び請求項１乃至１０のいずれか一項に記載のスタンドアロンストレージエンジンがインストールされた第３サブシステムを備え、
前記第１サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも１つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係を前記第２サブシステムに送信し、前記少なくとも１つのサブオブジェクトを前記第３サブシステムに送信するように構成され、
前記第２サブシステムは、前記記憶待ちオブジェクトと前記少なくとも１つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、
前記第３サブシステムは、前記少なくとも１つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶するように構成されるデータを記憶するためのシステム。
【請求項１３】
前記第３サブシステムは、データ記憶完了を表示するための応答情報を前記第１サブシステムに送信するようにさらに構成され、
前記第１サブシステムは、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするようにさらに構成されることを特徴とする
請求項１２に記載のデータを記憶するためのシステム。
【請求項１４】
前記第１サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第２サブシステムに送信するようにさらに構成され、
前記第２サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第３サブシステムに送信するようにさらに構成され、
前記第３サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第１サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第１サブシステムに送信するようにさらに構成されることを特徴とする
請求項１３に記載のデータを記憶するためのシステム。
【請求項１５】
電子機器であって、
１つまたは複数のプロセッサーと、
１つまたは複数のプログラムを記憶するための記憶装置と、を備え、
前記１つまたは複数のプログラムが前記１つまたは複数のプロセッサーによって実行されると、前記１つまたは複数のプロセッサーが請求項１乃至１０のいずれか一項に記載の方法を実現する電子機器。
【請求項１６】
コンピュータプログラムが記憶されているコンピュータ可読媒体であって、
前記コンピュータプログラムがプロセッサーによって実行される時、請求項１乃至１０のいずれか一項に記載の方法が実現されるコンピュータ可読媒体。
【請求項１７】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサーにより実行されると、請求項１乃至１０のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【外国語明細書】
2020038623000001.pdf