JP6778795B2 - Methods, devices and systems for storing data - Google Patents

Methods, devices and systems for storing data Download PDF

Info

Publication number
JP6778795B2
JP6778795B2 JP2019127387A JP2019127387A JP6778795B2 JP 6778795 B2 JP6778795 B2 JP 6778795B2 JP 2019127387 A JP2019127387 A JP 2019127387A JP 2019127387 A JP2019127387 A JP 2019127387A JP 6778795 B2 JP6778795 B2 JP 6778795B2
Authority
JP
Japan
Prior art keywords
data
storage
record
size
type
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.)
Active
Application number
JP2019127387A
Other languages
Japanese (ja)
Other versions
JP2020038623A (en
Inventor
チェン,ソンジャ
リュウ,ジャン
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/en
Application granted granted Critical
Publication of JP6778795B2 publication Critical patent/JP6778795B2/en
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/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]
    • 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/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/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

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)

Description

本発明の実施形態は、分散型オブジェクトストレージの技術分野に関し、具体的には、データを記憶するための方法、装置及びシステムに関する。 Embodiments of the present invention relate to the technical field of distributed object storage, specifically to methods, devices and systems for storing data.

分散型ストレージシステムは、通常、データを複数の独立した機器に分散して記憶する。従来のネットワークストレージシステムは、すべてのデータを記憶するために集中型ストレージサーバを使用している。この時のストレージサーバは、システムパフォーマンスのボトルネックになり、信頼性と安全性の焦点にもなって、大規模なストレージアプリケーションのニーズを満たすことができない。分散型ネットワークストレージシステムは、スケーラブルなシステム構造を使用することが多く、複数のストレージサーバを利用してストレージ負荷を共有し、位置サーバを利用してストレージ情報の位置を確定する。これは、システムの信頼性、可用性、アクセス効率を向上させるだけでなく、拡張も容易にする。 A distributed storage system typically stores data in a distributed manner across a plurality of independent devices. Traditional network storage systems use a centralized storage server to store all the data. The storage server at this time becomes a bottleneck of system performance and also becomes a focus of reliability and safety, and cannot meet the needs of large-scale storage applications. A distributed network storage system often uses a scalable system structure, uses multiple storage servers to share a storage load, and uses a location server to determine the location of storage information. This not only improves system reliability, availability, and access efficiency, but also facilitates expansion.

本発明の実施形態は、データを記憶するための方法、装置及びシステムを提供する。 Embodiments of the present invention provide methods, devices and systems for storing data.

第1の態様において、本発明の実施形態は、データを記憶するための方法を提供する。前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、前記方法は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含む。 In a first aspect, embodiments of the present invention provide a method for storing data. The method is used for a stand-alone storage engine of distributed object storage, a storage file is configured on the disk of the stand-alone storage engine, the storage space of the storage file is divided into at least two data blocks, and the at least two data. Using a link list structure between blocks, the method determines the type of the storage record based on the size of the data in the storage record and the current storage information of the type in the storage file. By retrieving, the current storage information includes information on the currently allocated data block and information on the currently stored record of the data block and is stored in the same type of storage file. The size of the data in the records is the same, the size of the data in the records stored in different types is different, and the remaining storage space in the currently allocated data block based on the current storage information. In response to determining whether or not exists and determining that there is no remaining storage space, a new data block is assigned to the type and the storage target record is stored in the new data block. Including to do.

一部の実施形態において、データを記憶するための方法は、前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含む。 In some embodiments, the method for storing data is such that the remaining storage space is not smaller than the size of the data in the storage target record in response to the determination that there is the remaining storage space. In response to further determining whether or not, and determining that the remaining storage space is smaller than the size of the data in the storage target record, some data in the storage target record is stored in the remaining storage. It further includes storing in a space and allocating a new data block to the type to store the rest of the data in the storage target record in the new data block.

一部の実施形態において、前記少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。 In some embodiments, the storage space of the at least two data blocks is the same, and the size of the data in the records stored in different types is all an integral multiple of a predetermined number.

一部の実施形態において、データを記憶するための方法は、前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。 In some embodiments, the method for storing data is to update the current storage information of the type, generate the stored location information of the storage target record, and output the location information. Further included, the location information includes at least one of the type of record, the identifier of the record, and the identifier of the data block in which the record is located.

一部の実施形態において、前記ディスクに少なくとも2つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されている。 In some embodiments, at least two storage files are configured on the disk, and index information for each storage file is stored in a directory on the disk.

一部の実施形態において、データを記憶するための方法は、前記ディレクトリから読み取り対象レコードの位置情報を検索することと、前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含む。 In some embodiments, the method for storing data is to retrieve the location information of the read target record from the directory and, based on the location information of the read target record, the type of the read target record and Determine the position offset in the located data block of the corresponding storage file, determine the length of the read target record based on the type of the read target record, and determine the position displayed by the position offset. It further includes reading data having a length corresponding to the length of the read target record, and outputting the read data as the read target record.

一部の実施形態において、データを記憶するための方法は、前記ディレクトリから削除対象レコードの位置情報を検索することと、前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含む。 In some embodiments, the method for storing data is to search for the location information of the record to be deleted from the directory and to delete the deletion in the corresponding storage file based on the location information of the record to be deleted. Acquiring the current storage information of the type to which the target record belongs, reading the last record from the currently stored record based on the acquired current storage information, and deleting the read record. It further includes transferring and storing the position of the record, clearing the data in the pre-transfer data block of the read record, and correcting the position information of the read record.

一部の実施形態において、前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含む。 In some embodiments, the method for storing the data after clearing the data in the pre-transfer data block of the read record is to the data block where the read record was located before the transfer. It further includes determining if the data exists and, if the data block does not exist, retrieving the data block for reassignment.

一部の実施形態において、前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含む。 In some embodiments, a method for storing the data, based on the size of the data in the storage target record, before determining the type of the storage target record, is obtained by dividing the storage waiting object. For the sub-object in at least one sub-object, the sub-object is coded to obtain a copy, and the explanatory information and data of the copy are arranged to obtain the sub-object. It further includes generating a record to be stored.

一部の実施形態において、前記サブオブジェクトの記憶対象レコードを生成することは、配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプである。 In some embodiments, generating a storage target record for the sub-object is the same as the size of the data in the duplicate after arraying is one of the sizes of data corresponding to each of the types in the storage file. If the size of the data of the duplicate is different from the size of the data corresponding to each of the types and is smaller than the size of the data corresponding to some of the types, the size of the duplicate is determined. Fill the back of the data with zeros so that the size of the duplicate data after filling with zeros is the same as the size of the data corresponding to the target type, and one storage target record of the sub-object is generated. If the size of the data of the duplicate is larger than the maximum value of the size of the data corresponding to each of the types, the size of the data of each duplicate after division is increased by dividing the duplicate and filling it with zeros. The target type includes the creation of at least two storage target records of the sub-object, each of which is the same as one of the sizes of data corresponding to each of the above types. Of the types, the type has the smallest corresponding data size.

第2の態様において、本発明の実施形態は、データを記憶するための装置を提供する。前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、前記装置は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備える。 In a second aspect, embodiments of the present invention provide a device for storing data. The device is configured as a stand-alone storage engine for distributed object storage, storage files are configured on the disk of the stand-alone storage engine, the storage space for the storage files is divided into at least two data blocks, and the at least two data. Using a link list structure between blocks, the device comprises a type determination unit configured to determine the type of the storage target record based on the size of the data in the storage target record, and said in the storage file. A search unit configured to search for the type of current storage information, the current storage information being the information of the currently allocated data block and the information of the currently stored record of the data block. Based on the search unit and the current storage information, including, the data size of the records stored in the same type of the storage file is the same, but the data size of the records stored in different types is different. In response to the space determination unit configured to determine if there is any remaining storage space in the currently allocated data block and the determination that there is no remaining storage space. It comprises a first allocation unit configured to allocate a new data block to the type and store the storage target record in the new data block.

一部の実施形態において、当該データを記憶するための装置は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが、記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように配置されるサイズ確定ユニットと、残りのストレージスペースが記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように配置される第2割り当てユニットと、をさらに備える。 In some embodiments, the device for storing the data does not have the remaining storage space smaller than the size of the data in the storage target record in response to the determination that there is remaining storage space. A sizing unit that is placed to further determine whether or not, and some data in the storage record in response to the determination that the remaining storage space is smaller than the size of the data in the storage record. It further comprises a second allocation unit, which stores in the remaining storage space, allocates new data blocks to the type, and is arranged to store the remaining data in the storage target record.

一部の実施形態において、少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。 In some embodiments, the storage space of at least two data blocks is the same, and the size of the data in the records stored in different types is all an integral multiple of a given number.

一部の実施形態において、当該データを記憶するための装置は、当該タイプの現在のストレージ情報を更新し、記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように配置される位置生成ユニットをさらに備え、ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。 In some embodiments, the device for storing the data is arranged to update the current storage information of the type, generate the location information after the storage target record is stored, and output the location information. It further comprises a position generation unit, wherein the position information includes at least one of a record type, a record identifier, and an identifier of the data block in which the record is located.

一部の実施形態において、ディスクに少なくとも2つの前記ストレージファイルが構成され、且つディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶される。 In some embodiments, at least two of the storage files are configured on the disk, and the index information of each of the storage files is stored in the directory of the disk.

一部の実施形態において、当該データを記憶するための装置は、ディレクトリから読み取り対象レコードの位置情報を検索するように配置される第1位置検索ユニットと、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように配置される確定ユニットと、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力するように配置される読み取りユニットと、をさらに備える。 In some embodiments, the device for storing the data is a first position search unit arranged to search the position information of the record to be read from the directory, and the device for storing the data is based on the position information of the record to be read. Determines the length of the record to be read based on the type of record to be read and the type of record to be read, and the confirmation unit that is placed to determine the position offset in the located data block of the corresponding storage file. Further, a read unit arranged to read data whose length is the length of the read target record, starting from the position indicated by the position offset, and to output the read data as the read target record. Be prepared.

一部の実施形態において、当該データを記憶するための装置は、ディレクトリから削除対象レコードの位置情報を検索するように配置される第2位置検索ユニットと、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように配置される獲得ユニットと、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように配置される転送ユニットと、及び読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように配置される修正ユニットと、をさらに備える。 In some embodiments, the device for storing the data is based on a second position search unit arranged to search the position information of the record to be deleted from the directory and the position information of the record to be deleted. The last record from the currently stored record is based on the acquisition unit that is placed to acquire the current storage information of the type to which it belongs in the corresponding storage file of the record to be deleted and the current storage information acquired. The transfer unit arranged to transfer and store the read and read records to the position of the record to be deleted, and the data in the data block before transfer of the read records are cleared and read. It further includes a correction unit arranged to correct the position information of the record.

一部の実施形態において、当該データを記憶するための装置は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように配置される回収ユニットをさらに備える。 In some embodiments, the device for storing the data determines if the data still exists in the data block located before the read record is transferred and the data is in the data block. It further comprises a recovery unit that is arranged to recover the data block for reassignment if it is not stored.

一部の実施形態において、当該データを記憶するための装置は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように配置されるコーディングユニットと、当該副本の説明情報及びデータに対して配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように配置されるレコード生成ユニットと、をさらに備える。 In some embodiments, the device for storing the data is such that the sub-object in at least one sub-object obtained by dividing the storage waiting object is coded to obtain a copy. Further includes a coding unit arranged in the above, and a record generation unit arranged so as to perform an arrangement process on the explanatory information and data of the duplicate to generate a storage target record of the sub-object.

一部の実施形態において、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定するように配置される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズを目標タイプに対応するデータのサイズと同じにし、また副本当該サブオブジェクトの1つの記憶対象レコードを生成する第1生成サブユニットであって、目標タイプは、当該一部のタイプのうちの対応するデータのサイズが最も小さいタイプである、第1生成サブユニットと、当該副本のデータのサイズが各タイプに対応するデータのサイズの最大値より大きい場合、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の1つとそれぞれ同じであるように、当該副本に分割及びゼロ埋めを行い、当該サブオブジェクトの少なくとも二つの記憶対象レコードを生成するように配置される第2生成サブユニットと、を備える。 In some embodiments, the record generation unit determines whether the size of the sequenced duplicate data is the same as one of the sizes of data corresponding to each type in the storage file. If the size of the data of the duplicate and the fixed subsystem placed in is different from the size of the data corresponding to each type and smaller than the size of the data corresponding to some types, the data of the duplicate The first generation sub that fills the back with zeros, makes the size of the data of the duplicate after filling with zeros the same as the size of the data corresponding to the target type, and generates one storage target record of the duplicate sub-object. The target type is the unit, the first generation subsystem, which is the type with the smallest corresponding data size among the some types, and the data whose data size of the duplicate corresponds to each type. If it is larger than the maximum size, the duplicates are split and zero-padded so that the size of the data in each duplicate after being split is the same as one of the sizes of data corresponding to each type. It comprises a second generation subsystem arranged to generate at least two storage target records of the sub-object.

第3の態様において、本発明の実施形態は、第1サブシステム、第2サブシステム及び第1の態様のいずれか1つの実施形態に記載のスタンドアロンストレージエンジンがインストールされた第3サブシステムを備えるシステムを提供する。前記第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、前記少なくとも1つのサブオブジェクトを前記第3サブシステムに送信するように構成され、前記第2サブシステムは、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、前記第3サブシステムは、前記少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶する。 In a third aspect, an embodiment of the present invention comprises a third subsystem in which the stand-alone storage engine according to any one of the first subsystem, the second subsystem and the first embodiment is installed. Provide a system. The first subsystem receives a storage request including a storage-waiting object transmitted by a user, divides the storage-waiting object into at least one sub-object, and the storage-waiting object and the at least one sub-object. The correspondence between the two subsystems is transmitted to the second subsystem, and the at least one subsystem is transmitted to the third subsystem, and the second subsystem is the storage waiting object and the at least one. The third subsystem is configured to store the correspondence with the sub-object in a list, and the sub-object in the at least one sub-object is coded and arranged, and the sub-object is processed. The storage target record of is generated, and the generated storage target record is stored.

一部の実施形態において、前記第3サブシステムはさらに、データ記憶完了を表示するための応答情報を前記第1サブシステムに送信するようにさらに構成され、前記第1サブシステムはさらに、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするように構成される。 In some embodiments, the third subsystem is further configured to transmit response information to indicate the completion of data storage to the first subsystem, which further configures the first subsystem to further display the response. When the information is received, the query identifier of the storage waiting object is generated, and the query identifier is configured to be fed back to the user.

