JP2020038623A - Method, device, and system for storing data - Google Patents
Method, device, and system for storing data Download PDFInfo
- Publication number
- JP2020038623A JP2020038623A JP2019127387A JP2019127387A JP2020038623A JP 2020038623 A JP2020038623 A JP 2020038623A JP 2019127387 A JP2019127387 A JP 2019127387A JP 2019127387 A JP2019127387 A JP 2019127387A JP 2020038623 A JP2020038623 A JP 2020038623A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- record
- type
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 9
- 230000006854 communication Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明の実施形態は、分散型オブジェクトストレージの技術分野に関し、具体的には、データを記憶するための方法、装置及びシステムに関する。 Embodiments of the present invention relate to the technical field of distributed object storage, and in particular, to a method, apparatus, and system for storing data.
分散型ストレージシステムは、通常、データを複数の独立した機器に分散して記憶する。従来のネットワークストレージシステムは、すべてのデータを記憶するために集中型ストレージサーバを使用している。この時のストレージサーバは、システムパフォーマンスのボトルネックになり、信頼性と安全性の焦点にもなって、大規模なストレージアプリケーションのニーズを満たすことができない。分散型ネットワークストレージシステムは、スケーラブルなシステム構造を使用することが多く、複数のストレージサーバを利用してストレージ負荷を共有し、位置サーバを利用してストレージ情報の位置を確定する。これは、システムの信頼性、可用性、アクセス効率を向上させるだけでなく、拡張も容易にする。 Generally, a distributed storage system stores data in a distributed manner among a plurality of independent devices. Conventional network storage systems use a centralized storage server to store all data. At this time, the storage server becomes a bottleneck in system performance and also becomes a focus on reliability and security, and cannot meet the needs of large-scale storage applications. A distributed network storage system often uses a scalable system structure, uses a plurality of storage servers to share a storage load, and uses a location server to determine the location of storage information. This not only increases system reliability, availability, and access efficiency, but also facilitates scalability.
本発明の実施形態は、データを記憶するための方法、装置及びシステムを提供する。 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 standalone storage engine of a distributed object storage, wherein a storage file is configured on a disk of the standalone storage engine, a storage space of the storage file is divided into at least two data blocks, and the at least two data Using a linked list structure between the blocks, the method determines the type of the storage target record based on the size of the data of the storage target record, and stores the current storage information of the type in the storage file. Searching, wherein the current storage information includes information of a currently allocated data block and information of a currently stored record of the data block, and The size of the data of the records stored in the same type is the same, and the size of the data of the records stored in the different types is different, and the data currently allocated based on the current storage information is different. Allocating a new data block to the type in response to determining whether there is any remaining storage space in the block and in response to determining that there is no remaining storage space, Storing in said new data block.
一部の実施形態において、データを記憶するための方法は、前記残りのストレージスペースがあると確定されたことに応答して、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さくないか否かをさらに確定することと、前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含む。 In some embodiments, the method for storing data is such that, in response to the determination that the remaining storage space is present, the remaining storage space is not less than a size of the data of the stored record. Further determining whether or not the remaining storage space is smaller than the size of the data of the storage target record. Further comprising: storing in a space; and allocating a new data block to the type, and storing the remaining data of the record to be stored in the new data block.
一部の実施形態において、前記少なくとも2つのデータブロックのストレージスペースは同じであり、且つ異なる前記タイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍である。 In some embodiments, the storage space of the at least two data blocks is the same, and the sizes of data of records stored in the different types are all integer multiples of a predetermined number.
一部の実施形態において、データを記憶するための方法は、前記タイプの前記現在のストレージ情報を更新し、前記記憶対象レコードの記憶後の位置情報を生成し、前記位置情報を出力することをさらに含み、前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。 In some embodiments, the method for storing data includes updating the current storage information of the type, generating post-storage location information of the storage object record, and outputting the location information. Further, the location information includes at least one of the type of a record, an identifier of a record, and an identifier of a data block where the record is located.
一部の実施形態において、前記ディスクに少なくとも2つの前記ストレージファイルが構成され、且つ前記ディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶されている。 In some embodiments, at least two of the storage files are configured on the disk, and index information of each of the storage files is stored in a directory of the disk.
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから読み取り対象レコードの位置情報を検索することと、前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含む。 In some embodiments, the method for storing data includes retrieving location information of the record to be read from the directory, and determining the type and the type of the record to be read based on the location information of the record to be read. Determining a position offset in a data block located in the corresponding storage file; determining a length of the record to be read based on the type of the record to be read; and determining a position indicated by the position offset. And reading data having a length corresponding to the length of the record to be read, and outputting the read data as the record to be read.
一部の実施形態において、データを記憶するための方法は、前記ディレクトリから削除対象レコードの位置情報を検索することと、前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含む。 In some embodiments, the method for storing data comprises retrieving location information of the record to be deleted from the directory, and, based on the location information of the record to be deleted, deleting the location in the corresponding storage file. Obtaining 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 obtained current storage information; and deleting the read record as the deletion target. The method further includes transferring and storing the data at the position where the record is located, and clearing data in a data block before the transfer of the read record, and correcting position information of the read record.
一部の実施形態において、前記読み取られたレコードの転送前のデータブロック中のデータをクリアした後、前記データを記憶するための方法は、前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含む。 In some embodiments, after clearing the data in the data block prior to the transfer of the read record, the method for storing the data includes storing the read record in a data block located prior to the transfer. It further includes determining whether data exists or not, and if no data exists in the data block, retrieving the data block for reassignment.
一部の実施形態において、前記記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードの前記タイプを確定する前に、前記データを記憶するための方法は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含む。 In some embodiments, prior to determining the type of the storage target record based on a size of the data of the storage target record, the method for storing the data may include dividing the waiting-for-storage object. For the sub-object in the at least one sub-object obtained, the sub-object is coded to obtain a duplicate, and the description information and data of the duplicate are subjected to an arraying process. Generating a storage target record.
一部の実施形態において、前記サブオブジェクトの記憶対象レコードを生成することは、配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプである。 In some embodiments, generating the storage object record of the sub-object is such that the size of the duplicated data after arraying is the same as one of the sizes of the data corresponding to each of the types in the storage file. And determining whether or not the size of the duplicate is all different from the size of the data corresponding to each type, and smaller than the size of the data corresponding to some of the types, The data after the data is padded with zeros, the size of the data of the duplicate after the padding with zeros is the same as the size of the data corresponding to the target type, and one storage object record of the sub-object is generated. And 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, By filling with division zero, the size of the data of each duplicate after division is made to be 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 stored. Generating, wherein the target type is the type having the smallest size of corresponding data of the some of the types.
第2の態様において、本発明の実施形態は、データを記憶するための装置を提供する。前記装置は分散型オブジェクトストレージのスタンドアロンストレージエンジンに構成され、前記スタンドアロンストレージエンジンのディスクにストレージファイルが構成され、前記ストレージファイルのストレージスペースは少なくとも2つのデータブロックに分けられ、且つ前記少なくとも2つのデータブロックの間ではリンクリスト構造を使用し、前記装置は、記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備える。 In a second aspect, embodiments of the present invention provide an apparatus for storing data. The device is configured as a stand-alone storage engine of distributed object storage, a storage file is configured on a disk of the stand-alone storage engine, a storage space of the storage file is divided into at least two data blocks, and the at least two data blocks. Using a linked list structure between the blocks, the device comprising: a type determining unit configured to determine a type of the storage target record based on a size of the data of the storage target record; and A search unit configured to search for current storage information of a type, wherein the current storage information is information of a currently allocated data block and a currently stored one of the data blocks. A search unit, wherein the size of data of records stored in the storage file of the same type is the same, and the size of data of records stored in the different type of the storage file is different. Based on the storage information, a space determining unit configured to determine whether there is any remaining storage space in the currently allocated data block, and determining that the remaining storage space is not present. 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 apparatus for storing the data does not have the remaining storage space less than the size of the data of the record to be stored in response to the determination that there is remaining storage space. A size determining unit arranged to further determine whether or not the remaining storage space is smaller than the data size of the storage target record; A second allocation unit that is stored in the remaining storage space, allocates a new data block to the type, and is arranged to store the remaining data of 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 of records stored in different types are all integer multiples of a predetermined number.
一部の実施形態において、当該データを記憶するための装置は、当該タイプの現在のストレージ情報を更新し、記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように配置される位置生成ユニットをさらに備え、ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含む。 In some embodiments, an apparatus for storing the data is arranged to update current storage information of the type, generate location information after storing the record to be stored, and output the location information. The apparatus further includes a position generation unit, wherein the position information includes at least one of a record type, a record identifier, and an identifier of a data block where the record is located.
一部の実施形態において、ディスクに少なくとも2つの前記ストレージファイルが構成され、且つディスクのディレクトリに各前記ストレージファイルのインデックス情報が記憶される。 In some embodiments, at least two storage files are configured on a disk, and index information of each of the storage files is stored in a directory of the disk.
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから読み取り対象レコードの位置情報を検索するように配置される第1位置検索ユニットと、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように配置される確定ユニットと、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力するように配置される読み取りユニットと、をさらに備える。 In some embodiments, the apparatus for storing the data comprises: a first location search unit arranged to retrieve location information of the record to be read from the directory; and A determination unit arranged to determine a position offset in a data block located in a type of the record to be read and a corresponding storage file, and a length of the record to be read is determined based on the type of the record to be read. A reading unit arranged to read data whose length is the length of the record to be read, starting from the position indicated by the position offset, and to output the read data as the record to be read. Prepare.
一部の実施形態において、当該データを記憶するための装置は、ディレクトリから削除対象レコードの位置情報を検索するように配置される第2位置検索ユニットと、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように配置される獲得ユニットと、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように配置される転送ユニットと、及び読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように配置される修正ユニットと、をさらに備える。 In some embodiments, the apparatus for storing the data comprises: a second location search unit arranged to retrieve location information of the record to be deleted from the directory; and An acquisition unit arranged to acquire the current storage information of the type belonging to the storage file corresponding to the record to be deleted; and, based on the acquired current storage information, the last record from the currently stored record. A transfer unit arranged to transfer and store the read and read record to the position where the record to be deleted is located, and clear the data in the data block before transfer of the read record and read the read record. A correction unit arranged to correct the positional information of the record.
一部の実施形態において、当該データを記憶するための装置は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように配置される回収ユニットをさらに備える。 In some embodiments, the apparatus for storing the data determines whether the data still exists in the data block located before the read record is transferred, and stores the data in the data block. If not, the system further comprises a collection unit arranged to collect the data block for reassignment.
一部の実施形態において、当該データを記憶するための装置は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように配置されるコーディングユニットと、当該副本の説明情報及びデータに対して配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように配置されるレコード生成ユニットと、をさらに備える。 In some embodiments, the apparatus for storing the data, for a sub-object in at least one sub-object obtained by dividing the object to be stored, codes the sub-object to obtain a duplicate. And a record generation unit arranged to perform an arraying process on the description information and the data of the duplicate and 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 data of the duplicate after arrangement is the same as one of the sizes of the data corresponding to each type in the storage file. When the size of the data of the determined subunit and the data of the duplicate are all different from the size of the data corresponding to each type and smaller than the size of the data corresponding to some types, A first generation sub that fills the trailing part with zeros, makes the size of the data of the duplicate after the padding with zero the same as the size of the data corresponding to the target type, and generates one storage target record of the sub copy of the subobject. Unit, wherein the target type is the first generation sub-unit, which is the type of the corresponding type having the smallest data size. If the size of the data of the duplicate is larger than the maximum value of the size of the data corresponding to each type, the size of the data of each duplicate after division is set to one of the sizes of the data corresponding to each type. A second generation sub-unit arranged to split and zero-pad the duplicate and 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 first subsystem, a second subsystem, and a third subsystem having the stand-alone storage engine of any one embodiment of the first aspect installed. Provide 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 performs a communication between the storage-waiting object and the at least one sub-object. Transmitting the correspondence between the second subsystem and the at least one sub-object to the third subsystem, wherein the second subsystem is configured to transmit the at least one sub-object and the at least one sub-object. The third subsystem is configured to store a correspondence between the sub-object and the sub-object by performing coding and arrangement processing on sub-objects in the at least one sub-object. Generate records to be stored Storing the the storage target record.
一部の実施形態において、前記第3サブシステムはさらに、データ記憶完了を表示するための応答情報を前記第1サブシステムに送信するようにさらに構成され、前記第1サブシステムはさらに、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするように構成される。 In some embodiments, the third subsystem is further configured to send response information to the first subsystem to indicate data storage completion, wherein the first subsystem further comprises the response If information is received, a query identifier of the object to be stored is generated, and the query identifier is 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 a query identifier transmitted by the user, and to transmit the query identifier in the read request to the second subsystem. Wherein the second subsystem is further configured to obtain a sub-object list corresponding to an object indicated by a query identifier in the read request, and to transmit the sub-object list to the third subsystem, The third subsystem reads a corresponding record based on the sub-object list, analyzes the read record to obtain object data, and the first subsystem feeds back the object data to the user. To the object data Further configured to transmit to the subsystem.
第4の態様において、本発明の実施形態は、1つまたは複数のプロセッサーと、1つまたは複数のプログラムを記憶するための記憶装置とを備え、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが第1の態様のいずれかの実施形態に記載の方法を実現する電子機器を提供する。 In a fourth aspect, an embodiment of the present invention includes one or more processors and a storage device for storing one or more programs, wherein the one or more programs store the one or more programs. The one or more processors provide an electronic device that, when executed by a plurality of processors, implements the method of any embodiment of the first aspect.
第5の態様において、本発明の実施形態は、コンピュータプログラムが記憶され、前記プログラムがプロセッサーによって実行される時、第1の態様のいずれかの実施形態に記載の方法が実現されるコンピュータ可読媒体を提供する。 In a fifth aspect, an embodiment of the present invention relates to a computer readable medium having a computer program stored thereon, wherein when the program is executed by a processor, the method according to any embodiment of the first aspect is implemented. I will provide a.
本発明の実施形態によって提供されるデータを記憶するための方法、装置及びシステムは、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。それにより、ストレージファイルにおいてタイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコード情報を含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースがないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。これにより、スペースデブリの発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。 A method, apparatus, and system for storing data provided by an embodiment of the present invention can determine a type of a storage target record based on a size of the data of the storage target record. Thereby, the current storage information of the type can be searched in the storage file. The current storage information may include information on a currently allocated data block and information on a currently stored record of the data block. Here, the data size of records stored in the same type in the storage file is the same, and the data size of records stored in different types is different. Further, based on the current storage information, it can be determined whether 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 data block can be assigned to the type. Also, the record to be stored can be stored in a new data block. Thereby, the occurrence of space debris can be reduced, and the space utilization rate of the disk can be improved. This is also advantageous for improving the read / write performance of the disk.
図面を参照して非限定的な実施例に対してなされる詳細な説明によって、本発明の他の特徴、目的及び利点は、さらに明らかになる。
以下、図面と実施例を結び付けて本発明に対してさらに詳細に説明する。ここで説明される具体的な実施例は、当該発明に対する限定ではなく、単に関連する発明を解釈するために使用されることが理解される。なお、説明の便宜上、図面には発明に関連する部分のみを示している。 Hereinafter, the present invention will be described in more detail with reference to the drawings and embodiments. It is understood that the specific embodiments described herein are not intended to be limiting on the invention, but merely to interpret the related invention. In addition, for convenience of explanation, the drawings show only parts related to the present invention.
説明すべき点は、矛盾のない場合、本発明における実施例及び実施例における特徴は相互に組み合わせることができる。以下、図面を参照し、実施例に結び付けて本発明を詳細に説明する。 It should be pointed out that, where there is no inconsistency, the embodiments of the present invention and the features in the embodiments can be combined with each other. Hereinafter, the present invention will be described in detail with reference to the drawings in connection with embodiments.
図1は、本発明の実施例が応用されるデータを記憶するための方法、装置及びシステムの例示的なシステムアーキテクチャ100を示す。 FIG. 1 illustrates an exemplary system architecture 100 of a method, apparatus, and system for storing data to which embodiments of the present invention may be 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, and 103, a network 104, and a server 105. The network 104 is used as a medium for providing a communication link between the terminals 101, 102, 103 and the server 105. Network 104 may include various connections, such as a wired, wireless communication link, or fiber optic cable.
ユーザは、端末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 a web browser, a shopping application, a video application, a mailbox, and an instant messaging tool can be installed in the 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, various electronic devices having a display screen may be used. The electronic device may be a smartphone, a tablet computer, a smart TV, an electronic book reader, an MP3 (Moving Picture Experts Group Audio Layer III, a video professional group audio layer 3) player, a laptop computer, a desktop computer, or the like. However, it is not limited to these. If the terminals 101, 102, and 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. There is no specific limitation 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 the terminals 101, 102, and 103. The background server can perform analysis processing on a data processing request (for example, a data storage request) transmitted by the user via the terminals 101, 102, and 103, and can process the processing result (for example, that 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, and 103.
ここで、サーバ105は、同じハードウェアであることができ、ソフトウェアであることもできる。サーバ105がハードウェアである場合、複数のサーバで構成される分散型サーバグループで実現されることができ、一つのサーバで実現されることもできる。サーバ105がソフトウェアである場合、(例えば、分散型サービスの提供に使用される)複数のソフトウェアまたはソフトウェアモジュールで実現されることができ、一つのソフトウェアまたはソフトウェアモジュールで実現されることもできる。ここで具体的に限定しない。 Here, the server 105 can be the same hardware, and can also be software. When the server 105 is hardware, it can be realized by a distributed server group composed of a plurality of servers, or can be realized by one server. When the server 105 is software, the server 105 may be implemented by a plurality of software or software modules (for example, used for providing a distributed service), or may be implemented by one software or software module. There is no specific limitation 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 actual containers for storing data, thereby providing distributed storage of data.
説明すべき点は、本発明の実施例が提供するデータを記憶するための方法は、一般にサーバ105によって実行される。それに対応して、データを記憶するための装置は、一般にサーバ105に設置される。 It should be noted that the method for storing data provided by embodiments of the present invention is generally performed by server 105. Correspondingly, a device for storing data is generally installed in server 105.
理解すべき点は、図1中の端末、ネットワーク、サーバ及びサーバ中のストレージファイルの数は単に例示的である。実現需要に応じて、任意の数の端末、ネットワーク、サーバ及びサーバ中のストレージファイルを備えることができる。 It should be understood that the numbers of terminals, networks, servers and storage files in the servers in FIG. 1 are merely exemplary. Depending on the realization demand, any number of terminals, networks, servers and storage files in the servers can be provided.
続いて図2を参照すると、本発明に係るデータを記憶するための方法の1つの実施例のフロー200が示されている。当該データを記憶するための方法は、以下のようなステップを含むことができる。 With continued reference to FIG. 2, a flow 200 of one embodiment of a method for storing data according to the present invention is shown. A method for storing such data may include the following steps.
ステップ201において、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定する。 In step 201, the type of a storage target record is determined based on the data size of the storage target record.
本実施例において、データを記憶するための方法は、分散型オブジェクトストレージのスタンドアロンストレージエンジンに使用されることができる。また、当該スタンドアロンストレージエンジンのディスクにストレージファイルが構成されることができる。ここで、ストレージファイルは、データを記憶するための実際の容器であることができる。即ち、データは、ストレージファイルに記憶される。ここで、ストレージファイルのストレージスペースは、少なくとも2つのデータブロックに分けられることができる。ストレージファイルのストレージスペースは、さらに複数の記憶区間(即ち、データブロック)に分けられることができる。また、ストレージスペースの連続性を保証するために、少なくとも2つのデータブロック間でリンクリスト構造を使用することができる。即ち、リンクリスト方式で同じストレージファイル中の各データブロックをリンクさせる。 In this embodiment, the method for storing data can be used in a standalone storage engine for distributed object storage. Also, a storage file can be configured on the disk of the standalone storage engine. Here, the storage file may be an actual container for storing data. That is, the data is stored in a storage file. Here, the storage space of the storage file can be divided into at least two data blocks. The storage space of the storage file can be further divided into a plurality of storage sections (ie, data blocks). Also, a linked list structure can be used between at least two data blocks to ensure continuity of storage space. That is, each data block in the same storage file is linked by the link list method.
説明すべき点は、ストレージファイルのストレージ容量は、実際の状況に応じて設定することができ、例えば、32Gであることができる。また、同じストレージファイル中の各データブロックのストレージスペースは同じ(例えば、2M)であることができ、異なることもできる。なお、ストレージファイルの内部では、記憶対象データのサイズに基づいて、記憶対象データに対して分類して記憶することができる。また、各タイプにただ一つのサイズのデータを記憶することができる。即ち、同じタイプで記憶されたデータのサイズは同じであることができる。異なるタイプで記憶されたデータのサイズは異なることができる。ここで、分類方法は、本発明で制限しない。 It should be noted that the storage capacity of the storage file can be set according to the actual situation, for example, 32G. Also, the storage space of each data block in the same storage file can be the same (eg, 2M) or different. In the storage file, the storage target data can be classified and stored based on the size of the storage target data. Also, data of only one size can be stored for each type. That is, the size of data stored of the same type can be the same. The size of data stored in different types can be different. Here, the classification method is not limited in the present invention.
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、有線接続方式または無線接続方式を介して、端末(例えば、図1に示された端末101、102、103)またはクラウドなどから、記憶対象レコードを獲得することができる。また、記憶対象レコードのデータのサイズに基づいて、所定の分類方法によって記憶対象レコードのタイプを確定する。例えば、記憶対象レコードのデータのサイズは、4KBである。データのサイズが0KBより大きく且つ4KBより大きくない場合、第1タイプに属し、この場合、実行主体は、当該記憶対象レコードのタイプを第1タイプと確定することができる。ここで、記憶対象レコードは、ディスク分散型オブジェクトストレージ技術を使用して記憶する任意のデータであることができる。そのコンテンツは、数字、文字、アルファベットまたは記号などの少なくとも一つの文字符号の文字列を含むことができる。 In the present embodiment, the entity that executes the method for storing data (for example, the server 105 shown in FIG. 1) transmits the data to the terminal (for example, shown in FIG. The storage target record can be obtained from the terminals 101, 102, 103) or the cloud. In addition, 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 data size of the storage target record is 4 KB. If the data size is larger than 0 KB and not larger than 4 KB, the data belongs to the first type. In this case, the execution 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 may include a character string of at least one character code such as a number, a character, an alphabet or a symbol.
本実施例のある選択可能な実施形態において、管理の便利上、同じストレージファイル中の少なくとも2つのデータブロックのストレージスペースは、同じであることができる。同じストレージファイルのうち異なるタイプで記憶されたレコードのデータのサイズは、すべて所定の数値の整数倍であることができる。これは算出過程を簡素化して、処理効率を向上させることに役立つ。図5Aに示すように、データブロックのストレージスペースはすべて2Mである。データのサイズの最小値が一般に4KBであることを考慮すると、異なるタイプに対応するデータのサイズはすべて4KBの整数倍である。また、ディスクの読み書き性能を考慮すると、データのサイズの最大値は、実際の状況に応じて設定することができ、例えば、512KBに設定することができる。言い換えれば、ストレージファイルの内部でレコードのデータのサイズを4KB、8KB……512KBなどの複数のタイプに分けることができる。 In certain optional embodiments of the present embodiment, for convenience of management, the storage space of at least two data blocks in the same storage file may be the same. The sizes of data of records stored in different types in the same storage file can all be integer multiples of a predetermined numerical value. This helps to simplify the calculation process and improve processing efficiency. As shown in FIG. 5A, the storage space of the data blocks is all 2M. Considering that the minimum value of the size of data is generally 4 KB, the sizes of data corresponding to different types are all integral multiples of 4 KB. In consideration of 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 in the storage file can be divided into a plurality of types such as 4 KB, 8 KB,..., 512 KB.
ステップ202において、ストレージファイルにおいてタイプの現在のストレージ情報を検索し、当該現在のストレージ情報は、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を含む。 In step 202, the storage file is searched for current storage information of the type, the current storage information including information of a currently allocated data block and information of a currently stored record of the data block.
本実施例では、実行主体は、ストレージファイルにおいて、記憶対象レコードの属するタイプの現在のストレージ情報を検索することができる。ここで、現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。即ち、当該タイプに現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報を検索する。ここで、データブロックの情報は、データブロックの間のリンク順序、データブロックの識別子、データブロックのストレージスペースなどのうち少なくとも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 record to be stored belongs. Here, the current storage information may include information of a currently allocated data block and currently stored record information of the data block. That is, the information of the data block currently allocated to the type and the currently stored record information of the data block are searched. Here, the information of the data block includes at least one of a link order between the data blocks, an identifier of the data block, and a storage space of the data block, but is not limited thereto. The record information includes, but is not limited to, at least one of a record identifier, a record data size, a data block identifier where the record is located, and the like. Here, the identifier may be used to uniquely indicate a data block or a record, and may be at least one of a character code such as a numeral and an alphabet. In other words, after searching for the current storage information of the type, the execution subject knows what data blocks exist for the type and what records are stored.
説明すべき点は、同じタイプのレコードは、一般に1つずつ隣り合って記憶される。即ち、論理的にこれらのレコードは、全体で連続的なスペースを占める。これは、ディスク断片の発生を防止することにより、ストレージスペースの利用率を向上させることができる。 It should be noted that records of the same type are generally stored one by one next to each other. That is, these records logically occupy a continuous space as a whole. This can improve storage space utilization by preventing the occurrence 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 in FIG. 5A is X, if the execution subject determines that the type is 128, the current storage information of the type can be searched. That is, the storage space is a 2M data block (block) 37, the number of records (records) is 4, and the data size of each record is 512 KB. It can be seen that numerical 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 also the storage order of each record can be easily determined.
ステップ203において、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定する。 In step 203, based on the current storage information, it is determined whether there is any remaining storage space in the currently allocated data block.
本実施例において、実行主体は、ステップ202で検索された現在のストレージ情報に基づいて、当該タイプ(即ち、記憶対象レコードが属するタイプ)の現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。例示として、図5Aに示すように、実行主体は、type=128中の現在のストレージ情報に基づいて、block37に残りのストレージスペースがないと確定することができ、即ち、512KB×4=2Mである。 In this embodiment, based on the current storage information retrieved in step 202, the execution subject has a remaining storage space in the currently allocated data block of the type (ie, the type to which the record to be stored belongs). Can be determined. By way of example, as shown in FIG. 5A, based on the current storage information during type = 128, the execution subject can determine that there is no remaining storage space in block 37, ie, 512KB × 4 = 2M. is there.
ここで、現在割り当てられたデータブロックに残りのストレージスペースが存在する場合、実行主体は、記憶対象レコードを残りのストレージスペースに記憶することができる。現在割り当てられたデータブロックに残りのストレージスペースが存在しない場合、実行主体は、続いてステップ204を実行することができる。 Here, when the remaining storage space exists in the currently allocated data block, the execution 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 execution entity can subsequently execute step 204.
選択可能に、実行主体は、割り当てられたデータブロックに残りのストレージスペースが存在すると確定された場合、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定することができる。残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定された場合、記憶対象レコードの一部のデータを残りのストレージスペースに記憶することができる。そして、当該タイプに新しいデータブロックを割り当てて、残りの記憶対象レコードを新しいデータブロックに記憶することができる。 Optionally, if it is determined that the remaining storage space is present in the allocated data block, the execution entity further determines whether the remaining storage space is not smaller than the size of the data of the record to be stored. Can be. If it is determined that the remaining storage space is smaller than the size of the data of the storage target record, a part of the data of 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つの隣接するデータブロックに記憶することができる。 As an example, as shown in FIG. 5A, the size of the data is 504 KB of the storage target record Y. The execution subject can determine from the current storage information of type = 126 that the remaining storage space of block3 is 64 KB (4M−504 KB × 8). At this time, the execution subject can allocate one new 2M data block (block 4) under the type. In this way, the 64 KB before the storage target record Y can be stored in block3. Further, 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 record to be stored is stored in the new data block.
本実施例において、実行主体は、現在割り当てられたデータブロックに残りのストレージスペースが存在しないと確定された場合、当該タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。例示として、図5Aの記憶対象レコードXである。block37に残りのストレージスペースが存在しないので、実行主体は、1つの新しいblock49を割り当てることができる。このとき、記憶対象レコードXをblock49に記憶することができる。 In this embodiment, when it is determined that the remaining storage space does not exist in the currently allocated data block, the execution entity can allocate a new data block to the type. Also, the record to be stored can be stored in a new data block. As an example, it is the record X to be stored in FIG. 5A. Since there is no remaining storage space in block 37, the executing entity can allocate one new block 49. At this time, the storage target record X can be stored in the block 49.
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードを分類して記憶することができる。データの連続記憶を確保するとともに、ディスク断片の生成を減少または防止することができる。このようにして、ストレージスペースの利用率の向上、ディスクの読み書き性能の改善に役立つ。なお、分散型オブジェクトストレージ方法も充実させる。 In the method for storing data in the present embodiment, the storage target records can be classified and stored based on the data size of the storage target records. The continuous storage of data can be ensured, and the generation of disk fragments can be reduced or prevented. In this way, it is useful for improving the utilization rate of the storage space and improving the read / write performance of the disk. The distributed object storage method will also be enhanced.
本実施例のある選択可能な実施形態において、記憶対象レコードを記憶した後、実行主体は、それが属するタイプの現在のストレージ情報を更新することもできる。そして、記憶対象レコードが記憶された後の位置情報を生成することができる。また、当該位置情報を出力することができる。ここで、位置情報は、記憶対象レコードの記憶位置を説明するためのものであってもよい。例えば、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことができ、また、位置情報は出力される。ここで、出力とは、記憶し出力することであってもよい。例えば、位置情報を実行主体ローカルまたは他の電子機器に記憶することができ、例えば、位置情報を端末などに送信するような伝送出力であることもできる。 In one selectable embodiment of this embodiment, after storing the record to be stored, the executing entity may 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. Further, 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 may include at least one of a record type, a record identifier, and an identifier of a data block where the record is located, and the location information is output. Here, the output may be to store and output. For example, the position information can be stored locally in the execution subject or in another electronic device. For example, a transmission output for transmitting the position information to a terminal or the like can be used.
例示として、図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 record X to be stored in FIG. 5A, the position information can be [record_type = 128, record_id = 5, block_id = 49, next_block_id = 0]. Even when the position information is [record_type = 128, record_id = 5] or [record_id = 5, block_id = 49], it can be understood that the execution subject can search for the record X.
説明すべき点は、同じタイプで記憶されたレコードのデータのサイズが同じであるようにするために、選択可能に、実行主体は、記憶対象レコードを記憶する前に、記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであるか否かを確定することができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズであると確定された場合、実行主体は、記憶処理を行うことができる。記憶対象レコードのデータのサイズが当該タイプに対応するデータのサイズでないと確定され、一般に当該タイプに対応するデータのサイズより小さい場合、実行主体は、記憶対象レコードの所定の位置(例えば、前面または後面)に所定のデータ(例えば、0または他の文字列など)を補充することができる。これにより、補充された後の記憶対象レコードのデータのサイズは、当該タイプに対応するデータのサイズになる。その後、実行主体は、補充された後の記憶対象レコードを記憶することができる。 It should be noted that, in order to ensure that the data size of the records stored in the same type is the same, the execution subject can selectably execute the data of the storage target record before storing the storage target record. It can be determined whether or not the size is the size of the data corresponding to the type. When it is determined that the size of the data of the storage target record is the size of the data corresponding to the type, the execution subject can perform the storage process. When it is determined that the size of the data of the storage target record is not the size of the data corresponding to the type, and is generally smaller than the size of the data corresponding to the type, the execution subject determines the predetermined position of the storage target record (for example, the front or the front). The rear side) can be supplemented with predetermined data (for example, 0 or another character string, etc.). Thereby, the data size of the storage target record after the replenishment becomes the data size corresponding to the type. Thereafter, the execution subject can store the storage target record after the supplement.
ある応用シナリオにおいて、記憶対象レコードのデータのサイズに基づいて記憶対象レコードのタイプを確定する前に、実行主体は、データを処理して記憶対象レコードを獲得することができる。例えば、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、実行主体は、当該サブオブジェクトをコーディング(例えば、ECコーディング)して副本を獲得する。その後、当該副本の説明情報とデータに対して配列化処理して、当該サブオブジェクトの記憶対象レコードを生成する。 In some application scenarios, before determining the type of the storage target record based on the size of the data of the storage target record, the executing entity can process the data to obtain 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 obtain a duplicate. After that, the description information and the data of the duplicate are arrayed to generate a storage target record of the subobject.
説明すべき点は、記憶待ちオブジェクトの分割過程は、実行主体によって完成されることができ、他の電子機器によって完成されることもできる。他の電子機器は、分割して得られた少なくとも1つのサブオブジェクトを実行主体に送信することができる。 The point to be described is that the division process of the object to be stored can be completed by the executing subject or can be completed by another electronic device. Another electronic device can transmit at least one sub-object obtained by division to the execution subject.
さらに、同じタイプで記憶されたレコードデータのサイズを同じにするように、実行主体は、配列化後の当該副本を分析処理して、必要なデータのサイズ(即ち、各タイプに対応するデータのサイズ中の1つ)の記憶対象レコードを生成することができる。 Further, the execution subject analyzes the duplicated data after the arrangement so that the size of the record data stored in the same type is the same, and determines the required data size (that is, the size of the data corresponding to each type). (One in the size) storage target record can be generated.
具体的に、まず、実行主体は、配列化後の当該副本のデータのサイズが、ストレージファイルのうち各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することができる。当該副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つと同じである場合、実行主体は、当該サブオブジェクトの記憶対象レコードを直接に生成することができる。 Specifically, first, the execution subject can determine whether or not the size of the data of the duplicate after arrangement is the same as one of the sizes of the data corresponding to each type in 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 execution subject can directly generate the storage target record of the subobject.
当該副本のデータのサイズ(例えば、5KB)が、各タイプに対応するデータのサイズ(例えば、4KB、8KB及び12KB)とすべて異なり、且つ一部のタイプに対応するデータのサイズ(例えば、8KB及び12KB)よりも小さい場合、当該副本のデータの後ろをゼロで埋める。これにより、ゼロで埋めた後の当該副本のデータのサイズと目標タイプに対応するデータのサイズとを同じにすることができる。そして、当該サブオブジェクトの1つの記憶対象レコードを生成することができる。ここで、目標タイプは、当該一部のタイプの対応するデータのサイズが最も小さいタイプ(例えば、8KB及び12KB中の8KB)であることができる。説明すべき点は、従来のデータに影響を与えない限り、本発明は、補充位置及び補充コンテンツについて限定しない。 The size of the duplicate data (for example, 5 KB) is different from the size of the data corresponding to each type (for example, 4 KB, 8 KB and 12 KB), and the size of the data corresponding to some types (for example, 8 KB and If it is smaller than 12 KB), the trailing part of the data of the duplicate is padded with zeros. Thereby, the size of the data of the duplicate after the padding with zeros and the size of the data corresponding to the target type can be made the same. Then, one storage target record of the sub-object can be generated. Here, the target type may be a type in which the size of the corresponding data of the partial type is the smallest (for example, 8 KB in 8 KB and 12 KB). It should be noted that the present invention does not limit the replenishment location and replenishment content unless it affects conventional data.
当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値(例えば、512KB)よりも大きい場合、当該副本に対して分割及びゼロで埋めを行うことができる。これにより、分割後の各副本のデータのサイズが、各タイプに対応するデータのサイズ中の1つとそれぞれ同じにすることができ、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成する。例えば、副本のデータのサイズは、518KBであり、それを512KB及び6KBの2つのサブ副本に分割することができ、6KBのサブ副本を8KBになるようにゼロで埋める。または、それを512KB、4KB及び2KBの3個のサブ副本に分割することができ、2KBのサブ副本を4KBにゼロで埋める。または、他のタイプに対応するデータのサイズに基づいて、当該副本を複数の対応されるデータのサイズのサブ副本に分割することができ、ゼロで埋め操作を行う必要はない。 If the size of the data of the duplicate is larger than the maximum value of the data size 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 the 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 518 KB, which can be divided into two sub-duplicates of 512 KB and 6 KB, and the 6 KB sub-duplicates are padded with zeros to be 8 KB. Alternatively, it can be divided into three sub-duplicates of 512 KB, 4 KB and 2 KB, and the 2 KB sub-duplicates are padded with 4 KB to zero. Alternatively, based on the size of data corresponding to other types, the duplicate can be divided into a plurality of sub-duplicates of the corresponding data size, and there is no need to perform a zeroing operation.
例示として、記憶対象レコードには、図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 record to be stored may include a field as shown in FIG. 5B. Here, part of the meta information (Meta information) of the duplicate can be recorded in the Shared Record (shared recording), and a cyclic redundancy code (crc: Cyclic Redundancy Code), a length (length), and the like can be recorded. Content can be included. The description information designated by the user can be recorded in Key + meta (key meta). Binary data can generally be the actual data of a duplicate. At the back of the data, there may be a field of unfixed length, padded with zeros (ie, filled zero). This makes it possible to ensure that each record (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 perform self-management of 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 collect 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 data blocks allocated by itself (for example, block 37) and the number of records input by itself (for example, four). In this way, the recorded number can be used to calculate how much remaining storage space is available for the last data block (eg, block 37). If the storage space is insufficient, information for indicating that the data block has been allocated can be transmitted to the data block management unit. At this time, the data block management unit can assign one new data block (eg, block 49) 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 position information (Location) already stored and recorded by the user. At startup, each storage file can scan all its records once. As a result, all the data blocks assigned by the user can be displayed on the BlockManager. Further, it is possible to restore the position information of each record by using BlockLinkList. After completing the scan, the BlockManager will know its own data block allocation information. All types of BlockLinkList can also know their own data block information and their current record information.
本実施例におけるデータを記憶するための方法は、記憶対象レコードのデータのサイズに基づいて、記憶対象レコードのタイプを確定することができる。これにより、ストレージファイルで、タイプの現在のストレージ情報を検索することができる。現在のストレージ情報は、現在割り当てられたデータブロックの情報とデータブロックのうち現在記憶されたレコード情報とを含むことができる。ここで、ストレージファイルのうち同じタイプで記憶されたレコードのデータのサイズは同じであり、異なるタイプで記憶されたレコードのデータのサイズは異なる。さらに、現在のストレージ情報に基づいて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することができる。残りのストレージスペースが存在しないと確定された場合、タイプに新しいデータブロックを割り当てることができる。また、記憶対象レコードを新しいデータブロックに記憶することができる。このようにして、スペースの断片の発生を低減し、ディスクのスペース利用率を向上させることができる。ディスクの読み書き性能の向上にも有利である。 In the method for storing data in the present embodiment, the type of the storage target record can be determined based on the data size of the storage target record. Thus, the current storage information of the type can be searched in the storage file. The current storage information may include information on a currently allocated data block and currently stored record information of the data block. Here, the data size of records stored in the same type in the storage file is the same, and the data size of records stored in different types is different. Further, based on the current storage information, it can be determined whether there is any remaining storage space in the currently allocated data block. If it is determined that the remaining storage space does not exist, a new data block can be assigned to the type. Also, the record to be stored can be stored in a new data block. In this way, the generation of space fragments can be reduced, and the space utilization rate of the disk can be improved. This 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. Also, index information of each storage file on the disk can be stored in a directory of the disk. In other words, each storage file can include index information and data information. Here, in the index information, what kind of record and the state of the record are stored in the storage file. Data information mainly refers to actual data stored inside the storage file. That is, for all records input to the disc, the index information of the record is recorded in the directory. Here, the index information may include record position information.
例示として、ディスクの構造を図5Cに示す。ここで、Rocksdb503は、ディスクのディレクトリを表示し、キー値(key−value)記憶方式を使用し、Vlet504(Vlet_110_3及びVlet……)は、ストレージファイルを表示することができる。説明すべき点は、1つのディスクは、一般的にただ1つのディレクトリ実例を有する。インデックス情報とデータ情報を分けて記憶することにより、レコードが存在するか否かを迅速に検索できるように確保することができる。選択可能に、インデックス情報は、フルメモリ方式で記憶することができるが、メモリのサイズに制限される。ここで、ディレクトリを使用して記憶すると、メモリの制限を受けないが、別のIOが発生することができる。このとき、キャッシュ(cache)メモリを構成して、メモリの使用とIOの使用を好ましく平衡させることができる。 By way of example, the structure of the disc is shown in FIG. 5C. Here, the Rocksdb 503 displays a directory of the disc, uses a key-value storage method, and the Vlet 504 (Vlet_110_3 and Vlet...) Can display a storage file. It should be noted that a disc generally has only one directory instance. By storing the index information and the data information separately, it is possible to ensure that a record can be searched for quickly. Optionally, the index information can be stored in a full memory manner, but is limited by the size of the memory. Here, if the data is stored using the directory, another IO can occur although the memory is not limited. At this time, a cache memory can be configured to preferably balance use of the memory with use of the IO.
本実施例において、データを記憶するための方法は、以下のステップをさらに含むことができる。 In the present embodiment, the method for storing data may further include the following steps.
ステップ301において、ディレクトリから読み取り対象レコードの位置情報を検索する。 In step 301, the directory is searched for the position information of the record to be read.
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから読み取り対象レコードを検索することができる。読み取り対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。 In the present embodiment, the entity that performs the method for storing data (for example, the server 105 illustrated in FIG. 1) can search the directory for a record to be read. When the record to be read is searched, the position information can be obtained from the directory.
ステップ302において、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定することができる。 In step 302, based on the position information of the record to be read, the type of the record to be read and the position offset in the data block located in the corresponding storage file can be determined.
本実施例において、位置情報にレコードのタイプが含まれた場合、実行主体は、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプを確定することができる。または、実行主体は、位置情報に基づいて、読み取り対象レコードが位置されるストレージファイル及びデータブロックを確定することができ、これによりそのタイプを確定することができる。併せて、それの位置するデータブロックのストレージスペース及び当該データブロックに記憶されたレコードの情報に基づいて、読み取り対象レコードの当該データブロックにおける位置オフセットを確定する。ここで、位置オフセットは、データブロックにおけるレコードの開始位置を表示するために使用されることができる。 In this embodiment, when the type of the record is included in the position information, the execution subject can determine the type of the record to be read based on the position information of the record to be read. Alternatively, the execution subject can determine the storage file and the data block in which the record to be read is located based on the position information, and thereby can determine 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 where the data block is located and the information of the record stored in the data block. Here, the position offset can be used to indicate the starting 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 execution subject is that the position information of the Y of the record from the disk directory is [vlet_id = 110_3, record_type = 126, record_id = 9, block_id = 3, next_block_id = 4]. That can be searched. At this time, based on the storage space of the data block in Vlet_110_3, it can be calculated that the position offset in block 3 of record Y is 2M-64KB (64KB = 4M-8 × 504KB).
ステップ303において、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって指示された位置から始まって、読み取り対象レコードの長さに対応する長さのデータを読み取る。 In step 303, the length of the record to be read is determined based on the type of the record to be read, and data having a length corresponding to the length of the record to be read 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 execution subject can determine the length of the record to be read based on the type of the record to be read. Further, the execution subject can read 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 the record Y is 126, the length can be 504 KB. At this time, the execution subject can read data having a length of 504 KB into the memory at one time, starting from a position of 2M-64 KB in block 3.
ステップ304において、読み取ったデータを読み取り対象レコードとして出力する。 In step 304, the read data is output as a record to be read.
本実施例において、実行主体は、読み取ったデータを読み取り対象レコードとすることができ、それに対してコーディング解析を行うことができる。これにより、解析された後のデータを出力することができ、例えば、端末(例えば、図1に示された端末101、102、103)に送信する。 In the present embodiment, the execution subject can use the read data as a record to be read, and can perform coding analysis on the record. As a result, the analyzed data can be output and transmitted to, for example, terminals (for example, terminals 101, 102, and 103 shown in FIG. 1).
一部の実施形態において、すべてのインデックス情報が失われた場合にインデックス情報を復元するために、各レコードには、その記憶した後の位置情報のフィールドが含まれることができる。図5Bに示すように、レコードの最後の位置で(例えば、固定された24個のバイト)Record Guard(レコードガード)データ構造を使用する。 In some embodiments, each record can include a field of its stored location information to restore the index information if all index information is lost. As shown in FIG. 5B, the last position of the record (eg, fixed 24 bytes) uses the Record Guard data structure.
選択可能に、実行主体は、コーディング解析する前に、Record Guard情報を検証することができる。併せて、読み取ったデータの所定の位置に補充された所定のデータ(例えば、0)が存在するか否かを検出することができる。所定のデータが存在する場合、読み取ったデータ中の所定のデータを除去または無視することができる。さらに、所定のデータを含まない検証後の読み取ったデータを解析する。 Optionally, the performing entity can verify the Record Guard information before coding analysis. At the same time, it is possible to detect whether or not predetermined data (for example, 0) is present at a predetermined position of the read data. When the predetermined data exists, the predetermined data in the read data can be removed or ignored. Further, the read data after the verification that does not include the predetermined data is analyzed.
本実施例におけるデータを記憶するための方法において、データを読み取るステップを増加し、読み取り過程を詳細に説明した。本発明におけるデータを記憶するための方法を充実させ完全にした。また、読み取り及び入力過程は、すべて1回のIOPS(Input/Output Operations Per Second、毎秒の読み取り及び入力(I/O)操作を実行する回数)である。このようにして、方法の適用範囲を拡大することに役立つ。 In the method for storing data in the present embodiment, the step of reading data has been increased, and the reading process has been described in detail. The method for storing data in the present invention has been enhanced and completed. In addition, the reading and inputting process is all one IOPS (Input / Output Operations Per Second, the number of times of performing reading and inputting (I / O) operations per second). In this way, it helps to extend the scope of the method.
さらに図4に、本発明に係るデータを記憶するための方法のもう1つの実施例のフロー400を示す。当該データを記憶するための方法は、以下のステップを含む。 FIG. 4 also shows a flow 400 of another embodiment of the method for storing data according to the present invention. The method for storing the data includes the following steps.
ステップ401において、ディレクトリから削除対象レコードの位置情報を検索する。 In step 401, the directory is searched for the position information of the record to be deleted.
本実施例において、データを記憶するための方法の実行主体(例えば、図1に示されたサーバ105)は、ディレクトリから削除対象レコードを検索することができる。削除対象レコードが検索された場合、ディレクトリからその位置情報を獲得することができる。 In the present embodiment, the entity that executes the method for storing data (for example, the server 105 illustrated in FIG. 1) can search the directory for a record to be deleted. When a record to be deleted is found, its 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 obtained.
本実施例において、実行主体は、削除対象レコードの位置情報に基づいて、それの位置するストレージファイルを確定することができる。そして、当該ストレージファイルのうち、それが属するタイプの現在のストレージ情報を獲得することができる。 In the present embodiment, the execution subject can determine the storage file where the record is located based on the position information of the record to be deleted. Then, the current storage information of the type to which the file belongs can be obtained from the storage file.
例示として、図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 illustrated in FIG. 5A, the execution subject determines that the position information of the record Z is [vlet_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 execution subject can acquire the current storage information of type = 128 out of Vlet_110_3, that is, block37 (record1-4) and block49 (record5).
ステップ403において、獲得された現在のストレージ情報に基づいて、記憶されたレコードから最後の1つのレコードを読み取ることができ、削除対象レコードの位置する位置へ読み取られたレコードを伝送し記憶することができる。 In step 403, based on the obtained current storage information, the last one record can be read from the stored record, and the read record can be transmitted and stored at a position where the record to be deleted is located. it can.
本実施例において、獲得された現在のストレージ情報に基づいて、実行主体は、現在の記憶されたレコードから最後の1つのレコードを読み取ることができる。また、読み取られたレコードを、削除対象レコードの位置する位置へ伝送し記憶することができる。 In this embodiment, based on the obtained current storage information, the execution subject can read the last one record from the currently stored records. Further, the read record can be transmitted to the position where the record to be deleted is located and stored.
例示として、図5Aに示すように、実行主体は、record_id=5のレコードXを読み取ることができる。これにより、レコードXを転移(Move)してrecord_id=2の位置へ入力することができる。2つのレコードのデータ長さが同じであるので、上書きが可能である。 For example, as shown in FIG. 5A, the execution subject can read the record X of record_id = 5. Thereby, the record X can be moved (Move) 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 the present embodiment, the execution subject can clear the data (for example, record5) in the data block (for example, block_id = 49) before the transfer of the read record (for example, record X). Further, 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]. It should be pointed out 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 execution subject can further determine whether or not data exists in the data block located before the read record is transferred. For example, as shown in FIG. 5A, after transferring and storing the record X, the execution subject determines whether or not other data is stored in the block 49.
ステップ406において、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収する。 If it is determined in step 406 that no data is stored in the data block, the data block is collected for reassignment.
本実施例において、実行主体は、当該データブロックにデータが記憶されていないと確定された場合、再び割り当てるために当該データブロックを回収することができる。例えば、データブロックの既に割り当てられた状態を割り当てていない状態に修正することができる。例えば、図5Aからわかるように、レコードXを転送し記憶した後、block49のストレージスペースは、完全に空である。このとき、BlockManagerは、当該データブロック(FreeBlock49)を回収することができる。 In this embodiment, when it is determined that no data is stored in the data block, the execution subject can collect the data block for re-assignment. For example, an already assigned state of a data block can be modified to an unassigned state. For example, as can be seen from FIG. 5A, after transferring and storing record X, the storage space of block 49 is completely empty. At this time, the BlockManager can collect the data block (FreeBlock 49).
本実施例におけるデータを記憶するための方法において、データを削除するステップを増加し、削除過程を詳細に説明した。本発明におけるデータを記憶するための方法をさらに充実させ完全にした。また、削除過程は、1回の読み取り過程に1回の書き込み過程を加えることに相当し、ディスクの全体の性能を向上させることに役立つ。また、残りのデータ記憶の連続性を確保して、スペースの断片が発生しないようにする。 In the method for storing data in the present embodiment, the step of deleting data has 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. In addition, the deletion process is equivalent to adding one writing process to one reading process, and is useful for improving the overall performance of the disc. Also, the continuity of the remaining data storage is ensured so that no fragments of space are generated.
理解できるのは、上記の各実施例におけるディスクにおいて、それに構築された各ストレージファイルのサイズは同じであることができるので、管理し易く、データ処理の効率を向上させることに有利である。各ストレージファイルのサイズは異なることもできるので、異なるユーザの要求を満たすために役立つ。なお、異なるストレージファイル中のデータブロックのサイズは同じであることができ、異なることもできる。管理の便宜上、各ストレージファイルに構成ファイルがインストールされることができる。ここで、構成ファイルは、ストレージファイルの構成パラメータ情報を説明するために使用されることができる。 It can be understood that the size of each storage file constructed in the disk in each of the above embodiments can be the same, which is advantageous in that it is easy to manage and improves the efficiency of data processing. The size of each storage file can be different, which helps to meet the needs of different users. Note that the sizes of the data blocks in different storage files can be the same or different. For convenience of management, a configuration file can be installed in each storage file. Here, the configuration file can be used to describe configuration parameter information of the storage file.
図5Aに示すように、ストレージファイルの最後に1つの512KBのファイル(即ち、VletInfo)が存在してもよい。当該ファイルは、自分の構成パラメータ情報を記憶することができ、Protobuf(Google Protocol Buffer)を使用することができ、シンプルで効率的な構造化データの記憶形式である。それはプラットフォームと言語にかかわらず、拡張可能で、使用が簡単で、解析速度が速いなどの特徴を有する。説明すべき点は、このファイルの中のコンテンツはストレージファイルの構成の時のみに生成され、後で修正することができない。 As shown in FIG. 5A, one 512 KB file (ie, VletInfo) may exist at the end of the storage file. The file can store its own configuration parameter information, can use a Protocol (Google Protocol Buffer), and is a simple and efficient storage format of structured data. It is scalable, easy to use, and fast to analyze, regardless of platform and language. It should be pointed out that the content in this file is generated only during the construction of the storage file 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, 2M), a minimum type in a record (for example, 4 kB), a maximum type in a record (for example, 512 KB), It may include at least one of intervals between record types (for example, 4 kB), but is not limited thereto. In other words, in addition to storing vletinfo in the last one page of the storage file, all other parts can be data blocks of the same size.
なお、説明すべき点は、大量の小さなファイルの記憶は、常に分散型ストレージシステムで解決するのに難しい問題である。ユーザは一般的に読み取り性能、空間利用率、及び削除の効率などの面で折衷する必要があったが、本発明の各実施例におけるデータを記憶する方法において、データの書き込みは、ディスクの1回のランダム読み書きに相当することができる。また、データの削除は、1回の読み取りに書き込みを加えることに相当することができる。このようにして、ディスクの読み書き性能及び削除効率を確保することに役立つ。また、データの書き込み及び削除の時に、スペースの断片が発生しない。また、すぐに空のストレージスペースを回収することができる。このようにして、ディスクの空間利用率を向上させることに役立つ。言い換えれば、本発明における方法は、ユーザの上記の要求をバランスよく合わせることができ、実際の使用中に良好な処理効果に達することができ、ユーザ体験を向上させることに有利であることができる。 It should be noted that storing a large number of small files is a problem that is difficult to solve with a distributed storage system. Although the user generally needs to compromise on read performance, space utilization, and deletion efficiency, in the data storage method according to each embodiment of the present invention, data writing is performed on one disk. It can correspond to random reading and writing times. Deletion of data can be equivalent to adding writing to one reading. In this way, it is useful to secure the read / write performance and the deletion efficiency of the disk. In addition, when writing or deleting data, no fragments of space are generated. In addition, an empty storage space can be recovered immediately. In this way, it is useful to improve the space utilization rate of the disk. In other words, the method according to the present invention can balance the above demands of the user, can reach good processing effect during actual use, and can be advantageous for improving the user experience. .
本発明の実施例におけるデータを記憶するための方法において、2つのデータブロックにまたがらない限り、すべてのデータの読み書きはすべて1回のIOPSある。ここで、データブロックのサイズを調整したり、データ入力の分割などの措置によって、2つのデータブロックにまたがる状況を減少または防止することができる。読み書き性能は、それぞれのディスクの1回のランダム読み取り、書き込みの消費時間と基本的に同じである。また、書き込みと削除の過程で断片が発生されず、すぐにスペースを回収することができる。削除時に1回の別途のIO書き込みが発生することがあるが、従来の技術の解決手段に比べて、IOの消費はまだ比較的に少ない。 In the method for storing data in an embodiment of the present invention, all data reading and writing is performed once by IOPS, unless the data spans two data blocks. Here, by taking measures such as adjusting the size of the data block or dividing the data input, it is possible to reduce or prevent a situation where two data blocks are straddled. The read / write performance is basically the same as the time required for one random read / write of each disk. Further, no fragments are generated in the process of writing and deleting, and the space can be recovered immediately. One additional IO write may occur at the time of deletion, but IO consumption is still relatively low compared to the prior art solutions.
また、空間浪費の側面には、主に2つの部分が存在する。その一つは、同じタイプのデータのサイズをそろえることである。この部分の浪費は、入力データの平均サイズによって異なる。統計によって分かることができるように、ユーザの平均入力データは、一般的に256KBである。結果として生じる空間の浪費は、約0.7%である。他の一つは、各種タイプで割り当てられた最後の1つのデータブロックが埋められないことである。最悪の場合、約127個のデータブロックが1つのレコードだけ存在する。この場合、空間の浪費は約(2M×127)÷32G=0.7%である。分析を通じて、この2つの部分空間の浪費はすべて受け入れ可能であることがわかる。したがって、スループット、遅延、空間利用率などの側面の総合的な比較からみると、上記の方法は、既存の技術よりも優れている。 In addition, there are mainly two parts in the aspect of space waste. One of them is to make the sizes of the same type of data uniform. The waste of this part depends on the average size of the input data. As can be seen by statistics, the average input data of a user is typically 256 KB. The resulting waste of space is about 0.7%. Another is that the last one data block allocated in various types is not filled. In the worst case, there are only about 127 data blocks in one record. In this case, the waste of space is about (2M × 127) ÷ 32G = 0.7%. Through analysis, it can be seen that the waste of these two subspaces is all acceptable. Therefore, from a comprehensive comparison of aspects such as throughput, delay, and space utilization, the above method is superior to existing techniques.
説明すべき点は、本発明の実施例の方法は、主にデータの規模がEB級の場合、読み取りが書き込みより多い場合、書き込みが削除より多い場合に使用されることができる。これは、スペース使用率について極めて厳しく要求(即ち、コスト削減)する。併せて、読み書き遅延とスループットに比較的に高く要求する。 It should be noted that the method of the embodiment of the present invention can be used mainly when the data size is EB class, when the read is more than the write, and when the write is more than the delete. This places very stringent requirements on space utilization (ie, cost savings). In addition, relatively high demands are placed on read / write delay and throughput.
続いて図6に示すように、上記の各図に示された方法の実現として、本発明は、データを記憶するための装置の1つの実施例を提供する。当該装置の実施例は、上記各実施例に示した方法の実施例と対応され、当該装置は、具体的に、様々な電子機器に適用されることができる。 As shown in FIG. 6, as an implementation of the method shown in the above figures, the present invention provides one embodiment of an apparatus for storing data. The embodiment of the device corresponds to the embodiment of the method 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, an apparatus 600 for storing data according to the present embodiment can be configured as a standalone storage engine of a distributed object storage. Storage files can be configured on the disk of the standalone storage engine. Here, the storage space of the storage file is divided into at least two data blocks, and a link list structure can be used between the at least two data blocks. The apparatus 600 is configured to determine a type of a storage target record based on a data size of a storage target record, and a type determination unit 601 configured to search a storage file for current storage information of the type. The current storage information includes information on a currently allocated data block and record information currently stored on the data block, and records stored under the same type on the storage file. The size of the data in the records stored under the different types is the same, and the size of the data in the records stored under different types is different. Based on the current storage information, the currently allocated data block has the remaining storage space. A scan configured to determine if it exists Source determination unit 603 and a first allocation configured to allocate a new data block to the type in response to the determination that there is no remaining storage space, and store the record to be stored in the new data block. And a unit 604.
本実施例のある選択可能な実施形態において、当該装置600は、残りのストレージスペースがあると確定されたことに応答して、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さくないか否かをさらに確定するように構成されるサイズ確定ユニット(図6に図示せず)と、残りのストレージスペースが記憶対象レコードのデータのサイズよりも小さいと確定されたことに応答して、記憶対象レコードの一部のデータを残りのストレージスペースに記憶し、タイプに新しいデータブロックを割り当てて、記憶対象レコードの残りのデータを記憶するように構成される第2割り当てユニット(図6に図示せず)と、をさらに備えることができる。 In one selectable embodiment of the present embodiment, the device 600 responds to the determination that the remaining storage space is present and that the remaining storage space is not smaller than the size of the data of the record to be stored. A size determination unit (not shown in FIG. 6) configured to further determine whether the storage space is smaller than the size of the data of the record to be stored. A second allocation unit (shown in FIG. 6) configured to store some data of the target record in the remaining storage space, allocate a new data block to the type, and store the remaining data of the storage target record. ) Can be further provided.
選択可能に、少なくとも2つのデータブロックのストレージスペースは同じであることができ、且つ異なるタイプで記憶されたレコードのデータのサイズはすべて所定の数値の整数倍であることができる。 Optionally, the storage space of at least two data blocks can be the same, and the size of the data of records stored in different types can all be an integer multiple of a predetermined number.
さらに、当該装置600は、当該タイプの現在のストレージ情報を更新し、そして記憶対象レコード記憶後の位置情報を生成し、位置情報を出力するように構成される位置生成ユニット(図6に図示せず)をさらに備えることができる。ここで、位置情報は、レコードのタイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを備える。 Further, the apparatus 600 may update the current storage information of the type, generate the post-storage record storage location information, and output the location 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 a data block where the record is located.
一部の実施形態において、ディスクに少なくとも2つのストレージファイルが構成されることができ、且つディスクのディレクトリに各ストレージファイルのインデックス情報が記憶されることができる。 In some embodiments, at least two storage files can be configured on the disk, and index information of each storage file can be stored in a directory on the disk.
選択可能に、当該装置600は、ディレクトリから読み取り対象レコードの位置情報を検索するように構成される第1位置検索ユニット(図6に図示せず)と、読み取り対象レコードの位置情報に基づいて、読み取り対象レコードのタイプ及び対応するストレージファイルのうち、位置するデータブロックにおける位置オフセットを確定するように構成される確定ユニット(図6に図示せず)と、読み取り対象レコードのタイプに基づいて、読み取り対象レコードの長さを確定し、位置オフセットによって示された位置から始まって、長さが前記読み取り対象レコードの長さであるデータを読み取り、そして読み取ったデータを前記読み取り対象レコードとして出力するように構成される読み取りユニット(図6に図示せず)と、をさらに備えることができる。 Optionally, the device 600 may include a first location search unit (not shown in FIG. 6) configured to search the directory for location information of the record to be read, and based on the location information of the record to be read. A determination unit (not shown in FIG. 6) configured to determine a position offset in a data block located among a type of a record to be read and a corresponding storage file; Determining the length of the target record, starting from the position indicated by the position offset, reading data whose length is the length of the read target record, and outputting the read data as the read target record. And a reading unit (not shown in FIG. 6). Rukoto can.
さらに、当該装置600は、ディレクトリから削除対象レコードの位置情報を検索するように構成される第2位置検索ユニット(図6に図示せず)と、削除対象レコードの位置情報に基づいて、削除対象レコードの対応するストレージファイル中の属するタイプの現在のストレージ情報を獲得するように構成される獲得ユニット(図6に図示せず)と、獲得された現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを、削除対象レコードの位置する位置へ転送及び記憶するように構成される転送ユニット(図6に図示せず)と、読み取られたレコードの転送前のデータブロック中のデータをクリアし、読み取られたレコードの位置情報を修正するように構成される修正ユニット(図6に図示せず)と、をさらに備えることができる。 Further, the device 600 includes a second position search unit (not shown in FIG. 6) configured to search the directory for the position information of the record to be deleted, and a deletion target based on the position information of the record to be deleted. An 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 currently stored information based on the obtained current storage information. A transfer unit (not shown in FIG. 6) configured to read the last record from the record, and transfer and store the read record to the position where the record to be deleted is located; Correction unit configured to clear the data in the data block of the row and to correct the positional information of the read record And not shown) in FIG. 6 may further include a.
一部の実施形態において、当該装置600は、読み取られたレコードが転送される前に位置するデータブロックにデータがまだ存在するか否かを確定し、当該データブロックにデータが記憶されていない場合、再び割り当てるために当該データブロックを回収するように構成される回収ユニット(図6に図示せず)をさらに備えることができる。 In some embodiments, the apparatus 600 determines whether data is still present in the data block located before the read record is transferred, and the data is not stored in the data block. , May further comprise a recovery unit (not shown in FIG. 6) configured to recover the data block for reassignment.
一部の実施形態において、当該装置600は、記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトについて、当該サブオブジェクトをコーディングして副本を獲得するように構成されるコーディングユニット(図6に図示せず)と、当該副本の説明情報及びデータを配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成するように構成されるレコード生成ユニット(図6に図示せず)と、をさらに備えることができる。 In some embodiments, the apparatus 600 includes, for a sub-object in at least one sub-object obtained by dividing the object to be stored, coding the sub-object to obtain a duplicate. A unit (not shown in FIG. 6) and a record generating unit (not shown in FIG. 6) configured to perform an arraying process on the description information and data of the duplicate and generate a storage target record of the sub-object. ) Can be further provided.
選択可能に、レコード生成ユニットは、配列化後の当該副本のデータのサイズが、ストレージファイル中の各タイプに対応するデータのサイズ中の1つと同じであるか否かを確定するように構成される確定サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズとすべて異なり、且つ一部のタイプに対応するデータのサイズよりも小さい場合、当該副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の当該副本のデータのサイズが当該一部のタイプのうち対応するデータのサイズが最も小さいタイプである目標タイプに対応するデータのサイズと同じにし、当該サブオブジェクトの1つの記憶対象レコードを生成するように構成される第1生成サブユニットと、当該副本のデータのサイズが、各タイプに対応するデータのサイズの最大値よりも大きい場合、当該副本に分割及びゼロで埋めを行って、分割された後の各副本のデータのサイズが各タイプに対応するデータのサイズ中の1つとそれぞれ同じにし、当該サブオブジェクトの少なくとも2つの記憶対象レコードを生成するように構成される第2生成サブユニットと、を備えることができる。 Optionally, the record generation unit is configured to determine whether the size of the data of the duplicate after arrangement is the same as one of the sizes of the data corresponding to each type in the storage file. If the size of the determined subunit and the data of the duplicate are all different from the size of the data corresponding to each type and smaller than the size of the data corresponding to some types, the trailing part of the data of the duplicate is zero. And the size of the data of the duplicate after padding with zeros is the same as the size of the data corresponding to the target type, which is the smallest type of the corresponding data among the partial types, and The first generation sub-unit configured to generate one storage target record and the size of the data of the duplicate correspond to each type. If the data size is larger than the maximum value, the duplicate is divided and padded with zeros so that the data size of each duplicate after the division is the same as one of the data sizes corresponding to each type. And a second generation sub-unit configured to generate at least two storage target records of the sub-object.
理解できるのは、当該装置600に記載のいくつかのユニットは、図2〜図4に説明された方法中の各ステップに対応される。これにより、上記の方法について説明した操作、機能、及び生成された有益な効果は、同様に、当該装置600及びその中に含まれるユニットに適用され、ここで繰り返して説明しない。 It can be appreciated that some units described in the apparatus 600 correspond to steps in the method described in FIGS. Accordingly, the operations, functions, and generated beneficial effects described for the above methods also apply to the apparatus 600 and the units contained therein, and will not be described again here.
図7を参照すると、本発明に係るデータを記憶するためのシステムの1つの実施例のタイミング図を示す。 Referring to FIG. 7, there is shown a timing diagram of one embodiment of a system for storing data according to the present invention.
本実施例におけるデータを記憶するためのシステムは、第1サブシステム、第2サブシステム及び上記の各実施例に説明したスタンドアロンストレージエンジンがインストールされた第3サブシステムを備えることができる。第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、少なくとも1つのサブオブジェクトを第3サブシステムに送信するように構成される。第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成される。第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトにコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶するように構成される。 The system for storing data in the present embodiment may include a first subsystem, a second subsystem, and a third subsystem in which the standalone storage engine described in each of the above embodiments is installed. The first subsystem receives a storage request including a storage object sent by a user, divides the storage object into at least one sub-object, and associates the storage object with the at least one sub-object. To the second subsystem and at least one sub-object to the third subsystem. The second subsystem is configured to store a correspondence between the object to be stored and the at least one sub-object in a list. The third subsystem is configured to perform coding and arraying processing on 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 a user.
本実施例において、第1サブシステムは、有線接続方式または無線接続方式によって、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信することができる。ここで、記憶待ちオブジェクトは、分散型オブジェクトストレージシステムのでデータあることができる。 In the present embodiment, the first subsystem can receive a storage request including a storage-waiting object transmitted by a user through a wired connection method or a wireless connection method. Here, the object waiting to be stored can be data in the distributed object storage system.
ステップ702において、第1サブシステムは、記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割することができる。ここで、分割方式は、実際の需要に応じて設定することができる。 In step 702, the first subsystem can divide the object to be stored into at least one sub-object. Here, the division method can be set according to actual demand.
ステップ703において、第1サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係を第2サブシステムに送信することができ、少なくとも1つのサブオブジェクトを第3サブシステムに送信することができる。 In step 703, the first subsystem can send a correspondence between the object to be stored and the at least one sub-object to the second subsystem, and sends the at least one sub-object to the third subsystem. be able to.
ステップ704において、第2サブシステムは、記憶待ちオブジェクトと少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶することができる。 In step 704, the second subsystem can store the correspondence between the object to be stored and the at least one sub-object in a list.
ステップ705において、第3サブシステムは、少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された記憶対象レコードを記憶することができる。これは、図2の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。 In step 705, the third subsystem performs coding and arrangement processing on the sub-objects in the at least one sub-object, generates a storage target record of the sub-object, and stores the generated storage target record. can do. This can be referred to the relevant description of the embodiment of FIG. 2 and will not be repeated here.
本実施例のある選択可能な実施形態において、例えば、ステップ706において、第3サブシステムは、データ記憶完了を表示するための応答情報を第1サブシステムに送信することができる。 In some selectable embodiments of this example, for example, at step 706, the third subsystem may send response information to the first subsystem to indicate completion of data storage.
その後、ステップ707において、第1サブシステムは、応答情報を受信した場合、記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子をユーザにフィードバックする。このようにして、ユーザは、クエリ識別子によって、それが示したオブジェクトデータにアクセスすることができる。ここで、クエリ識別子は、数字、アルファベット、文字などの少なくとも一つの文字符号を含むがそれに限定されない。 Thereafter, in step 707, when receiving the response information, the first subsystem generates a query identifier of the object to be stored and feeds back the query identifier to the user. In this way, the user can access the object data indicated by the query identifier. Here, the query identifier includes at least one character code such as a number, an alphabet, and a character, but is not limited thereto.
選択可能に、例えば、ステップ708において、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む読み取り要求を受信することができる。 Optionally, for example, at step 708, the first subsystem can receive a read request including 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サブシステムに送信することができる。 Thereafter, in step 710, the second subsystem can obtain a sub-object list corresponding to the object indicated by the query identifier in the read request, and can transmit the sub-object list to the third subsystem. .
その後、ステップ711において、第3サブシステムは、サブオブジェクトリストに応じて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、オブジェクトデータを第1サブシステムに送信することができる。これは、図3の実施例の関連する説明を参照することができ、ここで繰り返して説明しない。 Thereafter, in step 711, the third subsystem reads a corresponding record according to the sub-object list, analyzes the read record to obtain object data, and transmits the object data to the first subsystem. it can. This can be referred to the relevant description of the embodiment of FIG. 3 and will not be repeated here.
最後に、ステップ712において、第1サブシステムは、オブジェクトデータをユーザにフィードバックすることができる。 Finally, at step 712, the first subsystem can feed back the object data to the user.
あるアプリケーションシナリオにおいて、第1サブシステムは、ユーザによって送信されたクエリ識別子を含む削除要求をさらに受信することができる。このようにして、第3サブシステムは、図4の実施例に関連する説明に応じて、削除要求が示したオブジェクトデータを削除することができる。ここで繰り返して説明しない。 In some application scenarios, the first subsystem may further receive a delete request including 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. It will not be described again here.
理解できるのは、上記第1サブシステム、第2サブシステム及び第3サブシステムは、異なる電子機器(例えば、3台のサーバ)に位置されることができ、同じ電子機器(図1に示したサーバ105)に位置されることもできる。且つ一部の実施形態において、第1サブシステムに第2サブシステムの機能が備えられた場合、本実施例中のシステムは第2サブシステムをインストールしなくてもよい。 It can be understood that the first subsystem, the second subsystem and the third subsystem can be located on different electronic devices (for example, three servers) and the same electronic device (shown in FIG. 1). Server 105). Further, in some embodiments, when the first subsystem has the function of the second subsystem, the system in the present embodiment does not need to install the second subsystem.
本実施例のデータを記憶するためのシステムにおいて、新しいデータの記憶方法を適用し、即ち、データのサイズに応じて分類して記憶する。このようにして、データの分散型ストレージを実現することができるのみならず、データの安全性を向上させる。併せて、全体的なデータ処理性能を向上させ、動作コストを減少させることができる。 In the data storage system of the present embodiment, a new data storage method is applied, that is, the data is classified and stored according to the data size. In this way, not only can distributed storage of data be realized, but also data security can be 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つの実施例を示しただけで、本発明の実施例の機能と使用範囲に限定を加えるものではない。 Referring now to FIG. 8, a schematic structural diagram of a computer system 800 applied to implement an electronic device (eg, 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 use range 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, computer system 800 performs various suitable operations and processes according to programs loaded in read-only memory (ROM) 802 or programs loaded from storage portion 808 into random access memory (RAM) 803. It comprises a central processing unit (CPU) 801 that can execute. The RAM 803 further stores various programs and data necessary for operating the system 800. The CPU 801, the ROM 802, and the RAM 803 are interconnected via a bus 804. An 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にインストールされるようにする。 An input unit 806 including a keyboard, a mouse, and the like, an output unit 807 including a cathode-ray tube (CRT), a liquid crystal display (LCD), and a speaker, a storage unit 808 including a hard disk, a LAN card, a modem, and the like Is connected to the I / O interface 805. The communication unit 809 executes a communication process 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 mounted on a driver 810 as needed, and a computer program read therefrom is installed in the storage unit 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 processes described above with reference to the flowcharts 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 embodied on a computer readable medium, the computer program comprising a program code for performing the method illustrated in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via communication portion 809 and / or can be installed from removable media 811. When the computer program is executed by the central processing unit (CPU) 801, it performs the functions limited to the method of the present invention. It should be noted that the computer-readable medium according to the present invention can be a computer-readable signal medium or a computer-readable storage medium or any combination of both. The computer-readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, 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 includes or stores a program, which program is used by, or in conjunction with, the command execution system, apparatus, or element. Is done. In the present invention, a computer readable signal medium carries computer readable program code and may be provided in baseband or in a data signal propagated as part of a carrier wave. Data signals propagated in this manner can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, wherein the computer readable medium is used by, or in conjunction with, a command execution system, apparatus, or element. Programs can be sent, propagated, or transported. The program code contained on the computer readable medium may be transmitted by any suitable medium including, but not limited to, wireless, wire, fiber optic cable, RF, etc., or any suitable combination thereof.
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びコンピュータプログラム製品の実現可能な実施形態の構造、機能、及び操作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、1つのモジュール、プログラムセグメントまたはコードの一部を表すことができ、当該モジュール、プログラムセグメントまたはコードの一部は、規定された論理機能を実現するための1つまたは複数の実行可能な指令を備える。また、代替実施形態において、ブロックに示されている機能は、図面に示されているものとは異なる順序で発生することもあることに留意されたい。例えば、連続して表示された2つのブロックは、実際には実質的に並列に実行されてもよく、それらは含まれる機能に応じて逆の順序で実行されてもよい。また、ブロック図及び/またはフローチャートの各ブロック、及びブロック図及び/またはフローチャートのブロックの組み合わせは、規定された機能または操作を実行する専用のハードウェアベースのシステムで実現され、または専用のハードウェアとコンピュータ指令の組み合わせによって実現されることができることにも留意されたい。 The flowcharts and block diagrams in the drawings illustrate the structures, functions, and operations of possible embodiments of the systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, a program segment, or a portion of code, where the module, program segment, or portion of the code implements a defined logical function. One or more executable instructions. Also note that in alternate embodiments, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks displayed in succession may, in fact, be performed substantially in parallel, or they may be performed in the reverse order, depending on the functionality involved. Also, each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented in dedicated hardware-based systems that perform specified functions or operations, or may be implemented using dedicated hardware. It can also be realized by a combination of and computer instructions.
本発明の実施例で言及されたユニットは、ソフトウェアによって実現されることができ、またはハードウェアによって実現されることもできる。記述されたユニットは、また、例えば、タイプ確定ユニット、検索ユニット、スペース確定ユニット及び第1割り当てユニットを備えるプロセッサーとして記述されるプロセッサーに設置されることができる。ここで、これらのユニットの名称は、当該ユニット自体を限定するものではない場合があり、例えば、タイプ確定ユニットは、また、「記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定するユニット」と記述されることもできる。 The units mentioned in the embodiments of the present invention may be implemented by software or may be implemented by hardware. The described unit can also be installed on a processor described as a processor comprising, for example, 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 units themselves.For example, the type determination unit may also specify “the type of the storage target record according to the data size of the storage target record. Unit to determine ".
他の態様として、本発明は、コンピュータ可読媒体をさらに提供し、当該コンピュータ可読媒体は、前記実施例で説明した電子機器に含まれることができ、または別途に存在し、当該電子機器にインストールされていないことができる。前記コンピュータ可読媒体は、1つまたは複数のプログラムが担持されることができ、1つまたは複数のプログラムが当該サーバによって実行される場合、当該電子機器は、記憶対象レコードのデータのサイズに応じて、記憶対象レコードのタイプを決定し、ストレージファイルで、現在割り当てられたデータブロックの情報及びデータブロックのうち現在記憶されたレコードの情報を備える、タイプの下の現在のストレージ情報を検索し、ここで、ストレージファイルのうち同じタイプの下で記憶されたレコードのデータのサイズは同じであり、異なるタイプの下で記憶されたレコードのデータのサイズは異なり、現在のストレージ情報に応じて、現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定し、残りのストレージスペースがないと確定されたことに応答して、タイプの下に新しいデータブロックを割り当てて、記憶対象レコードを新しいデータブロックに記憶する。 In another aspect, the present invention further provides a computer-readable medium, which may be included in the electronic device described in the above embodiment, or may be separately provided and installed on the electronic device. Can not. The computer-readable medium can carry one or more programs, and when the one or more programs are executed by the server, the electronic device is configured to store data according to the size of the data of the record to be stored. Determine the type of record to be stored, and search the storage file for current storage information under the type, comprising information of the currently allocated data block and information of the currently stored record of the data blocks, In a storage file, the data size of records stored under the same type is the same, the data size of records stored under different types is different, and according to the current storage information, Determine if there is any remaining storage space in the allocated data block In response to the remaining storage space is determined not by allocating a new data block under type, storing the storage object records in the new data block.
以上の説明は、本発明の好ましい実施例及び応用された技術の原理の説明にすぎない。本発明で言及される本発明の範囲は、前記の技術的特徴の特定の組み合わせに限定されず、併せて、前記の発明構想から逸脱することなく、前記の技術的な特徴または均等な特徴を任意に組み合わせて形成された。例えば、前記の特徴と本発明において開示されるがこれに限定されない技術的特徴と類似した機能を有する技術的特徴が互いに交換されて形成される他の技術的解決手段を網羅すべきであることを当業者は理解すべきである。
The above description is only the description of the preferred embodiment of the present invention and the principle of the applied technology. The scope of the present invention as referred to in the present invention is not limited to the specific combination of the technical features described above, but may be combined with the technical features or equivalent features without departing from the inventive concept. It was formed in any combination. For example, the technical features having functions similar to the technical features disclosed in the present invention and the technical features disclosed in, but not limited to, the present invention should be exchanged with each other to cover other technical solutions. Should be understood by those skilled in the art.
Claims (16)
前記方法は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定することと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索することであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、ことと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定することと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶することと、を含むデータを記憶するための方法。 A method for storing data, wherein the method is used in a standalone storage engine of a distributed object storage, wherein a storage file is configured on a disk of the standalone storage engine, and the storage space of the storage file is at least two data spaces. Divided into blocks and using a linked list structure between said at least two data blocks,
The method comprises:
Determining the type of the storage target record based on the size of the data of the storage target record;
Retrieving current storage information of the type in the storage file, wherein the current storage information includes information of a currently allocated data block and information of a currently stored record of the data block. The size of data of records stored in the same type of the storage file is the same, the size of data of records stored in the different type is different,
Determining whether there is any remaining storage space in the currently allocated data block based on the current storage information;
Allocating a new data block to the type in response to the determination that the remaining storage space is absent, and storing the storage target record in the new data block. Method.
前記残りのストレージスペースが前記記憶対象レコードのデータのサイズより小さいと確定されたことに応答して、前記記憶対象レコードの一部のデータを前記残りのストレージスペースに記憶することと、
前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードの残りのデータを当該新しいデータブロックに記憶することと、をさらに含むことを特徴とする
請求項1に記載のデータを記憶するための方法。 Responsive to the determination that the remaining storage space is present, further determining whether the remaining storage space is not smaller than the size of the data of the storage target record;
Storing, in response to the determination that the remaining storage space is smaller than the size of the data of the storage target record, some data of the storage target record in the remaining storage space;
2. A method for storing data according to claim 1, further comprising: allocating a new data block to the type and storing remaining data of the record to be stored in the new data block. .
請求項1に記載のデータを記憶するための方法。 The storage space of the at least two data blocks is the same, and the sizes of data of records stored in the different types are all integer multiples of a predetermined numerical value. A way to remember.
前記位置情報は、レコードの前記タイプ、レコードの識別子及びレコードの位置するデータブロックの識別子のうち少なくとも1つを含むことを特徴とする
請求項1乃至3のいずれか一項に記載のデータを記憶するための方法。 Updating the current storage information of the type, generating 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 a record, an identifier of a record, and an identifier of a data block where the record is located. Way to do.
請求項4に記載のデータを記憶するための方法。 The method for storing data according to claim 4, wherein at least two storage files are configured on the disk, and index information of each of the storage files is stored in a directory of the disk.
前記読み取り対象レコードの位置情報に基づいて、前記読み取り対象レコードの前記タイプ及び対応する前記ストレージファイルのうち位置するデータブロックにおける位置オフセットを確定することと、
前記読み取り対象レコードの前記タイプに基づいて、前記読み取り対象レコードの長さを確定し、前記位置オフセットによって表示された位置から始まって、前記読み取り対象レコードの長さに対応する長さのデータを読み取り、読み取ったデータを前記読み取り対象レコードとして出力することと、をさらに含むことを特徴とする
請求項5に記載のデータを記憶するための方法。 Searching for the position information of the record to be read from the directory;
Based on the position information of the record to be read, determining the type of the record to be read and a position offset in a data block located in the corresponding storage file;
Based on the type of the record to be read, determine the length of the record to be read, and read data having a length corresponding to the length of the record to be read, starting from the position indicated by the position offset. The method for storing data according to claim 5, further comprising: outputting the read data as the record to be read.
前記削除対象レコードの位置情報に基づいて、対応する前記ストレージファイルで前記削除対象レコードの属する前記タイプの前記現在のストレージ情報を獲得することと、
獲得された前記現在のストレージ情報に基づいて、現在記憶されたレコードから最後のレコードを読み取り、読み取られたレコードを前記削除対象レコードの位置する位置へ転送し記憶することと、
前記読み取られたレコードの転送前のデータブロック中のデータをクリアし、前記読み取られたレコードの位置情報を修正することと、をさらに含むことを特徴とする
請求項5に記載のデータを記憶するための方法。 Searching for the position information of the record to be deleted from the directory;
Acquiring the current storage information of the type to which the record to be deleted belongs in the corresponding storage file based on the position information of the record to be deleted;
Reading the last record from the currently stored record based on the obtained current storage information, transferring the read record to a position where the record to be deleted is stored, and
6. The method according to claim 5, further comprising: clearing data in a data block before transferring the read record, and correcting position information of the read record. Way for.
前記読み取られたレコードが転送前に位置したデータブロックにデータが存在するか否かを確定することと、
当該データブロックにデータが存在しない場合、再び割り当てるために当該データブロックを回収することと、をさらに含むことを特徴とする
請求項7に記載のデータを記憶するための方法。 After clearing the data in the data block before the transfer of the read record, the method for storing the data comprises:
Determining whether the read record has data in the data block located before the transfer,
The method of claim 7, further comprising: retrieving the data block for reassignment if the data block does not have data.
記憶待ちオブジェクトを分割して得られた少なくとも1つのサブオブジェクト中のサブオブジェクトに対して、前記サブオブジェクトをコーディングして副本を獲得することと、
当該副本の説明情報及びデータに対して配列化処理を行って、前記サブオブジェクトの記憶対象レコードを生成することと、をさらに含むことを特徴とする
請求項1乃至8のいずれか一項に記載のデータを記憶するための方法。 Before determining the type of the storage target record based on the size of the data of the storage target record, a method for storing the data,
Coding a sub-object for a sub-object in at least one sub-object obtained by dividing the object to be stored, to obtain a duplicate;
The method according to any one of claims 1 to 8, further comprising: performing an arraying process on the description information and the data of the duplicate and generating a storage target record of the sub-object. Method for storing data.
配列化後の前記副本のデータのサイズが前記ストレージファイル中の各前記タイプに対応するデータのサイズ中の1つと同じであるか否かを確定することと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズとすべて異なり、且つ一部の前記タイプに対応するデータのサイズより小さい場合、前記副本のデータの後ろをゼロで埋めて、ゼロで埋めた後の前記副本のデータのサイズが目標タイプに対応するデータのサイズと同じであり、且つ前記サブオブジェクトの1つの記憶対象レコードを生成するようにすることと、
前記副本のデータのサイズが各前記タイプに対応するデータのサイズの最大値より大きい場合、前記副本に対して分割しゼロで埋めることにより、分割後の各副本のデータのサイズが各前記タイプに対応するデータのサイズ中の1つとそれぞれ同じであるようにし、且つ前記サブオブジェクトの少なくとも二つの記憶対象レコードを生成することと、を含み、
前記目標タイプは、前記一部の前記タイプのうちの対応するデータのサイズが最も小さい前記タイプであることを特徴とする
請求項9に記載のデータを記憶するための方法。 Generating the storage target record of the sub-object includes:
Determining whether or not the size of the duplicate data after arraying is the same as one of the sizes of the data corresponding to each of the types in the storage file;
If the size of the duplicate data 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 trailing portion of the duplicate data is padded with zeros, and 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 duplicate data is larger than the maximum value of the data size corresponding to each type, the duplicate is divided and filled with zeros, so that the size of each duplicate data after division is set to each of the types. Generating at least two storage target records of said sub-object, each being equal to one of the corresponding data sizes;
The method for storing data according to claim 9, wherein the target type is the type having the smallest size of corresponding data of the some of the types.
前記装置は、
記憶対象レコードのデータのサイズに基づいて、前記記憶対象レコードのタイプを確定するように構成されるタイプ確定ユニットと、
前記ストレージファイルにおいて前記タイプの現在のストレージ情報を検索するように構成される検索ユニットであって、前記現在のストレージ情報は、現在割り当てられたデータブロックの情報と当該データブロックのうち現在記憶されたレコードの情報とを含み、前記ストレージファイルのうち同じ前記タイプで記憶されたレコードのデータのサイズは同じであり、異なる前記タイプで記憶されたレコードのデータのサイズは異なる、検索ユニットと、
前記現在のストレージ情報に基づいて、前記現在割り当てられたデータブロックに残りのストレージスペースが存在するか否かを確定するように構成されるスペース確定ユニットと、
前記残りのストレージスペースがないと確定されたことに応答して、前記タイプに新しいデータブロックを割り当てて、前記記憶対象レコードを前記新しいデータブロックに記憶するように構成される第1割り当てユニットと、を備えるデータを記憶するための装置。 An apparatus for storing data, wherein the apparatus is configured as a standalone storage engine of a distributed object storage, a storage file is configured on a disk of the standalone storage engine, and a storage space of the storage file has at least two data spaces. Divided into blocks and using a linked list structure between said at least two data 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 of the storage target record;
A search unit configured to search the storage file for current storage information of the type, wherein the current storage information is information of a currently allocated data block and a currently stored data block of the data block. A search unit, comprising information of records, wherein the size of data of records stored in the storage file of the same type is the same, and the size of data of records stored in different types of the storage file is different,
A space determination unit configured to determine whether there is any 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 in response to the determination that the remaining storage space is absent, and to store the record to be stored in the new data block; An apparatus for storing data comprising:
第1サブシステム、第2サブシステム及び請求項1乃至10のいずれか一項に記載のスタンドアロンストレージエンジンがインストールされた第3サブシステムを備え、
前記第1サブシステムは、ユーザによって送信された記憶待ちオブジェクトを含む記憶要求を受信し、前記記憶待ちオブジェクトを少なくとも1つのサブオブジェクトに分割し、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係を前記第2サブシステムに送信し、前記少なくとも1つのサブオブジェクトを前記第3サブシステムに送信するように構成され、
前記第2サブシステムは、前記記憶待ちオブジェクトと前記少なくとも1つのサブオブジェクトとの間の対応関係をリストに記憶するように構成され、
前記第3サブシステムは、前記少なくとも1つのサブオブジェクト中のサブオブジェクトに対してコーディング及び配列化処理を行って、当該サブオブジェクトの記憶対象レコードを生成し、生成された当該記憶対象レコードを記憶するように構成されるデータを記憶するためのシステム。 A system for storing data,
A first subsystem, a second subsystem, and a third subsystem in which the standalone 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 performs a communication between the storage-waiting object and the at least one sub-object. Transmitting the correspondence between the second subsystem and the at least one sub-object to the third subsystem;
The second subsystem is configured to store a correspondence between the waiting-for-storage object and the at least one sub-object in a list,
The third subsystem performs coding and arrangement processing on sub-objects in the at least one sub-object, generates a storage target record of the sub-object, and stores the generated storage target record. For storing data configured.
前記第1サブシステムは、前記応答情報を受信した場合、前記記憶待ちオブジェクトのクエリ識別子を生成し、前記クエリ識別子を前記ユーザにフィードバックするようにさらに構成されることを特徴とする
請求項12に記載のデータを記憶するためのシステム。 The third subsystem is further configured to send response information for indicating data storage completion to the first subsystem,
The method according to claim 12, wherein the first subsystem is further configured to, when receiving the response information, generate a query identifier of the object to be stored and feed back the query identifier to the user. A system for storing the described data.
前記第2サブシステムは、前記読み取り要求中のクエリ識別子によって示されたオブジェクトに対応するサブオブジェクトリストを獲得し、前記サブオブジェクトリストを前記第3サブシステムに送信するようにさらに構成され、
前記第3サブシステムは、前記サブオブジェクトリストに基づいて対応するレコードを読み取り、読み取られたレコードを解析してオブジェクトデータを取得し、前記第1サブシステムが前記オブジェクトデータを前記ユーザにフィードバックするために前記オブジェクトデータを前記第1サブシステムに送信するようにさらに構成されることを特徴とする
請求項13に記載のデータを記憶するためのシステム。 The first subsystem is further configured to receive a read request including a query identifier transmitted by the user, and to transmit the query identifier in the read request to the second subsystem,
The second subsystem is further configured to obtain a sub-object list corresponding to an object indicated by the query identifier in the read request, and to transmit the sub-object list to the third subsystem;
The third subsystem reads a corresponding record based on the sub-object list, analyzes the read record to obtain object data, and the first subsystem feeds back the object data to the user. The system for storing data according to claim 13, further configured to transmit the object data to the first subsystem.
1つまたは複数のプロセッサーと、
1つまたは複数のプログラムを記憶するための記憶装置と、を備え、
前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーが請求項1乃至10のいずれか一項に記載の方法を実現する電子機器。 An electronic device,
One or more processors,
A storage device for storing one or more programs,
An electronic device that, when the one or more programs are executed by the one or more processors, causes the one or more processors to implement the method according to any one of claims 1 to 10.
前記コンピュータプログラムがプロセッサーによって実行される時、請求項1乃至10のいずれか一項に記載の方法が実現されるコンピュータ可読媒体。
A computer readable medium storing a computer program,
A computer readable medium on which the method according to any one of claims 1 to 10 is implemented when the computer program is executed by a processor.
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 true JP2020038623A (en) | 2020-03-12 |
JP6778795B2 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699092A (en) * | 2021-01-13 | 2021-04-23 | 浪潮云信息技术股份公司 | 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 |
CN113495889A (en) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | Distributed object storage method and device, electronic equipment and storage medium |
CN115190136A (en) * | 2021-04-21 | 2022-10-14 | 统信软件技术有限公司 | Data storage method, data transmission method and computing equipment |
CN115933972A (en) * | 2022-11-24 | 2023-04-07 | 中国华能集团清洁能源技术研究院有限公司 | Distributed data storage method and system for multi-professional simulation platform |
CN116521091A (en) * | 2023-06-28 | 2023-08-01 | 苏州浪潮智能科技有限公司 | Data reading method, device, equipment, data transmission system and storage medium |
CN116910825A (en) * | 2023-09-12 | 2023-10-20 | 上海融和元储能源有限公司 | Data synchronization method and device based on kafka |
CN117082083A (en) * | 2023-08-30 | 2023-11-17 | 杭州浩联智能科技有限公司 | Data storage method, device and medium based on distributed Internet of things architecture |
CN117078213A (en) * | 2023-10-11 | 2023-11-17 | 潍坊威尔信息技术有限公司 | Building engineering management platform based on big data integration analysis |
Families Citing this family (20)
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 |
CN113296684A (en) * | 2020-05-12 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Data writing method and device in distributed system and distributed system |
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 |
CN112506918B (en) * | 2020-11-03 | 2024-06-04 | 深圳市宏电技术股份有限公司 | Data access method, terminal and computer readable storage medium |
CN113486026A (en) * | 2021-08-02 | 2021-10-08 | 北京字节跳动网络技术有限公司 | Data processing method, device, equipment and medium |
CN113986117A (en) * | 2021-09-13 | 2022-01-28 | 阿里云计算有限公司 | File storage method, system, computing device and storage 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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136384A1 (en) * | 2005-12-13 | 2007-06-14 | Dietmar Hepper | Method and apparatus for organizing nodes in a network |
JP2011191835A (en) * | 2010-03-12 | 2011-09-29 | Hitachi Ltd | Computer system and method of executing application program |
JP2012073777A (en) * | 2010-09-28 | 2012-04-12 | Kddi Corp | Distributed file system control apparatus |
JP2017076370A (en) * | 2015-10-14 | 2017-04-20 | バイドゥ ネットコム サイエンス アンド テクノロジー(ペキン) カンパニー リミテッド | Method and device for processing file for distributed system |
Family Cites Families (11)
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 |
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 |
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 |
CN111488122A (en) * | 2017-10-25 | 2020-08-04 | 华为技术有限公司 | Data writing method and storage device |
-
2018
- 2018-09-04 CN CN201811024928.8A patent/CN109254733B/en active Active
-
2019
- 2019-07-09 JP JP2019127387A patent/JP6778795B2/en active Active
- 2019-07-11 KR KR1020190083622A patent/KR102240557B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136384A1 (en) * | 2005-12-13 | 2007-06-14 | Dietmar Hepper | Method and apparatus for organizing nodes in a network |
JP2007164794A (en) * | 2005-12-13 | 2007-06-28 | Thomson Licensing | Method and apparatus for automatically classifying node in network |
JP2011191835A (en) * | 2010-03-12 | 2011-09-29 | Hitachi Ltd | Computer system and method of executing application program |
JP2012073777A (en) * | 2010-09-28 | 2012-04-12 | Kddi Corp | Distributed file system control apparatus |
JP2017076370A (en) * | 2015-10-14 | 2017-04-20 | バイドゥ ネットコム サイエンス アンド テクノロジー(ペキン) カンパニー リミテッド | Method and device for processing file for distributed system |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699092A (en) * | 2021-01-13 | 2021-04-23 | 浪潮云信息技术股份公司 | 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 |
CN115190136B (en) * | 2021-04-21 | 2024-03-01 | 统信软件技术有限公司 | Data storage method, data transmission method and computing equipment |
CN115190136A (en) * | 2021-04-21 | 2022-10-14 | 统信软件技术有限公司 | Data storage method, data transmission method and computing equipment |
CN113495889A (en) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | Distributed object storage method and device, electronic equipment and storage medium |
CN113495889B (en) * | 2021-07-07 | 2024-03-15 | 浙江大华技术股份有限公司 | Distributed object storage method and device, electronic equipment and storage medium |
CN115933972A (en) * | 2022-11-24 | 2023-04-07 | 中国华能集团清洁能源技术研究院有限公司 | Distributed data storage method and system for multi-professional simulation platform |
CN115933972B (en) * | 2022-11-24 | 2024-05-31 | 中国华能集团清洁能源技术研究院有限公司 | Distributed data storage method and system of multi-specialty simulation platform |
CN116521091B (en) * | 2023-06-28 | 2023-09-15 | 苏州浪潮智能科技有限公司 | Data reading method, device, equipment, data transmission system and storage medium |
CN116521091A (en) * | 2023-06-28 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 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 |
CN116910825A (en) * | 2023-09-12 | 2023-10-20 | 上海融和元储能源有限公司 | Data synchronization method and device based on kafka |
CN117078213A (en) * | 2023-10-11 | 2023-11-17 | 潍坊威尔信息技术有限公司 | Building engineering management platform based on big data integration analysis |
CN117078213B (en) * | 2023-10-11 | 2024-03-29 | 潍坊威尔信息技术有限公司 | Building engineering management platform based on big data integration analysis |
Also Published As
Publication number | Publication date |
---|---|
KR20200027413A (en) | 2020-03-12 |
KR102240557B1 (en) | 2021-04-14 |
CN109254733A (en) | 2019-01-22 |
JP6778795B2 (en) | 2020-11-04 |
CN109254733B (en) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6778795B2 (en) | Methods, devices and systems for storing data | |
US11645183B1 (en) | User interface for correlation of virtual machine information and storage information | |
US8775479B2 (en) | Method and system for state maintenance of a large object | |
US20200401557A1 (en) | Metadata compaction in a distributed storage system | |
CN110457281A (en) | Data processing method, device, equipment and medium | |
US20160048430A1 (en) | Method of operating a shared nothing cluster system | |
CN110347651A (en) | Method of data synchronization, device, equipment and storage medium based on cloud storage | |
CN104679665A (en) | Method and system for achieving block storage of distributed file system | |
EP3610364B1 (en) | Wan optimized micro-service based deduplication | |
JP2016512906A (en) | Multi-layer storage management for flexible data placement | |
US11625192B2 (en) | Peer storage compute sharing using memory buffer | |
CN104881466A (en) | Method and device for processing data fragments and deleting garbage files | |
US9110820B1 (en) | Hybrid data storage system in an HPC exascale environment | |
CN108540510B (en) | Cloud host creation method and device and cloud service system | |
CN110245129B (en) | Distributed global data deduplication method and device | |
CN112866406B (en) | Data storage method, system, device, equipment and storage medium | |
US20180107404A1 (en) | Garbage collection system and process | |
CN103067519A (en) | Method and device of data distribution storage under heterogeneous platform | |
CN105653209A (en) | Object storage data transmitting method and device | |
CN109597903A (en) | Image file processing apparatus and method, document storage system and storage medium | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN102282545A (en) | Storage system | |
WO2024082857A1 (en) | Data migration method and system, and related apparatus | |
US9020902B1 (en) | Reducing head and tail duplication in stored data | |
CN112035413B (en) | Metadata information query method, device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190710 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200731 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200915 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201012 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6778795 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |