[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2020038623A - データを記憶するための方法、装置及びシステム - Google Patents

データを記憶するための方法、装置及びシステム Download PDF

Info

Publication number
JP2020038623A
JP2020038623A JP2019127387A JP2019127387A JP2020038623A JP 2020038623 A JP2020038623 A JP 2020038623A JP 2019127387 A JP2019127387 A JP 2019127387A JP 2019127387 A JP2019127387 A JP 2019127387A JP 2020038623 A JP2020038623 A JP 2020038623A
Authority
JP
Japan
Prior art keywords
data
storage
record
type
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019127387A
Other languages
English (en)
Other versions
JP6778795B2 (ja
Inventor
チェン,ソンジャ
Zongjia Chen
リュウ,ジャン
Jian Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2020038623A publication Critical patent/JP2020038623A/ja
Application granted granted Critical
Publication of JP6778795B2 publication Critical patent/JP6778795B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散型オブジェクトストレージに関して、データを記憶するための方法、システム、電子装置及びコンピュータプログラムを提供する。【解決手段】方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定するステップ201と、ストレージファイルにおいて記憶対象レコードの属するタイプの現在のストレージ情報を検索するステップ202と、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するステップ203と、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶するステップ204と、を含む。【選択図】図2

Description

本発明の実施形態は、分散型オブジェクトストレージの技術分野に関し、具体的には、データを記憶するための方法、装置及びシステムに関する。
分散型ストレージシステムは、通常、データを複数の独立した機器に分散して記憶する。従来のネットワークストレージシステムは、すべてのデータを記憶するために集中型ストレージサーバを使用している。この時のストレージサーバは、システムパフォーマンスのボトルネックになり、信頼性と安全性の焦点にもなって、大規模なストレージアプリケーションのニーズを満たすことができない。分散型ネットワークストレージシステムは、スケーラブルなシステム構造を使用することが多く、複数のストレージサーバを利用してストレージ負荷を共有し、位置サーバを利用してストレージ情報の位置を確定する。これは、システムの信頼性、可用性、アクセス効率を向上させるだけでなく、拡張も容易にする。
本発明の実施形態は、データを記憶するための方法、装置及びシステムを提供する。
第1の態様において、本発明の実施形態は、データを記憶するための方法を提供する。前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、前記方法は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含む。
一部の実施形態において、データを記憶するための方法は、前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含む。
一部の実施形態において、前記少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。
一部の実施形態において、データを記憶するための方法は、前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。
一部の実施形態において、前記ディスクに少なくとも2つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されている。
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから読み取り対象レコードの位置情報を検索することと、前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含む。
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから削除対象レコードの位置情報を検索することと、前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含む。
一部の実施形態において、前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含む。
一部の実施形態において、前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含む。
一部の実施形態において、前記サブオブジェクトの記憶対象レコードを生成することは、配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプである。
第2の態様において、本発明の実施形態は、データを記憶するための装置を提供する。前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、前記装置は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備える。
一部の実施形態において、当該データを記憶するための装置は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが、記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように配置されるサイズ確定ユニットと、残りのストレージスペースが記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように配置される第2割り当てユニットと、をさらに備える。
一部の実施形態において、少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。
一部の実施形態において、当該データを記憶するための装置は、当該タイプの現在のストレージ情報を更新し、記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように配置される位置生成ユニットをさらに備え、ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。
一部の実施形態において、ディスクに少なくとも2つの前記ストレージファイルが構成され、且つディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶される。
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから読み取り対象レコードの位置情報を検索するように配置される第1位置検索ユニットと、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように配置される確定ユニットと、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力するように配置される読み取りユニットと、をさらに備える。
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから削除対象レコードの位置情報を検索するように配置される第2位置検索ユニットと、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように配置される獲得ユニットと、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように配置される転送ユニットと、及び読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように配置される修正ユニットと、をさらに備える。
一部の実施形態において、当該データを記憶するための装置は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように配置される回収ユニットをさらに備える。
一部の実施形態において、当該データを記憶するための装置は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように配置されるコーディングユニットと、当該副本の説明情報及びデータに対して配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように配置されるレコード生成ユニットと、をさらに備える。
一部の実施形態において、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定するように配置される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズを目標タイプに対応するデータのサイズと同じにし、また副本当該サブオブジェクトの1つの記憶対象レコードを生成する第1生成サブユニットであって、目標タイプは、当該一部のタイプのうちの対応するデータのサイズが最も小さいタイプである、第1生成サブユニットと、当該副本のデータのサイズが各タイプに対応するデータのサイズの最大値より大きい場合、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の1つとそれぞれ同じであるように、当該副本に分割及びゼロ埋めを行い、当該サブオブジェクトの少なくとも二つの記憶対象レコードを生成するように配置される第2生成サブユニットと、を備える。
第3の態様において、本発明の実施形態は、第1サブシステム、第2サブシステム及び第1の態様のいずれか1つの実施形態に記載のスタンドアロンストレージエンジンがインストールされた第3サブシステムを備えるシステムを提供する。前記第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、前記少なくとも1つのサブオブジェクトを前記第3サブシステムに送信するように構成され、前記第2サブシステムは、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、前記第3サブシステムは、前記少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶する。
一部の実施形態において、前記第3サブシステムはさらに、データ記憶完了を表示するための応答情報を前記第1サブシステムに送信するようにさらに構成され、前記第1サブシステムはさらに、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするように構成される。
一部の実施形態において、前記第1サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第2サブシステムに送信するようにさらに構成され、前記第2サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第3サブシステムに送信するようにさらに構成され、前記第3サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第1サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第1サブシステムに送信するようにさらに構成される。
第4の態様において、本発明の実施形態は、1つまたは複数のプロセッサーと、1つまたは複数のプログラムを記憶するための記憶装置とを備え、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが第1の態様のいずれかの実施形態に記載の方法を実現する電子機器を提供する。
第5の態様において、本発明の実施形態は、コンピュータプログラムが記憶され、前記プログラムがプロセッサーによって実行される時、第1の態様のいずれかの実施形態に記載の方法が実現されるコンピュータ可読媒体を提供する。
本発明の実施形態によって提供されるデータを記憶するための方法、装置及びシステムは、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。それにより、ストレージファイルにおいてタイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースがないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。これにより、スペースデブリの発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。
図面を参照して非限定的な実施例に対してなされる詳細な説明によって、本発明の他の特徴、目的及び利点は、さらに明らかになる。
本発明の1つの実施例が応用される例示的なシステムアーキテクチャ図である。 本発明に係るデータを記憶するための方法の1つの実施例のフローチャートである。 本発明に係るデータを記憶するための方法のもう1つの実施例のフローチャートである。 本発明に係るデータを記憶するための方法のもう1つの実施例のフローチャートである。 本発明におけるストレージファイルの1つの実施例の論理構造模式図である。 本発明におけるレコードの1つの実施例の構造模式図である。 本発明におけるディスクの1つの実施例の構造模式図である。 本発明に係るデータを記憶するための装置の1つの実施例の構造模式図である。 本発明に係るデータを記憶するためのシステムの1つの実施例のタイミング図である。 本発明の実施例の電子機器を実現するためのコンピュータシステムの構造模式図である。
以下、図面と実施例を結び付けて本発明に対してさらに詳細に説明する。ここで説明される具体的な実施例は、当該発明に対する限定ではなく、単に関連する発明を解釈するために使用されることが理解される。なお、説明の便宜上、図面には発明に関連する部分のみを示している。
説明すべき点は、矛盾のない場合、本発明における実施例及び実施例における特徴は相互に組み合わせることができる。以下、図面を参照し、実施例に結び付けて本発明を詳細に説明する。
図1は、本発明の実施例が応用されるデータを記憶するための方法、装置及びシステムの例示的なシステムアーキテクチャ100を示す。
図1に示すように、システムアーキテクチャ100は、端末101、102、103、ネットワーク104及びサーバ105を備えることができる。ネットワーク104は、端末101、102、103とサーバ105との間で通信リンクを提供するための媒体として使用される。ネットワーク104は、有線、無線通信リンクまたは光ファイバケーブルなどの様々な接続を備えることができる。
ユーザは、端末101、102、103を使用して、ネットワーク104を介してサーバ105とインタラクションしてメッセージなどを送受信することができる。端末101、102、103には、ウェブブラウザ、ショッピングアプリケーション、ビデオアプリケーション、メールボックス及びインスタントメッセージングツールなどの各種のクライアントアプリケーションがインストールされることができる。
ここで、端末101、102、103は、ハードウェアであることができ、ソフトウェアであることもできる。端末101、102、103がハードウェアである場合、表示画面を有する様々な電子機器であってもよい。当該電子機器は、スマートフォン、タブレットコンピュータ、スマートTV、電子書籍リーダー、MP3(Moving Picture Experts Group Audio Layer III、動画専門家集団オーディオレイヤ3)プレーヤー、ラップトップコンピュータ、及びデスクトップコンピュータなどであってもよいが、これらに限定されない。端末101、102、103がソフトウェアである場合、前記に列挙された電子機器にインストールされることができる。(例えば、分散型サービスの提供に使用される)複数のソフトウェアまたはソフトウェアモジュールとして、あるいは単一のソフトウェアまたはソフトウェアモジュールとして実現されることができる。ここで具体的に限定しない。
サーバ105は、様々なサービスを提供するサーバであることができ、例えば、端末101、102、103にインストールされた様々なアプリケーションにサポートを提供するバックグラウンドサーバであることができる。バックグラウンドサーバは、ユーザが端末101、102、103を介して送信したデータ処理要求(例えば、データ記憶要求)に対して分析処理することができ、処理結果(例えば、記憶が完了されたことを表示するフィードバック情報またはデータ記憶後の位置情報など)を端末101、102、103にリターンさせることができる。
ここで、サーバ105は、同じハードウェアであることができ、ソフトウェアであることもできる。サーバ105がハードウェアである場合、複数のサーバで構成される分散型サーバグループで実現されることができ、一つのサーバで実現されることもできる。サーバ105がソフトウェアである場合、(例えば、分散型サービスの提供に使用される)複数のソフトウェアまたはソフトウェアモジュールで実現されることができ、一つのソフトウェアまたはソフトウェアモジュールで実現されることもできる。ここで具体的に限定しない。
例えば、サーバ105のうち、データを記憶するためのディスク(即ち、ストレージスペース)に複数のストレージファイル1051、1052が構成されることができる。これらのストレージファイルは、データを記憶するための実際の容器であることができ、これによりデータの分散型記憶を実現する。
説明すべき点は、本発明の実施例が提供するデータを記憶するための方法は、一般にサーバ105によって実行される。それに対応して、データを記憶するための装置は、一般にサーバ105に設置される。
理解すべき点は、図1中の端末、ネットワーク、サーバ及びサーバ中のストレージファイルの数は単に例示的である。実現需要に応じて、任意の数の端末、ネットワーク、サーバ及びサーバ中のストレージファイルを備えることができる。
続いて図2を参照すると、本発明に係るデータを記憶するための方法の1つの実施例のフロー200が示されている。当該データを記憶するための方法は、以下のようなステップを含むことができる。
ステップ201において、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定する。
本実施例において、データを記憶するための方法は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用されることができる。また、当該スタンドアロンストレージエンジンのディスクにストレージファイルが構成されることができる。ここで、ストレージファイルは、データを記憶するための実際の容器であることができる。即ち、データは、ストレージファイルに記憶される。ここで、ストレージファイルのストレージスペースは、少なくとも2つのデータブロックに分けられることができる。ストレージファイルのストレージスペースは、さらに複数の記憶区間(即ち、データブロック)に分けられることができる。また、ストレージスペースの連続性を保証するために、少なくとも2つのデータブロック間でリンクリスト構造を使用することができる。即ち、リンクリスト方式で同じストレージファイル中の各データブロックをリンクさせる。
説明すべき点は、ストレージファイルのストレージ容量は、実際の状況に応じて設定することができ、例えば、32Gであることができる。また、同じストレージファイル中の各データブロックのストレージスペースは同じ(例えば、2M)であることができ、異なることもできる。なお、ストレージファイルの内部では、記憶対象データのサイズに基づいて、記憶対象データに対して分類して記憶することができる。また、各タイプにただ一つのサイズのデータを記憶することができる。即ち、同じタイプで記憶されたデータのサイズは同じであることができる。異なるタイプで記憶されたデータのサイズは異なることができる。ここで、分類方法は、本発明で制限しない。
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、有線接続方式または無線接続方式を介して、端末(例えば、図1に示された端末101、102、103)またはクラウドなどから、記憶対象レコードを獲得することができる。また、記憶対象レコードのデータのサイズに基づいて、所定の分類方法によって記憶対象レコードのタイプを確定する。例えば、記憶対象レコードのデータのサイズは、4KBである。データのサイズが0KBより大きく且つ4KBより大きくない場合、第1タイプに属し、この場合、実行主体は、当該記憶対象レコードのタイプを第1タイプと確定することができる。ここで、記憶対象レコードは、ディスク分散型オブジェクトストレージ技術を使用して記憶する任意のデータであることができる。そのコンテンツは、数字、文字、アルファベットまたは記号などの少なくとも一つの文字符号の文字列を含むことができる。
本実施例のある選択可能な実施形態において、管理の便利上、同じストレージファイル中の少なくとも2つのデータブロックのストレージスペースは、同じであることができる。同じストレージファイルのうち異なるタイプで記憶されたレコードのデータのサイズは、すべて所定の数値の整数倍であることができる。これは算出過程を簡素化して、処理効率を向上させることに役立つ。図5Aに示すように、データブロックのストレージスペースはすべて2Mである。データのサイズの最小値が一般に4KBであることを考慮すると、異なるタイプに対応するデータのサイズはすべて4KBの整数倍である。また、ディスクの読み書き性能を考慮すると、データのサイズの最大値は、実際の状況に応じて設定することができ、例えば、512KBに設定することができる。言い換えれば、ストレージファイルの内部でレコードのデータのサイズを4KB、8KB……512KBなどの複数のタイプに分けることができる。
ステップ202において、ストレージファイルにおいてタイプの現在のストレージ情報を検索し、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を含む。
本実施例では、実行主体は、ストレージファイルにおいて、記憶対象レコードの属するタイプの現在のストレージ情報を検索することができる。ここで、現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。即ち、当該タイプに現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報を検索する。ここで、データブロックの情報は、データブロックの間のリンク順序、データブロックの識別子、データブロックのストレージスペースなどのうち少なくとも1つを含むが、これに限定されない。レコード情報は、レコードの識別子、レコードのデータのサイズ、レコードの位置するデータブロックの識別子などのうち少なくとも1つを含むが、これに限定されない。ここで、識別子は、データブロックまたはレコードを一意に示すために使用されることができるものであり、数字、アルファベットなどの文字符号のうちの少なくとも1つであることができる。言い換えれば、当該タイプの現在のストレージ情報を検索した後、実行主体は、当該タイプにどのようなデータブロックが存在するか、及びどのような記録が記憶されているかが分かる。
説明すべき点は、同じタイプのレコードは、一般に1つずつ隣り合って記憶される。即ち、論理的にこれらのレコードは、全体で連続的なスペースを占める。これは、ディスク断片の発生を防止することにより、ストレージスペースの利用率を向上させることができる。
例示として、図5Aの記憶対象レコードがXであるとすると、実行主体が、そのタイプ(type)が128であると確定する場合、当該タイプの現在のストレージ情報を検索することができる。即ち、ストレージスペースは、2Mのデータブロック(block)37であり、レコード(record)の数は、4であり、各レコードのデータのサイズは、512KBである。数字番号(1、2、3など)をレコードの識別子として使用することを理解することができる。このようにして、同じタイプの異なるレコードを区別することができるだけでなく、各レコードの記憶順序を容易に確定することもできる。
ステップ203において、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定する。
本実施例において、実行主体は、ステップ202で検索された現在のストレージ情報に基づいて、当該タイプ(即ち、記憶対象レコードが属するタイプ)の現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。例示として、図5Aに示すように、実行主体は、type=128中の現在のストレージ情報に基づいて、block37に残りのストレージスペースがないと確定することができ、即ち、512KB×4=2Mである。
ここで、現在割り当てられたデータブロックに残りのストレージスペースが存在する場合、実行主体は、記憶対象レコードを残りのストレージスペースに記憶することができる。現在割り当てられたデータブロックに残りのストレージスペースが存在しない場合、実行主体は、続いてステップ204を実行することができる。
選択可能に、実行主体は、割り当てられたデータブロックに残りのストレージスペースが存在すると確定された場合、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定することができる。残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定された場合、記憶対象レコードの一部のデータを残りのストレージスペースに記憶することができる。そして、当該タイプに新しいデータブロックを割り当てて、残りの記憶対象レコードを新しいデータブロックに記憶することができる。
例示として、図5Aに示すように、データのサイズは、記憶対象レコードYの504KBである。実行主体は、type=126の現在のストレージ情報によって、block3の残りのストレージスペースが64KB(4M−504KB×8)であることを確定することができる。このとき、実行主体は、当該タイプの下に1つの新しい2Mのデータブロック(block4)を割り当てることができる。このようにして、記憶対象レコードYの前の64KBをblock3に記憶することができる。また、記憶対象レコードYの後の440KBをblock4に記憶することができる。即ち、記憶対象レコードYを2つの隣接するデータブロックに記憶することができる。
ステップ204において、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。
本実施例において、実行主体は、現在割り当てられたデータブロックに残りのストレージスペースが存在しないと確定された場合、当該タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。例示として、図5Aの記憶対象レコードXである。block37に残りのストレージスペースが存在しないので、実行主体は、1つの新しいblock49を割り当てることができる。このとき、記憶対象レコードXをblock49に記憶することができる。
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードを分類して記憶することができる。データの連続記憶を確保するとともに、ディスク断片の生成を減少または防止することができる。このようにして、ストレージスペースの利用率の向上、ディスクの読み書き性能の改善に役立つ。なお、分散型オブジェクトストレージ方法も充実させる。
本実施例のある選択可能な実施形態において、記憶対象レコードを記憶した後、実行主体は、それが属するタイプの現在のストレージ情報を更新することもできる。そして、記憶対象レコードが記憶された後の位置情報を生成することができる。また、当該位置情報を出力することができる。ここで、位置情報は、記憶対象レコードの記憶位置を説明するためのものであってもよい。例えば、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことができ、また、位置情報は出力される。ここで、出力とは、記憶し出力することであってもよい。例えば、位置情報を実行主体ローカルまたは他の電子機器に記憶することができ、例えば、位置情報を端末などに送信するような伝送出力であることもできる。
例示として、図5Aの記憶対象レコードXの場合、その位置情報は、[record_type=128,record_id=5,block_id=49,next_block_id=0]であることができる。位置情報が[record_type=128,record_id=5]または[record_id=5,block_id=49]である場合にも、実行主体はレコードXを検索できることを理解できる。
説明すべき点は、同じタイプで記憶されたレコードのデータのサイズが同じであるようにするために、選択可能に、実行主体は、記憶対象レコードを記憶する前に、記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであるか否かを確定することができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであると確定された場合、実行主体は、記憶処理を行うことができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズでないと確定され、一般に当該タイプに対応するデータのサイズより小さい場合、実行主体は、記憶対象レコードの所定の位置(例えば、前面または後面)に所定のデータ(例えば、0または他の文字列など)を補充することができる。これにより、補充された後の記憶対象レコードのデータのサイズは、当該タイプに対応するデータのサイズになる。その後、実行主体は、補充された後の記憶対象レコードを記憶することができる。
ある応用シナリオにおいて、記憶対象レコードのデータのサイズに基づいて記憶対象レコードのタイプを確定する前に、実行主体は、データを処理して記憶対象レコードを獲得することができる。例えば、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、実行主体は、当該サブオブジェクトをコーディング(例えば、ECコーディング)して副本を獲得する。その後、当該副本の説明情報とデータに対して配列化処理して、当該サブオブジェクトの記憶対象レコードを生成する。
説明すべき点は、記憶待ちオブジェクトの分割過程は、実行主体によって完成されることができ、他の電子機器によって完成されることもできる。他の電子機器は、分割して得られた少なくとも1つのサブオブジェクトを実行主体に送信することができる。
さらに、同じタイプで記憶されたレコードデータのサイズを同じにするように、実行主体は、配列化後の当該副本を分析処理して、必要なデータのサイズ(即ち、各タイプに対応するデータのサイズ中の1つ)の記憶対象レコードを生成することができる。
具体的に、まず、実行主体は、配列化後の当該副本のデータのサイズが、ストレージファイルのうち各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することができる。当該副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つと同じである場合、実行主体は、当該サブオブジェクトの記憶対象レコードを直接に生成することができる。
当該副本のデータのサイズ(例えば、5KB)が、各タイプに対応するデータのサイズ(例えば、4KB、8KB及び12KB)とすべて異なり、且つ一部のタイプに対応するデータのサイズ(例えば、8KB及び12KB)よりも小さい場合、当該副本のデータの後ろをゼロで埋める。これにより、ゼロで埋めた後の当該副本のデータのサイズと目標タイプに対応するデータのサイズとを同じにすることができる。そして、当該サブオブジェクトの1つの記憶対象レコードを生成することができる。ここで、目標タイプは、当該一部のタイプの対応するデータのサイズが最も小さいタイプ(例えば、8KB及び12KB中の8KB)であることができる。説明すべき点は、従来のデータに影響を与えない限り、本発明は、補充位置及び補充コンテンツについて限定しない。
当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値(例えば、512KB)よりも大きい場合、当該副本に対して分割及びゼロで埋めを行うことができる。これにより、分割後の各副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つとそれぞれ同じにすることができ、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成する。例えば、副本のデータのサイズは、518KBであり、それを512KB及び6KBの2つのサブ副本に分割することができ、6KBのサブ副本を8KBになるようにゼロで埋める。または、それを512KB、4KB及び2KBの3個のサブ副本に分割することができ、2KBのサブ副本を4KBにゼロで埋める。または、他のタイプに対応するデータのサイズに基づいて、当該副本を複数の対応されるデータのサイズのサブ副本に分割することができ、ゼロで埋め操作を行う必要はない。
例示として、記憶対象レコードには、図5Bに示したようなフィールド(field)が含まれることができる。ここで、Shard Record(共有記録)に副本(shard)の一部のメタ情報(Meta information)を記録することができ、循環余剰検査コード(crc:Cyclic Redundancy Code)、長さ(length)などのコンテンツを含むことができる。Key+meta(キーメタ)中に、ユーザにより指定された説明情報を記録することができる。Binary dataは、一般に副本の実際のデータ(shard data)であることができる。当該データの後面に、固定されていない長さの、ゼロで埋めて合わせるためのフィールド(即ち、filled zero)が存在することができる。これにより、各レコード(record)がすべて4kbの整数倍であることを確保することができる。
実行主体の負荷を減少するために、各ストレージファイルは、内部ストレージスペースの自己管理を行うこともできることが理解できる。例えば、1つのストレージファイルに対して、1つのデータブロック管理ユニット(BlockManager)501と複数のタイプ管理ユニット(BlockLinkList)502が設置されることができる。ここで、データブロック管理ユニットは、データブロックを割り当てて回収するために使用されることができる。各タイプ管理ユニットは、1つのタイプのストレージ情報を管理するためのものであることができる。例えば、図5Aのtype=128のタイプ管理ユニットは、自分割り当てたデータブロックのリスト(例えば、block37)及び自分が入力したレコードの数(例えば、4個)を記憶することができる。このようにして、記録された数によって、最後の1つのデータブロック(例えば、block37)に使用可能な残りのストレージスペースがどれだけあるかを計算することができる。ストレージスペースが足りない場合、データブロックを割り当てたことを表示するための情報をデータブロック管理ユニットに送信することができる。このとき、データブロック管理ユニットは、それに1つの新しいデータブロック(例えば、block49)を割り当てることができる。このようにして、実行主体全体の処理効率及び性能を向上させることに役立つ。
このとき、各ストレージファイルの内部構造は、すべて自分で既に記憶し記録した位置情報(Location)によって構築されることができる。起動時に、各ストレージファイルは、自分のすべてのレコードを一度スキャンすることができる。これにより、BlockManagerに自分で割り当てたすべでのデータブロックを表示することができる。また、BlockLinkListで各レコードの位置情報を復元するとこができる。スキャンを完了した後、BlockManagerは自分のデータブロックの割り当て情報が分かるようになる。すべてのタイプのBlockLinkListも自分のデータブロックの情報及び自分の現在のレコードの情報が分かるようになる。
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。これにより、ストレージファイルで、タイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースが存在しないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。このようにして、スペースの断片の発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。
図3に、本発明に係るデータを記憶するための方法のもう1つの実施例のフロー300を示す。本実施例において、ディスクに少なくとも2つのストレージファイルが構成されることができる。また、ディスクのディレクトリ中に当該ディスク上の各ストレージファイルのインデックス情報が記憶されることができる。言い換えれば、各ストレージファイルは、インデックス情報とデータ情報を含むことができる。ここで、インデックス情報には、ストレージファイルの内部にどのようなレコード及びレコードの状態が記憶されているのかが記録される。データ情報は、主にストレージファイルの内部に記憶された実際のデータを指す。即ち、ディスクに入力されるレコードは、すべてディレクトリに当該レコードのインデックス情報が記録される。ここで、インデックス情報は、レコードの位置情報を含むことができる。
例示として、ディスクの構造を図5Cに示す。ここで、Rocksdb503は、ディスクのディレクトリを表示し、キー値(key−value)記憶方式を使用し、Vlet504(Vlet_110_3及びVlet……)は、ストレージファイルを表示することができる。説明すべき点は、1つのディスクは、一般的にただ1つのディレクトリ実例を有する。インデックス情報とデータ情報を分けて記憶することにより、レコードが存在するか否かを迅速に検索できるように確保することができる。選択可能に、インデックス情報は、フルメモリ方式で記憶することができるが、メモリのサイズに制限される。ここで、ディレクトリを使用して記憶すると、メモリの制限を受けないが、別のIOが発生することができる。このとき、キャッシュ(cache)メモリを構成して、メモリの使用とIOの使用を好ましく平衡させることができる。
本実施例において、データを記憶するための方法は、以下のステップをさらに含むことができる。
ステップ301において、ディレクトリから読み取り対象レコードの位置情報を検索する。
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから読み取り対象レコードを検索することができる。読み取り対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。
ステップ302において、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定することができる。
本実施例において、位置情報にレコードのタイプが含まれた場合、実行主体は、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプを確定することができる。または、実行主体は、位置情報に基づいて、読み取り対象レコードが位置されるストレージファイル及びデータブロックを確定することができ、これによりそのタイプを確定することができる。併せて、それの位置するデータブロックのストレージスペース及び当該データブロックに記憶されたレコードの情報に基づいて、読み取り対象レコードの当該データブロックにおける位置オフセットを確定する。ここで、位置オフセットは、データブロックにおけるレコードの開始位置を表示するために使用されることができる。
例示として、図5Aに示されたように、実行主体は、ディスクのディレクトリからレコードのYの位置情報が[vlet_id=110_3,record_type=126,record_id=9,block_id=3,next_block_id=4]であることを検索することができる。このとき、Vlet_110_3のうちのデータブロックのストレージスペースに基づいて、レコードYのblock3中の位置オフセットが2M−64KB(64KB=4M−8×504KB)であることを算出することができる。
ステップ303において、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって指示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取る。
本実施例において、実行主体は、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定することができる。さらに、実行主体は、ステップ302で確定された位置オフセットによって示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取ることができる。例えば、上記レコードYのタイプが126である場合、その長さは、504KBであることができる。このとき、実行主体は、block 3において2M−64KBの位置から開始して、長さが504KBであるデータをメモリに1回で読み取ることができる。
ステップ304において、読み取ったデータを読み取り対象レコードとして出力する。
本実施例において、実行主体は、読み取ったデータを読み取り対象レコードとすることができ、それに対してコーディング解析を行うことができる。これにより、解析された後のデータを出力することができ、例えば、端末(例えば、図1に示された端末101、102、103)に送信する。
一部の実施形態において、すべてのインデックス情報が失われた場合にインデックス情報を復元するために、各レコードには、その記憶した後の位置情報のフィールドが含まれることができる。図5Bに示すように、レコードの最後の位置で(例えば、固定された24個のバイト)Record Guard(レコードガード)データ構造を使用する。
選択可能に、実行主体は、コーディング解析する前に、Record Guard情報を検証することができる。併せて、読み取ったデータの所定の位置に補充された所定のデータ(例えば、0)が存在するか否かを検出することができる。所定のデータが存在する場合、読み取ったデータ中の所定のデータを除去または無視することができる。さらに、所定のデータを含まない検証後の読み取ったデータを解析する。
本実施例におけるデータを記憶するための方法において、データを読み取るステップを増加し、読み取り過程を詳細に説明した。本発明におけるデータを記憶するための方法を充実させ完全にした。また、読み取り及び入力過程は、すべて1回のIOPS(Input/Output Operations Per Second、毎秒の読み取り及び入力(I/O)操作を実行する回数)である。このようにして、方法の適用範囲を拡大することに役立つ。
さらに図4に、本発明に係るデータを記憶するための方法のもう1つの実施例のフロー400を示す。当該データを記憶するための方法は、以下のステップを含む。
ステップ401において、ディレクトリから削除対象レコードの位置情報を検索する。
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから削除対象レコードを検索することができる。削除対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。
ステップ402において、削除対象レコードの位置情報に基づいて、対応するストレージファイルにおいて削除対象レコードが属するタイプの現在のストレージ情報を獲得する。
本実施例において、実行主体は、削除対象レコードの位置情報に基づいて、それの位置するストレージファイルを確定することができる。そして、当該ストレージファイルのうち、それが属するタイプの現在のストレージ情報を獲得することができる。
例示として、図5Aに示すように、実行主体は、ディスクのディレクトリから、レコードZの位置情報が[vlet_id=110_3,record_type=128,record_id=2,block_id=37,next_block_id=0]であることを検出することができる。このとき、実行主体は、Vlet_110_3のうち、type=128の現在のストレージ情報、即ち、block37(record1−4)及びblock49(record5)を獲得することができる。
ステップ403において、獲得された現在のストレージ情報に基づいて、記憶されたレコードから最後の1つのレコードを読み取ることができ、削除対象レコードの位置する位置へ読み取られたレコードを伝送し記憶することができる。
本実施例において、獲得された現在のストレージ情報に基づいて、実行主体は、現在の記憶されたレコードから最後の1つのレコードを読み取ることができる。また、読み取られたレコードを、削除対象レコードの位置する位置へ伝送し記憶することができる。
例示として、図5Aに示すように、実行主体は、record_id=5のレコードXを読み取ることができる。これにより、レコードXを転移(Move)してrecord_id=2の位置へ入力することができる。2つのレコードのデータ長さが同じであるので、上書きが可能である。
ステップ404において、読み取られたレコードの転送する前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正する。
本実施例において、実行主体は、読み取られたレコード(例えば、レコードX)の転送前のデータブロック(例えば、block_id=49)中のデータ(例えば、record5)をクリアすることができる。また、読み取られたレコードの位置情報を修正する必要がある。例えば、レコードXの修正後の位置情報は、[record_type=128,record_id=2,block_id=37,next_block_id=0]である。説明すべき点は、削除対象レコードを削除した後、関連する情報(例えば、ディスクのディレクトリ、対応するタイプの下の現在のストレージ情報、レコードXのRecord Guardなど)をさらに更新する必要がある。
ステップ405において、読み取られたレコードの転送前に位置するデータブロックにデータが存在するか否かを確定する。
本実施例において、実行主体は、読み取られたレコードが転送される前に位置したデータブロックに、データが存在するか否かをさらに確定することができる。例えば、図5Aに示すように、レコードXを転送し記憶した後、実行主体は、block49に他のデータが記憶されているか否かを確定する。
ステップ406において、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収する。
本実施例において、実行主体は、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収することができる。例えば、データブロックの既に割り当てられた状態を割り当てていない状態に修正することができる。例えば、図5Aからわかるように、レコードXを転送し記憶した後、block49のストレージスペースは、完全に空である。このとき、BlockManagerは、当該データブロック(FreeBlock49)を回収することができる。
本実施例におけるデータを記憶するための方法において、データを削除するステップを増加し、削除過程を詳細に説明した。本発明におけるデータを記憶するための方法をさらに充実させ完全にした。また、削除過程は、1回の読み取り過程に1回の書き込み過程を加えることに相当し、ディスクの全体の性能を向上させることに役立つ。また、残りのデータ記憶の連続性を確保して、スペースの断片が発生しないようにする。
理解できるのは、上記の各実施例におけるディスクにおいて、それに構築された各ストレージファイルのサイズは同じであることができるので、管理し易く、データ処理の効率を向上させることに有利である。各ストレージファイルのサイズは異なることもできるので、異なるユーザの要求を満たすために役立つ。なお、異なるストレージファイル中のデータブロックのサイズは同じであることができ、異なることもできる。管理の便宜上、各ストレージファイルに構成ファイルがインストールされることができる。ここで、構成ファイルは、ストレージファイルの構成パラメータ情報を説明するために使用されることができる。
図5Aに示すように、ストレージファイルの最後に1つの512KBのファイル(即ち、VletInfo)が存在してもよい。当該ファイルは、自分の構成パラメータ情報を記憶することができ、Protobuf(Google Protocol Buffer)を使用することができ、シンプルで効率的な構造化データの記憶形式である。それはプラットフォームと言語にかかわらず、拡張可能で、使用が簡単で、解析速度が速いなどの特徴を有する。説明すべき点は、このファイルの中のコンテンツはストレージファイルの構成の時のみに生成され、後で修正することができない。
ここで、構成パラメータ情報は、ストレージファイルのサイズ(例えば、32GB)、データブロックのサイズ(例えば、2M)、レコード中の最小タイプ(たとえば、4kB)、レコード中の最大タイプ(例えば、512KB)、レコードタイプの間の間隔(例えば、4kB)などのうち少なくとも一つを含むことができるが、これに限定されない。言い換えれば、ストレージファイルの最後の一つのpageにvletinfoを記憶することに加えて、他の部分はすべて同じサイズのデータブロックであることができる。
なお、説明すべき点は、大量の小さなファイルの記憶は、常に分散型ストレージシステムで解決するのに難しい問題である。ユーザは一般的に読み取り性能、空間利用率、及び削除の効率などの面で折衷する必要があったが、本発明の各実施例におけるデータを記憶する方法において、データの書き込みは、ディスクの1回のランダム読み書きに相当することができる。また、データの削除は、1回の読み取りに書き込みを加えることに相当することができる。このようにして、ディスクの読み書き性能及び削除効率を確保することに役立つ。また、データの書き込み及び削除の時に、スペースの断片が発生しない。また、すぐに空のストレージスペースを回収することができる。このようにして、ディスクの空間利用率を向上させることに役立つ。言い換えれば、本発明における方法は、ユーザの上記の要求をバランスよく合わせることができ、実際の使用中に良好な処理効果に達することができ、ユーザ体験を向上させることに有利であることができる。
本発明の実施例におけるデータを記憶するための方法において、2つのデータブロックにまたがらない限り、すべてのデータの読み書きはすべて1回のIOPSある。ここで、データブロックのサイズを調整したり、データ入力の分割などの措置によって、2つのデータブロックにまたがる状況を減少または防止することができる。読み書き性能は、それぞれのディスクの1回のランダム読み取り、書き込みの消費時間と基本的に同じである。また、書き込みと削除の過程で断片が発生されず、すぐにスペースを回収することができる。削除時に1回の別途のIO書き込みが発生することがあるが、従来の技術の解決手段に比べて、IOの消費はまだ比較的に少ない。
また、空間浪費の側面には、主に2つの部分が存在する。その一つは、同じタイプのデータのサイズをそろえることである。この部分の浪費は、入力データの平均サイズによって異なる。統計によって分かることができるように、ユーザの平均入力データは、一般的に256KBである。結果として生じる空間の浪費は、約0.7%である。他の一つは、各種タイプで割り当てられた最後の1つのデータブロックが埋められないことである。最悪の場合、約127個のデータブロックが1つのレコードだけ存在する。この場合、空間の浪費は約(2M×127)÷32G=0.7%である。分析を通じて、この2つの部分空間の浪費はすべて受け入れ可能であることがわかる。したがって、スループット、遅延、空間利用率などの側面の総合的な比較からみると、上記の方法は、既存の技術よりも優れている。
説明すべき点は、本発明の実施例の方法は、主にデータの規模がEB級の場合、読み取りが書き込みより多い場合、書き込みが削除より多い場合に使用されることができる。これは、スペース使用率について極めて厳しく要求(即ち、コスト削減)する。併せて、読み書き遅延とスループットに比較的に高く要求する。
続いて図6に示すように、上記の各図に示された方法の実現として、本発明は、データを記憶するための装置の1つの実施例を提供する。当該装置の実施例は、上記各実施例に示した方法の実施例と対応され、当該装置は、具体的に、様々な電子機器に適用されることができる。
図6に示すように、本実施例のデータを記憶するための装置600は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成されることができる。スタンドアロンストレージエンジンのディスクには、ストレージファイルが構成されることができる。ここで、ストレージファイルのストレージスペースは、少なくとも2つのデータブロックに分けられ、且つ少なくとも2つのデータブロックの間ではリンクリスト構造を使用することができる。当該装置600は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニット601と、ストレージファイルでタイプの現在のストレージ情報を検索するように構成される検索ユニットであって、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含み、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なる、検索ユニット602と、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニット603と、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶するように構成される第1割り当てユニット604と、を備えることができる。
本実施例のある選択可能な実施形態において、当該装置600は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように構成されるサイズ確定ユニット(図6に図示せず)と、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように構成される第2割り当てユニット(図6に図示せず)と、をさらに備えることができる。
選択可能に、少なくとも2つのデータブロックのストレージスペースは同じであることができ、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることができる。
さらに、当該装置600は、当該タイプの現在のストレージ情報を更新し、そして記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように構成される位置生成ユニット(図6に図示せず)をさらに備えることができる。ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを備える。
一部の実施形態において、ディスクに少なくとも2つのストレージファイルが構成されることができ、且つディスクのディレクトリに各ストレージファイルのインデックス情報が記憶されることができる。
選択可能に、当該装置600は、ディレクトリから読み取り対象レコードの位置情報を検索するように構成される第1位置検索ユニット(図6に図示せず)と、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように構成される確定ユニット(図6に図示せず)と、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、そして読み取ったデータを前記読み取り対象レコードとして出力するように構成される読み取りユニット(図6に図示せず)と、をさらに備えることができる。
さらに、当該装置600は、ディレクトリから削除対象レコードの位置情報を検索するように構成される第2位置検索ユニット(図6に図示せず)と、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように構成される獲得ユニット(図6に図示せず)と、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように構成される転送ユニット(図6に図示せず)と、読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように構成される修正ユニット(図6に図示せず)と、をさらに備えることができる。
一部の実施形態において、当該装置600は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように構成される回収ユニット(図6に図示せず)をさらに備えることができる。
一部の実施形態において、当該装置600は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように構成されるコーディングユニット(図6に図示せず)と、当該副本の説明情報及びデータを配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように構成されるレコード生成ユニット(図6に図示せず)と、をさらに備えることができる。
選択可能に、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定するように構成される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズが当該一部のタイプのうち対応するデータのサイズが最も小さいタイプである目標タイプに対応するデータのサイズと同じにし、当該サブオブジェクトの1つの記憶対象レコードを生成するように構成される第1生成サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値よりも大きい場合、当該副本に分割及びゼロで埋めを行って、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の1つとそれぞれ同じにし、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成するように構成される第2生成サブユニットと、を備えることができる。
理解できるのは、当該装置600に記載のいくつかのユニットは、図2〜図4に説明された方法中の各ステップに対応される。これにより、上記の方法について説明した操作、機能、及び生成された有益な効果は、同様に、当該装置600及びその中に含まれるユニットに適用され、ここで繰り返して説明しない。
図7を参照すると、本発明に係るデータを記憶するためのシステムの1つの実施例のタイミング図を示す。
本実施例におけるデータを記憶するためのシステムは、第1サブシステム、第2サブシステム及び上記の各実施例に説明したスタンドアロンストレージエンジンがインストールされた第3サブシステムを備えることができる。第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、少なくとも1つのサブオブジェクトを第3サブシステムに送信するように構成される。第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成される。第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトにコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶するように構成される。
図7に示されたように、ステップ701において、第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。
本実施例において、第1サブシステムは、有線接続方式または無線接続方式によって、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。ここで、記憶待ちオブジェクトは、分散型オブジェクトストレージシステムのでデータあることができる。
ステップ702において、第1サブシステムは、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割することができる。ここで、分割方式は、実際の需要に応じて設定することができる。
ステップ703において、第1サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を第2サブシステムに送信することができ、少なくとも1つのサブオブジェクトを第3サブシステムに送信することができる。
ステップ704において、第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶することができる。
ステップ705において、第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶することができる。これは、図2の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。
本実施例のある選択可能な実施形態において、例えば、ステップ706において、第3サブシステムは、データ記憶完了を表示するための応答情報を第1サブシステムに送信することができる。
その後、ステップ707において、第1サブシステムは、応答情報を受信した場合、記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子をユーザにフィードバックする。このようにして、ユーザは、クエリ識別子によって、それが示したオブジェクトデータにアクセスすることができる。ここで、クエリ識別子は、数字、アルファベット、文字などの少なくとも一つの文字符号を含むがそれに限定されない。
選択可能に、例えば、ステップ708において、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む読み取り要求を受信することができる。
続いて、ステップ709において、第1サブシステムは、読み取り要求中のクエリ識別子を第2サブシステムに送信することができる。
その後、ステップ710において、第2サブシステムは、読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得することができ、サブオブジェクトリストを第3サブシステムに送信することができる。
その後、ステップ711において、第3サブシステムは、サブオブジェクトリストに応じて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、オブジェクトデータを第1サブシステムに送信することができる。これは、図3の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。
最後に、ステップ712において、第1サブシステムは、オブジェクトデータをユーザにフィードバックすることができる。
あるアプリケーションシナリオにおいて、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む削除要求をさらに受信することができる。このようにして、第3サブシステムは、図4の実施例に関連する説明に応じて、削除要求が示したオブジェクトデータを削除することができる。ここで繰り返して説明しない。
理解できるのは、上記第1サブシステム、第2サブシステム及び第3サブシステムは、異なる電子機器(例えば、3台のサーバ)に位置されることができ、同じ電子機器(図1に示したサーバ105)に位置されることもできる。且つ一部の実施形態において、第1サブシステムに第2サブシステムの機能が備えられた場合、本実施例中のシステムは第2サブシステムをインストールしなくてもよい。
本実施例のデータを記憶するためのシステムにおいて、新しいデータの記憶方法を適用し、即ち、データのサイズに応じて分類して記憶する。このようにして、データの分散型ストレージを実現することができるのみならず、データの安全性を向上させる。併せて、全体的なデータ処理性能を向上させ、動作コストを減少させることができる。
以下、図8を参照すると、本出願の実施例に係る電子機器(例えば、図1に示されたサーバ105)を実現するために適用されるコンピュータシステム800の構造模式図を示す。図8に示された電子機器は、ただ1つの実施例を示しただけで、本発明の実施例の機能と使用範囲に限定を加えるものではない。
図8に示されたように、コンピュータシステム800は、読み取り専用メモリ(ROM)802におけるプログラムまたは記憶部分808からランダムアクセスメモリ(RAM)803にローディングされたプログラムによって、様々な適切な動作及び処理を実行することができる中央処理装置(CPU)801を備える。RAM803にはさらにシステム800の操作に必要な各種プログラムとデータが記憶されている。CPU801、ROM802及びRAM803は、バス804を介して相互接続される。入力/出力(I/O)インターフェース805もバス804に接続される。
キーボード、マウスなどを備える入力部分806、陰極線管(cathode−ray tube、CRT)、液晶ディスプレイ(LCD)など及びスピーカなどを備える出力部分807、ハードディスクなどを備える記憶部分808、及びLANカード、モデムなどを備えるネットワークインターフェースカードの通信部分809は、I/Oインターフェース805に接続される。通信部分809は、インターネットなどのネットワークを介して通信処理を実行する。ドライバ810も必要に応じてI/Oインターフェース805に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル媒体811は、必要に応じてドライバ810に装着されて、それから読み出されるコンピュータプログラムが必要に応じて記憶部分808にインストールされるようにする。
特に、本発明に係る実施例において、フローチャートを参照して上述した過程は、コンピュータソフトウェアプログラムとして実現されることができる。例えば、本開示の実施例は、コンピュータ可読媒体に担持されているコンピュータプログラムを備えるコンピュータプログラム製品を備え、当該コンピュータプログラムは、フローチャートに示された方法を実行するプログラムコードを備える。このような実施例において、当該コンピュータプログラムは、通信部分809を介してネットワークからダウンロード及びインストールされることができ、及び/またはリムーバブル媒体811からインストールされることができる。当該コンピュータプログラムが中央処理装置(CPU)801によって実行される時、本発明の方法に限定された前記機能を実行する。本発明に記載のコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体または両方の任意の組み合わせであることができることを説明すべきである。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはこれらの任意の組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例は、1つまたは複数のワイヤを有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光記憶素子、磁気記憶素子、またはこれらの任意の組み合わせを備えるが、これらに限定されない。本発明において、コンピュータ可読媒体は、プログラムを備えるかまたは記憶する任意の有形の媒体であることができ、当該プログラムは、指令実行システム、装置、または素子によって使用され、またはそれらとの結合によって使用される。本発明において、コンピュータ可読信号媒体は、コンピュータが読み取り可能なプログラムコードを担持し、ベースバンドに備えたり、または搬送波の一部として伝播されるデータ信号に備えることができる。このように伝播されたデータ信号は、電磁信号、光信号、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されない様々な形態をとることができる。コンピュータ可読信号媒体は、またコンピュータ可読記憶媒体以外のいずれのコンピュータ可読媒体であることができ、当該コンピュータ可読媒体は、指令実行システム、装置または素子によって使用され、またはそれらとの結合によって使用されるプログラムを送信、伝播、または移送することができる。コンピュータ可読媒体に含まれるプログラムコードは、無線、ワイヤ、光ファイバケーブル、RFなど、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されないいずれの適切な媒体によって伝送されることができる。
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びコンピュータプログラム製品の実現可能な実施形態の構造、機能、及び操作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、1つのモジュール、プログラムセグメントまたはコードの一部を表すことができ、当該モジュール、プログラムセグメントまたはコードの一部は、規定された論理機能を実現するための1つまたは複数の実行可能な指令を備える。また、代替実施形態において、ブロックに示されている機能は、図面に示されているものとは異なる順序で発生することもあることに留意されたい。例えば、連続して表示された2つのブロックは、実際には実質的に並列に実行されてもよく、それらは含まれる機能に応じて逆の順序で実行されてもよい。また、ブロック図及び/またはフローチャートの各ブロック、及びブロック図及び/またはフローチャートのブロックの組み合わせは、規定された機能または操作を実行する専用のハードウェアベースのシステムで実現され、または専用のハードウェアとコンピュータ指令の組み合わせによって実現されることができることにも留意されたい。
本発明の実施例で言及されたユニットは、ソフトウェアによって実現されることができ、またはハードウェアによって実現されることもできる。記述されたユニットは、また、例えば、タイプ確定ユニット、検索ユニット、スペース確定ユニット及び第1割り当てユニットを備えるプロセッサーとして記述されるプロセッサーに設置されることができる。ここで、これらのユニットの名称は、当該ユニット自体を限定するものではない場合があり、例えば、タイプ確定ユニットは、また、「記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定するユニット」と記述されることもできる。
他の態様として、本発明は、コンピュータ可読媒体をさらに提供し、当該コンピュータ可読媒体は、前記実施例で説明した電子機器に含まれることができ、または別途に存在し、当該電子機器にインストールされていないことができる。前記コンピュータ可読媒体は、1つまたは複数のプログラムが担持されることができ、1つまたは複数のプログラムが当該サーバによって実行される場合、当該電子機器は、記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定し、ストレージファイルで、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を備える、タイプの下の現在のストレージ情報を検索し、ここで、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なり、現在のストレージ情報に応じて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定し、残りのストレージスペースがないと確定されたことに応答して、タイプの下に新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。
以上の説明は、本発明の好ましい実施例及び応用された技術の原理の説明にすぎない。本発明で言及される本発明の範囲は、前記の技術的特徴の特定の組み合わせに限定されず、併せて、前記の発明構想から逸脱することなく、前記の技術的な特徴または均等な特徴を任意に組み合わせて形成された。例えば、前記の特徴と本発明において開示されるがこれに限定されない技術的特徴と類似した機能を有する技術的特徴が互いに交換されて形成される他の技術的解決手段を網羅すべきであることを当業者は理解すべきである。

Claims (16)

  1. データを記憶するための方法であって、前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、
    前記方法は、
    記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、
    前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、
    前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、
    前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含むデータを記憶するための方法。
  2. 前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、
    前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、
    前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含むことを特徴とする
    請求項1に記載のデータを記憶するための方法。
  3. 前記少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることを特徴とする
    請求項1に記載のデータを記憶するための方法。
  4. 前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、
    前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことを特徴とする
    請求項1乃至3のいずれか一項に記載のデータを記憶するための方法。
  5. 前記ディスクに少なくとも2つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されていることを特徴とする
    請求項4に記載のデータを記憶するための方法。
  6. 前記ディレクトリから読み取り対象レコードの位置情報を検索することと、
    前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、
    前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含むことを特徴とする
    請求項5に記載のデータを記憶するための方法。
  7. 前記ディレクトリから削除対象レコードの位置情報を検索することと、
    前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、
    獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、
    前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含むことを特徴とする
    請求項5に記載のデータを記憶するための方法。
  8. 前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、
    前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、
    当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含むことを特徴とする
    請求項7に記載のデータを記憶するための方法。
  9. 前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、
    記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、
    当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含むことを特徴とする
    請求項1乃至8のいずれか一項に記載のデータを記憶するための方法。
  10. 前記サブオブジェクトの記憶対象レコードを生成することは、
    配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、
    前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、
    前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、
    前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプであることを特徴とする
    請求項9に記載のデータを記憶するための方法。
  11. データを記憶するための装置であって、前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、
    前記装置は、
    記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、
    前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、
    前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、
    前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備えるデータを記憶するための装置。
  12. データを記憶するためのシステムであって、
    第1サブシステム、第2サブシステム及び請求項1乃至10のいずれか一項に記載のスタンドアロンストレージエンジンがインストールされた第3サブシステムを備え、
    前記第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、前記少なくとも1つのサブオブジェクトを前記第3サブシステムに送信するように構成され、
    前記第2サブシステムは、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、
    前記第3サブシステムは、前記少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶するように構成されるデータを記憶するためのシステム。
  13. 前記第3サブシステムは、データ記憶完了を表示するための応答情報を前記第1サブシステムに送信するようにさらに構成され、
    前記第1サブシステムは、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするようにさらに構成されることを特徴とする
    請求項12に記載のデータを記憶するためのシステム。
  14. 前記第1サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第2サブシステムに送信するようにさらに構成され、
    前記第2サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第3サブシステムに送信するようにさらに構成され、
    前記第3サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第1サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第1サブシステムに送信するようにさらに構成されることを特徴とする
    請求項13に記載のデータを記憶するためのシステム。
  15. 電子機器であって、
    1つまたは複数のプロセッサーと、
    1つまたは複数のプログラムを記憶するための記憶装置と、を備え、
    前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが請求項1乃至10のいずれか一項に記載の方法を実現する電子機器。
  16. コンピュータプログラムが記憶されているコンピュータ可読媒体であって、
    前記コンピュータプログラムがプロセッサーによって実行される時、請求項1乃至10のいずれか一項に記載の方法が実現されるコンピュータ可読媒体。
JP2019127387A 2018-09-04 2019-07-09 データを記憶するための方法、装置及びシステム Active JP6778795B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811024928.8A CN109254733B (zh) 2018-09-04 2018-09-04 用于存储数据的方法、装置和系统
CN201811024928.8 2018-09-04

Publications (2)

Publication Number Publication Date
JP2020038623A true JP2020038623A (ja) 2020-03-12
JP6778795B2 JP6778795B2 (ja) 2020-11-04

Family

ID=65046720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019127387A Active JP6778795B2 (ja) 2018-09-04 2019-07-09 データを記憶するための方法、装置及びシステム

Country Status (3)

Country Link
JP (1) JP6778795B2 (ja)
KR (1) KR102240557B1 (ja)
CN (1) CN109254733B (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699092A (zh) * 2021-01-13 2021-04-23 浪潮云信息技术股份公司 一种RocksDB存储大值数据的方法
CN113010105A (zh) * 2021-02-25 2021-06-22 深圳市广和通无线股份有限公司 一种数据备份的方法、装置、设备和计算机可读存储介质
CN113495889A (zh) * 2021-07-07 2021-10-12 浙江大华技术股份有限公司 一种分布式对象存储方法、装置、电子设备及存储介质
CN113836332A (zh) * 2021-09-08 2021-12-24 北京灵汐科技有限公司 存储设备
CN115190136A (zh) * 2021-04-21 2022-10-14 统信软件技术有限公司 一种数据存储方法、数据传输方法及计算设备
CN115933972A (zh) * 2022-11-24 2023-04-07 中国华能集团清洁能源技术研究院有限公司 多专业仿真平台的分布式数据存储方法及系统
CN116521091A (zh) * 2023-06-28 2023-08-01 苏州浪潮智能科技有限公司 数据读取方法、装置、设备、数据传输系统及存储介质
CN116910825A (zh) * 2023-09-12 2023-10-20 上海融和元储能源有限公司 一种基于kafka的数据同步方法及装置
CN117078213A (zh) * 2023-10-11 2023-11-17 潍坊威尔信息技术有限公司 基于大数据整合分析的建筑工程管理平台
CN117082083A (zh) * 2023-08-30 2023-11-17 杭州浩联智能科技有限公司 一种基于分布式物联网架构的数据存储方法、装置及介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918381B (zh) * 2019-03-13 2021-06-11 北京百度网讯科技有限公司 用于存储数据的方法和装置
CN110059087B (zh) * 2019-03-26 2023-02-28 创新先进技术有限公司 一种块链式账本中的数据属性标识方法、装置及设备
CN112085424A (zh) * 2019-06-14 2020-12-15 北京京东振世信息技术有限公司 存储物品的方法、装置、设备和计算机可读介质
CN110427377B (zh) * 2019-08-02 2023-12-26 北京博睿宏远数据科技股份有限公司 数据处理方法、装置、设备和存储介质
CN110727639B (zh) * 2019-10-08 2023-09-19 深圳市网心科技有限公司 碎片数据读取方法、电子设备、系统及介质
CN112765046A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于回收存储空间的方法、设备和计算机程序产品
CN110781146A (zh) * 2019-10-28 2020-02-11 宁波三星智能电气有限公司 事件存储方法、电力终端及计算机可读存储介质
CN111399762B (zh) 2019-11-27 2021-06-18 杭州海康威视系统技术有限公司 数据存储方法、装置及存储系统
CN111198807B (zh) * 2019-12-18 2023-10-27 中移(杭州)信息技术有限公司 数据流分析方法、装置、计算机设备及存储介质
CN111522507B (zh) * 2020-04-14 2021-10-01 中山大学 一种低延迟的文件系统地址空间管理方法、系统及介质
CN113296684B (zh) * 2020-05-12 2025-02-21 阿里巴巴集团控股有限公司 分布式系统中的数据写入方法及装置、分布式系统
CN111694521B (zh) * 2020-06-17 2022-08-05 杭州海康威视系统技术有限公司 存储文件的方法、装置及系统
CN111797032B (zh) * 2020-06-19 2022-09-23 南京南瑞继保工程技术有限公司 存储结构、方法、装置、设备及可读存储介质
CN114430458B (zh) * 2020-10-29 2023-12-19 北京小米移动软件有限公司 防抖数据获取方法、防抖数据获取装置以及存储介质
CN112506918B (zh) * 2020-11-03 2024-06-04 深圳市宏电技术股份有限公司 数据存取方法、终端及计算机可读存储介质
CN113486026A (zh) * 2021-08-02 2021-10-08 北京字节跳动网络技术有限公司 数据处理方法、装置、设备及介质
CN113986117A (zh) * 2021-09-13 2022-01-28 阿里云计算有限公司 文件的存储方法、系统、计算设备及存储介质
CN114116795B (zh) * 2021-11-01 2022-12-20 北京力控元通科技有限公司 一种数据存储和查询方法、装置、存储介质及电子设备
CN115061401A (zh) * 2022-06-15 2022-09-16 广东万颗子智控科技有限公司 空调控制参数的加载方法、装置、计算机设备和存储介质
CN114816277B (zh) * 2022-06-30 2022-11-11 广东睿江云计算股份有限公司 文件数据块顺序性保障的控制方法及控制系统
CN116010997B (zh) * 2023-03-20 2023-08-01 中国信息通信研究院 基于区块链的连续性校验的数据资源托管方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136384A1 (en) * 2005-12-13 2007-06-14 Dietmar Hepper Method and apparatus for organizing nodes in a network
JP2011191835A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd 計算機システムおよびアプリケーションプログラムの実行方法
JP2012073777A (ja) * 2010-09-28 2012-04-12 Kddi Corp 分散ファイルシステム制御装置
JP2017076370A (ja) * 2015-10-14 2017-04-20 バイドゥ ネットコム サイエンス アンド テクノロジー(ペキン) カンパニー リミテッド 分散システム用ファイル処理方法、および装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030058687A (ko) * 2001-12-31 2003-07-07 주식회사 케이티 공간 데이터 특성에 따른 데이터 관리방법
KR100449419B1 (ko) * 2002-06-14 2004-09-18 학교법인 인하학원 데이터 크기에 따른 선별적 공간데이터 관리방법
KR100694069B1 (ko) * 2004-11-29 2007-03-12 삼성전자주식회사 상이한 크기를 가지는 복수 개의 데이터 블록들을포함하는 저장 장치 및 이를 이용한 파일 관리 방법 및이를 포함하는 인쇄 장치
KR100834574B1 (ko) * 2006-09-29 2008-06-02 한국전자통신연구원 파일 저장 시스템 및 그 시스템에서의 파일 저장 및 검색방법
CN100583832C (zh) * 2007-03-30 2010-01-20 华为技术有限公司 数据管理方法及系统
CN101446976A (zh) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 一种分布式文件系统中的文件存储方法
JP5677336B2 (ja) 2011-08-01 2015-02-25 株式会社東芝 メモリ・デバイス
US9582204B2 (en) 2014-01-07 2017-02-28 Apple Inc. Speculative prefetching of data stored in flash memory
KR101525453B1 (ko) * 2014-04-09 2015-06-04 인하대학교 산학협력단 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법
CN106462491B (zh) * 2014-12-31 2020-08-14 华为技术有限公司 一种存储数据的管理方法、存储管理器及存储系统
CN107967121B (zh) * 2017-10-25 2020-04-14 华为技术有限公司 数据写入方法和存储设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136384A1 (en) * 2005-12-13 2007-06-14 Dietmar Hepper Method and apparatus for organizing nodes in a network
JP2007164794A (ja) * 2005-12-13 2007-06-28 Thomson Licensing ネットワーク内のノードを自動的に分類する方法および装置
JP2011191835A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd 計算機システムおよびアプリケーションプログラムの実行方法
JP2012073777A (ja) * 2010-09-28 2012-04-12 Kddi Corp 分散ファイルシステム制御装置
JP2017076370A (ja) * 2015-10-14 2017-04-20 バイドゥ ネットコム サイエンス アンド テクノロジー(ペキン) カンパニー リミテッド 分散システム用ファイル処理方法、および装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699092A (zh) * 2021-01-13 2021-04-23 浪潮云信息技术股份公司 一种RocksDB存储大值数据的方法
CN113010105A (zh) * 2021-02-25 2021-06-22 深圳市广和通无线股份有限公司 一种数据备份的方法、装置、设备和计算机可读存储介质
CN115190136B (zh) * 2021-04-21 2024-03-01 统信软件技术有限公司 一种数据存储方法、数据传输方法及计算设备
CN115190136A (zh) * 2021-04-21 2022-10-14 统信软件技术有限公司 一种数据存储方法、数据传输方法及计算设备
CN113495889A (zh) * 2021-07-07 2021-10-12 浙江大华技术股份有限公司 一种分布式对象存储方法、装置、电子设备及存储介质
CN113495889B (zh) * 2021-07-07 2024-03-15 浙江大华技术股份有限公司 一种分布式对象存储方法、装置、电子设备及存储介质
CN113836332A (zh) * 2021-09-08 2021-12-24 北京灵汐科技有限公司 存储设备
CN115933972A (zh) * 2022-11-24 2023-04-07 中国华能集团清洁能源技术研究院有限公司 多专业仿真平台的分布式数据存储方法及系统
CN115933972B (zh) * 2022-11-24 2024-05-31 中国华能集团清洁能源技术研究院有限公司 多专业仿真平台的分布式数据存储方法及系统
CN116521091A (zh) * 2023-06-28 2023-08-01 苏州浪潮智能科技有限公司 数据读取方法、装置、设备、数据传输系统及存储介质
CN116521091B (zh) * 2023-06-28 2023-09-15 苏州浪潮智能科技有限公司 数据读取方法、装置、设备、数据传输系统及存储介质
CN117082083A (zh) * 2023-08-30 2023-11-17 杭州浩联智能科技有限公司 一种基于分布式物联网架构的数据存储方法、装置及介质
CN116910825B (zh) * 2023-09-12 2023-12-15 上海融和元储能源有限公司 一种基于kafka的数据同步方法及装置
CN116910825A (zh) * 2023-09-12 2023-10-20 上海融和元储能源有限公司 一种基于kafka的数据同步方法及装置
CN117078213A (zh) * 2023-10-11 2023-11-17 潍坊威尔信息技术有限公司 基于大数据整合分析的建筑工程管理平台
CN117078213B (zh) * 2023-10-11 2024-03-29 潍坊威尔信息技术有限公司 基于大数据整合分析的建筑工程管理平台

Also Published As

Publication number Publication date
CN109254733A (zh) 2019-01-22
KR102240557B1 (ko) 2021-04-14
KR20200027413A (ko) 2020-03-12
CN109254733B (zh) 2021-10-01
JP6778795B2 (ja) 2020-11-04

Similar Documents

Publication Publication Date Title
JP6778795B2 (ja) データを記憶するための方法、装置及びシステム
US11645183B1 (en) User interface for correlation of virtual machine information and storage information
US9507800B2 (en) Data management in distributed file systems
US11232070B2 (en) Metadata compaction in a distributed storage system
US8775479B2 (en) Method and system for state maintenance of a large object
CN105183839A (zh) 一种基于Hadoop的小文件分级索引的存储优化方法
CN110457281A (zh) 数据处理方法、装置、设备及介质
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
US20160048430A1 (en) Method of operating a shared nothing cluster system
EP3610364B1 (en) Wan optimized micro-service based deduplication
CN104679665A (zh) 一种实现分布式文件系统块存储的方法及系统
JP2016512906A (ja) データを柔軟に配置するための多層記憶管理
US11625192B2 (en) Peer storage compute sharing using memory buffer
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
US20180107404A1 (en) Garbage collection system and process
CN103067519A (zh) 一种异构平台下数据分布存储的方法及装置
CN105653209A (zh) 一种对象存储数据传输方法及装置
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
CN110245129B (zh) 一种分布式全局数据去重方法和装置
CN109597903A (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN112866406B (zh) 一种数据存储方法、系统、装置、设备及存储介质
CN113806300A (zh) 数据存储方法、系统、装置、设备及存储介质
CN117111856A (zh) 一种数据湖数据处理方法、装置、系统、设备及介质
CN102282545A (zh) 存储系统
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200731

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R150 Certificate of patent or registration of utility model

Ref document number: 6778795

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250