一部の実施形態において、前記第1サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第2サブシステムに送信するようにさらに構成され、前記第2サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第3サブシステムに送信するようにさらに構成され、前記第3サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第1サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第1サブシステムに送信するようにさらに構成される。 In some embodiments, the first subsystem is further configured to receive a read request including the query identifier sent by the user and send the query identifier in the read request to the second subsystem. The second subsystem is further configured to acquire the sub-object list corresponding to the object indicated by the query identifier in the read request and send the sub-object list to the third subsystem. The third subsystem reads the corresponding record based on the sub-object list, analyzes the read record to acquire the object data, and the first subsystem feeds the object data back to the user. Is further configured to transmit the object data to the first subsystem.

第4の態様において、本発明の実施形態は、1つまたは複数のプロセッサーと、1つまたは複数のプログラムを記憶するための記憶装置とを備え、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが第1の態様のいずれかの実施形態に記載の方法を実現する電子機器を提供する。 In a fourth aspect, an embodiment of the invention comprises one or more processors and a storage device for storing one or more programs, wherein the one or more programs are the one or more. When executed by a plurality of processors, said one or more processors provide an electronic device that realizes the method according to any embodiment of the first aspect.

第5の態様において、本発明の実施形態は、コンピュータプログラムが記憶され、前記プログラムがプロセッサーによって実行される時、第1の態様のいずれかの実施形態に記載の方法が実現されるコンピュータ可読媒体を提供する。 In a fifth aspect, the embodiment of the present invention is a computer-readable medium in which the method according to any embodiment of the first aspect is realized when a computer program is stored and the program is executed by a processor. I will provide a.

本発明の実施形態によって提供されるデータを記憶するための方法、装置及びシステムは、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。それにより、ストレージファイルにおいてタイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースがないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。これにより、スペースデブリの発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。 The methods, devices and systems for storing data provided by embodiments of the present invention can determine the type of storage target record based on the size of the data in the storage target record. It allows you to retrieve the type's current storage information in a storage file. The current storage information can include information on the currently allocated data block and record information currently stored in the data block. Here, the size of the data of the records stored in the same type of the storage files is the same, and the size of the data of the records stored in different types is different. In addition, based on the current storage information, it is possible to determine if there is any remaining storage space in the currently allocated data block. A new block of data can be assigned to a type if it is determined that there is no remaining storage space. In addition, the storage target record can be stored in a new data block. As a result, the occurrence of space debris can be reduced and the space utilization rate of the disk can be improved. It is also advantageous for improving the read / write performance of the disk.

図面を参照して非限定的な実施例に対してなされる詳細な説明によって、本発明の他の特徴、目的及び利点は、さらに明らかになる。
本発明の1つの実施例が応用される例示的なシステムアーキテクチャ図である。 本発明に係るデータを記憶するための方法の1つの実施例のフローチャートである。 本発明に係るデータを記憶するための方法のもう1つの実施例のフローチャートである。 本発明に係るデータを記憶するための方法のもう1つの実施例のフローチャートである。 本発明におけるストレージファイルの1つの実施例の論理構造模式図である。 本発明におけるレコードの1つの実施例の構造模式図である。 本発明におけるディスクの1つの実施例の構造模式図である。 本発明に係るデータを記憶するための装置の1つの実施例の構造模式図である。 本発明に係るデータを記憶するためのシステムの1つの実施例のタイミング図である。 本発明の実施例の電子機器を実現するためのコンピュータシステムの構造模式図である。
The detailed description given to the non-limiting examples with reference to the drawings further reveals other features, objectives and advantages of the present invention.
It is an exemplary system architecture diagram to which one embodiment of the present invention is applied. It is a flowchart of one Example of the method for storing the data which concerns on this invention. It is a flowchart of another embodiment of the method for storing the data which concerns on this invention. It is a flowchart of another embodiment of the method for storing the data which concerns on this invention. It is a logical structure schematic diagram of one Example of the storage file in this invention. It is a structural schematic diagram of one Example of a record in this invention. It is a structural schematic diagram of one Example of a disk in this invention. It is a structural schematic diagram of one Example of the apparatus for storing the data which concerns on this invention. It is a timing diagram of one Example of the system for storing the data which concerns on this invention. It is a structural schematic diagram of the computer system for realizing the electronic device of the Example of this invention.

以下、図面と実施例を結び付けて本発明に対してさらに詳細に説明する。ここで説明される具体的な実施例は、当該発明に対する限定ではなく、単に関連する発明を解釈するために使用されることが理解される。なお、説明の便宜上、図面には発明に関連する部分のみを示している。 Hereinafter, the present invention will be described in more detail with reference to the drawings and examples. It is understood that the specific examples described herein are not limited to the invention, but are merely used to interpret the relevant invention. For convenience of explanation, only the parts related to the invention are shown in the drawings.

説明すべき点は、矛盾のない場合、本発明における実施例及び実施例における特徴は相互に組み合わせることができる。以下、図面を参照し、実施例に結び付けて本発明を詳細に説明する。 It should be explained that, if there is no contradiction, the examples in the present invention and the features in the examples can be combined with each other. Hereinafter, the present invention will be described in detail with reference to the drawings in connection with examples.

図1は、本発明の実施例が応用されるデータを記憶するための方法、装置及びシステムの例示的なシステムアーキテクチャ100を示す。 FIG. 1 shows an exemplary system architecture 100 of methods, devices and systems for storing data to which examples of the present invention are applied.

図1に示すように、システムアーキテクチャ100は、端末101、102、103、ネットワーク104及びサーバ105を備えることができる。ネットワーク104は、端末101、102、103とサーバ105との間で通信リンクを提供するための媒体として使用される。ネットワーク104は、有線、無線通信リンクまたは光ファイバケーブルなどの様々な接続を備えることができる。 As shown in FIG. 1, the system architecture 100 can include terminals 101, 102, 103, a network 104, and a server 105. The network 104 is used as a medium for providing a communication link between terminals 101, 102, 103 and the server 105. The network 104 can include various connections such as wired, wireless communication links or fiber optic cables.

ユーザは、端末101、102、103を使用して、ネットワーク104を介してサーバ105とインタラクションしてメッセージなどを送受信することができる。端末101、102、103には、ウェブブラウザ、ショッピングアプリケーション、ビデオアプリケーション、メールボックス及びインスタントメッセージングツールなどの各種のクライアントアプリケーションがインストールされることができる。 The user can use the terminals 101, 102, and 103 to interact with the server 105 via the network 104 to send and receive messages and the like. Various client applications such as web browsers, shopping applications, video applications, mailboxes and instant messaging tools can be installed on terminals 101, 102 and 103.

ここで、端末101、102、103は、ハードウェアであることができ、ソフトウェアであることもできる。端末101、102、103がハードウェアである場合、表示画面を有する様々な電子機器であってもよい。当該電子機器は、スマートフォン、タブレットコンピュータ、スマートTV、電子書籍リーダー、MP3(Moving Picture Experts Group Audio Layer III、動画専門家集団オーディオレイヤ3)プレーヤー、ラップトップコンピュータ、及びデスクトップコンピュータなどであってもよいが、これらに限定されない。端末101、102、103がソフトウェアである場合、前記に列挙された電子機器にインストールされることができる。(例えば、分散型サービスの提供に使用される)複数のソフトウェアまたはソフトウェアモジュールとして、あるいは単一のソフトウェアまたはソフトウェアモジュールとして実現されることができる。ここで具体的に限定しない。 Here, the terminals 101, 102, and 103 can be hardware or software. When the terminals 101, 102, and 103 are hardware, they may be various electronic devices having a display screen. The electronic device may be a smartphone, tablet computer, smart TV, e-book reader, MP3 (Moving Picture Experts Group Audio Layer III) player, laptop computer, desktop computer, or the like. However, it is not limited to these. If the terminals 101, 102, 103 are software, they can be installed in the electronic devices listed above. It can be implemented as multiple software or software modules (eg, used to provide distributed services) or as a single software or software module. It is not specifically limited here.

サーバ105は、様々なサービスを提供するサーバであることができ、例えば、端末101、102、103にインストールされた様々なアプリケーションにサポートを提供するバックグラウンドサーバであることができる。バックグラウンドサーバは、ユーザが端末101、102、103を介して送信したデータ処理要求(例えば、データ記憶要求)に対して分析処理することができ、処理結果(例えば、記憶が完了されたことを表示するフィードバック情報またはデータ記憶後の位置情報など)を端末101、102、103にリターンさせることができる。 The server 105 can be a server that provides various services, for example, a background server that provides support for various applications installed on terminals 101, 102, 103. The background server can analyze and process the data processing request (for example, data storage request) transmitted by the user via the terminals 101, 102, 103, and the processing result (for example, the storage is completed). The feedback information to be displayed or the position information after data storage can be returned to the terminals 101, 102, 103.

ここで、サーバ105は、同じハードウェアであることができ、ソフトウェアであることもできる。サーバ105がハードウェアである場合、複数のサーバで構成される分散型サーバグループで実現されることができ、一つのサーバで実現されることもできる。サーバ105がソフトウェアである場合、(例えば、分散型サービスの提供に使用される)複数のソフトウェアまたはソフトウェアモジュールで実現されることができ、一つのソフトウェアまたはソフトウェアモジュールで実現されることもできる。ここで具体的に限定しない。 Here, the server 105 can be the same hardware or software. When the server 105 is hardware, it can be realized by a distributed server group composed of a plurality of servers, and can also be realized by one server. When the server 105 is software, it can be implemented by a plurality of software or software modules (eg, used to provide distributed services), and can also be implemented by a single software or software module. It is not specifically limited here.

例えば、サーバ105のうち、データを記憶するためのディスク(即ち、ストレージスペース)に複数のストレージファイル1051、1052が構成されることができる。これらのストレージファイルは、データを記憶するための実際の容器であることができ、これによりデータの分散型記憶を実現する。 For example, in the server 105, a plurality of storage files 1051 and 1052 can be configured on a disk (that is, a storage space) for storing data. These storage files can be the actual container for storing data, thereby achieving distributed storage of data.

説明すべき点は、本発明の実施例が提供するデータを記憶するための方法は、一般にサーバ105によって実行される。それに対応して、データを記憶するための装置は、一般にサーバ105に設置される。 It should be explained that the method for storing the data provided by the embodiments of the present invention is generally performed by the server 105. Correspondingly, a device for storing data is generally installed in the server 105.

理解すべき点は、図1中の端末、ネットワーク、サーバ及びサーバ中のストレージファイルの数は単に例示的である。実現需要に応じて、任意の数の端末、ネットワーク、サーバ及びサーバ中のストレージファイルを備えることができる。 It should be understood that the number of terminals, networks, servers and storage files in the server in FIG. 1 is merely exemplary. Any number of terminals, networks, servers and storage files in the servers can be provided according to the realized demand.

続いて図2を参照すると、本発明に係るデータを記憶するための方法の1つの実施例のフロー200が示されている。当該データを記憶するための方法は、以下のようなステップを含むことができる。 Subsequently, with reference to FIG. 2, a flow 200 of one embodiment of the method for storing data according to the present invention is shown. The method for storing the data can include the following steps.

ステップ201において、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定する。 In step 201, the type of storage target record is determined based on the size of the data in the storage target record.

本実施例において、データを記憶するための方法は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用されることができる。また、当該スタンドアロンストレージエンジンのディスクにストレージファイルが構成されることができる。ここで、ストレージファイルは、データを記憶するための実際の容器であることができる。即ち、データは、ストレージファイルに記憶される。ここで、ストレージファイルのストレージスペースは、少なくとも2つのデータブロックに分けられることができる。ストレージファイルのストレージスペースは、さらに複数の記憶区間(即ち、データブロック)に分けられることができる。また、ストレージスペースの連続性を保証するために、少なくとも2つのデータブロック間でリンクリスト構造を使用することができる。即ち、リンクリスト方式で同じストレージファイル中の各データブロックをリンクさせる。 In this embodiment, the method for storing data can be used for a stand-alone storage engine for distributed object storage. In addition, storage files can be configured on the disk of the stand-alone storage engine. Here, the storage file can be an actual container for storing data. That is, the data is stored in the storage file. Here, the storage space of the storage file can be divided into at least two data blocks. The storage space of a storage file can be further divided into a plurality of storage sections (that is, data blocks). Also, a linked list structure can be used between at least two data blocks to ensure storage space continuity. That is, each data block in the same storage file is linked by the linked list method.

説明すべき点は、ストレージファイルのストレージ容量は、実際の状況に応じて設定することができ、例えば、32Gであることができる。また、同じストレージファイル中の各データブロックのストレージスペースは同じ(例えば、2M)であることができ、異なることもできる。なお、ストレージファイルの内部では、記憶対象データのサイズに基づいて、記憶対象データに対して分類して記憶することができる。また、各タイプにただ一つのサイズのデータを記憶することができる。即ち、同じタイプで記憶されたデータのサイズは同じであることができる。異なるタイプで記憶されたデータのサイズは異なることができる。ここで、分類方法は、本発明で制限しない。 The point to be explained is that the storage capacity of the storage file can be set according to the actual situation, and can be, for example, 32G. Also, the storage space of each data block in the same storage file can be the same (eg, 2M) and can be different. Inside the storage file, the storage target data can be classified and stored based on the size of the storage target data. In addition, only one size of data can be stored in each type. That is, the size of the data stored in the same type can be the same. The size of the data stored in different types can be different. Here, the classification method is not limited by the present invention.

本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、有線接続方式または無線接続方式を介して、端末(例えば、図1に示された端末101、102、103)またはクラウドなどから、記憶対象レコードを獲得することができる。また、記憶対象レコードのデータのサイズに基づいて、所定の分類方法によって記憶対象レコードのタイプを確定する。例えば、記憶対象レコードのデータのサイズは、4KBである。データのサイズが0KBより大きく且つ4KBより大きくない場合、第1タイプに属し、この場合、実行主体は、当該記憶対象レコードのタイプを第1タイプと確定することができる。ここで、記憶対象レコードは、ディスク分散型オブジェクトストレージ技術を使用して記憶する任意のデータであることができる。そのコンテンツは、数字、文字、アルファベットまたは記号などの少なくとも一つの文字符号の文字列を含むことができる。 In this embodiment, the execution subject of the method for storing data (eg, the server 105 shown in FIG. 1) is a terminal (eg, shown in FIG. 1) via a wired or wireless connection method. The storage target record can be acquired from the terminal 101, 102, 103) or the cloud. Further, the type of the storage target record is determined by a predetermined classification method based on the data size of the storage target record. For example, the size of the data of the storage target record is 4KB. When the size of the data is larger than 0KB and not larger than 4KB, it belongs to the first type, and in this case, the executing subject can determine the type of the storage target record as the first type. Here, the storage target record can be any data to be stored using the disk distributed object storage technology. The content can include a string of at least one character code, such as a number, letter, alphabet or symbol.

本実施例のある選択可能な実施形態において、管理の便利上、同じストレージファイル中の少なくとも2つのデータブロックのストレージスペースは、同じであることができる。同じストレージファイルのうち異なるタイプで記憶されたレコードのデータのサイズは、すべて所定の数値の整数倍であることができる。これは算出過程を簡素化して、処理効率を向上させることに役立つ。図5Aに示すように、データブロックのストレージスペースはすべて2Mである。データのサイズの最小値が一般に4KBであることを考慮すると、異なるタイプに対応するデータのサイズはすべて4KBの整数倍である。また、ディスクの読み書き性能を考慮すると、データのサイズの最大値は、実際の状況に応じて設定することができ、例えば、512KBに設定することができる。言い換えれば、ストレージファイルの内部でレコードのデータのサイズを4KB、8KB……512KBなどの複数のタイプに分けることができる。 In certain selectable embodiments of this embodiment, for convenience of management, the storage space of at least two data blocks in the same storage file can be the same. The size of the data of records stored in different types of the same storage file can all be an integral multiple of a given number. This helps to simplify the calculation process and improve processing efficiency. As shown in FIG. 5A, the storage space of all data blocks is 2M. Considering that the minimum value of the data size is generally 4KB, the size of the data corresponding to different types are all integer multiples of 4KB. Further, considering the read / write performance of the disk, the maximum value of the data size can be set according to the actual situation, and can be set to, for example, 512 KB. In other words, the size of the record data can be divided into a plurality of types such as 4KB, 8KB ... 512KB inside the storage file.

ステップ202において、ストレージファイルにおいてタイプの現在のストレージ情報を検索し、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を含む。 In step 202, the storage file is retrieved for the type's current storage information, which includes information about the currently allocated data block and information about the currently stored record of the data blocks.

本実施例では、実行主体は、ストレージファイルにおいて、記憶対象レコードの属するタイプの現在のストレージ情報を検索することができる。ここで、現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。即ち、当該タイプに現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報を検索する。ここで、データブロックの情報は、データブロックの間のリンク順序、データブロックの識別子、データブロックのストレージスペースなどのうち少なくとも1つを含むが、これに限定されない。レコード情報は、レコードの識別子、レコードのデータのサイズ、レコードの位置するデータブロックの識別子などのうち少なくとも1つを含むが、これに限定されない。ここで、識別子は、データブロックまたはレコードを一意に示すために使用されることができるものであり、数字、アルファベットなどの文字符号のうちの少なくとも1つであることができる。言い換えれば、当該タイプの現在のストレージ情報を検索した後、実行主体は、当該タイプにどのようなデータブロックが存在するか、及びどのような記録が記憶されているかが分かる。 In this embodiment, the execution subject can search the storage file for the current storage information of the type to which the storage target record belongs. Here, the current storage information can include information on the currently allocated data block and record information currently stored in the data block. That is, the information of the data block currently assigned to the type and the record information currently stored in the data block are searched. Here, the information of the data block includes, but is not limited to, at least one of the link order between the data blocks, the identifier of the data block, the storage space of the data block, and the like. The record information includes, but is not limited to, an identifier of the record, the size of the data of the record, the identifier of the data block in which the record is located, and the like. Here, the identifier can be used to uniquely indicate a data block or record, and can be at least one of character codes such as numbers and alphabets. In other words, after retrieving the current storage information for the type, the executor knows what data blocks exist for the type and what records are stored.

説明すべき点は、同じタイプのレコードは、一般に1つずつ隣り合って記憶される。即ち、論理的にこれらのレコードは、全体で連続的なスペースを占める。これは、ディスク断片の発生を防止することにより、ストレージスペースの利用率を向上させることができる。 It should be explained that records of the same type are generally stored side by side one by one. That is, logically, these records occupy a continuous space as a whole. This can improve the utilization rate of the storage space by preventing the generation of disk fragments.

例示として、図5Aの記憶対象レコードがXであるとすると、実行主体が、そのタイプ(type)が128であると確定する場合、当該タイプの現在のストレージ情報を検索することができる。即ち、ストレージスペースは、2Mのデータブロック(block)37であり、レコード(record)の数は、4であり、各レコードのデータのサイズは、512KBである。数字番号(1、2、3など)をレコードの識別子として使用することを理解することができる。このようにして、同じタイプの異なるレコードを区別することができるだけでなく、各レコードの記憶順序を容易に確定することもできる。 As an example, assuming that the storage target record of FIG. 5A is X, when the executing subject determines that the type (type) is 128, the current storage information of the type can be searched. That is, the storage space is a 2M data block 37, the number of records is 4, and the data size of each record is 512KB. It can be understood that numeric numbers (1, 2, 3, etc.) are used as record identifiers. In this way, not only can different records of the same type be distinguished, but the storage order of each record can be easily determined.

ステップ203において、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定する。 In step 203, based on the current storage information, it is determined whether or not there is remaining storage space in the currently allocated data block.

本実施例において、実行主体は、ステップ202で検索された現在のストレージ情報に基づいて、当該タイプ(即ち、記憶対象レコードが属するタイプ)の現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。例示として、図5Aに示すように、実行主体は、type=128中の現在のストレージ情報に基づいて、block37に残りのストレージスペースがないと確定することができ、即ち、512KB×4=2Mである。 In this embodiment, the executing entity has the remaining storage space in the currently allocated data block of the type (that is, the type to which the storage target record belongs) based on the current storage information retrieved in step 202. Whether or not it can be determined. By way of example, as shown in FIG. 5A, the executing entity can determine that there is no remaining storage space in block37 based on the current storage information in type = 128, ie, at 512KB × 4 = 2M. is there.

ここで、現在割り当てられたデータブロックに残りのストレージスペースが存在する場合、実行主体は、記憶対象レコードを残りのストレージスペースに記憶することができる。現在割り当てられたデータブロックに残りのストレージスペースが存在しない場合、実行主体は、続いてステップ204を実行することができる。 Here, if there is a remaining storage space in the currently allocated data block, the executing subject can store the storage target record in the remaining storage space. If there is no remaining storage space in the currently allocated data block, the executor can subsequently perform step 204.

選択可能に、実行主体は、割り当てられたデータブロックに残りのストレージスペースが存在すると確定された場合、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定することができる。残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定された場合、記憶対象レコードの一部のデータを残りのストレージスペースに記憶することができる。そして、当該タイプに新しいデータブロックを割り当てて、残りの記憶対象レコードを新しいデータブロックに記憶することができる。 Selectably, the executor should further determine if the remaining storage space is not smaller than the size of the data in the storage record if it is determined that the allocated data block has remaining storage space. Can be done. If it is determined that the remaining storage space is smaller than the size of the data in the storage target record, some data in the storage target record can be stored in the remaining storage space. Then, a new data block can be assigned to the type, and the remaining storage target records can be stored in the new data block.

例示として、図5Aに示すように、データのサイズは、記憶対象レコードYの504KBである。実行主体は、type=126の現在のストレージ情報によって、block3の残りのストレージスペースが64KB(4M−504KB×8)であることを確定することができる。このとき、実行主体は、当該タイプの下に1つの新しい2Mのデータブロック(block4)を割り当てることができる。このようにして、記憶対象レコードYの前の64KBをblock3に記憶することができる。また、記憶対象レコードYの後の440KBをblock4に記憶することができる。即ち、記憶対象レコードYを2つの隣接するデータブロックに記憶することができる。 By way of example, as shown in FIG. 5A, the size of the data is 504KB of the storage target record Y. The executing entity can determine that the remaining storage space of block3 is 64KB (4M-504KB × 8) based on the current storage information of type = 126. At this time, the executing subject can allocate one new 2M data block (block4) under the type. In this way, 64KB before the storage target record Y can be stored in block3. In addition, 440 KB after the storage target record Y can be stored in block4. That is, the storage target record Y can be stored in two adjacent data blocks.

ステップ204において、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。 In step 204, in response to the determination that there is no remaining storage space, a new data block is assigned to the type and the records to be stored are stored in the new data block.

本実施例において、実行主体は、現在割り当てられたデータブロックに残りのストレージスペースが存在しないと確定された場合、当該タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。例示として、図5Aの記憶対象レコードXである。block37に残りのストレージスペースが存在しないので、実行主体は、1つの新しいblock49を割り当てることができる。このとき、記憶対象レコードXをblock49に記憶することができる。 In this embodiment, the executing entity can allocate a new data block to the type if it is determined that there is no remaining storage space in the currently allocated data block. In addition, the storage target record can be stored in a new data block. As an example, it is the storage target record X of FIG. 5A. Since there is no remaining storage space in block37, the executor can allocate one new block49. At this time, the storage target record X can be stored in the block49.

本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードを分類して記憶することができる。データの連続記憶を確保するとともに、ディスク断片の生成を減少または防止することができる。このようにして、ストレージスペースの利用率の向上、ディスクの読み書き性能の改善に役立つ。なお、分散型オブジェクトストレージ方法も充実させる。 In the method for storing the data in this embodiment, the storage target records can be classified and stored based on the data size of the storage target records. It is possible to secure continuous storage of data and reduce or prevent the generation of disk fragments. In this way, it helps to improve the utilization rate of the storage space and the read / write performance of the disk. The distributed object storage method will also be enhanced.

本実施例のある選択可能な実施形態において、記憶対象レコードを記憶した後、実行主体は、それが属するタイプの現在のストレージ情報を更新することもできる。そして、記憶対象レコードが記憶された後の位置情報を生成することができる。また、当該位置情報を出力することができる。ここで、位置情報は、記憶対象レコードの記憶位置を説明するためのものであってもよい。例えば、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことができ、また、位置情報は出力される。ここで、出力とは、記憶し出力することであってもよい。例えば、位置情報を実行主体ローカルまたは他の電子機器に記憶することができ、例えば、位置情報を端末などに送信するような伝送出力であることもできる。 In certain selectable embodiments of this embodiment, after storing a record to be stored, the executor can also update the current storage information of the type to which it belongs. Then, the position information after the storage target record is stored can be generated. In addition, the position information can be output. Here, the position information may be for explaining the storage position of the storage target record. For example, the location information can include at least one of a record type, a record identifier, and an identifier of the data block in which the record is located, and the location information is output. Here, the output may be to store and output. For example, the location information can be stored locally in the execution subject or in another electronic device, and for example, the transmission output may be such that the location information is transmitted to a terminal or the like.

例示として、図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を検索できることを理解できる。 As an example, in the case of the storage target record X of FIG. 5A, the position information can be [record_type = 128, record_id = 5, block_id = 49, next_block_id = 0]. It can be understood that the executing subject can search the record X even when the location information is [record_type = 128, record_id = 5] or [record_id = 5, block_id = 49].

説明すべき点は、同じタイプで記憶されたレコードのデータのサイズが同じであるようにするために、選択可能に、実行主体は、記憶対象レコードを記憶する前に、記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであるか否かを確定することができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであると確定された場合、実行主体は、記憶処理を行うことができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズでないと確定され、一般に当該タイプに対応するデータのサイズより小さい場合、実行主体は、記憶対象レコードの所定の位置(例えば、前面または後面)に所定のデータ(例えば、0または他の文字列など)を補充することができる。これにより、補充された後の記憶対象レコードのデータのサイズは、当該タイプに対応するデータのサイズになる。その後、実行主体は、補充された後の記憶対象レコードを記憶することができる。 The point to be explained is that, in order to ensure that the data size of the records stored in the same type is the same, the execution subject can select the data of the storage target record before storing the storage target record. It can be determined whether the size is the size of the data corresponding to the type. When the size of the data of the storage target record is determined to be the size of the data corresponding to the type, the executing subject can perform the storage process. If the size of the data in the storage record is determined not to be the size of the data corresponding to the type and is generally smaller than the size of the data corresponding to the type, the executing entity is at a predetermined position (eg, front or front) of the storage record The rear surface) can be supplemented with predetermined data (for example, 0 or another character string). As a result, the size of the data of the storage target record after being replenished becomes the size of the data corresponding to the type. After that, the executing subject can store the replenished storage target record.

ある応用シナリオにおいて、記憶対象レコードのデータのサイズに基づいて記憶対象レコードのタイプを確定する前に、実行主体は、データを処理して記憶対象レコードを獲得することができる。例えば、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、実行主体は、当該サブオブジェクトをコーディング(例えば、ECコーディング)して副本を獲得する。その後、当該副本の説明情報とデータに対して配列化処理して、当該サブオブジェクトの記憶対象レコードを生成する。 In some application scenarios, the executing entity can process the data to acquire the storage target record before determining the type of storage target record based on the size of the data in the storage target record. For example, for a sub-object in at least one sub-object obtained by dividing a storage-waiting object, the execution subject codes the sub-object (for example, EC coding) to acquire a copy. After that, the explanatory information and data of the duplicate are subjected to the array processing to generate the storage target record of the sub-object.

説明すべき点は、記憶待ちオブジェクトの分割過程は、実行主体によって完成されることができ、他の電子機器によって完成されることもできる。他の電子機器は、分割して得られた少なくとも1つのサブオブジェクトを実行主体に送信することができる。 The point to be explained is that the process of dividing the storage-waiting object can be completed by the executing subject or by another electronic device. Other electronic devices can transmit at least one sub-object obtained by dividing to the executing subject.

さらに、同じタイプで記憶されたレコードデータのサイズを同じにするように、実行主体は、配列化後の当該副本を分析処理して、必要なデータのサイズ(即ち、各タイプに対応するデータのサイズ中の1つ)の記憶対象レコードを生成することができる。 Further, the executing subject analyzes and processes the duplicated copy after the array so that the size of the record data stored in the same type is the same, and the size of the required data (that is, the data corresponding to each type). It is possible to generate a record to be stored (one of the sizes).

具体的に、まず、実行主体は、配列化後の当該副本のデータのサイズが、ストレージファイルのうち各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することができる。当該副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つと同じである場合、実行主体は、当該サブオブジェクトの記憶対象レコードを直接に生成することができる。 Specifically, first, the executing subject can determine whether or not the size of the data of the duplicated copy after the array is the same as one of the sizes of the data corresponding to each type of the storage file. .. When the size of the data of the duplicate is the same as one of the sizes of the data corresponding to each type, the executing subject can directly generate the storage target record of the sub-object.

当該副本のデータのサイズ(例えば、5KB)が、各タイプに対応するデータのサイズ(例えば、4KB、8KB及び12KB)とすべて異なり、且つ一部のタイプに対応するデータのサイズ(例えば、8KB及び12KB)よりも小さい場合、当該副本のデータの後ろをゼロで埋める。これにより、ゼロで埋めた後の当該副本のデータのサイズと目標タイプに対応するデータのサイズとを同じにすることができる。そして、当該サブオブジェクトの1つの記憶対象レコードを生成することができる。ここで、目標タイプは、当該一部のタイプの対応するデータのサイズが最も小さいタイプ(例えば、8KB及び12KB中の8KB)であることができる。説明すべき点は、従来のデータに影響を与えない限り、本発明は、補充位置及び補充コンテンツについて限定しない。 The size of the duplicate data (eg, 5KB) is all different from the size of the data corresponding to each type (eg, 4KB, 8KB and 12KB), and the size of the data corresponding to some types (eg, 8KB and). If it is smaller than 12KB), fill the end of the duplicate data with zeros. This allows the size of the duplicate data after filling with zeros to be the same as the size of the data corresponding to the target type. Then, one storage target record of the sub-object can be generated. Here, the target type can be the type with the smallest corresponding data size of some of the types (eg, 8KB out of 8KB and 12KB). It should be explained that the present invention is not limited to supplementary positions and supplementary content as long as it does not affect conventional data.

当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値(例えば、512KB)よりも大きい場合、当該副本に対して分割及びゼロで埋めを行うことができる。これにより、分割後の各副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つとそれぞれ同じにすることができ、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成する。例えば、副本のデータのサイズは、518KBであり、それを512KB及び6KBの2つのサブ副本に分割することができ、6KBのサブ副本を8KBになるようにゼロで埋める。または、それを512KB、4KB及び2KBの3個のサブ副本に分割することができ、2KBのサブ副本を4KBにゼロで埋める。または、他のタイプに対応するデータのサイズに基づいて、当該副本を複数の対応されるデータのサイズのサブ副本に分割することができ、ゼロで埋め操作を行う必要はない。 When the size of the data of the duplicate is larger than the maximum value of the size of the data corresponding to each type (for example, 512 KB), the duplicate can be divided and filled with zeros. As a result, the size of the data of each duplicate after division can be made the same as one of the sizes of the data corresponding to each type, and at least two storage target records of the sub-object are generated. For example, the size of the duplicate data is 518KB, which can be divided into two sub-duplicates, 512KB and 6KB, and the 6KB sub-duplicates are filled with zeros to 8KB. Alternatively, it can be divided into three sub-duplicates of 512KB, 4KB and 2KB, and the 2KB sub-duplicates are filled with zeros in 4KB. Alternatively, the duplicate can be divided into multiple sub-duplicates of the corresponding data size based on the size of the data corresponding to the other type, and there is no need to perform the fill operation with zeros.

例示として、記憶対象レコードには、図5Bに示したようなフィールド(field)が含まれることができる。ここで、Shard Record(共有記録)に副本(shard)の一部のメタ情報(Meta information)を記録することができ、循環余剰検査コード(crc:Cyclic Redundancy Code)、長さ(length)などのコンテンツを含むことができる。Key+meta(キーメタ)中に、ユーザにより指定された説明情報を記録することができる。Binary dataは、一般に副本の実際のデータ(shard data)であることができる。当該データの後面に、固定されていない長さの、ゼロで埋めて合わせるためのフィールド(即ち、filled zero)が存在することができる。これにより、各レコード(record)がすべて4kbの整数倍であることを確保することができる。 By way of example, the storage target record can include a field (field) as shown in FIG. 5B. Here, a part of the meta information (Meta information) of the duplicate (hard) can be recorded in the Hard Record (shared record), and the cyclic surplus check code (crc: Cyclic Redundancy Code), length, etc. can be recorded. Can include content. Explanatory information specified by the user can be recorded in Key + meta (key meta). The Binary data can generally be the actual data of the duplicate (hard data). On the back of the data, there can be a field of unfixed length to fill with zeros (ie, field zero). This makes it possible to ensure that each record is an integral multiple of 4 kb.

実行主体の負荷を減少するために、各ストレージファイルは、内部ストレージスペースの自己管理を行うこともできることが理解できる。例えば、1つのストレージファイルに対して、1つのデータブロック管理ユニット(BlockManager)501と複数のタイプ管理ユニット(BlockLinkList)502が設置されることができる。ここで、データブロック管理ユニットは、データブロックを割り当てて回収するために使用されることができる。各タイプ管理ユニットは、1つのタイプのストレージ情報を管理するためのものであることができる。例えば、図5Aのtype=128のタイプ管理ユニットは、自分割り当てたデータブロックのリスト(例えば、block37)及び自分が入力したレコードの数(例えば、4個)を記憶することができる。このようにして、記録された数によって、最後の1つのデータブロック(例えば、block37)に使用可能な残りのストレージスペースがどれだけあるかを計算することができる。ストレージスペースが足りない場合、データブロックを割り当てたことを表示するための情報をデータブロック管理ユニットに送信することができる。このとき、データブロック管理ユニットは、それに1つの新しいデータブロック(例えば、block49)を割り当てることができる。このようにして、実行主体全体の処理効率及び性能を向上させることに役立つ。 It can be understood that each storage file can also self-manage the internal storage space in order to reduce the load on the execution subject. For example, one data block management unit (BlockManager) 501 and a plurality of type management units (BlockLinkList) 502 can be installed for one storage file. Here, the data block management unit can be used to allocate and retrieve data blocks. Each type management unit can be for managing one type of storage information. For example, the type management unit of type = 128 in FIG. 5A can store a list of self-assigned data blocks (eg, block37) and the number of records it has entered (eg, 4). In this way, the number recorded can be used to calculate how much storage space is left available in the last block of data (eg, block37). If there is not enough storage space, information can be sent to the data block management unit to indicate that the data block has been allocated. At this time, the data block management unit can assign one new data block (for example, block49) to it. In this way, it is useful to improve the processing efficiency and performance of the entire execution subject.

このとき、各ストレージファイルの内部構造は、すべて自分で既に記憶し記録した位置情報(Location)によって構築されることができる。起動時に、各ストレージファイルは、自分のすべてのレコードを一度スキャンすることができる。これにより、BlockManagerに自分で割り当てたすべでのデータブロックを表示することができる。また、BlockLinkListで各レコードの位置情報を復元するとこができる。スキャンを完了した後、BlockManagerは自分のデータブロックの割り当て情報が分かるようになる。すべてのタイプのBlockLinkListも自分のデータブロックの情報及び自分の現在のレコードの情報が分かるようになる。 At this time, the internal structure of each storage file can be constructed by the location information (location) already stored and recorded by oneself. At startup, each storage file can scan all of its records once. This allows you to display all the data blocks you have assigned to BlockManager. In addition, the position information of each record can be restored by BlockLinkList. After completing the scan, the Block Manager will be able to see the allocation information for its data blocks. All types of BlockLinkList will also be able to see information about their data blocks and their current record.

本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。これにより、ストレージファイルで、タイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースが存在しないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。このようにして、スペースの断片の発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。 The method for storing the data in this embodiment can determine the type of the storage target record based on the size of the data of the storage target record. This allows you to look up the current storage information for a type in a storage file. The current storage information can include information on the currently allocated data block and record information currently stored in the data block. Here, the size of the data of the records stored in the same type of the storage files is the same, and the size of the data of the records stored in different types is different. In addition, based on the current storage information, it is possible to determine if there is any remaining storage space in the currently allocated data block. If it is determined that there is no remaining storage space, a new block of data can be assigned to the type. In addition, the storage target record can be stored in a new data block. In this way, it is possible to reduce the generation of space fragments and improve the space utilization rate of the disk. It is also advantageous for improving the read / write performance of the disk.

図3に、本発明に係るデータを記憶するための方法のもう1つの実施例のフロー300を示す。本実施例において、ディスクに少なくとも2つのストレージファイルが構成されることができる。また、ディスクのディレクトリ中に当該ディスク上の各ストレージファイルのインデックス情報が記憶されることができる。言い換えれば、各ストレージファイルは、インデックス情報とデータ情報を含むことができる。ここで、インデックス情報には、ストレージファイルの内部にどのようなレコード及びレコードの状態が記憶されているのかが記録される。データ情報は、主にストレージファイルの内部に記憶された実際のデータを指す。即ち、ディスクに入力されるレコードは、すべてディレクトリに当該レコードのインデックス情報が記録される。ここで、インデックス情報は、レコードの位置情報を含むことができる。 FIG. 3 shows a flow 300 of another embodiment of the method for storing data according to the present invention. In this embodiment, at least two storage files can be configured on the disk. In addition, the index information of each storage file on the disk can be stored in the directory of the disk. In other words, each storage file can contain index information and data information. Here, in the index information, what kind of record and the state of the record are stored inside the storage file are recorded. Data information mainly refers to the actual data stored inside the storage file. That is, for all the records input to the disk, the index information of the record is recorded in the directory. Here, the index information can include the position information of the record.

例示として、ディスクの構造を図5Cに示す。ここで、Rocksdb503は、ディスクのディレクトリを表示し、キー値(key−value)記憶方式を使用し、Vlet504(Vlet_110_3及びVlet……)は、ストレージファイルを表示することができる。説明すべき点は、1つのディスクは、一般的にただ1つのディレクトリ実例を有する。インデックス情報とデータ情報を分けて記憶することにより、レコードが存在するか否かを迅速に検索できるように確保することができる。選択可能に、インデックス情報は、フルメモリ方式で記憶することができるが、メモリのサイズに制限される。ここで、ディレクトリを使用して記憶すると、メモリの制限を受けないが、別のIOが発生することができる。このとき、キャッシュ(cache)メモリを構成して、メモリの使用とIOの使用を好ましく平衡させることができる。 As an example, the structure of the disc is shown in FIG. 5C. Here, Rocksdb503 can display the directory of the disk, use the key-value (key-value) storage method, and Vlet504 (Vlet_110_3 and Vlet ...) can display the storage file. It should be explained that one disk generally has only one directory example. By storing the index information and the data information separately, it is possible to ensure that the existence or nonexistence of the record can be quickly searched. Selectably, the index information can be stored in full memory, but is limited by the size of the memory. Here, if you store using a directory, you will not be limited by memory, but another IO can occur. At this time, a cache memory can be configured to preferably balance the use of memory with the use of IO.

本実施例において、データを記憶するための方法は、以下のステップをさらに含むことができる。 In this embodiment, the method for storing data can further include the following steps:

ステップ301において、ディレクトリから読み取り対象レコードの位置情報を検索する。 In step 301, the position information of the record to be read is searched from the directory.

本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから読み取り対象レコードを検索することができる。読み取り対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。 In this embodiment, the executing subject of the method for storing data (for example, the server 105 shown in FIG. 1) can search the directory for the record to be read. When the record to be read is searched, the location information can be obtained from the directory.

ステップ302において、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定することができる。 In step 302, based on the position information of the read target record, the position offset of the type of the read target record and the corresponding storage file in the located data block can be determined.

本実施例において、位置情報にレコードのタイプが含まれた場合、実行主体は、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプを確定することができる。または、実行主体は、位置情報に基づいて、読み取り対象レコードが位置されるストレージファイル及びデータブロックを確定することができ、これによりそのタイプを確定することができる。併せて、それの位置するデータブロックのストレージスペース及び当該データブロックに記憶されたレコードの情報に基づいて、読み取り対象レコードの当該データブロックにおける位置オフセットを確定する。ここで、位置オフセットは、データブロックにおけるレコードの開始位置を表示するために使用されることができる。 In this embodiment, when the position information includes the record type, the executing subject can determine the type of the read target record based on the position information of the read target record. Alternatively, the executing subject can determine the storage file and the data block in which the record to be read is located based on the location information, thereby determining the type. At the same time, the position offset of the record to be read in the data block is determined based on the storage space of the data block in which it is located and the information of the record stored in the data block. Here, the position offset can be used to display the start position of the record in the data block.

例示として、図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)であることを算出することができる。 As an example, as shown in FIG. 5A, the executing subject has the position information of the Y of the record from the directory of the disk [vlet_id = 110_3, record_type = 126, record_id = 9, block_id = 3, next_block_id = 4]. You can search for that. At this time, it can be calculated that the position offset in block3 of the record Y is 2M-64KB (64KB = 4M-8 × 504KB) based on the storage space of the data block in Vlet_110_3.

ステップ303において、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって指示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取る。 In step 303, the length of the read target record is determined based on the type of the read target record, and the data of the length corresponding to the length of the read target record is read, starting from the position indicated by the position offset.

本実施例において、実行主体は、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定することができる。さらに、実行主体は、ステップ302で確定された位置オフセットによって示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取ることができる。例えば、上記レコードYのタイプが126である場合、その長さは、504KBであることができる。このとき、実行主体は、block 3において2M−64KBの位置から開始して、長さが504KBであるデータをメモリに1回で読み取ることができる。 In this embodiment, the executing subject can determine the length of the read target record based on the type of the read target record. Further, the executing subject can read the data having a length corresponding to the length of the record to be read, starting from the position indicated by the position offset determined in step 302. For example, if the type of record Y is 126, its length can be 504KB. At this time, the executing subject can read the data having a length of 504KB into the memory at one time, starting from the position of 2M-64KB in the block 3.

ステップ304において、読み取ったデータを読み取り対象レコードとして出力する。 In step 304, the read data is output as a read target record.

本実施例において、実行主体は、読み取ったデータを読み取り対象レコードとすることができ、それに対してコーディング解析を行うことができる。これにより、解析された後のデータを出力することができ、例えば、端末(例えば、図1に示された端末101、102、103)に送信する。 In this embodiment, the executing subject can use the read data as a record to be read, and can perform coding analysis on it. As a result, the analyzed data can be output and transmitted to, for example, a terminal (for example, terminals 101, 102, 103 shown in FIG. 1).

一部の実施形態において、すべてのインデックス情報が失われた場合にインデックス情報を復元するために、各レコードには、その記憶した後の位置情報のフィールドが含まれることができる。図5Bに示すように、レコードの最後の位置で(例えば、固定された24個のバイト)Record Guard(レコードガード)データ構造を使用する。 In some embodiments, each record may include a field of its stored location information in order to restore the index information if all index information is lost. As shown in FIG. 5B, a Record Guard data structure is used at the last position of the record (eg, 24 fixed bytes).

選択可能に、実行主体は、コーディング解析する前に、Record Guard情報を検証することができる。併せて、読み取ったデータの所定の位置に補充された所定のデータ(例えば、0)が存在するか否かを検出することができる。所定のデータが存在する場合、読み取ったデータ中の所定のデータを除去または無視することができる。さらに、所定のデータを含まない検証後の読み取ったデータを解析する。 Optionally, the executor can verify the Record Guard information prior to coding analysis. At the same time, it is possible to detect whether or not the supplemented predetermined data (for example, 0) exists at a predetermined position of the read data. If the predetermined data exists, the predetermined data in the read data can be removed or ignored. Furthermore, the read data after verification that does not include predetermined data is analyzed.

本実施例におけるデータを記憶するための方法において、データを読み取るステップを増加し、読み取り過程を詳細に説明した。本発明におけるデータを記憶するための方法を充実させ完全にした。また、読み取り及び入力過程は、すべて1回のIOPS(Input/Output Operations Per Second、毎秒の読み取り及び入力(I/O)操作を実行する回数)である。このようにして、方法の適用範囲を拡大することに役立つ。 In the method for storing data in this example, the steps of reading the data were increased and the reading process was described in detail. The method for storing data in the present invention has been enhanced and completed. In addition, the read and input processes are all one IOPS (Input / Output Operations Per Second, the number of times of performing read and input (I / O) operations per second). In this way, it helps to expand the scope of the method.

さらに図4に、本発明に係るデータを記憶するための方法のもう1つの実施例のフロー400を示す。当該データを記憶するための方法は、以下のステップを含む。 Further, FIG. 4 shows a flow 400 of another embodiment of the method for storing the data according to the present invention. The method for storing the data includes the following steps.

ステップ401において、ディレクトリから削除対象レコードの位置情報を検索する。 In step 401, the location information of the record to be deleted is searched from the directory.

本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから削除対象レコードを検索することができる。削除対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。 In this embodiment, the executing subject of the method for storing data (for example, the server 105 shown in FIG. 1) can search the directory for the record to be deleted. When the record to be deleted is searched, the location information can be obtained from the directory.

ステップ402において、削除対象レコードの位置情報に基づいて、対応するストレージファイルにおいて削除対象レコードが属するタイプの現在のストレージ情報を獲得する。 In step 402, based on the position information of the record to be deleted, the current storage information of the type to which the record to be deleted belongs in the corresponding storage file is acquired.

本実施例において、実行主体は、削除対象レコードの位置情報に基づいて、それの位置するストレージファイルを確定することができる。そして、当該ストレージファイルのうち、それが属するタイプの現在のストレージ情報を獲得することができる。 In this embodiment, the executing subject can determine the storage file in which the record is located based on the location information of the record to be deleted. Then, the current storage information of the type to which the storage file belongs can be acquired.

例示として、図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)を獲得することができる。 As an example, as shown in FIG. 5A, the executing subject indicates that the position information of the record Z is [velt_id = 110_3, record_type = 128, record_id = 2, block_id = 37, next_block_id = 0] from the directory of the disk. Can be detected. At this time, the executing subject can acquire the current storage information of type = 128 in Vlet_110_3, that is, block37 (record1-4) and block49 (record5).

ステップ403において、獲得された現在のストレージ情報に基づいて、記憶されたレコードから最後の1つのレコードを読み取ることができ、削除対象レコードの位置する位置へ読み取られたレコードを伝送し記憶することができる。 In step 403, the last one record can be read from the stored record based on the acquired current storage information, and the read record can be transmitted and stored at the position of the record to be deleted. it can.

本実施例において、獲得された現在のストレージ情報に基づいて、実行主体は、現在の記憶されたレコードから最後の1つのレコードを読み取ることができる。また、読み取られたレコードを、削除対象レコードの位置する位置へ伝送し記憶することができる。 In this embodiment, the executor can read the last one record from the current stored record based on the acquired current storage information. In addition, the read record can be transmitted and stored at the position of the record to be deleted.

例示として、図5Aに示すように、実行主体は、record_id=5のレコードXを読み取ることができる。これにより、レコードXを転移(Move)してrecord_id=2の位置へ入力することができる。2つのレコードのデータ長さが同じであるので、上書きが可能である。 By way of example, as shown in FIG. 5A, the executing subject can read the record X with record_id = 5. As a result, the record X can be moved and input to the position of record_id = 2. Since the data lengths of the two records are the same, overwriting is possible.

ステップ404において、読み取られたレコードの転送する前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正する。 In step 404, the data in the data block before the transfer of the read record is cleared, and the position information of the read record is corrected.

本実施例において、実行主体は、読み取られたレコード(例えば、レコードX)の転送前のデータブロック(例えば、block_id=49)中のデータ(例えば、record5)をクリアすることができる。また、読み取られたレコードの位置情報を修正する必要がある。例えば、レコードXの修正後の位置情報は、[record_type=128,record_id=2,block_id=37,next_block_id=0]である。説明すべき点は、削除対象レコードを削除した後、関連する情報(例えば、ディスクのディレクトリ、対応するタイプの下の現在のストレージ情報、レコードXのRecord Guardなど)をさらに更新する必要がある。 In this embodiment, the executing subject can clear the data (for example, record 5) in the data block (for example, block_id = 49) before the transfer of the read record (for example, record X). In addition, it is necessary to correct the position information of the read record. For example, the corrected position information of the record X is [record_type = 128, record_id = 2, block_id = 37, next_block_id = 0]. The point to be explained is that after deleting the record to be deleted, the related information (for example, the directory of the disk, the current storage information under the corresponding type, the Record Guard of record X, etc.) needs to be further updated.

ステップ405において、読み取られたレコードの転送前に位置するデータブロックにデータが存在するか否かを確定する。 In step 405, it is determined whether or not data exists in the data block located before the transfer of the read record.

本実施例において、実行主体は、読み取られたレコードが転送される前に位置したデータブロックに、データが存在するか否かをさらに確定することができる。例えば、図5Aに示すように、レコードXを転送し記憶した後、実行主体は、block49に他のデータが記憶されているか否かを確定する。 In this embodiment, the executing subject can further determine whether or not the data exists in the data block located before the read record is transferred. For example, as shown in FIG. 5A, after the record X is transferred and stored, the executing subject determines whether or not other data is stored in the block49.

ステップ406において、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収する。 If it is determined in step 406 that no data is stored in the data block, the data block is reclaimed for reassignment.

本実施例において、実行主体は、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収することができる。例えば、データブロックの既に割り当てられた状態を割り当てていない状態に修正することができる。例えば、図5Aからわかるように、レコードXを転送し記憶した後、block49のストレージスペースは、完全に空である。このとき、BlockManagerは、当該データブロック(FreeBlock49)を回収することができる。 In this embodiment, if it is determined that no data is stored in the data block, the executing entity can recover the data block for reassignment. For example, the already allocated state of the data block can be modified to the unallocated state. For example, as can be seen from FIG. 5A, after transferring and storing record X, the storage space of block49 is completely empty. At this time, the Block Manager can collect the data block (FreeBlock49).

本実施例におけるデータを記憶するための方法において、データを削除するステップを増加し、削除過程を詳細に説明した。本発明におけるデータを記憶するための方法をさらに充実させ完全にした。また、削除過程は、1回の読み取り過程に1回の書き込み過程を加えることに相当し、ディスクの全体の性能を向上させることに役立つ。また、残りのデータ記憶の連続性を確保して、スペースの断片が発生しないようにする。 In the method for storing data in this embodiment, the steps for deleting data have been increased, and the deletion process has been described in detail. The method for storing data in the present invention has been further enhanced and completed. Further, the deletion process corresponds to adding one writing process to one reading process, which is useful for improving the overall performance of the disk. In addition, the continuity of the remaining data storage is ensured so that space fragments do not occur.

理解できるのは、上記の各実施例におけるディスクにおいて、それに構築された各ストレージファイルのサイズは同じであることができるので、管理し易く、データ処理の効率を向上させることに有利である。各ストレージファイルのサイズは異なることもできるので、異なるユーザの要求を満たすために役立つ。なお、異なるストレージファイル中のデータブロックのサイズは同じであることができ、異なることもできる。管理の便宜上、各ストレージファイルに構成ファイルがインストールされることができる。ここで、構成ファイルは、ストレージファイルの構成パラメータ情報を説明するために使用されることができる。 It is understandable that in the disks in each of the above embodiments, the size of each storage file constructed therein can be the same, which is advantageous for easy management and improving the efficiency of data processing. The size of each storage file can be different, which helps to meet the demands of different users. Note that the size of the data blocks in different storage files can be the same and can be different. For convenience of management, a configuration file can be installed in each storage file. Here, the configuration file can be used to describe the configuration parameter information of the storage file.

図5Aに示すように、ストレージファイルの最後に1つの512KBのファイル(即ち、VletInfo)が存在してもよい。当該ファイルは、自分の構成パラメータ情報を記憶することができ、Protobuf(Google Protocol Buffer)を使用することができ、シンプルで効率的な構造化データの記憶形式である。それはプラットフォームと言語にかかわらず、拡張可能で、使用が簡単で、解析速度が速いなどの特徴を有する。説明すべき点は、このファイルの中のコンテンツはストレージファイルの構成の時のみに生成され、後で修正することができない。 As shown in FIG. 5A, there may be one 512KB file (ie, VletInfo) at the end of the storage file. The file is a simple and efficient storage format for structured data, which can store its own configuration parameter information and can use Protocol (Google Protocol Buffer). It is extensible, easy to use, and fast to analyze, regardless of platform and language. The point to explain is that the content in this file is generated only when the storage file is configured and cannot be modified later.

ここで、構成パラメータ情報は、ストレージファイルのサイズ(例えば、32GB)、データブロックのサイズ(例えば、2M)、レコード中の最小タイプ(たとえば、4kB)、レコード中の最大タイプ(例えば、512KB)、レコードタイプの間の間隔(例えば、4kB)などのうち少なくとも一つを含むことができるが、これに限定されない。言い換えれば、ストレージファイルの最後の一つのpageにvletinfoを記憶することに加えて、他の部分はすべて同じサイズのデータブロックであることができる。 Here, the configuration parameter information includes a storage file size (for example, 32 GB), a data block size (for example, 2 M), a minimum type in a record (for example, 4 kB), and a maximum type in a record (for example, 512 KB). It can include, but is not limited to, at least one of the intervals between record types (eg, 4 kB). In other words, in addition to storing vletinfo in the last page of the storage file, all other parts can be data blocks of the same size.

なお、説明すべき点は、大量の小さなファイルの記憶は、常に分散型ストレージシステムで解決するのに難しい問題である。ユーザは一般的に読み取り性能、空間利用率、及び削除の効率などの面で折衷する必要があったが、本発明の各実施例におけるデータを記憶する方法において、データの書き込みは、ディスクの1回のランダム読み書きに相当することができる。また、データの削除は、1回の読み取りに書き込みを加えることに相当することができる。このようにして、ディスクの読み書き性能及び削除効率を確保することに役立つ。また、データの書き込み及び削除の時に、スペースの断片が発生しない。また、すぐに空のストレージスペースを回収することができる。このようにして、ディスクの空間利用率を向上させることに役立つ。言い換えれば、本発明における方法は、ユーザの上記の要求をバランスよく合わせることができ、実際の使用中に良好な処理効果に達することができ、ユーザ体験を向上させることに有利であることができる。 It should be noted that the storage of a large number of small files is always a difficult problem to be solved by a distributed storage system. The user generally had to make compromises in terms of read performance, space utilization, deletion efficiency, etc., but in the method of storing data in each embodiment of the present invention, data writing is performed on the disk 1. It can be equivalent to one random read / write. Also, deleting data can be equivalent to adding a write to a single read. In this way, it helps to ensure the read / write performance and deletion efficiency of the disk. In addition, no space fragments are generated when writing or deleting data. In addition, empty storage space can be recovered immediately. In this way, it helps to improve the space utilization of the disk. In other words, the method in the present invention can balance the above requirements of the user, reach a good processing effect during actual use, and can be advantageous in improving the user experience. ..

本発明の実施例におけるデータを記憶するための方法において、2つのデータブロックにまたがらない限り、すべてのデータの読み書きはすべて1回のIOPSある。ここで、データブロックのサイズを調整したり、データ入力の分割などの措置によって、2つのデータブロックにまたがる状況を減少または防止することができる。読み書き性能は、それぞれのディスクの1回のランダム読み取り、書き込みの消費時間と基本的に同じである。また、書き込みと削除の過程で断片が発生されず、すぐにスペースを回収することができる。削除時に1回の別途のIO書き込みが発生することがあるが、従来の技術の解決手段に比べて、IOの消費はまだ比較的に少ない。 In the method for storing data in the embodiments of the present invention, all data is read and written in one IOPS unless it spans two data blocks. Here, measures such as adjusting the size of the data block and dividing the data input can reduce or prevent the situation spanning the two data blocks. The read / write performance is basically the same as the consumption time of one random read / write of each disk. In addition, no fragments are generated in the process of writing and deleting, and the space can be recovered immediately. One separate IO write may occur during deletion, but IO consumption is still relatively low compared to conventional solutions.

また、空間浪費の側面には、主に2つの部分が存在する。その一つは、同じタイプのデータのサイズをそろえることである。この部分の浪費は、入力データの平均サイズによって異なる。統計によって分かることができるように、ユーザの平均入力データは、一般的に256KBである。結果として生じる空間の浪費は、約0.7%である。他の一つは、各種タイプで割り当てられた最後の1つのデータブロックが埋められないことである。最悪の場合、約127個のデータブロックが1つのレコードだけ存在する。この場合、空間の浪費は約(2M×127)÷32G=0.7%である。分析を通じて、この2つの部分空間の浪費はすべて受け入れ可能であることがわかる。したがって、スループット、遅延、空間利用率などの側面の総合的な比較からみると、上記の方法は、既存の技術よりも優れている。 In addition, there are two main parts in terms of space waste. One is to match the size of the same type of data. The waste of this part depends on the average size of the input data. As can be seen from the statistics, the average input data of the user is generally 256KB. The resulting wasted space is about 0.7%. The other is that the last one data block allocated by each type is not filled. In the worst case, there is only one record with about 127 data blocks. In this case, the waste of space is about (2M × 127) ÷ 32G = 0.7%. Through analysis, it can be seen that all the waste of these two subspaces is acceptable. Therefore, the above method is superior to the existing technology in terms of comprehensive comparison of aspects such as throughput, delay, and space utilization.

説明すべき点は、本発明の実施例の方法は、主にデータの規模がEB級の場合、読み取りが書き込みより多い場合、書き込みが削除より多い場合に使用されることができる。これは、スペース使用率について極めて厳しく要求(即ち、コスト削減)する。併せて、読み書き遅延とスループットに比較的に高く要求する。 It should be explained that the method of the embodiment of the present invention can be used mainly when the scale of data is EB class, the number of reads is larger than that of writes, and the number of writes is larger than that of deletions. This is a very stringent requirement for space utilization (ie, cost savings). At the same time, it requires relatively high read / write delay and throughput.

続いて図6に示すように、上記の各図に示された方法の実現として、本発明は、データを記憶するための装置の1つの実施例を提供する。当該装置の実施例は、上記各実施例に示した方法の実施例と対応され、当該装置は、具体的に、様々な電子機器に適用されることができる。 Subsequently, as shown in FIG. 6, as a realization of the methods shown in each of the above figures, the present invention provides one embodiment of a device for storing data. Examples of the device correspond to examples of the methods shown in each of the above embodiments, and the device can be specifically applied to various electronic devices.

図6に示すように、本実施例のデータを記憶するための装置600は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成されることができる。スタンドアロンストレージエンジンのディスクには、ストレージファイルが構成されることができる。ここで、ストレージファイルのストレージスペースは、少なくとも2つのデータブロックに分けられ、且つ少なくとも2つのデータブロックの間ではリンクリスト構造を使用することができる。当該装置600は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニット601と、ストレージファイルでタイプの現在のストレージ情報を検索するように構成される検索ユニットであって、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含み、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なる、検索ユニット602と、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニット603と、残りのストレージスペースがないと確定されたことに応答して、タイプに新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶するように構成される第1割り当てユニット604と、を備えることができる。 As shown in FIG. 6, the device 600 for storing the data of this embodiment can be configured as a stand-alone storage engine for distributed object storage. Storage files can be configured on a stand-alone storage engine disk. Here, the storage space of the storage file is divided into at least two data blocks, and a linked list structure can be used between the at least two data blocks. The device 600 is configured to search for the current storage information of the type in the storage file and the type determination unit 601 configured to determine the type of the storage target record based on the size of the data of the storage target record. The search unit to be searched, the current storage information includes the information of the currently allocated data block and the currently stored record information of the data blocks, and the records stored under the same type of the storage file. The size of the data is the same, but the size of the data of the records stored under different types is different, the search unit 602 and the remaining storage space in the currently allocated data block based on the current storage information A space determination unit 603 configured to determine if it exists, and in response to the determination that there is no remaining storage space, assign a new data block to the type and store the stored record with new data. A first allocation unit 604 configured to be stored in a block can be provided.

本実施例のある選択可能な実施形態において、当該装置600は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように構成されるサイズ確定ユニット(図6に図示せず)と、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように構成される第2割り当てユニット(図6に図示せず)と、をさらに備えることができる。 In one selectable embodiment of this embodiment, the device 600 responds to the determination that there is remaining storage space, and is the remaining storage space less than the size of the data in the storage record? A sizing unit (not shown in FIG. 6) configured to further determine whether or not, and storage in response to the determination that the remaining storage space is smaller than the size of the data in the record to be stored. A second allocation unit configured to store some data in the target record in the remaining storage space, allocate a new data block to the type, and store the remaining data in the storage target record (shown in FIG. 6). It is possible to further prepare for.

選択可能に、少なくとも2つのデータブロックのストレージスペースは同じであることができ、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることができる。 Optionally, the storage space of at least two data blocks can be the same, and the data size of records stored in different types can all be an integral multiple of a given number.

さらに、当該装置600は、当該タイプの現在のストレージ情報を更新し、そして記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように構成される位置生成ユニット(図6に図示せず)をさらに備えることができる。ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを備える。 Further, the device 600 is configured to update the current storage information of the type, generate the position information after the storage target record is stored, and output the position information (shown in FIG. 6). Can be further provided. Here, the position information includes at least one of a record type, a record identifier, and an identifier of the data block in which the record is located.

一部の実施形態において、ディスクに少なくとも2つのストレージファイルが構成されることができ、且つディスクのディレクトリに各ストレージファイルのインデックス情報が記憶されることができる。 In some embodiments, at least two storage files can be configured on the disk, and index information for each storage file can be stored in a directory on the disk.

選択可能に、当該装置600は、ディレクトリから読み取り対象レコードの位置情報を検索するように構成される第1位置検索ユニット(図6に図示せず)と、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように構成される確定ユニット(図6に図示せず)と、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、そして読み取ったデータを前記読み取り対象レコードとして出力するように構成される読み取りユニット(図6に図示せず)と、をさらに備えることができる。 The device 600 can be selected based on a first position search unit (not shown in FIG. 6) configured to search the position information of the record to be read from the directory and the position information of the record to be read. Read based on the type of record to be read and the type of corresponding storage file, the confirmation unit (not shown in FIG. 6) configured to determine the position offset in the located data block, and the type of record to be read. Determine the length of the target record, read the data whose length is the length of the read target record, starting from the position indicated by the position offset, and output the read data as the read target record. A reading unit (not shown in FIG. 6) that is configured can be further provided.

さらに、当該装置600は、ディレクトリから削除対象レコードの位置情報を検索するように構成される第2位置検索ユニット(図6に図示せず)と、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように構成される獲得ユニット(図6に図示せず)と、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように構成される転送ユニット(図6に図示せず)と、読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように構成される修正ユニット(図6に図示せず)と、をさらに備えることができる。 Further, the device 600 has a second position search unit (not shown in FIG. 6) configured to search the position information of the record to be deleted from the directory, and a deletion target based on the position information of the record to be deleted. Currently stored based on the acquisition unit (not shown in FIG. 6) configured to acquire the current storage information of the type to which the record belongs in the corresponding storage file and the current storage information acquired. A transfer unit (not shown in FIG. 6) configured to read the last record from a record and transfer and store the read record to the position of the record to be deleted, and before the transfer of the read record. A correction unit (not shown in FIG. 6) configured to clear the data in the data block of the above and to correct the position information of the read record can be further provided.

一部の実施形態において、当該装置600は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように構成される回収ユニット(図6に図示せず)をさらに備えることができる。 In some embodiments, the device 600 determines if data still exists in the data block located before the read record is transferred and the data is not stored in the data block. , A recovery unit (not shown in FIG. 6) configured to recover the data block for reassignment can be further provided.

一部の実施形態において、当該装置600は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように構成されるコーディングユニット(図6に図示せず)と、当該副本の説明情報及びデータを配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように構成されるレコード生成ユニット(図6に図示せず)と、をさらに備えることができる。 In some embodiments, the device 600 is configured to code the sub-objects in at least one sub-object obtained by dividing the storage-waiting object to obtain a copy. A record generation unit (not shown in FIG. 6) configured to generate a storage target record of the sub-object by arranging the unit (not shown in FIG. 6) and the explanatory information and data of the duplicate. ), And can be further prepared.

選択可能に、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定するように構成される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズが当該一部のタイプのうち対応するデータのサイズが最も小さいタイプである目標タイプに対応するデータのサイズと同じにし、当該サブオブジェクトの1つの記憶対象レコードを生成するように構成される第1生成サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値よりも大きい場合、当該副本に分割及びゼロで埋めを行って、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の1つとそれぞれ同じにし、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成するように構成される第2生成サブユニットと、を備えることができる。 Selectably, the record generation unit is configured to determine whether the size of the data in the duplicate after arraying is the same as one of the sizes of data corresponding to each type in the storage file. If the size of the data of the confirmed subsystem and the duplicate is different from the size of the data corresponding to each type and smaller than the size of the data corresponding to some types, zero after the data of the duplicate. Fill with and make the size of the data of the duplicate after filling with zero the same as the size of the data corresponding to the target type, which is the smallest type of the corresponding data among the some types, and make the sub-object If the size of the data of the first generation subsystem configured to generate one storage target record of the above and the duplicate is larger than the maximum value of the size of the data corresponding to each type, it is divided into the duplicates and Fill with zeros so that the size of the data in each duplicate after being split is the same as one of the sizes of data corresponding to each type, and generate at least two storage records for that sub-object. A second generation subsystem, which is configured, can be provided.

理解できるのは、当該装置600に記載のいくつかのユニットは、図2〜図4に説明された方法中の各ステップに対応される。これにより、上記の方法について説明した操作、機能、及び生成された有益な効果は、同様に、当該装置600及びその中に含まれるユニットに適用され、ここで繰り返して説明しない。 It is understandable that some of the units described in the device 600 correspond to each step in the method described in FIGS. Thereby, the operations, functions, and beneficial effects produced that describe the above method are similarly applied to the device 600 and the units contained therein, which will not be repeated herein.

図7を参照すると、本発明に係るデータを記憶するためのシステムの1つの実施例のタイミング図を示す。 With reference to FIG. 7, a timing diagram of an embodiment of a system for storing data according to the present invention is shown.

本実施例におけるデータを記憶するためのシステムは、第1サブシステム、第2サブシステム及び上記の各実施例に説明したスタンドアロンストレージエンジンがインストールされた第3サブシステムを備えることができる。第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、少なくとも1つのサブオブジェクトを第3サブシステムに送信するように構成される。第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成される。第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトにコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶するように構成される。 The system for storing data in this embodiment can include a first subsystem, a second subsystem, and a third subsystem in which the stand-alone storage engine described in each of the above embodiments is installed. The first subsystem receives the storage request including the storage waiting object sent by the user, divides the storage waiting object into at least one sub-object, and the correspondence between the storage-waiting object and at least one sub-object. Is configured to be transmitted to the second subsystem and at least one sub-object to be transmitted to the third subsystem. The second subsystem is configured to store in a list the correspondence between the storage-waiting object and at least one sub-object. The third subsystem is configured to perform coding and arranging processing on the sub-objects in at least one sub-object to generate a storage target record of the sub-object and store the generated storage target record. ..

図7に示されたように、ステップ701において、第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。 As shown in FIG. 7, in step 701, the first subsystem can receive a storage request including a storage waiting object transmitted by the user.

本実施例において、第1サブシステムは、有線接続方式または無線接続方式によって、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。ここで、記憶待ちオブジェクトは、分散型オブジェクトストレージシステムのでデータあることができる。 In this embodiment, the first subsystem can receive a storage request including a storage waiting object transmitted by the user by a wired connection method or a wireless connection method. Here, the storage-waiting object can be data because it is a distributed object storage system.

ステップ702において、第1サブシステムは、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割することができる。ここで、分割方式は、実際の需要に応じて設定することができる。 In step 702, the first subsystem can divide the storage-waiting object into at least one sub-object. Here, the division method can be set according to the actual demand.

ステップ703において、第1サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を第2サブシステムに送信することができ、少なくとも1つのサブオブジェクトを第3サブシステムに送信することができる。 In step 703, the first subsystem can transmit the correspondence between the storage-waiting object and at least one subsystem to the second subsystem, and at least one subsystem to the third subsystem. be able to.

ステップ704において、第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶することができる。 In step 704, the second subsystem can store in the list the correspondence between the storage-waiting object and at least one sub-object.

ステップ705において、第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶することができる。これは、図2の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。 In step 705, the third subsystem performs coding and arranging processing on the sub-objects in at least one sub-object to generate a storage target record of the sub-object, and stores the generated storage target record. can do. This can be referred to in the relevant description of the embodiment of FIG. 2 and will not be repeated herein.

本実施例のある選択可能な実施形態において、例えば、ステップ706において、第3サブシステムは、データ記憶完了を表示するための応答情報を第1サブシステムに送信することができる。 In certain selectable embodiments of this embodiment, for example, in step 706, the third subsystem can send response information to the first subsystem to indicate the completion of data storage.

その後、ステップ707において、第1サブシステムは、応答情報を受信した場合、記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子をユーザにフィードバックする。このようにして、ユーザは、クエリ識別子によって、それが示したオブジェクトデータにアクセスすることができる。ここで、クエリ識別子は、数字、アルファベット、文字などの少なくとも一つの文字符号を含むがそれに限定されない。 Then, in step 707, when the first subsystem receives the response information, it generates a query identifier of the storage waiting object and feeds back the query identifier to the user. In this way, the user can access the object data it represents by the query identifier. Here, the query identifier includes, but is not limited to, at least one character code such as a number, an alphabet, or a character.

選択可能に、例えば、ステップ708において、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む読み取り要求を受信することができる。 Optionally, for example, in step 708, the first subsystem can receive a read request containing the query identifier sent by the user.

続いて、ステップ709において、第1サブシステムは、読み取り要求中のクエリ識別子を第2サブシステムに送信することができる。 Subsequently, in step 709, the first subsystem can send the query identifier in the read request to the second subsystem.

その後、ステップ710において、第2サブシステムは、読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得することができ、サブオブジェクトリストを第3サブシステムに送信することができる。 Then, in step 710, the second subsystem can acquire the sub-object list corresponding to the object indicated by the query identifier in the read request, and can send the sub-object list to the third subsystem. ..

その後、ステップ711において、第3サブシステムは、サブオブジェクトリストに応じて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、オブジェクトデータを第1サブシステムに送信することができる。これは、図3の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。 Then, in step 711, the third subsystem may read the corresponding record according to the sub-object list, parse the read record to obtain the object data, and send the object data to the first subsystem. it can. This can be referred to in the relevant description of the embodiment of FIG. 3 and will not be repeated herein.

最後に、ステップ712において、第1サブシステムは、オブジェクトデータをユーザにフィードバックすることができる。 Finally, in step 712, the first subsystem can feed back the object data to the user.

あるアプリケーションシナリオにおいて、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む削除要求をさらに受信することができる。このようにして、第3サブシステムは、図4の実施例に関連する説明に応じて、削除要求が示したオブジェクトデータを削除することができる。ここで繰り返して説明しない。 In one application scenario, the first subsystem may further receive a delete request containing the query identifier sent by the user. In this way, the third subsystem can delete the object data indicated by the deletion request, according to the description related to the embodiment of FIG. I will not repeat it here.

理解できるのは、上記第1サブシステム、第2サブシステム及び第3サブシステムは、異なる電子機器(例えば、3台のサーバ)に位置されることができ、同じ電子機器(図1に示したサーバ105)に位置されることもできる。且つ一部の実施形態において、第1サブシステムに第2サブシステムの機能が備えられた場合、本実施例中のシステムは第2サブシステムをインストールしなくてもよい。 It is understandable that the first subsystem, the second subsystem and the third subsystem can be located in different electronic devices (for example, three servers) and are the same electronic device (shown in FIG. 1). It can also be located on the server 105). Moreover, in some embodiments, when the first subsystem is provided with the function of the second subsystem, the system in this embodiment does not need to install the second subsystem.

本実施例のデータを記憶するためのシステムにおいて、新しいデータの記憶方法を適用し、即ち、データのサイズに応じて分類して記憶する。このようにして、データの分散型ストレージを実現することができるのみならず、データの安全性を向上させる。併せて、全体的なデータ処理性能を向上させ、動作コストを減少させることができる。 In the system for storing the data of this embodiment, a new data storage method is applied, that is, the data is classified and stored according to the size of the data. In this way, not only can distributed storage of data be realized, but also data security is improved. At the same time, the overall data processing performance can be improved and the operating cost can be reduced.

以下、図8を参照すると、本出願の実施例に係る電子機器(例えば、図1に示されたサーバ105)を実現するために適用されるコンピュータシステム800の構造模式図を示す。図8に示された電子機器は、ただ1つの実施例を示しただけで、本発明の実施例の機能と使用範囲に限定を加えるものではない。 Hereinafter, with reference to FIG. 8, a schematic structural diagram of a computer system 800 applied to realize an electronic device (for example, the server 105 shown in FIG. 1) according to an embodiment of the present application is shown. The electronic device shown in FIG. 8 shows only one embodiment and does not limit the function and range of use of the embodiment of the present invention.

図8に示されたように、コンピュータシステム800は、読み取り専用メモリ(ROM)802におけるプログラムまたは記憶部分808からランダムアクセスメモリ(RAM)803にローディングされたプログラムによって、様々な適切な動作及び処理を実行することができる中央処理装置(CPU)801を備える。RAM803にはさらにシステム800の操作に必要な各種プログラムとデータが記憶されている。CPU801、ROM802及びRAM803は、バス804を介して相互接続される。入力/出力(I/O)インターフェース805もバス804に接続される。 As shown in FIG. 8, the computer system 800 performs various appropriate operations and processes by a program in the read-only memory (ROM) 802 or a program loaded from the storage portion 808 into the random access memory (RAM) 803. It includes a central processing unit (CPU) 801 that can be executed. The RAM 803 further stores various programs and data necessary for operating the system 800. The CPU 801 and the ROM 802 and the RAM 803 are interconnected via the bus 804. The input / output (I / O) interface 805 is also connected to the bus 804.

キーボード、マウスなどを備える入力部分806、陰極線管(cathode−ray tube、CRT)、液晶ディスプレイ(LCD)など及びスピーカなどを備える出力部分807、ハードディスクなどを備える記憶部分808、及びLANカード、モデムなどを備えるネットワークインターフェースカードの通信部分809は、I/Oインターフェース805に接続される。通信部分809は、インターネットなどのネットワークを介して通信処理を実行する。ドライバ810も必要に応じてI/Oインターフェース805に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル媒体811は、必要に応じてドライバ810に装着されて、それから読み出されるコンピュータプログラムが必要に応じて記憶部分808にインストールされるようにする。 Input part 806 with keyboard, mouse, etc., cathode ray tube (CRT), output part 807 with liquid crystal display (LCD), speaker, etc., storage part 808 with hard disk, LAN card, modem, etc. The communication portion 809 of the network interface card including the above is connected to the I / O interface 805. The communication portion 809 executes communication processing via a network such as the Internet. The driver 810 is also connected to the I / O interface 805 as needed. A removable medium 811 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is attached to a driver 810 as needed, and a computer program read from the removable medium 811 is installed in a storage portion 808 as needed.

特に、本発明に係る実施例において、フローチャートを参照して上述した過程は、コンピュータソフトウェアプログラムとして実現されることができる。例えば、本開示の実施例は、コンピュータ可読媒体に担持されているコンピュータプログラムを備えるコンピュータプログラム製品を備え、当該コンピュータプログラムは、フローチャートに示された方法を実行するプログラムコードを備える。このような実施例において、当該コンピュータプログラムは、通信部分809を介してネットワークからダウンロード及びインストールされることができ、及び/またはリムーバブル媒体811からインストールされることができる。当該コンピュータプログラムが中央処理装置(CPU)801によって実行される時、本発明の方法に限定された前記機能を実行する。本発明に記載のコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体または両方の任意の組み合わせであることができることを説明すべきである。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはこれらの任意の組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例は、1つまたは複数のワイヤを有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光記憶素子、磁気記憶素子、またはこれらの任意の組み合わせを備えるが、これらに限定されない。本発明において、コンピュータ可読媒体は、プログラムを備えるかまたは記憶する任意の有形の媒体であることができ、当該プログラムは、指令実行システム、装置、または素子によって使用され、またはそれらとの結合によって使用される。本発明において、コンピュータ可読信号媒体は、コンピュータが読み取り可能なプログラムコードを担持し、ベースバンドに備えたり、または搬送波の一部として伝播されるデータ信号に備えることができる。このように伝播されたデータ信号は、電磁信号、光信号、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されない様々な形態をとることができる。コンピュータ可読信号媒体は、またコンピュータ可読記憶媒体以外のいずれのコンピュータ可読媒体であることができ、当該コンピュータ可読媒体は、指令実行システム、装置または素子によって使用され、またはそれらとの結合によって使用されるプログラムを送信、伝播、または移送することができる。コンピュータ可読媒体に含まれるプログラムコードは、無線、ワイヤ、光ファイバケーブル、RFなど、またはこれらの任意の適切な組み合わせを備えるがこれらに限定されないいずれの適切な媒体によって伝送されることができる。 In particular, in the embodiment according to the present invention, the process described above with reference to the flowchart can be realized as a computer software program. For example, an embodiment of the present disclosure comprises a computer program product comprising a computer program carried on a computer readable medium, the computer program comprising program code that executes the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network via the communication portion 809 and / or installed from the removable medium 811. When the computer program is executed by the central processing unit (CPU) 801 it performs the above functions limited to the methods of the present invention. It should be explained that the computer-readable medium described in the present invention can be a computer-readable signal medium, a computer-readable storage medium, or any combination of both. The computer-readable storage medium can be, but is not limited to, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or devices, or any combination thereof. More specific examples of computer-readable storage media are electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only. It includes, but is not limited to, a memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage element, a magnetic storage element, or any combination thereof. In the present invention, a computer-readable medium can be any tangible medium that comprises or stores a program, which is used by, or combined with, a command execution system, device, or element. Will be done. In the present invention, the computer-readable signal medium carries a computer-readable program code and can be provided for a baseband or for a data signal propagated as part of a carrier wave. The data signal thus propagated can take various forms including, but not limited to, electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which is used by, or coupled with, a command execution system, device or element. Programs can be transmitted, propagated, or transported. The program code contained on a computer-readable medium can be transmitted by any suitable medium, including, but not limited to, wireless, wire, fiber optic cable, RF, or any suitable combination thereof.

図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びコンピュータプログラム製品の実現可能な実施形態の構造、機能、及び操作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、1つのモジュール、プログラムセグメントまたはコードの一部を表すことができ、当該モジュール、プログラムセグメントまたはコードの一部は、規定された論理機能を実現するための1つまたは複数の実行可能な指令を備える。また、代替実施形態において、ブロックに示されている機能は、図面に示されているものとは異なる順序で発生することもあることに留意されたい。例えば、連続して表示された2つのブロックは、実際には実質的に並列に実行されてもよく、それらは含まれる機能に応じて逆の順序で実行されてもよい。また、ブロック図及び/またはフローチャートの各ブロック、及びブロック図及び/またはフローチャートのブロックの組み合わせは、規定された機能または操作を実行する専用のハードウェアベースのシステムで実現され、または専用のハードウェアとコンピュータ指令の組み合わせによって実現されることができることにも留意されたい。 Flow charts and block diagrams in the drawings show the structure, function, and operation of feasible embodiments of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram can represent a module, program segment or part of code, the module, program segment or part of code to achieve a defined logical function. It comprises one or more executable commands of. Also note that in alternative embodiments, the functions shown in the blocks may occur in a different order than those shown in the drawings. For example, two blocks displayed in succession may actually be executed substantially in parallel, or they may be executed in reverse order depending on the functions included. Also, each block of the block diagram and / or flowchart, and the combination of blocks of the block diagram and / or flowchart, is implemented in a dedicated hardware-based system that performs a specified function or operation, or dedicated hardware. It should also be noted that this can be achieved by a combination of and computer directives.

本発明の実施例で言及されたユニットは、ソフトウェアによって実現されることができ、またはハードウェアによって実現されることもできる。記述されたユニットは、また、例えば、タイプ確定ユニット、検索ユニット、スペース確定ユニット及び第1割り当てユニットを備えるプロセッサーとして記述されるプロセッサーに設置されることができる。ここで、これらのユニットの名称は、当該ユニット自体を限定するものではない場合があり、例えば、タイプ確定ユニットは、また、「記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定するユニット」と記述されることもできる。 The units referred to in the embodiments of the present invention can be implemented by software or can also be implemented by hardware. The described unit can also be installed in a processor described as, for example, a processor comprising a type determination unit, a search unit, a space determination unit and a first allocation unit. Here, the names of these units may not limit the unit itself, for example, the type determination unit also "depends on the size of the data of the storage target record, the type of the storage target record. It can also be described as a "determining unit".

他の態様として、本発明は、コンピュータ可読媒体をさらに提供し、当該コンピュータ可読媒体は、前記実施例で説明した電子機器に含まれることができ、または別途に存在し、当該電子機器にインストールされていないことができる。前記コンピュータ可読媒体は、1つまたは複数のプログラムが担持されることができ、1つまたは複数のプログラムが当該サーバによって実行される場合、当該電子機器は、記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定し、ストレージファイルで、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を備える、タイプの下の現在のストレージ情報を検索し、ここで、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なり、現在のストレージ情報に応じて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定し、残りのストレージスペースがないと確定されたことに応答して、タイプの下に新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。 In another aspect, the invention further provides a computer-readable medium, which can be included in or separately exists in the electronic device described in the embodiments and is installed in the electronic device. Can not be. The computer-readable medium can carry one or more programs, and when one or more programs are executed by the server, the electronic device depends on the size of the data in the record to be stored. , Determine the type of record to be stored, and search the storage file for the current storage information under the type, which contains information on the currently allocated data block and information on the currently stored record of the data blocks. So, the size of the data of the records stored under the same type of the storage file is the same, the size of the data of the records stored under the different type is different, and it is currently allocated according to the current storage information. Determine if there is remaining storage space in the given data block, and in response to the determination that there is no remaining storage space, assign a new data block under the type to store the records to be stored. Store in a new data block.

以上の説明は、本発明の好ましい実施例及び応用された技術の原理の説明にすぎない。本発明で言及される本発明の範囲は、前記の技術的特徴の特定の組み合わせに限定されず、併せて、前記の発明構想から逸脱することなく、前記の技術的な特徴または均等な特徴を任意に組み合わせて形成された。例えば、前記の特徴と本発明において開示されるがこれに限定されない技術的特徴と類似した機能を有する技術的特徴が互いに交換されて形成される他の技術的解決手段を網羅すべきであることを当業者は理解すべきである。

The above description is merely a description of preferred embodiments of the present invention and principles of applied techniques. The scope of the present invention referred to in the present invention is not limited to the specific combination of the above technical features, and at the same time, the above technical features or equivalent features without departing from the above concept of the invention. It was formed in any combination. For example, other technical solutions formed by exchanging the above-mentioned features and technical features having functions similar to those disclosed in the present invention but not limited to them should be covered. Those skilled in the art should understand.

Claims (17)

データを記憶するための方法であって、前記方法は分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、
前記方法は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含むデータを記憶するための方法。
A method for storing data, the method being used for a stand-alone storage engine of distributed object storage, a storage file is configured on the disk of the stand-alone storage engine, and the storage space of the storage file is at least two pieces of data. It is divided into blocks and uses a link list structure between the at least two data blocks.
The method is
Determining the type of the storage target record based on the size of the data of the storage target record,
Searching for the current storage information of the type in the storage file, the current storage information includes information on the currently allocated data block and information on the currently stored record of the data block. The size of the data of the records stored in the same type of the storage file is the same, and the size of the data of the records stored in different types of the storage file is different.
Determining whether or not there is remaining storage space in the currently allocated data block based on the current storage information.
To store data, including allocating a new data block to the type and storing the storage target record in the new data block in response to the determination that there is no remaining storage space. Method.
前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、
前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、
前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含むことを特徴とする
請求項1に記載のデータを記憶するための方法。
In response to the determination that there is the remaining storage space, it is further determined whether or not the remaining storage space is smaller than the size of the data of the storage target record.
In response to determining that the remaining storage space is smaller than the size of the data in the storage target record, storing some data in the storage target record in the remaining storage space.
The method for storing the data according to claim 1, wherein a new data block is assigned to the type and the remaining data of the storage target record is stored in the new data block, and further includes. ..
前記少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることを特徴とする
請求項1に記載のデータを記憶するための方法。
The data according to claim 1, wherein the storage space of the at least two data blocks is the same, and the size of the data of the records stored in different types is all an integral multiple of a predetermined numerical value. A way to remember.
前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、
前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことを特徴とする
請求項1乃至3のいずれか一項に記載のデータを記憶するための方法。
It further comprises updating the current storage information of the type, generating the stored location information of the storage target record, and outputting the location information.
The data according to any one of claims 1 to 3, wherein the position information includes at least one of the type of the record, the identifier of the record, and the identifier of the data block in which the record is located. How to do it.
前記ディスクに少なくとも2つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されていることを特徴とする
請求項4に記載のデータを記憶するための方法。
The method for storing the data according to claim 4, wherein at least two storage files are configured on the disk, and index information of each storage file is stored in the directory of the disk.
前記ディレクトリから読み取り対象レコードの位置情報を検索することと、
前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、
前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含むことを特徴とする
請求項5に記載のデータを記憶するための方法。
Searching for the location information of the record to be read from the directory
Based on the position information of the read target record, the position offset in the data block located in the type of the read target record and the corresponding storage file is determined.
Based on the type of the read target record, the length of the read target record is determined, and the data of the length corresponding to the length of the read target record is read starting from the position displayed by the position offset. , The method for storing the data according to claim 5, wherein the read data is output as the read target record, and further includes.
前記ディレクトリから削除対象レコードの位置情報を検索することと、
前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、
獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、
前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含むことを特徴とする
請求項5に記載のデータを記憶するための方法。
Searching for the location information of the record to be deleted from the directory
Acquiring the current storage information of the type to which the deletion target record belongs in the corresponding storage file based on the position information of the deletion target record.
Based on the acquired current storage information, the last record is read from the currently stored record, and the read record is transferred to the position of the deletion target record and stored.
The data according to claim 5, wherein the data in the data block before the transfer of the read record is cleared, the position information of the read record is corrected, and the data is further included. The way for.
前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、
前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、
当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含むことを特徴とする
請求項7に記載のデータを記憶するための方法。
The method for storing the data after clearing the data in the pre-transfer data block of the read record is
Determining whether or not the data exists in the data block where the read record was located before transfer
The method for storing the data according to claim 7, wherein if the data block does not have data, the data block is recovered for reassignment, and further comprises.
前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、
記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、
当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含むことを特徴とする
請求項1乃至8のいずれか一項に記載のデータを記憶するための方法。
A method for storing the data before determining the type of the storage target record, based on the size of the data in the storage target record, is
Coding the sub-object to the sub-object in at least one sub-object obtained by dividing the storage waiting object to obtain a duplicate.
The invention according to any one of claims 1 to 8, further comprising performing an arrangement process on the explanatory information and data of the duplicate to generate a storage target record of the sub-object. A method for storing data in.
前記サブオブジェクトの記憶対象レコードを生成することは、
配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、
前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプであることを特徴とする
請求項9に記載のデータを記憶するための方法。
Creating a storage target record for the sub-object
Determining whether the size of the arrayed duplicate data is the same as one of the sizes of data corresponding to each of the types in the storage file.
If the size of the duplicate data is all different from the size of the data corresponding to each of the types and is smaller than the size of some of the data corresponding to the type, the duplicate data is padded with zeros to zero. The size of the data of the duplicate after filling is the same as the size of the data corresponding to the target type, and one storage target record of the sub-object is generated.
When the size of the data of the duplicate is larger than the maximum value of the size of the data corresponding to each of the types, the size of the data of each duplicate after the division is divided into the above types by dividing the duplicate and filling it with zeros. Including making it the same as one of the corresponding data sizes and generating at least two storage target records of the sub-object.
The method for storing the data according to claim 9, wherein the target type is the type having the smallest size of the corresponding data among the partial types.
データを記憶するための装置であって、前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、
前記装置は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備えるデータを記憶するための装置。
A device for storing data, the device is configured in a stand-alone storage engine of distributed object storage, a storage file is configured in the disk of the stand-alone storage engine, and the storage space of the storage file is at least two data. It is divided into blocks and uses a link list structure between the at least two data blocks.
The device
A type determination unit configured to determine the type of the storage target record based on the size of the data in the storage target record.
A search unit configured to search for the current storage information of the type in the storage file, the current storage information being currently stored in the currently allocated data block information and the data block. The search unit and the search unit, which include record information, have the same size of data in the storage file stored in the same type, but different in size of data in records stored in different types.
A space determination unit configured to determine whether or not there is remaining storage space in the currently allocated data block based on the current storage information.
A first allocation unit configured to allocate a new data block to the type and store the storage target record in the new data block in response to the determination that there is no remaining storage space. A device for storing data.
データを記憶するためのシステムであって、
第1サブシステム、第2サブシステム及び請求項1乃至10のいずれか一項に記載のスタンドアロンストレージエンジンがインストールされた第3サブシステムを備え、
前記第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、前記少なくとも1つのサブオブジェクトを前記第3サブシステムに送信するように構成され、
前記第2サブシステムは、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、
前記第3サブシステムは、前記少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶するように構成されるデータを記憶するためのシステム。
A system for storing data
It comprises a first subsystem, a second subsystem, and a third subsystem in which the stand-alone storage engine according to any one of claims 1 to 10 is installed.
The first subsystem receives a storage request including a storage-waiting object transmitted by a user, divides the storage-waiting object into at least one sub-object, and the storage-waiting object and the at least one sub-object. It is configured to transmit the correspondence between them to the second subsystem and at least one of the sub-objects to the third subsystem.
The second subsystem is configured to store in a list the correspondence between the storage-waiting object and the at least one sub-object.
The third subsystem performs coding and arranging processing on the sub-objects in the at least one sub-object to generate a storage target record of the sub-object, and stores the generated storage target record. A system for storing data that is configured to.
前記第3サブシステムは、データ記憶完了を表示するための応答情報を前記第1サブシステムに送信するようにさらに構成され、
前記第1サブシステムは、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするようにさらに構成されることを特徴とする
請求項12に記載のデータを記憶するためのシステム。
The third subsystem is further configured to send response information to indicate the completion of data storage to the first subsystem.
The first subsystem is further configured to generate a query identifier of the storage waiting object when the response information is received and to feed back the query identifier to the user. A system for storing the described data.
前記第1サブシステムは、前記ユーザによって送信されたクエリ識別子を含む読み取り要求を受信し、前記読み取り要求中のクエリ識別子を前記第2サブシステムに送信するようにさらに構成され、
前記第2サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第3サブシステムに送信するようにさらに構成され、
前記第3サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第1サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第1サブシステムに送信するようにさらに構成されることを特徴とする
請求項13に記載のデータを記憶するためのシステム。
The first subsystem is further configured to receive a read request including a query identifier sent by the user and send the query identifier in the read request to the second subsystem.
The second subsystem is further configured to acquire a sub-object list corresponding to the object indicated by the query identifier in the read request and send the sub-object list to the third subsystem.
The third subsystem reads the corresponding record based on the sub-object list, analyzes the read record to acquire the object data, and the first subsystem feeds the object data back to the user. The system for storing the data according to claim 13, wherein the object data is further configured to be transmitted to the first subsystem.
電子機器であって、
1つまたは複数のプロセッサーと、
1つまたは複数のプログラムを記憶するための記憶装置と、を備え、
前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが請求項1乃至10のいずれか一項に記載の方法を実現する電子機器。
It ’s an electronic device,
With one or more processors
A storage device for storing one or more programs,
An electronic device in which, when the one or more programs are executed by the one or more processors, the one or more processors realizes the method according to any one of claims 1 to 10.
コンピュータプログラムが記憶されているコンピュータ可読媒体であって、
前記コンピュータプログラムがプロセッサーによって実行される時、請求項1乃至10のいずれか一項に記載の方法が実現されるコンピュータ可読媒体。
A computer-readable medium that stores computer programs
A computer-readable medium in which the method according to any one of claims 1 to 10 is realized when the computer program is executed by a processor.
コンピュータプログラムであって、It ’s a computer program
前記コンピュータプログラムがプロセッサーにより実行されると、請求項1乃至10のいずれか一項に記載の方法を実現させるコンピュータプログラム。A computer program that realizes the method according to any one of claims 1 to 10 when the computer program is executed by a processor.
JP2019127387A 2018-09-04 2019-07-09 Methods, devices and systems for storing data Active JP6778795B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811024928.8A CN109254733B (en) 2018-09-04 2018-09-04 Method, device and system for storing data
CN201811024928.8 2018-09-04

Publications (2)

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

Family

ID=65046720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019127387A Active JP6778795B2 (en) 2018-09-04 2019-07-09 Methods, devices and systems for storing data

Country Status (3)

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

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918381B (en) * 2019-03-13 2021-06-11 北京百度网讯科技有限公司 Method and apparatus for storing data
CN110059087B (en) * 2019-03-26 2023-02-28 创新先进技术有限公司 Data attribute identification method, device and equipment in block chain type account book
CN112085424A (en) * 2019-06-14 2020-12-15 北京京东振世信息技术有限公司 Method, apparatus, device and computer readable medium for storing article
CN110427377B (en) * 2019-08-02 2023-12-26 北京博睿宏远数据科技股份有限公司 Data processing method, device, equipment and storage medium
CN110727639B (en) * 2019-10-08 2023-09-19 深圳市网心科技有限公司 Fragment data reading method, electronic device, system and medium
CN112765046A (en) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for reclaiming storage space
CN110781146A (en) * 2019-10-28 2020-02-11 宁波三星智能电气有限公司 Event storage method, power terminal and computer-readable storage medium
CN111399762B (en) * 2019-11-27 2021-06-18 杭州海康威视系统技术有限公司 Data storage method, device and storage system
CN111198807B (en) * 2019-12-18 2023-10-27 中移(杭州)信息技术有限公司 Data stream analysis method, device, computer equipment and storage medium
CN111522507B (en) * 2020-04-14 2021-10-01 中山大学 Low-delay file system address space management method, system and medium
CN111694521B (en) * 2020-06-17 2022-08-05 杭州海康威视系统技术有限公司 Method, device and system for storing file
CN111797032B (en) * 2020-06-19 2022-09-23 南京南瑞继保工程技术有限公司 Storage structure, method, device, equipment and readable storage medium
CN114430458B (en) * 2020-10-29 2023-12-19 北京小米移动软件有限公司 Anti-shake data acquisition method, anti-shake data acquisition device, and storage medium
CN112506918A (en) * 2020-11-03 2021-03-16 深圳市宏电技术股份有限公司 Data access method, terminal and computer readable storage medium
CN112699092B (en) * 2021-01-13 2023-02-03 浪潮云信息技术股份公司 Method for storing big value data by RocksDB
CN113010105A (en) * 2021-02-25 2021-06-22 深圳市广和通无线股份有限公司 Data backup method, device, equipment and computer readable storage medium
CN113194127B (en) * 2021-04-21 2022-08-12 统信软件技术有限公司 Data storage method, data transmission method and computing equipment
CN113495889B (en) * 2021-07-07 2024-03-15 浙江大华技术股份有限公司 Distributed object storage method and device, electronic equipment and storage medium
CN113486026A (en) * 2021-08-02 2021-10-08 北京字节跳动网络技术有限公司 Data processing method, device, equipment and medium
CN114116795B (en) * 2021-11-01 2022-12-20 北京力控元通科技有限公司 Data storage and query method, device, storage medium and electronic equipment
CN114816277B (en) * 2022-06-30 2022-11-11 广东睿江云计算股份有限公司 Control method and control system for guaranteeing sequence of file data blocks
CN116010997B (en) * 2023-03-20 2023-08-01 中国信息通信研究院 Data resource hosting method and device based on continuity check of blockchain
CN116521091B (en) * 2023-06-28 2023-09-15 苏州浪潮智能科技有限公司 Data reading method, device, equipment, data transmission system and storage medium
CN117082083A (en) * 2023-08-30 2023-11-17 杭州浩联智能科技有限公司 Data storage method, device and medium based on distributed Internet of things architecture
CN116910825B (en) * 2023-09-12 2023-12-15 上海融和元储能源有限公司 Data synchronization method and device based on kafka
CN117078213B (en) * 2023-10-11 2024-03-29 潍坊威尔信息技术有限公司 Building engineering management platform based on big data integration analysis

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030058687A (en) * 2001-12-31 2003-07-07 주식회사 케이티 The Management method depending on spatial data characteristic
KR100449419B1 (en) * 2002-06-14 2004-09-18 학교법인 인하학원 Method for managing a spatial database selectively according to data size
KR100694069B1 (en) * 2004-11-29 2007-03-12 삼성전자주식회사 Recording apparatus including plurality of data blocks of different sizes, file managing method using the same and printing apparatus including the same
EP1798934A1 (en) * 2005-12-13 2007-06-20 Deutsche Thomson-Brandt Gmbh Method and apparatus for organizing nodes in a network
KR100834574B1 (en) * 2006-09-29 2008-06-02 한국전자통신연구원 File storage system and file storage and file search method in file storage system
CN100583832C (en) * 2007-03-30 2010-01-20 华为技术有限公司 Data management method and system
CN101446976A (en) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 File storage method in distributed file system
JP5439236B2 (en) * 2010-03-12 2014-03-12 株式会社日立製作所 Computer system and method of executing application program
JP2012073777A (en) * 2010-09-28 2012-04-12 Kddi Corp Distributed file system control apparatus
JP5677336B2 (en) 2011-08-01 2015-02-25 株式会社東芝 Memory device
US9582204B2 (en) 2014-01-07 2017-02-28 Apple Inc. Speculative prefetching of data stored in flash memory
KR101525453B1 (en) * 2014-04-09 2015-06-04 인하대학교 산학협력단 A method of data replication using data access frequency in RAID storage system
CN106462491B (en) * 2014-12-31 2020-08-14 华为技术有限公司 Management method of stored data, storage manager and storage system
CN105205174B (en) * 2015-10-14 2019-10-11 北京百度网讯科技有限公司 Document handling method and device for distributed system
CN107967121B (en) * 2017-10-25 2020-04-14 华为技术有限公司 Data writing method and storage device

Also Published As

Publication number Publication date
CN109254733B (en) 2021-10-01
KR20200027413A (en) 2020-03-12
CN109254733A (en) 2019-01-22
JP2020038623A (en) 2020-03-12
KR102240557B1 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
JP6778795B2 (en) Methods, devices and systems for storing data
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
CN102169507B (en) Implementation method of distributed real-time search engine
KR101694984B1 (en) Method of parity updates in asymmetric clustering filesystem
US9507800B2 (en) Data management in distributed file systems
CN110262922B (en) Erasure code updating method and system based on duplicate data log
US8103621B2 (en) HSM two-way orphan reconciliation for extremely large file systems
US11093387B1 (en) Garbage collection based on transmission object models
JP5886447B2 (en) Location independent files
CN102938784A (en) Method and system used for data storage and used in distributed storage system
CN104641365A (en) System and method for managing deduplication using checkpoints in a file storage system
CN104881466A (en) Method and device for processing data fragments and deleting garbage files
CN110347651A (en) Method of data synchronization, device, equipment and storage medium based on cloud storage
US10346362B2 (en) Sparse file access
CN105183400A (en) Object storage method and system based on content addressing
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN105653209A (en) Object storage data transmitting method and device
CN109597903A (en) Image file processing apparatus and method, document storage system and storage medium
CN112925859A (en) Data storage method and device
CN110245129B (en) Distributed global data deduplication method and device
CN113190384B (en) Data recovery control method, device, equipment and medium based on erasure codes
CN113609090A (en) Data storage method and device, computer readable storage medium and electronic equipment
CN112866406A (en) Data storage method, system, device, equipment and storage medium
CN112764662A (en) Method, apparatus and computer program product for storage management
CN115878625A (en) Data processing method and device and electronic equipment

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