WO2018018827A1 - Data storage control method and data server - Google Patents

Data storage control method and data server Download PDF

Info

Publication number
WO2018018827A1
WO2018018827A1 PCT/CN2016/108679 CN2016108679W WO2018018827A1 WO 2018018827 A1 WO2018018827 A1 WO 2018018827A1 CN 2016108679 W CN2016108679 W CN 2016108679W WO 2018018827 A1 WO2018018827 A1 WO 2018018827A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
read
stored
fpga chip
Prior art date
Application number
PCT/CN2016/108679
Other languages
French (fr)
Chinese (zh)
Inventor
张建
李发明
Original Assignee
深圳市中博科创信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市中博科创信息技术有限公司 filed Critical 深圳市中博科创信息技术有限公司
Publication of WO2018018827A1 publication Critical patent/WO2018018827A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Definitions

  • the present invention relates to the field of data storage technologies, and in particular, to a data storage control method and a data server.
  • the erasure code is widely stored in the storage system, used for backup and storage management of data written and read in the storage system to ensure normal reading and writing and data security.
  • the erasure code has more and more computational data, so occupying more storage space of the storage system not only reduces the data storage capacity of the storage system, but also reduces the erasure code. The efficiency of the calculation.
  • the main object of the present invention is to provide a data storage control method and a data server, which aim to solve the problem of low data processing capability of the storage system.
  • the present invention provides a data storage control method, and the data storage control method includes:
  • the data server When the data server receives the first data, storing the first data in an FPGA chip;
  • the step of storing the second data into each storage unit of the memory comprises:
  • Each of the second data is sequentially called and stored in a corresponding storage unit
  • the second data that is called is stored in the corresponding storage unit.
  • the step of splitting the first data stored in the FPGA chip according to the storage ratio and the verification data to obtain the second data comprises:
  • the first data and the split check data are used as the second data.
  • the data storage control method further includes:
  • the erasure code in the FPGA chip is invoked according to the data read instruction
  • the step of recombining the data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code comprises:
  • the data to be read is reorganized according to the erasure code.
  • the present invention further provides a data storage control method, the data storage control method comprising the following steps:
  • the data server When the data server receives the first data, storing the first data in a high speed memory of the FPGA chip;
  • the erasure code stored in the FPGA chip is called to calculate the verification data of the first data stored in the FPGA chip, and the first data stored in the FPGA chip and the first data are calculated. Verify the storage ratio of the data;
  • the step of storing the second data in each storage unit of the memory comprises:
  • Each of the second data is sequentially called, and each of the second data is allocated a corresponding storage address according to a preset rule
  • the second data that is called is stored in the corresponding storage unit.
  • the data storage control method further includes:
  • the step of splitting the first data stored in the FPGA chip according to the storage ratio and the verification data to obtain the second data comprises:
  • the first data and the split check data are used as the second data.
  • the data storage control method further includes:
  • the erasure code in the FPGA chip is invoked according to the data read instruction
  • the step of recombining the data to be read stored in each of the storage units corresponding to the data read instruction according to the preset rule and the erasure code comprises:
  • the data to be read is reorganized according to the erasure code and the preset rule.
  • the data storage control method further includes:
  • the prompt information is output.
  • the present invention further provides a data server, where the data server includes:
  • a first storage module configured to store the first data in an FPGA chip when the data server receives the first data
  • a splitting module configured to calculate, after the first data receiving is completed, an erasure code stored in the FPGA chip, to calculate parity data of the first data stored in the FPGA chip, and calculate the stored in the FPGA chip First data and a storage ratio of the verification data;
  • a second storage module configured to split the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and store the second data into the memory In each storage unit.
  • the second storage module comprises:
  • a calling unit configured to sequentially call each of the second data, and store the data in a corresponding storage unit
  • a first determining unit configured to determine, when each of the second data is invoked, whether a storage unit corresponding to the second data to be stored has a storage failure
  • a sending unit configured to send an interrupt message to the storage unit corresponding to the second data, if the storage unit corresponding to the second data to be stored has a storage failure, so that the storage unit corresponding to the second data is The interrupt message stops storing the second data;
  • a storage unit configured to store the called second data into a corresponding storage unit if a storage failure corresponding to the storage unit corresponding to the second data to be stored does not occur.
  • the second storage module further includes:
  • a determining unit configured to determine, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data
  • a splitting unit configured to split the first data stored in the FPGA chip according to the first split component, and split the verification data according to the second split component, and split the split data
  • the first data stored in the FPGA chip and the split verification data are used as the second data.
  • the data server further includes:
  • Calling module when the data server receives the data read instruction, calling the erasure code in the FPGA chip according to the data read instruction;
  • a reassembly module configured to recombine data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code.
  • the reorganization module comprises:
  • a reading unit configured to sequentially read data to be read stored in each of the storage units corresponding to the data read instruction
  • a second determining unit configured to determine, after the reading of the data to be read is completed, whether there is invalid data in the read data to be read;
  • a first reorganization unit configured to recover the failure data by using the non-failure data in the data to be read when the failure data exists in the data to be read, and to the non-failure data according to the erasure code And recovering the failed data after the recovery;
  • a second recombining unit configured to recombine the data to be read according to the erasure code when there is no invalid data in the data to be read.
  • the first data is stored in the FPGA chip, and after the first data is received, the erasure code stored in the FPGA chip is called to calculate the first data stored in the FPGA chip. Verifying the data, calculating the storage ratio of the first data and the verification data stored in the FPGA chip, splitting the first data stored in the FPGA chip according to the storage ratio, and verifying the data to obtain a plurality of second data, and the second The data is stored separately in individual memory locations of the memory.
  • the erasure code is stored in the FPGA chip.
  • Data and a storage ratio of the first data and the verification data after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory
  • the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split.
  • the divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
  • FIG. 1 is a schematic flow chart of a first embodiment of a data storage control method according to the present invention
  • FIG. 2 is a schematic flowchart of a refinement step of storing the second data in each storage unit of the memory in the data storage control method of the present invention
  • FIG. 3 is a schematic flowchart of a refinement step of splitting the first data stored in the FPGA chip and the verification data to obtain a plurality of second data according to the storage ratio in the data storage control method of the present invention
  • FIG. 4 is a schematic flow chart of a second embodiment of a data storage control method according to the present invention.
  • FIG. 5 is a schematic flowchart of a refinement step of step S220 in the second embodiment shown in FIG. 4 according to the present invention
  • FIG. 6 is a schematic diagram of functional modules of a first embodiment of a data server according to the present invention.
  • FIG. 7 is a schematic diagram of a refinement function module of a second storage module in a second embodiment of a data server according to the present invention.
  • FIG. 8 is a schematic diagram of another refinement function module of the second storage module in the third embodiment of the data server of the present invention.
  • FIG. 9 is a schematic diagram of functional modules of a fourth embodiment of a data server according to the present invention.
  • FIG. 10 is a schematic diagram of a refinement function module of a reassembly module in a fifth embodiment of a data server according to the present invention.
  • the present invention provides a data storage control method.
  • FIG. 1 is a schematic flowchart diagram of a first embodiment of a data storage control method according to the present invention.
  • the data storage control method includes:
  • Step S110 when the data server receives the first data, storing the first data in the FPGA chip;
  • the erasure code is stored in the FPGA chip, and the FPGA chip is applied to the data storage server, and is independent of the CPU and the memory in the data server.
  • the data server receives the first data written externally, the data server temporarily stores the received first data in the high speed memory of the FPGA chip.
  • the data server includes a PC end, a smart phone, a smart TV, and a tablet computer; the high speed memory includes a solid state hard disk (Solid) State Disk, SSD).
  • Step S120 after the first data receiving is completed, calling the erasure code stored in the FPGA chip to calculate the verification data of the first data stored in the FPGA chip, and calculating the first data stored in the FPGA chip and the storage of the verification data.
  • the data server After determining that the first data has been received and completely stored in the high speed memory of the FPGA chip, the data server calls the erasure code stored in the FPGA chip, and the temporary storage is performed at the high speed according to the algorithm of the erasure code.
  • the verification data of the first data in the memory and calculating the storage ratio of the first data and the verification data in the high speed memory. For example, after the first data of a total of 3 bytes is completely stored in the high speed memory of the FPGA chip, the PC end calls the erasure code stored in the FPGA chip to calculate the check data of the first data as 1 byte, and then the calculation is performed.
  • the storage ratio of the first data and the check data in the high speed memory is 3:1.
  • the check data is obtained by performing check coding on the first data to obtain a character string. When part of the data in the first data is lost, the erasure code passes the check data and is not lost in the first data. The data recovers the lost data in the first data.
  • Step S130 splitting the first data and the verification data stored in the FPGA chip according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
  • the data server is allocated from the local memory and the second data A unit to be stored with the same number of data, and the storage space size of each unit to be stored matches the byte size of the second data, and the second data is separately stored in each unit to be stored in the memory.
  • Each of the to-be-stored units can store only one second data. For example, after the storage ratio of the first data and the check data is 3:1, the first data is split into three data segments, each data segment is 1 byte, combined with one byte check. The data is obtained by 4 bytes of second data, and the PC side allocates 4 storage units from the memory of the local end, and the storage space of the 4 storage units is one byte, and the 4 bytes are the second. The data is stored in 4 storage units.
  • the check data is split into M segments
  • the first data is split into K segments
  • the total memory Y occupied by the M segments is equal to the total occupied by the K segments.
  • the first data when the first data is received by the data server, the first data is stored in the FPGA chip, and after the first data is received, the erasure code stored in the FPGA chip is called to calculate the first data stored in the FPGA chip.
  • the erasure code is stored in the FPGA chip.
  • the data server receives the first data
  • the first data is temporarily stored in the FPGA chip, and the erasure code stored in the FPGA chip is called to calculate the verification corresponding to the first data.
  • Data and a storage ratio of the first data and the verification data after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory
  • the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split.
  • the divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
  • FIG. 2 is a schematic flowchart of the refinement step of step S130 in the first embodiment of the present invention.
  • the storing the second data in each storage unit of the memory includes:
  • Step S131 sequentially calling each second data and storing it in a corresponding storage unit
  • the erasure code is given to the data server.
  • the to-be-storage unit sends a preparation message, where each preparation message includes a target second data that needs to be stored in each unit to be stored.
  • a preparation log is generated according to the preparation message.
  • the response message is sent to the FPGA chip.
  • the FPGA sends the storage error message to the storage unit to send a storage message, indicating that the storage unit is to be written into the preparation log.
  • the second data of a target is saved in the unit to be stored, and is used to temporarily save a target second data that needs to be stored by the to-be-stored unit.
  • each of the second data is allocated a storage address, and the storage address is allocated to each of the second data in a manner that the number of addresses is sequentially increased. .
  • the second data a, the second data b, the second data c, and the second data d are allocated storage addresses in such a manner that the number of addresses is sequentially increased, respectively, 0001, 0010, and 01001. 0100.
  • Step S132 determining, by each time the second data is called, determining whether a storage unit corresponding to the second data to be stored has a storage failure
  • Step S133 if yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
  • the erasure code is invoked to send an interrupt message to the to-be-stored unit, and the to-be-stored unit deletes the preparation log according to the interruption message, and interrupts storage of the target second data, the target The second data is waiting for the storage, and if the storage failure recovery of the storage unit is detected within a preset time, the target second data is stored in the to-be-stored unit, and if the storage unit is not detected within a preset time The storage failure recovery, the data server re-allocates the to-be-stored unit that matches the target second data from the local storage, and stores the target second data into the to-be-stored unit.
  • Step S134 if no, storing the called second data into the corresponding storage unit.
  • the second data to be called is stored in the corresponding storage unit when it is determined that the storage unit does not have a storage failure.
  • each time the second data is called it is determined whether the storage unit corresponding to the second data to be stored has a storage failure, and if so, The storage unit corresponding to the second data sends an interrupt message, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message, and if not, stores the called second data in the corresponding storage unit. Since each storage unit of the memory may have a storage failure at any time during the process of storing the second data, detecting each storage unit of the memory by time, avoiding sending storage disorder during the process of storing the second data, resulting in data Lost to ensure data security.
  • FIG. 3 is a schematic flowchart of a refinement step of step S130 according to the first embodiment of the present invention, where the first data stored in the FPGA chip and the checksum are split according to the storage ratio.
  • the data gets multiple second data including:
  • Step S135 determining a first split component of the first data stored in the FPGA chip and a second split component of the check data according to the storage ratio;
  • Step S136 splitting the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and splitting the first data stored in the split FPGA chip and splitting The post-check data is used as the second data.
  • the first split component of the first data stored in the FPGA chip and the second split component of the check data are determined according to the storage ratio, and the first data stored in the FPGA chip is split according to the first split component. And splitting the verification data according to the second split component, and using the first data stored in the split FPGA chip and the split check data as the second data. Since the erasure code splits the entire segment of data into a small segment of data according to a certain storage ratio, it not only facilitates the storage of the split data, but also avoids the problem that the data in the memory cannot be recovered after the data is invalid.
  • the data storage control method includes:
  • Step S210 when the data server receives the data read instruction, invoking the erasure code in the FPGA chip according to the data read instruction;
  • Step S220 reorganizing the data to be read stored in each storage unit corresponding to the data read instruction according to the erasure code.
  • the erasure code stored in the FPGA chip is invoked, according to the erasure code.
  • the data redundancy function restores the data to be read into the entire data from the reorganization direction of the storage address from small to large.
  • the data redundancy function includes splitting the data into a plurality of segments according to a preset rule, and is capable of reconstructing the previous data according to the preset rule.
  • the erasure code in the FPGA chip is called according to the data read instruction, and the data to be read stored in each storage unit corresponding to the data read instruction is reorganized according to the erasure code.
  • the data to be read is reorganized by the erasure code, so that the data to be read can be read normally, which improves the fault tolerance of the memory.
  • FIG. 5 is a schematic flowchart of the refinement step of step S220 in the second embodiment of the present invention.
  • the refinement step of step S220 includes:
  • Step S221 sequentially reading data to be read stored in each storage unit corresponding to the data read instruction
  • Step S222 after the data to be read is read, determining whether there is invalid data in the read data to be read;
  • the erasure code after the erasure code in the FPGA chip is called according to the data read instruction, the erasure code sends a data call instruction to the data to be read stored in each storage unit corresponding to the data read instruction, Each storage unit corresponding to the data read instruction sends the locally stored data to be read to the FPGA chip according to the call instruction, and is temporarily stored in the high speed memory in the FPGA chip, and the data to be read is read. After completion, it is judged whether there is invalid data in the read data to be read.
  • Step S223 when there is invalid data in the data to be read, recovering the invalid data by using the non-failed data in the data to be read, and reconstructing the non-failed data and the restored invalid data according to the erasure code;
  • the erasure code When there is invalid data in the data to be read, and the number of the invalid data is less than a preset value, the erasure code recovers the invalid data through the non-failed data in the data to be read based on the data redundancy function, after restoring the invalid data, according to The data redundancy function in the erasure code restores the non-failed data and the recovered invalid data to the entire segment of data from the reorganization direction of the storage address from small to large.
  • the preset value is an integer smaller than the segment of the check data in the data to be read. If the number of the check data in the data to be read is K, the preset value is an integer smaller than K.
  • the erasure code cannot recover the invalid data through the non-failed data in the data to be read based on the data redundancy function, so the data to be read cannot be read normally. take.
  • Step S224 When there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code.
  • the data to be read is restored to the entire data according to the data redundancy function in the erasure code from the reorganization direction of the storage address from small to large.
  • the present embodiment sequentially reads the data to be read stored in each storage unit corresponding to the data read command, and after the data to be read is read, determines whether there is invalid data in the read data to be read, and is to be read.
  • the invalid data is recovered by using the unfailed data in the data to be read, and the non-failed data and the restored invalid data are reorganized according to the erasure code, and when there is no invalid data in the data to be read According to the erasure code, the data to be read is reorganized, so that the invalid data can still be read normally after recovery, thereby ensuring data security.
  • the invention further provides a data server.
  • FIG. 6 is a schematic diagram of functional modules of a first embodiment of a data server according to the present invention.
  • the data server includes: a first storage module 110, a split module 120, and a second storage module 130.
  • the first storage module 110 is configured to store the first data in the FPGA chip when the data server receives the first data
  • the erasure code is stored in the FPGA chip, and the FPGA chip is applied to the data storage server, and is independent of the CPU and the memory in the data server.
  • the data server temporarily stores the received first data in the high speed memory of the FPGA chip.
  • the data server includes a PC end, a smart phone, a smart TV, and a tablet computer; the high speed memory includes a solid state hard disk (Solid) State Disk, SSD).
  • the splitting module 120 is configured to, after the first data receiving is completed, invoke the erasure code stored in the FPGA chip to calculate the verification data of the first data stored in the FPGA chip, and calculate the first data stored in the FPGA chip. And the storage ratio of the verification data;
  • the splitting module 120 in the data server calls the erasure code stored in the FPGA chip, according to the The erasure code algorithm calculates the parity data of the first data temporarily stored in the high speed memory, and calculates the storage ratio of the first data and the parity data in the high speed memory. For example, after the first data of a total of 3 bytes is completely stored in the high speed memory of the FPGA chip, the PC end calls the erasure code stored in the FPGA chip to calculate the check data of the first data as 1 byte, and then the calculation is performed.
  • the storage ratio of the first data and the check data in the high speed memory is 3:1.
  • the check data is obtained by performing check coding on the first data to obtain a character string. When part of the data in the first data is lost, the erasure code passes the check data and is not lost in the first data. The data recovers the lost data in the first data.
  • the second storage module 130 is configured to split the first data and the verification data stored in the FPGA chip according to the storage ratio to obtain a plurality of second data, and store the second data in each storage unit of the memory.
  • the second storage module 130 splits the first data and the check data according to the storage ratio to obtain a plurality of second data, and the data server A unit to be stored is allocated in the memory of the end, and the size of the storage space of each unit to be stored matches the byte size of the second data, and the second data is separately stored in the memory.
  • Each of the to-be-stored units can store only one second data. For example, after the storage ratio of the first data and the check data is 3:1, the first data is split into three data segments, each data segment is 1 byte, combined with one byte check. The data is obtained by 4 bytes of second data, and the PC side allocates 4 storage units from the memory of the local end, and the storage space of the 4 storage units is one byte, and the 4 bytes are the second. The data is stored in 4 storage units.
  • the check data is split into M segments
  • the first data is split into K segments
  • the total memory Y occupied by the M segments is equal to the total occupied by the K segments.
  • the first data when the first data is received by the first storage module 110 in the data server, the first data is stored in the FPGA chip.
  • the split module 120 calls the correction stored in the FPGA chip. Deleting the code to calculate the verification data of the first data stored in the FPGA chip, and calculating the storage ratio of the first data and the verification data stored in the FPGA chip, and the second storage module 130 splits the stored in the FPGA chip according to the storage ratio.
  • a data and verification data obtain a plurality of second data, and the second data is separately stored in each storage unit of the memory.
  • the erasure code is stored in the FPGA chip.
  • the data server When the data server receives the first data, the first data is temporarily stored in the FPGA chip, and the erasure code stored in the FPGA chip is called to calculate the verification corresponding to the first data.
  • Data and a storage ratio of the first data and the verification data after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory
  • the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split.
  • the divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
  • the second storage module 130 includes a calling unit 131, a first determining unit 132, and a sending unit. 133 and storage unit 134.
  • the calling unit 131 is configured to sequentially call each second data and store the data in a corresponding storage unit;
  • the calling unit 131 invokes the The erasure code sends a preparation message to the to-be-stored unit, and each preparation message includes a target second data that needs to be stored in each to-be-stored unit.
  • the to-be-stored unit receives the preparation message, it prepares according to the preparation message.
  • Logging after the preparation log of the to-be-stored unit, sending a response message to the FPGA chip, when the FPGA receives the response message, invoking the erasure code to send a storage message to the to-be-stored unit, indicating that the to-be-stored unit writes Enter a target second data in the preparation log.
  • the preparation log is saved in the unit to be stored, and is used to temporarily save a target second data that needs to be stored by the to-be-stored unit.
  • each of the second data is allocated a storage address, and the storage address is allocated to each of the second data in a manner that the number of addresses is sequentially increased. .
  • the second data a, the second data b, the second data c, and the second data d are allocated storage addresses in such a manner that the number of addresses is sequentially increased, respectively, 0001, 0010, and 01001. 0100.
  • the first determining unit 132 is configured to determine, when each call to the second data, whether a storage unit corresponding to the second data to be stored has a storage failure;
  • the first determining unit 132 determines whether the unit to be stored corresponding to the second data to be stored feeds back a response message, and if receiving the response information fed back by the unit to be stored, determining The storage unit does not have a storage failure. If the response information with the storage unit feedback is not received, it is determined that the storage unit has a storage failure.
  • the sending unit 133 is configured to send an interrupt message to the storage unit corresponding to the second data if the storage unit corresponding to the second data to be stored has a storage failure, so that the storage unit corresponding to the second data stops storing according to the interrupt message.
  • Second data Second data
  • the sending unit 133 calls the erasure code to send an interrupt message to the to-be-stored unit, and the to-be-stored unit deletes the preparation log according to the interrupt message, and interrupts the target.
  • the second data is stored, and the target second data is waiting for storage. If the storage failure recovery of the storage unit is detected within a preset time, the target second data is stored in the to-be-stored unit if the preset time is If the storage failure recovery of the storage unit is not detected, the data server re-allocates the to-be-stored unit that matches the target second data from the local storage, and stores the target second data into the to-be-stored unit.
  • the storage unit 134 is configured to store the called second data into the corresponding storage unit if the storage unit corresponding to the second data to be stored does not have a storage failure.
  • the storage unit 134 stores the called second data into the corresponding storage unit.
  • each time the second data is called it is determined whether the storage unit corresponding to the second data to be stored has a storage failure, and if so, The storage unit corresponding to the second data sends an interrupt message, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message, and if not, stores the called second data in the corresponding storage unit. Since each storage unit of the memory may have a storage failure at any time during the process of storing the second data, detecting each storage unit of the memory by time, avoiding sending storage disorder during the process of storing the second data, resulting in data Lost to ensure data security.
  • the second storage module 130 includes a determining unit 135 and a splitting unit 136.
  • the determining unit 135 is configured to determine, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
  • the determining unit 135 determines that the storage ratio of the first data and the check data is M:K, determining that the first split component of the first data is M, and the second of the check data Split the component to K.
  • the splitting unit 136 is configured to split the first data stored in the FPGA chip according to the first split component, and split the check data according to the second split component, and store the split FPGA chip The first data and the split check data are used as the second data.
  • the splitting unit 136 splits the first data into M segments according to the first split component M, and splits the check data into K segments according to the second split component K, thereby forming M+K. Second data.
  • the first split component of the first data stored in the FPGA chip and the second split component of the check data are determined according to the storage ratio, and the first data stored in the FPGA chip is split according to the first split component. And splitting the verification data according to the second split component, and using the first data stored in the split FPGA chip and the split check data as the second data. Since the erasure code splits the entire segment of data into a small segment of data according to a certain storage ratio, it not only facilitates the storage of the split data, but also avoids the problem that the data in the memory cannot be recovered after the data is invalid.
  • the data server further includes: a calling module 210 and a recombining module 220.
  • the calling module 210 is configured to invoke an erasure code in the FPGA chip according to the data read instruction when the data server receives the data read instruction;
  • the recombination module 220 is configured to reassemble data to be read stored in each storage unit corresponding to the data read instruction according to the erasure code.
  • the calling module 210 calls the erasure code stored in the FPGA chip, and the recombination module 220:
  • the data redundancy function in the erasure code the data to be read is restored to the entire data segment from the reorganization direction of the storage address from small to large.
  • the data redundancy function includes splitting the data into a plurality of segments according to a preset rule, and is capable of reconstructing the previous data according to the preset rule.
  • the erasure code in the FPGA chip is called according to the data read instruction, and the data to be read stored in each storage unit corresponding to the data read instruction is reorganized according to the erasure code.
  • the data to be read is reorganized by the erasure code, so that the data to be read can be read normally, which improves the fault tolerance of the memory.
  • the reassembly module 220 includes a reading unit 221, a second judging unit 222, and a first reorganization. Unit 223 and second recombination unit 224.
  • the reading unit 221 is configured to sequentially read data to be read stored in each storage unit corresponding to the data read instruction;
  • the second determining unit 222 is configured to determine, after the data to be read is read, whether there is invalid data in the read data to be read;
  • the read unit 221 sends the erasure code to the data to be read stored in each storage unit corresponding to the data read command.
  • a data calling instruction and each storage unit corresponding to the data reading instruction sends the locally stored data to be read to the FPGA chip according to the calling instruction, and temporarily stores the data to be read in the high speed memory in the FPGA chip, to be read
  • the second determining unit 222 determines whether there is invalid data in the read data to be read.
  • the first recombining unit 223 is configured to recover invalid data in the data to be read when there is invalid data in the data to be read, and perform non-failure data and the restored invalid data according to the erasure code. Reorganization
  • the erasure code recovers the invalid data by using the non-failed data in the data to be read based on the data redundancy function. After restoring the invalid data, the un-failed data and the restored failed data are restored to the entire data according to the data redundancy function in the erasure code from the small to large recombination direction of the storage address.
  • the preset value is an integer smaller than the segment of the check data in the data to be read. If the number of the check data in the data to be read is K, the preset value is an integer smaller than K.
  • the erasure code cannot recover the invalid data through the non-failed data in the data to be read based on the data redundancy function, so the data to be read cannot be read normally. take.
  • the second recombining unit 224 is configured to reassemble the data to be read according to the erasure code when there is no invalid data in the data to be read.
  • the second recombining unit 224 restores the data to be read to the whole according to the data redundancy function in the erasure code from the reorganization direction of the storage address from small to large. Segment data.
  • the present embodiment sequentially reads the data to be read stored in each storage unit corresponding to the data read command, and after the data to be read is read, determines whether there is invalid data in the read data to be read, and is to be read.
  • the invalid data is recovered by using the unfailed data in the data to be read, and the non-failed data and the restored invalid data are reorganized according to the erasure code, and when there is no invalid data in the data to be read According to the erasure code, the data to be read is reorganized, so that the invalid data can still be read normally after recovery, thereby ensuring data security.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A data storage control method and a data server. The method comprises: when a data server receives first data, storing the first data in an FPGA chip (S110); when the receiving of the first data is completed, scheduling an erasure correcting code stored in the FPGA chip to calculate check data for the first data stored in the FPGA chip, and calculating a storage ratio of the first data stored in the FPGA chip to the check data (S120); and splitting, according to the storage ratio, the first data stored in the FPGA chip and the check data to obtain a plurality of pieces of second data, and respectively storing the second data in various storage units of a memory (S130). The method and data server reduce the occupation of the operation space in the memory by means of the erasure correcting code, improve the data storage capability of the memory, and thus improve the calculation efficiency of the erasure correcting code.

Description

数据存储控制方法及数据服务器Data storage control method and data server
技术领域Technical field
本发明涉及数据存储技术领域,尤其涉及一种数据存储控制方法及数据服务器。The present invention relates to the field of data storage technologies, and in particular, to a data storage control method and a data server.
背景技术Background technique
从独立硬盘冗余阵列(Redundant Arrays Independent Disks,RAID)到分布式存储系统,纠删码广泛存储于存储系统中,用于对存储系统中写入和读出的数据进行备份和存储管理,以保证正常读写以及数据安全。但是随着数据呈现爆炸式增长趋势,纠删码对数据的计算量也越来越大,因此占用存储系统较多的运行空间,不仅导致存储系统的数据存储能力降低,而且降低了纠删码的计算效率。Redundant Arrays Independent from Redundant Arrays Independent Disks, RAID) to the distributed storage system, the erasure code is widely stored in the storage system, used for backup and storage management of data written and read in the storage system to ensure normal reading and writing and data security. However, as the data shows an explosive growth trend, the erasure code has more and more computational data, so occupying more storage space of the storage system not only reduces the data storage capacity of the storage system, but also reduces the erasure code. The efficiency of the calculation.
发明内容Summary of the invention
本发明的主要目的在于提供一种数据存储控制方法及数据服务器,旨在解决存储系统的数据处理能力低的问题。The main object of the present invention is to provide a data storage control method and a data server, which aim to solve the problem of low data processing capability of the storage system.
为实现上述目的,本发明提供的一种数据存储控制方法,所述数据存储控制方法包括:To achieve the above objective, the present invention provides a data storage control method, and the data storage control method includes:
在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片中;When the data server receives the first data, storing the first data in an FPGA chip;
在所述第一数据接收完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;After the receiving of the first data is completed, calling the erasure code stored in the FPGA chip to calculate parity data of the first data stored in the FPGA chip, and calculating the first data stored in the FPGA chip and the Verify the storage ratio of the data;
根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到所述存储器的各个存储单元中。Separating the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
优选地,所述将所述第二数据存储到所述存储器的各个存储单元中的步骤包括:Preferably, the step of storing the second data into each storage unit of the memory comprises:
依次调用各个所述第二数据,并存储到对应的存储单元;Each of the second data is sequentially called and stored in a corresponding storage unit;
在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;Determining, by each time the second data is called, whether a storage unit corresponding to the second data to be stored has a storage failure;
若是,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;If yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
若否,则将调用的所述第二数据存储到对应的存储单元中。If not, the second data that is called is stored in the corresponding storage unit.
优选地,所述根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到第二数据的步骤包括:Preferably, the step of splitting the first data stored in the FPGA chip according to the storage ratio and the verification data to obtain the second data comprises:
根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;Determining, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。Separating the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and storing the split FPGA chip The first data and the split check data are used as the second data.
优选地,所述数据存储控制方法还包括:Preferably, the data storage control method further includes:
在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;When the data server receives the data read instruction, the erasure code in the FPGA chip is invoked according to the data read instruction;
根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。Retrieving data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code.
优选地,所述根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据的步骤包括:Preferably, the step of recombining the data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code comprises:
依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;And sequentially reading the data to be read stored in each of the storage units corresponding to the data read instruction;
在所述待读取数据读取完成后,判断读取的所述待读取数据中是否存在失效数据;After the data to be read is read, determining whether there is invalid data in the read data to be read;
在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;And when the failure data exists in the data to be read, recovering the failure data by using the non-failure data in the data to be read, and performing the failure data according to the erasure code and the failure after the recovery. Data is reorganized;
在所述待读取数据中不存在失效数据时,根据所述纠删码对所述待读取数据进行重组。When there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code.
进一步地,本发明还提供一种数据存储控制方法,所述数据存储控制方法包括以下步骤:Further, the present invention further provides a data storage control method, the data storage control method comprising the following steps:
在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片的高速存储器中;When the data server receives the first data, storing the first data in a high speed memory of the FPGA chip;
在所述第一数据存储完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;After the first data storage is completed, the erasure code stored in the FPGA chip is called to calculate the verification data of the first data stored in the FPGA chip, and the first data stored in the FPGA chip and the first data are calculated. Verify the storage ratio of the data;
根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到存储器的各个存储单元中。And dividing the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
优选地,所述将所述第二数据存储到存储器的各个存储单元中的步骤包括:Preferably, the step of storing the second data in each storage unit of the memory comprises:
依次调用各个所述第二数据,并根据预设规则给各个所述第二数据分配对应的存储地址;Each of the second data is sequentially called, and each of the second data is allocated a corresponding storage address according to a preset rule;
将各个所述第二数据存储到与所述存储地址对应的存储单元;And storing each of the second data to a storage unit corresponding to the storage address;
在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;Determining, by each time the second data is called, whether a storage unit corresponding to the second data to be stored has a storage failure;
若是,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;If yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
若否,则将调用的所述第二数据存储到对应的存储单元中。If not, the second data that is called is stored in the corresponding storage unit.
优选地,所述向所述第二数据对应的存储单元发送中断消息的步骤之后,所述数据存储控制方法还包括:Preferably, after the step of sending an interrupt message to the storage unit corresponding to the second data, the data storage control method further includes:
在预设时间内检测到所述第二数据对应的存储单元的所述存储故障恢复,则将所述第二数据重新存储在所述存储故障恢复的存储单元中;And detecting, by the preset time, the storage failure recovery of the storage unit corresponding to the second data, and storing the second data in the storage unit of the storage failure recovery;
在在预设时间内未检测到所述第二数据对应的存储单元的所述存储故障恢复,则重新分配与所述第二数据匹配的待存储单元,并将所述第二数据存储在所述待存储单元中。Recovering the storage failure recovery of the storage unit corresponding to the second data within a preset time, reallocating the to-be-stored unit that matches the second data, and storing the second data in the Talked in the storage unit.
优选地,所述根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到第二数据的步骤包括:Preferably, the step of splitting the first data stored in the FPGA chip according to the storage ratio and the verification data to obtain the second data comprises:
根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;Determining, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。Separating the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and storing the split FPGA chip The first data and the split check data are used as the second data.
优选地,所述数据存储控制方法还包括:Preferably, the data storage control method further includes:
在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;When the data server receives the data read instruction, the erasure code in the FPGA chip is invoked according to the data read instruction;
根据所述预设规则和所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。Retrieving data to be read stored in each of the storage units corresponding to the data read instruction according to the preset rule and the erasure code.
优选地,所述根据所述预设规则和所述纠删码重组与所述数据读取指令对应的各个所述存储单元中存储的待读取数据的步骤包括:Preferably, the step of recombining the data to be read stored in each of the storage units corresponding to the data read instruction according to the preset rule and the erasure code comprises:
依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;And sequentially reading the data to be read stored in each of the storage units corresponding to the data read instruction;
判断读取的所述待读取数据中是否存在失效数据;Determining whether there is invalid data in the read data to be read;
在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;And when the failure data exists in the data to be read, recovering the failure data by using the non-failure data in the data to be read, and performing the failure data according to the erasure code and the failure after the recovery. Data is reorganized;
在所述待读取数据中不存在失效数据时,根据所述纠删码和所述预设规则对所述待读取数据进行重组。And when there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code and the preset rule.
优选地,所述判断读取的所述待读取数据中是否存在失效数据的步骤之后,所述数据存储控制方法还包括:Preferably, after the step of determining whether there is invalid data in the data to be read that is read, the data storage control method further includes:
获取所述待读取数据中失效数据的数量;Obtaining the number of invalid data in the data to be read;
在所述待读取数据中失效数据的数量小于或等于预设值时,执行采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组的步骤;When the number of the invalid data in the data to be read is less than or equal to a preset value, performing the use of the non-failed data in the data to be read to recover the invalid data, and performing the non-failure according to the erasure code The step of reorganizing the data and the recovered invalid data;
在所述待读取数据中失效数据的数量大于预设值时,输出提示信息。When the number of invalid data in the data to be read is greater than a preset value, the prompt information is output.
此外,为实现上述目的,本发明还提供一种数据服务器,所述数据服务器包括:In addition, to achieve the above object, the present invention further provides a data server, where the data server includes:
第一存储模块,用于在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片中;a first storage module, configured to store the first data in an FPGA chip when the data server receives the first data;
拆分模块,用于在所述第一数据接收完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;a splitting module, configured to calculate, after the first data receiving is completed, an erasure code stored in the FPGA chip, to calculate parity data of the first data stored in the FPGA chip, and calculate the stored in the FPGA chip First data and a storage ratio of the verification data;
第二存储模块,用于根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到所述存储器的各个存储单元中。a second storage module, configured to split the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and store the second data into the memory In each storage unit.
优选地,所述第二存储模块包括:Preferably, the second storage module comprises:
调用单元,用于依次调用各个所述第二数据,并存储到对应的存储单元;a calling unit, configured to sequentially call each of the second data, and store the data in a corresponding storage unit;
第一判断单元,用于在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;a first determining unit, configured to determine, when each of the second data is invoked, whether a storage unit corresponding to the second data to be stored has a storage failure;
发送单元,用于若待存储的所述第二数据对应的存储单元出现存储故障,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;a sending unit, configured to send an interrupt message to the storage unit corresponding to the second data, if the storage unit corresponding to the second data to be stored has a storage failure, so that the storage unit corresponding to the second data is The interrupt message stops storing the second data;
存储单元,用于若待存储的所述第二数据对应的存储单元未出现存储故障,则将调用的所述第二数据存储到对应的存储单元中。a storage unit, configured to store the called second data into a corresponding storage unit if a storage failure corresponding to the storage unit corresponding to the second data to be stored does not occur.
优选地,所述第二存储模块还包括:Preferably, the second storage module further includes:
确定单元,用于根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;a determining unit, configured to determine, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
拆分单元,用于根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。a splitting unit, configured to split the first data stored in the FPGA chip according to the first split component, and split the verification data according to the second split component, and split the split data The first data stored in the FPGA chip and the split verification data are used as the second data.
优选地,所述数据服务器还包括:Preferably, the data server further includes:
调用模块,用于在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;Calling module, when the data server receives the data read instruction, calling the erasure code in the FPGA chip according to the data read instruction;
重组模块,用于根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。And a reassembly module, configured to recombine data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code.
优选地,所述重组模块包括:Preferably, the reorganization module comprises:
读取单元,用于依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;a reading unit, configured to sequentially read data to be read stored in each of the storage units corresponding to the data read instruction;
第二判断单元,用于在所述待读取数据读取完成后,判断读取的所述待读取数据中是否存在失效数据;a second determining unit, configured to determine, after the reading of the data to be read is completed, whether there is invalid data in the read data to be read;
第一重组单元,用于在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;a first reorganization unit, configured to recover the failure data by using the non-failure data in the data to be read when the failure data exists in the data to be read, and to the non-failure data according to the erasure code And recovering the failed data after the recovery;
第二重组单元,用于在所述待读取数据中不存在失效数据时,根据所述纠删码对所述待读取数据进行重组。And a second recombining unit, configured to recombine the data to be read according to the erasure code when there is no invalid data in the data to be read.
本发明通过在数据服务器接收到第一数据时,将第一数据存储在FPGA芯片中,在第一数据接收完成后,调用FPGA芯片中存储的纠删码计算FPGA芯片中存储的第一数据的校验数据,并计算FPGA芯片中存储的第一数据以及校验数据的存储比例,根据存储比例拆分FPGA芯片中存储的第一数据以及校验数据得到多个第二数据,并将第二数据分别存储到存储器的各个存储单元中。由于纠删码存储在FPGA芯片,当数据服务器接收到第一数据时,将该第一数据临时存储在FPGA芯片中,并调用该FPGA芯片存储的纠删码计算该第一数据对应的校验数据以及该第一数据与该校验数据的存储比例,在将该第一数据以及该校验数据按照该存储比例进行拆分得到多个第二数据后,将该第二数据分别存储到存储器的各个存储单元中,因此使得纠删码对数据的拆分、校验数据的确定以及数据与校验数据的存储比例的计算均在FPGA芯片中进行,而存储器只负责分配存储单元存储该拆分后的数据以及校验数据即可,从而降低了纠删码对存储器运行空间的占用,提高了存储器的数据存储能力,进而提高了纠删码的计算效率。When the first data is received by the data server, the first data is stored in the FPGA chip, and after the first data is received, the erasure code stored in the FPGA chip is called to calculate the first data stored in the FPGA chip. Verifying the data, calculating the storage ratio of the first data and the verification data stored in the FPGA chip, splitting the first data stored in the FPGA chip according to the storage ratio, and verifying the data to obtain a plurality of second data, and the second The data is stored separately in individual memory locations of the memory. The erasure code is stored in the FPGA chip. When the data server receives the first data, the first data is temporarily stored in the FPGA chip, and the erasure code stored in the FPGA chip is called to calculate the verification corresponding to the first data. Data and a storage ratio of the first data and the verification data, after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory In each storage unit, the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split. The divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
附图说明DRAWINGS
图1为本发明数据存储控制方法的第一实施例的流程示意图;1 is a schematic flow chart of a first embodiment of a data storage control method according to the present invention;
图2为本发明数据存储控制方法中将所述第二数据分别存储到存储器的各个存储单元中的细化步骤的流程示意图;2 is a schematic flowchart of a refinement step of storing the second data in each storage unit of the memory in the data storage control method of the present invention;
图3为本发明数据存储控制方法中根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据的细化步骤的流程示意图;3 is a schematic flowchart of a refinement step of splitting the first data stored in the FPGA chip and the verification data to obtain a plurality of second data according to the storage ratio in the data storage control method of the present invention;
图4为本发明数据存储控制方法的第二实施例的流程示意图;4 is a schematic flow chart of a second embodiment of a data storage control method according to the present invention;
图5为本发明图4所示第二实施例中步骤S220的细化步骤的流程示意图;FIG. 5 is a schematic flowchart of a refinement step of step S220 in the second embodiment shown in FIG. 4 according to the present invention;
图6为本发明数据服务器的第一实施例的功能模块示意图;6 is a schematic diagram of functional modules of a first embodiment of a data server according to the present invention;
图7为本发明数据服务器的第二实施例中第二存储模块的细化功能模块示意图;7 is a schematic diagram of a refinement function module of a second storage module in a second embodiment of a data server according to the present invention;
图8为本发明数据服务器的第三实施例中第二存储模块的另一细化功能模块示意图;FIG. 8 is a schematic diagram of another refinement function module of the second storage module in the third embodiment of the data server of the present invention; FIG.
图9为本发明数据服务器的第四实施例的功能模块示意图;9 is a schematic diagram of functional modules of a fourth embodiment of a data server according to the present invention;
图10为本发明数据服务器的第五实施例中重组模块的细化功能模块示意图。FIG. 10 is a schematic diagram of a refinement function module of a reassembly module in a fifth embodiment of a data server according to the present invention.
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。The implementation, functional features, and advantages of the present invention will be further described in conjunction with the embodiments.
具体实施方式detailed description
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。It is understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
基于上述问题,本发明提供一种数据存储控制方法。Based on the above problems, the present invention provides a data storage control method.
参照图1,图1为本发明数据存储控制方法的第一实施例的流程示意图。Referring to FIG. 1, FIG. 1 is a schematic flowchart diagram of a first embodiment of a data storage control method according to the present invention.
在本实施例中,所述数据存储控制方法包括:In this embodiment, the data storage control method includes:
步骤S110,在数据服务器接收到第一数据时,将第一数据存储在FPGA芯片中;Step S110, when the data server receives the first data, storing the first data in the FPGA chip;
在本实施例中,纠删码存储在FPGA芯片中,而该FPGA芯片应用于数据存储服务器中,与数据服务器中的CPU以及存储器相互独立。在数据服务器接收到外部写入的第一数据时,该数据服务器将接收到的第一数据临时存储在FPGA芯片的高速存储器中。其中,该数据服务器包括PC端、智能手机、智能电视、平板电脑;该高速存储器包括固态硬盘(Solid State Disk,SSD)。In this embodiment, the erasure code is stored in the FPGA chip, and the FPGA chip is applied to the data storage server, and is independent of the CPU and the memory in the data server. When the data server receives the first data written externally, the data server temporarily stores the received first data in the high speed memory of the FPGA chip. The data server includes a PC end, a smart phone, a smart TV, and a tablet computer; the high speed memory includes a solid state hard disk (Solid) State Disk, SSD).
步骤S120,在第一数据接收完成后,调用FPGA芯片中存储的纠删码计算FPGA芯片中存储的第一数据的校验数据,并计算FPGA芯片中存储的第一数据以及校验数据的存储比例;Step S120, after the first data receiving is completed, calling the erasure code stored in the FPGA chip to calculate the verification data of the first data stored in the FPGA chip, and calculating the first data stored in the FPGA chip and the storage of the verification data. proportion;
在确定该第一数据已接收完毕,且完全存储到该FPGA芯片的高速存储器中后,该数据服务器调用该FPGA芯片中存储的纠删码,根据该纠删码的算法计算临时存储在该高速存储器中第一数据的校验数据,并计算该高速存储器中第一数据与该校验数据的存储比例。例如,共3个字节的第一数据完全存储到FPGA芯片的高速存储器中后,该PC端调用FPGA芯片中存储的纠删码计算该第一数据的校验数据为1字节,则计算出该高速存储器中第一数据与该校验数据的存储比例为3:1。其中,该校验数据为将该第一数据进行校验编码后得到字符串,当该第一数据中的部分数据丢失时,纠删码通过该校验数据与该第一数据中未丢失的数据恢复该第一数据中的丢失的数据。After determining that the first data has been received and completely stored in the high speed memory of the FPGA chip, the data server calls the erasure code stored in the FPGA chip, and the temporary storage is performed at the high speed according to the algorithm of the erasure code. The verification data of the first data in the memory, and calculating the storage ratio of the first data and the verification data in the high speed memory. For example, after the first data of a total of 3 bytes is completely stored in the high speed memory of the FPGA chip, the PC end calls the erasure code stored in the FPGA chip to calculate the check data of the first data as 1 byte, and then the calculation is performed. The storage ratio of the first data and the check data in the high speed memory is 3:1. The check data is obtained by performing check coding on the first data to obtain a character string. When part of the data in the first data is lost, the erasure code passes the check data and is not lost in the first data. The data recovers the lost data in the first data.
步骤S130,根据存储比例拆分FPGA芯片中存储的第一数据以及校验数据得到多个第二数据,并将第二数据分别存储到存储器的各个存储单元中。Step S130, splitting the first data and the verification data stored in the FPGA chip according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
在确定该第一数据与校验数据的存储比例时,根据该存储比例拆分该第一数据以及校验数据得到多个第二数据,该数据服务器从本端的存储器中分配出与该第二数据数量一致的待存储单元,且各个待存储单元的存储空间大小与该第二数据的字节大小相匹配,将该第二数据分别存储到存储器的各个待存储单元中。其中,每个待存储单元只可存储一个第二数据。例如,在第一数据与该校验数据的存储比例为3:1后,将该第一数据拆分成3个数据片段,每个数据片段为1个字节,结合一个字节的校验数据得到4个一个字节第二数据,该PC端从本端的存储器中分配出4个存储单元,该4个存储单元的存储空间均为一个字节,将该4个一个字节的第二数据分别存储到4个存储单元中。When determining the storage ratio of the first data and the verification data, splitting the first data and the verification data according to the storage ratio to obtain a plurality of second data, the data server is allocated from the local memory and the second data A unit to be stored with the same number of data, and the storage space size of each unit to be stored matches the byte size of the second data, and the second data is separately stored in each unit to be stored in the memory. Each of the to-be-stored units can store only one second data. For example, after the storage ratio of the first data and the check data is 3:1, the first data is split into three data segments, each data segment is 1 byte, combined with one byte check. The data is obtained by 4 bytes of second data, and the PC side allocates 4 storage units from the memory of the local end, and the storage space of the 4 storage units is one byte, and the 4 bytes are the second. The data is stored in 4 storage units.
需要说明的是,当该校验数据被拆分成M个片段,该第一数据被拆分成K个片段,该M个片段所占的总内存Y等于该K个片段的所占的总内存X的K分之一,即Y=X*1/K。It should be noted that when the check data is split into M segments, the first data is split into K segments, and the total memory Y occupied by the M segments is equal to the total occupied by the K segments. One of the K points of memory X, that is, Y=X*1/K.
本实施例通过在数据服务器接收到第一数据时,将第一数据存储在FPGA芯片中,在第一数据接收完成后,调用FPGA芯片中存储的纠删码计算FPGA芯片中存储的第一数据的校验数据,并计算FPGA芯片中存储的第一数据以及校验数据的存储比例,根据存储比例拆分FPGA芯片中存储的第一数据以及校验数据得到多个第二数据,并将第二数据分别存储到存储器的各个存储单元中。由于纠删码存储在FPGA芯片,当数据服务器接收到第一数据时,将该第一数据临时存储在FPGA芯片中,并调用该FPGA芯片存储的纠删码计算该第一数据对应的校验数据以及该第一数据与该校验数据的存储比例,在将该第一数据以及该校验数据按照该存储比例进行拆分得到多个第二数据后,将该第二数据分别存储到存储器的各个存储单元中,因此使得纠删码对数据的拆分、校验数据的确定以及数据与校验数据的存储比例的计算均在FPGA芯片中进行,而存储器只负责分配存储单元存储该拆分后的数据以及校验数据即可,从而降低了纠删码对存储器运行空间的占用,提高了存储器的数据存储能力,进而提高了纠删码的计算效率。In this embodiment, when the first data is received by the data server, the first data is stored in the FPGA chip, and after the first data is received, the erasure code stored in the FPGA chip is called to calculate the first data stored in the FPGA chip. Checking the data, and calculating the storage ratio of the first data and the verification data stored in the FPGA chip, splitting the first data stored in the FPGA chip according to the storage ratio, and verifying the data to obtain a plurality of second data, and The two data are separately stored in respective storage units of the memory. The erasure code is stored in the FPGA chip. When the data server receives the first data, the first data is temporarily stored in the FPGA chip, and the erasure code stored in the FPGA chip is called to calculate the verification corresponding to the first data. Data and a storage ratio of the first data and the verification data, after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory In each storage unit, the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split. The divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
进一步的,请参照图2,为本发明第一实施例中步骤S130的细化步骤的流程示意图,所述将所述第二数据分别存储到存储器的各个存储单元中包括:Further, please refer to FIG. 2, which is a schematic flowchart of the refinement step of step S130 in the first embodiment of the present invention. The storing the second data in each storage unit of the memory includes:
步骤S131,依次调用各个第二数据,并存储到对应的存储单元;Step S131, sequentially calling each second data and storing it in a corresponding storage unit;
在本实施例中,在数据服务器从本端的存储器中分配出与该第二数据数量一致,且存储空间大小与该第二数据的字节大小相匹配的待存储单元后,该纠删码给该待存储单元发送准备消息,每个准备消息中包括每个待存储单元需要存储的一个目标第二数据,当该待存储单元接收到该准备消息后,根据该准备消息生成准备日志,在该待存储单元的准备日志后,向该FPGA芯片发送响应消息,当该FPGA接收到该响应消息时,调用该纠删码向该待存储单元发送存储消息,指示该待存储单元写入准备日志中的一个目标第二数据。其中,该准备日志保存在待存储单元中,用于暂时保存该待存储单元需要存储的一个目标第二数据。In this embodiment, after the data server allocates the to-be-stored unit that is consistent with the second data amount and the storage space size matches the byte size of the second data, the erasure code is given to the data server. The to-be-storage unit sends a preparation message, where each preparation message includes a target second data that needs to be stored in each unit to be stored. After the preparation unit receives the preparation message, a preparation log is generated according to the preparation message. After the preparation log of the storage unit is sent, the response message is sent to the FPGA chip. When the FPGA receives the response message, the FPGA sends the storage error message to the storage unit to send a storage message, indicating that the storage unit is to be written into the preparation log. The second data of a target. The preparation log is saved in the unit to be stored, and is used to temporarily save a target second data that needs to be stored by the to-be-stored unit.
需要说明的是,在将各个第二数据依次存储到对应的待存储单元中之前,给各个第二数据分配一个存储地址,并按照地址数依次增大的方式给该各个第二数据分配存储地址。例如, 将第一数据拆分成第二数据a、第二数据b、第二数据c以及第二数据d,在将该第二数据a、第二数据b、第二数据c以及第二数据d依次存储到对应的待存储单元中之前,按照地址数依次增大的方式该第二数据a、第二数据b、第二数据c以及第二数据d分配存储地址,分别为0001、0010、0011、0100。It should be noted that, before storing the second data sequentially into the corresponding to-be-stored unit, each of the second data is allocated a storage address, and the storage address is allocated to each of the second data in a manner that the number of addresses is sequentially increased. . E.g, Splitting the first data into the second data a, the second data b, the second data c, and the second data d, in which the second data a, the second data b, the second data c, and the second data d are sequentially Before being stored in the corresponding to-be-stored unit, the second data a, the second data b, the second data c, and the second data d are allocated storage addresses in such a manner that the number of addresses is sequentially increased, respectively, 0001, 0010, and 01001. 0100.
步骤S132,在每次调用到第二数据时,判断待存储的第二数据对应的存储单元是否出现存储故障;Step S132, determining, by each time the second data is called, determining whether a storage unit corresponding to the second data to be stored has a storage failure;
在每次存储第二数据时,判断与该待存储的第二数据对应的待存储单元是否反馈响应消息,若接收到待存储单元反馈的响应信息时,则确定该待存储单元未出现存储故障,若未接收到带存储单元反馈的响应信息时,则确定该待存储单元出现存储故障。When storing the second data, determining whether the unit to be stored corresponding to the second data to be stored is a feedback response message, and if receiving the response information fed back by the unit to be stored, determining that the storage unit is not in storage failure If the response information with the feedback of the storage unit is not received, it is determined that the storage unit has a storage failure.
步骤S133,若是,则向第二数据对应的存储单元发送中断消息,以供第二数据对应的存储单元根据中断消息停止存储第二数据;Step S133, if yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
在确定该待存储单元出现存储故障时,调用该纠删码向该待存储单元发送中断消息,该待存储单元根据该中断消息删除准备日志,中断对该目标第二数据的存储,该目标第二数据并等待存储,若在预设时间内检测到该存储单元的存储故障恢复,则将该目标第二数据存储到该待存储单元中,若在预设时间内未检测到该存储单元的存储故障恢复,则该数据服务器从本端的存储器中重新分配出与该目标第二数据匹配的待存储单元,将该目标第二数据存储到该待存储单元中。When it is determined that the storage unit has a storage failure, the erasure code is invoked to send an interrupt message to the to-be-stored unit, and the to-be-stored unit deletes the preparation log according to the interruption message, and interrupts storage of the target second data, the target The second data is waiting for the storage, and if the storage failure recovery of the storage unit is detected within a preset time, the target second data is stored in the to-be-stored unit, and if the storage unit is not detected within a preset time The storage failure recovery, the data server re-allocates the to-be-stored unit that matches the target second data from the local storage, and stores the target second data into the to-be-stored unit.
步骤S134,若否,则将调用的第二数据存储到对应的存储单元中。Step S134, if no, storing the called second data into the corresponding storage unit.
在确定该待存储单元未出现存储故障时,将调用的第二数据存储到对应的存储单元中。The second data to be called is stored in the corresponding storage unit when it is determined that the storage unit does not have a storage failure.
本实施例通过依次调用各个第二数据,并存储到对应的存储单元,在每次调用到第二数据时,判断待存储的第二数据对应的存储单元是否出现存储故障,若是,则向第二数据对应的存储单元发送中断消息,以供第二数据对应的存储单元根据中断消息停止存储第二数据,若否,则将调用的第二数据存储到对应的存储单元中。由于存储器的各个存储到单元在存储第二数据的过程中随时都可能出现存储故障,因此通过时刻检测该存储器的各个存储单元,避免在存储该第二数据的过程中,发送存储紊乱,导致数据丢失,从而保证数据安全。In this embodiment, by sequentially calling each second data and storing it in the corresponding storage unit, each time the second data is called, it is determined whether the storage unit corresponding to the second data to be stored has a storage failure, and if so, The storage unit corresponding to the second data sends an interrupt message, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message, and if not, stores the called second data in the corresponding storage unit. Since each storage unit of the memory may have a storage failure at any time during the process of storing the second data, detecting each storage unit of the memory by time, avoiding sending storage disorder during the process of storing the second data, resulting in data Lost to ensure data security.
进一步的,请参照图3,为本发明第一实施例中步骤S130的细化步骤的流程示意图,所述根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据包括:Further, please refer to FIG. 3, which is a schematic flowchart of a refinement step of step S130 according to the first embodiment of the present invention, where the first data stored in the FPGA chip and the checksum are split according to the storage ratio. The data gets multiple second data including:
步骤S135,根据存储比例确定FPGA芯片中存储的第一数据的第一拆分量以及校验数据的第二拆分量;Step S135, determining a first split component of the first data stored in the FPGA chip and a second split component of the check data according to the storage ratio;
在本实施例中,在确定该第一数据与该校验数据的存储比例为M:K后,确定该第一数据的第一拆分量为M,该校验数据的第二拆分量为K。In this embodiment, after determining that the storage ratio of the first data and the check data is M:K, determining that the first split component of the first data is M, and the second split component of the check data Is K.
步骤S136,根据第一拆分量拆分FPGA芯片中存储的第一数据,并根据第二拆分量拆分校验数据,并将拆分后的FPGA芯片中存储的第一数据与拆分后的校验数据作为第二数据。Step S136, splitting the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and splitting the first data stored in the split FPGA chip and splitting The post-check data is used as the second data.
根据该第一拆分量M将该第一数据拆分成M个片段,根据该第二拆分量K将该校验数据拆分成K个片段,从而组成了M+K个第二数据。Splitting the first data into M segments according to the first split component M, and splitting the check data into K segments according to the second split component K, thereby composing M+K second data .
本实施例通过根据存储比例确定FPGA芯片中存储的第一数据的第一拆分量以及校验数据的第二拆分量,根据第一拆分量拆分FPGA芯片中存储的第一数据,并根据第二拆分量拆分校验数据,并将拆分后的FPGA芯片中存储的第一数据与拆分后的校验数据作为第二数据。由于纠删码将整段数据按照一定的存储比例拆分后一小段的数据后,不仅方便存储器对该拆分后的数据的存储,而且避免出现存储器中的数据失效后无法恢复的问题。In this embodiment, the first split component of the first data stored in the FPGA chip and the second split component of the check data are determined according to the storage ratio, and the first data stored in the FPGA chip is split according to the first split component. And splitting the verification data according to the second split component, and using the first data stored in the split FPGA chip and the split check data as the second data. Since the erasure code splits the entire segment of data into a small segment of data according to a certain storage ratio, it not only facilitates the storage of the split data, but also avoids the problem that the data in the memory cannot be recovered after the data is invalid.
进一步的,基于上述第一实施例,请参照图4,提出本发明数据存储控制方法的第二实施例的流程示意图,在该第二实施例中,该数据存储控制方法包括:Further, based on the foregoing first embodiment, referring to FIG. 4, a schematic flowchart of a second embodiment of the data storage control method of the present invention is provided. In the second embodiment, the data storage control method includes:
步骤S210,在数据服务器接收到数据读取指令时,根据数据读取指令调用FPGA芯片中的纠删码;Step S210, when the data server receives the data read instruction, invoking the erasure code in the FPGA chip according to the data read instruction;
步骤S220,根据纠删码重组数据读取指令对应的各个存储单元中存储的待读取数据。Step S220, reorganizing the data to be read stored in each storage unit corresponding to the data read instruction according to the erasure code.
在本实施例中,在数据服务器接收到数据读取指令时,例如,在数据服务器接收到客户端发送的数据读取指令时,调用该FPGA芯片中存储的纠删码,根据该纠删码中的数据冗余功能从存储地址从小到大的重组方向,将待读取数据还原成整段数据。其中,该数据冗余功能包括将数据按照预设规则进行拆分成多个片段,并能够按照该预设规则该多个片段重组成之前的数据。In this embodiment, when the data server receives the data read instruction, for example, when the data server receives the data read instruction sent by the client, the erasure code stored in the FPGA chip is invoked, according to the erasure code. The data redundancy function restores the data to be read into the entire data from the reorganization direction of the storage address from small to large. The data redundancy function includes splitting the data into a plurality of segments according to a preset rule, and is capable of reconstructing the previous data according to the preset rule.
本实施例通过在数据服务器接收到数据读取指令时,根据数据读取指令调用FPGA芯片中的纠删码,根据纠删码重组数据读取指令对应的各个存储单元中存储的待读取数据,通过纠删码对待读取数据进行重组,使得该待读取数据可被正常读取,提高了存储器的容错能力。In this embodiment, when the data server receives the data read instruction, the erasure code in the FPGA chip is called according to the data read instruction, and the data to be read stored in each storage unit corresponding to the data read instruction is reorganized according to the erasure code. The data to be read is reorganized by the erasure code, so that the data to be read can be read normally, which improves the fault tolerance of the memory.
进一步的,请参照图5,为本发明第二实施例中步骤S220的细化步骤的流程示意图,该步骤S220的细化步骤包括:Further, please refer to FIG. 5, which is a schematic flowchart of the refinement step of step S220 in the second embodiment of the present invention. The refinement step of step S220 includes:
步骤S221,依次读取数据读取指令对应的各个存储单元中存储的待读取数据;Step S221, sequentially reading data to be read stored in each storage unit corresponding to the data read instruction;
步骤S222,在待读取数据读取完成后,判断读取的待读取数据中是否存在失效数据;Step S222, after the data to be read is read, determining whether there is invalid data in the read data to be read;
在本实施例中,在根据数据读取指令调用FPGA芯片中的纠删码后,该纠删码向与该数据读取指令对应的各个存储单元中存储的待读取数据发送数据调用指令,与该数据读取指令对应的各个存储单元根据该调用指令将本地存储的待读取数据发送到该FPGA芯片中,并临时存储在该FPGA芯片中的高速存储器中,在待读取数据读取完成后,判断读取的待读取数据中是否存在失效数据。In this embodiment, after the erasure code in the FPGA chip is called according to the data read instruction, the erasure code sends a data call instruction to the data to be read stored in each storage unit corresponding to the data read instruction, Each storage unit corresponding to the data read instruction sends the locally stored data to be read to the FPGA chip according to the call instruction, and is temporarily stored in the high speed memory in the FPGA chip, and the data to be read is read. After completion, it is judged whether there is invalid data in the read data to be read.
步骤S223,在待读取数据中存在失效数据时,采用待读取数据中未失效数据恢复失效数据,并根据纠删码对未失效数据以及恢复后的失效数据进行重组;Step S223, when there is invalid data in the data to be read, recovering the invalid data by using the non-failed data in the data to be read, and reconstructing the non-failed data and the restored invalid data according to the erasure code;
在待读取数据中存在失效数据,且该失效数据的数量小于预设值时,纠删码基于数据冗余功能通过待读取数据中未失效数据恢复失效数据,在恢复失效数据后,根据纠删码中的数据冗余功能从存储地址从小到大的重组方向,将未失效数据以及恢复后的失效数据还原成整段数据。其中,该预设值为小于该待读取数据中校验数据的片段的整数,如该待读取数据中校验数据的片段为K个,则该预设值为小于K的整数。When there is invalid data in the data to be read, and the number of the invalid data is less than a preset value, the erasure code recovers the invalid data through the non-failed data in the data to be read based on the data redundancy function, after restoring the invalid data, according to The data redundancy function in the erasure code restores the non-failed data and the recovered invalid data to the entire segment of data from the reorganization direction of the storage address from small to large. The preset value is an integer smaller than the segment of the check data in the data to be read. If the number of the check data in the data to be read is K, the preset value is an integer smaller than K.
需要说明的是,当该失效数据的数量大于或者等于预设值时,纠删码无法基于数据冗余功能通过待读取数据中未失效数据恢复失效数据,因此该待读取数据无法正常读取。It should be noted that when the number of the failed data is greater than or equal to the preset value, the erasure code cannot recover the invalid data through the non-failed data in the data to be read based on the data redundancy function, so the data to be read cannot be read normally. take.
步骤S224,在待读取数据中不存在失效数据时,根据纠删码对待读取数据进行重组。Step S224: When there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code.
在待读取数据中不存在失效数据时,根据纠删码中的数据冗余功能从存储地址从小到大的重组方向,将待读取数据还原成整段数据。When there is no invalid data in the data to be read, the data to be read is restored to the entire data according to the data redundancy function in the erasure code from the reorganization direction of the storage address from small to large.
本实施通过依次读取数据读取指令对应的各个存储单元中存储的待读取数据,在待读取数据读取完成后,判断读取的待读取数据中是否存在失效数据,在待读取数据中存在失效数据时,采用待读取数据中未失效数据恢复失效数据,并根据纠删码对未失效数据以及恢复后的失效数据进行重组,在待读取数据中不存在失效数据时,根据纠删码对待读取数据进行重组,使得失效的数据在恢复后仍可正常读取,从而保障了数据的安全。The present embodiment sequentially reads the data to be read stored in each storage unit corresponding to the data read command, and after the data to be read is read, determines whether there is invalid data in the read data to be read, and is to be read. When there is invalid data in the data, the invalid data is recovered by using the unfailed data in the data to be read, and the non-failed data and the restored invalid data are reorganized according to the erasure code, and when there is no invalid data in the data to be read According to the erasure code, the data to be read is reorganized, so that the invalid data can still be read normally after recovery, thereby ensuring data security.
本发明进一步提供一种数据服务器。The invention further provides a data server.
参照图6,图6为本发明数据服务器的第一实施例的功能模块示意图。Referring to FIG. 6, FIG. 6 is a schematic diagram of functional modules of a first embodiment of a data server according to the present invention.
在本实施例中,所述数据服务器包括:第一存储模块110、拆分模块120及第二存储模块130。In this embodiment, the data server includes: a first storage module 110, a split module 120, and a second storage module 130.
所述第一存储模块110,用于在数据服务器接收到第一数据时,将第一数据存储在FPGA芯片中;The first storage module 110 is configured to store the first data in the FPGA chip when the data server receives the first data;
在本实施例中,纠删码存储在FPGA芯片中,而该FPGA芯片应用于数据存储服务器中,与数据服务器中的CPU以及存储器相互独立。在数据服务器中的第一存储模块110接收到外部写入的第一数据时,该数据服务器将接收到的第一数据临时存储在FPGA芯片的高速存储器中。其中,该数据服务器包括PC端、智能手机、智能电视、平板电脑;该高速存储器包括固态硬盘(Solid State Disk,SSD)。In this embodiment, the erasure code is stored in the FPGA chip, and the FPGA chip is applied to the data storage server, and is independent of the CPU and the memory in the data server. When the first storage module 110 in the data server receives the first data written externally, the data server temporarily stores the received first data in the high speed memory of the FPGA chip. The data server includes a PC end, a smart phone, a smart TV, and a tablet computer; the high speed memory includes a solid state hard disk (Solid) State Disk, SSD).
所述拆分模块120,用于在第一数据接收完成后,调用FPGA芯片中存储的纠删码计算FPGA芯片中存储的第一数据的校验数据,并计算FPGA芯片中存储的第一数据以及校验数据的存储比例;The splitting module 120 is configured to, after the first data receiving is completed, invoke the erasure code stored in the FPGA chip to calculate the verification data of the first data stored in the FPGA chip, and calculate the first data stored in the FPGA chip. And the storage ratio of the verification data;
在第一存储模块110确定该第一数据已接收完毕,且完全存储到该FPGA芯片的高速存储器中后,该数据服务器中的拆分模块120调用该FPGA芯片中存储的纠删码,根据该纠删码的算法计算临时存储在该高速存储器中第一数据的校验数据,并计算该高速存储器中第一数据与该校验数据的存储比例。例如,共3个字节的第一数据完全存储到FPGA芯片的高速存储器中后,该PC端调用FPGA芯片中存储的纠删码计算该第一数据的校验数据为1字节,则计算出该高速存储器中第一数据与该校验数据的存储比例为3:1。其中,该校验数据为将该第一数据进行校验编码后得到字符串,当该第一数据中的部分数据丢失时,纠删码通过该校验数据与该第一数据中未丢失的数据恢复该第一数据中的丢失的数据。After the first storage module 110 determines that the first data has been received and is completely stored in the high speed memory of the FPGA chip, the splitting module 120 in the data server calls the erasure code stored in the FPGA chip, according to the The erasure code algorithm calculates the parity data of the first data temporarily stored in the high speed memory, and calculates the storage ratio of the first data and the parity data in the high speed memory. For example, after the first data of a total of 3 bytes is completely stored in the high speed memory of the FPGA chip, the PC end calls the erasure code stored in the FPGA chip to calculate the check data of the first data as 1 byte, and then the calculation is performed. The storage ratio of the first data and the check data in the high speed memory is 3:1. The check data is obtained by performing check coding on the first data to obtain a character string. When part of the data in the first data is lost, the erasure code passes the check data and is not lost in the first data. The data recovers the lost data in the first data.
所述第二存储模块130,用于根据存储比例拆分FPGA芯片中存储的第一数据以及校验数据得到多个第二数据,并将第二数据分别存储到存储器的各个存储单元中。The second storage module 130 is configured to split the first data and the verification data stored in the FPGA chip according to the storage ratio to obtain a plurality of second data, and store the second data in each storage unit of the memory.
在拆分模块120确定该第一数据与校验数据的存储比例时,第二存储模块130根据该存储比例拆分该第一数据以及校验数据得到多个第二数据,该数据服务器从本端的存储器中分配出与该第二数据数量一致的待存储单元,且各个待存储单元的存储空间大小与该第二数据的字节大小相匹配,将该第二数据分别存储到存储器的各个待存储单元中。其中,每个待存储单元只可存储一个第二数据。例如,在第一数据与该校验数据的存储比例为3:1后,将该第一数据拆分成3个数据片段,每个数据片段为1个字节,结合一个字节的校验数据得到4个一个字节第二数据,该PC端从本端的存储器中分配出4个存储单元,该4个存储单元的存储空间均为一个字节,将该4个一个字节的第二数据分别存储到4个存储单元中。When the splitting module 120 determines the storage ratio of the first data and the check data, the second storage module 130 splits the first data and the check data according to the storage ratio to obtain a plurality of second data, and the data server A unit to be stored is allocated in the memory of the end, and the size of the storage space of each unit to be stored matches the byte size of the second data, and the second data is separately stored in the memory. In the storage unit. Each of the to-be-stored units can store only one second data. For example, after the storage ratio of the first data and the check data is 3:1, the first data is split into three data segments, each data segment is 1 byte, combined with one byte check. The data is obtained by 4 bytes of second data, and the PC side allocates 4 storage units from the memory of the local end, and the storage space of the 4 storage units is one byte, and the 4 bytes are the second. The data is stored in 4 storage units.
需要说明的是,当该校验数据被拆分成M个片段,该第一数据被拆分成K个片段,该M个片段所占的总内存Y等于该K个片段的所占的总内存X的K分之一,即Y=X*1/K。It should be noted that when the check data is split into M segments, the first data is split into K segments, and the total memory Y occupied by the M segments is equal to the total occupied by the K segments. One of the K points of memory X, that is, Y=X*1/K.
本实施例通过在数据服务器中的第一存储模块110接收到第一数据时,将第一数据存储在FPGA芯片中,在第一数据接收完成后,拆分模块120调用FPGA芯片中存储的纠删码计算FPGA芯片中存储的第一数据的校验数据,并计算FPGA芯片中存储的第一数据以及校验数据的存储比例,第二存储模块130根据存储比例拆分FPGA芯片中存储的第一数据以及校验数据得到多个第二数据,并将第二数据分别存储到存储器的各个存储单元中。由于纠删码存储在FPGA芯片,当数据服务器接收到第一数据时,将该第一数据临时存储在FPGA芯片中,并调用该FPGA芯片存储的纠删码计算该第一数据对应的校验数据以及该第一数据与该校验数据的存储比例,在将该第一数据以及该校验数据按照该存储比例进行拆分得到多个第二数据后,将该第二数据分别存储到存储器的各个存储单元中,因此使得纠删码对数据的拆分、校验数据的确定以及数据与校验数据的存储比例的计算均在FPGA芯片中进行,而存储器只负责分配存储单元存储该拆分后的数据以及校验数据即可,从而降低了纠删码对存储器运行空间的占用,提高了存储器的数据存储能力,进而提高了纠删码的计算效率。In this embodiment, when the first data is received by the first storage module 110 in the data server, the first data is stored in the FPGA chip. After the first data is received, the split module 120 calls the correction stored in the FPGA chip. Deleting the code to calculate the verification data of the first data stored in the FPGA chip, and calculating the storage ratio of the first data and the verification data stored in the FPGA chip, and the second storage module 130 splits the stored in the FPGA chip according to the storage ratio. A data and verification data obtain a plurality of second data, and the second data is separately stored in each storage unit of the memory. The erasure code is stored in the FPGA chip. When the data server receives the first data, the first data is temporarily stored in the FPGA chip, and the erasure code stored in the FPGA chip is called to calculate the verification corresponding to the first data. Data and a storage ratio of the first data and the verification data, after the first data and the verification data are split according to the storage ratio to obtain a plurality of second data, the second data is separately stored in the memory In each storage unit, the resolution of the data by the erasure code, the determination of the check data, and the calculation of the storage ratio of the data and the check data are all performed in the FPGA chip, and the memory is only responsible for allocating the storage unit to store the split. The divided data and the verification data can be used, thereby reducing the occupation of the memory running space of the erasure code, improving the data storage capability of the memory, and further improving the calculation efficiency of the erasure code.
进一步的,基于第一实施例,提出本发明数据服务器的第二实施例,在本实施例中,参照图7,所述第二存储模块130包括调用单元131、第一判断单元132、发送单元133以及存储单元134。Further, based on the first embodiment, a second embodiment of the data server of the present invention is proposed. In this embodiment, referring to FIG. 7, the second storage module 130 includes a calling unit 131, a first determining unit 132, and a sending unit. 133 and storage unit 134.
所述调用单元131,用于依次调用各个第二数据,并存储到对应的存储单元;The calling unit 131 is configured to sequentially call each second data and store the data in a corresponding storage unit;
在本实施例中,在数据服务器从本端的存储器中分配出与该第二数据数量一致,且存储空间大小与该第二数据的字节大小相匹配的待存储单元后,调用单元131调用该纠删码给该待存储单元发送准备消息,每个准备消息中包括每个待存储单元需要存储的一个目标第二数据,当该待存储单元接收到该准备消息后,根据该准备消息生成准备日志,在该待存储单元的准备日志后,向该FPGA芯片发送响应消息,当该FPGA接收到该响应消息时,调用该纠删码向该待存储单元发送存储消息,指示该待存储单元写入准备日志中的一个目标第二数据。其中,该准备日志保存在待存储单元中,用于暂时保存该待存储单元需要存储的一个目标第二数据。In this embodiment, after the data server allocates the to-be-stored unit that matches the second data amount from the local memory and the storage space size matches the byte size of the second data, the calling unit 131 invokes the The erasure code sends a preparation message to the to-be-stored unit, and each preparation message includes a target second data that needs to be stored in each to-be-stored unit. When the to-be-stored unit receives the preparation message, it prepares according to the preparation message. Logging, after the preparation log of the to-be-stored unit, sending a response message to the FPGA chip, when the FPGA receives the response message, invoking the erasure code to send a storage message to the to-be-stored unit, indicating that the to-be-stored unit writes Enter a target second data in the preparation log. The preparation log is saved in the unit to be stored, and is used to temporarily save a target second data that needs to be stored by the to-be-stored unit.
需要说明的是,在将各个第二数据依次存储到对应的待存储单元中之前,给各个第二数据分配一个存储地址,并按照地址数依次增大的方式给该各个第二数据分配存储地址。例如, 将第一数据拆分成第二数据a、第二数据b、第二数据c以及第二数据d,在将该第二数据a、第二数据b、第二数据c以及第二数据d依次存储到对应的待存储单元中之前,按照地址数依次增大的方式该第二数据a、第二数据b、第二数据c以及第二数据d分配存储地址,分别为0001、0010、0011、0100。It should be noted that, before storing the second data sequentially into the corresponding to-be-stored unit, each of the second data is allocated a storage address, and the storage address is allocated to each of the second data in a manner that the number of addresses is sequentially increased. . E.g, Splitting the first data into the second data a, the second data b, the second data c, and the second data d, in which the second data a, the second data b, the second data c, and the second data d are sequentially Before being stored in the corresponding to-be-stored unit, the second data a, the second data b, the second data c, and the second data d are allocated storage addresses in such a manner that the number of addresses is sequentially increased, respectively, 0001, 0010, and 01001. 0100.
所述第一判断单元132,用于在每次调用到第二数据时,判断待存储的第二数据对应的存储单元是否出现存储故障;The first determining unit 132 is configured to determine, when each call to the second data, whether a storage unit corresponding to the second data to be stored has a storage failure;
在调用单元131每次存储第二数据时,第一判断单元132判断与该待存储的第二数据对应的待存储单元是否反馈响应消息,若接收到待存储单元反馈的响应信息时,则确定该待存储单元未出现存储故障,若未接收到带存储单元反馈的响应信息时,则确定该待存储单元出现存储故障。When the calling unit 131 stores the second data, the first determining unit 132 determines whether the unit to be stored corresponding to the second data to be stored feeds back a response message, and if receiving the response information fed back by the unit to be stored, determining The storage unit does not have a storage failure. If the response information with the storage unit feedback is not received, it is determined that the storage unit has a storage failure.
所述发送单元133,用于若待存储的第二数据对应的存储单元出现存储故障,则向第二数据对应的存储单元发送中断消息,以供第二数据对应的存储单元根据中断消息停止存储第二数据;The sending unit 133 is configured to send an interrupt message to the storage unit corresponding to the second data if the storage unit corresponding to the second data to be stored has a storage failure, so that the storage unit corresponding to the second data stops storing according to the interrupt message. Second data;
在第一判断单元132确定该待存储单元出现存储故障时,发送单元133调用该纠删码向该待存储单元发送中断消息,该待存储单元根据该中断消息删除准备日志,中断对该目标第二数据的存储,该目标第二数据并等待存储,若在预设时间内检测到该存储单元的存储故障恢复,则将该目标第二数据存储到该待存储单元中,若在预设时间内未检测到该存储单元的存储故障恢复,则该数据服务器从本端的存储器中重新分配出与该目标第二数据匹配的待存储单元,将该目标第二数据存储到该待存储单元中。When the first determining unit 132 determines that the storage unit has a storage failure, the sending unit 133 calls the erasure code to send an interrupt message to the to-be-stored unit, and the to-be-stored unit deletes the preparation log according to the interrupt message, and interrupts the target. The second data is stored, and the target second data is waiting for storage. If the storage failure recovery of the storage unit is detected within a preset time, the target second data is stored in the to-be-stored unit if the preset time is If the storage failure recovery of the storage unit is not detected, the data server re-allocates the to-be-stored unit that matches the target second data from the local storage, and stores the target second data into the to-be-stored unit.
所述存储单元134,用于若待存储的第二数据对应的存储单元未出现存储故障,则将调用的第二数据存储到对应的存储单元中。The storage unit 134 is configured to store the called second data into the corresponding storage unit if the storage unit corresponding to the second data to be stored does not have a storage failure.
在第一判断单元132确定该待存储单元未出现存储故障时,存储单元134将调用的第二数据存储到对应的存储单元中。When the first determining unit 132 determines that the storage unit does not have a storage failure, the storage unit 134 stores the called second data into the corresponding storage unit.
本实施例通过依次调用各个第二数据,并存储到对应的存储单元,在每次调用到第二数据时,判断待存储的第二数据对应的存储单元是否出现存储故障,若是,则向第二数据对应的存储单元发送中断消息,以供第二数据对应的存储单元根据中断消息停止存储第二数据,若否,则将调用的第二数据存储到对应的存储单元中。由于存储器的各个存储到单元在存储第二数据的过程中随时都可能出现存储故障,因此通过时刻检测该存储器的各个存储单元,避免在存储该第二数据的过程中,发送存储紊乱,导致数据丢失,从而保证数据安全。In this embodiment, by sequentially calling each second data and storing it in the corresponding storage unit, each time the second data is called, it is determined whether the storage unit corresponding to the second data to be stored has a storage failure, and if so, The storage unit corresponding to the second data sends an interrupt message, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message, and if not, stores the called second data in the corresponding storage unit. Since each storage unit of the memory may have a storage failure at any time during the process of storing the second data, detecting each storage unit of the memory by time, avoiding sending storage disorder during the process of storing the second data, resulting in data Lost to ensure data security.
进一步的,基于第一实施例,提出本发明数据服务器的第三实施例,在本实施例中,参照图8,所述第二存储模块130包括确定单元135、拆分单元136。Further, based on the first embodiment, a third embodiment of the data server of the present invention is proposed. In this embodiment, referring to FIG. 8, the second storage module 130 includes a determining unit 135 and a splitting unit 136.
所述确定单元135,用于根据存储比例确定FPGA芯片中存储的第一数据的第一拆分量以及校验数据的第二拆分量;The determining unit 135 is configured to determine, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
在本实施例中,在确定单元135确定该第一数据与该校验数据的存储比例为M:K后,确定该第一数据的第一拆分量为M,该校验数据的第二拆分量为K。In this embodiment, after the determining unit 135 determines that the storage ratio of the first data and the check data is M:K, determining that the first split component of the first data is M, and the second of the check data Split the component to K.
所述拆分单元136,用于根据第一拆分量拆分FPGA芯片中存储的第一数据,并根据第二拆分量拆分校验数据,并将拆分后的FPGA芯片中存储的第一数据与拆分后的校验数据作为第二数据。The splitting unit 136 is configured to split the first data stored in the FPGA chip according to the first split component, and split the check data according to the second split component, and store the split FPGA chip The first data and the split check data are used as the second data.
拆分单元136根据该第一拆分量M将该第一数据拆分成M个片段,根据该第二拆分量K将该校验数据拆分成K个片段,从而组成了M+K个第二数据。The splitting unit 136 splits the first data into M segments according to the first split component M, and splits the check data into K segments according to the second split component K, thereby forming M+K. Second data.
本实施例通过根据存储比例确定FPGA芯片中存储的第一数据的第一拆分量以及校验数据的第二拆分量,根据第一拆分量拆分FPGA芯片中存储的第一数据,并根据第二拆分量拆分校验数据,并将拆分后的FPGA芯片中存储的第一数据与拆分后的校验数据作为第二数据。由于纠删码将整段数据按照一定的存储比例拆分后一小段的数据后,不仅方便存储器对该拆分后的数据的存储,而且避免出现存储器中的数据失效后无法恢复的问题。In this embodiment, the first split component of the first data stored in the FPGA chip and the second split component of the check data are determined according to the storage ratio, and the first data stored in the FPGA chip is split according to the first split component. And splitting the verification data according to the second split component, and using the first data stored in the split FPGA chip and the split check data as the second data. Since the erasure code splits the entire segment of data into a small segment of data according to a certain storage ratio, it not only facilitates the storage of the split data, but also avoids the problem that the data in the memory cannot be recovered after the data is invalid.
进一步的,基于第一实施例,提出本发明数据服务器的第四实施例,在本实施例中,参照图9,所述数据服务器还包括:调用模块210、重组模块220。Further, based on the first embodiment, a fourth embodiment of the data server of the present invention is provided. In this embodiment, referring to FIG. 9, the data server further includes: a calling module 210 and a recombining module 220.
所述调用模块210,用于在数据服务器接收到数据读取指令时,根据数据读取指令调用FPGA芯片中的纠删码;The calling module 210 is configured to invoke an erasure code in the FPGA chip according to the data read instruction when the data server receives the data read instruction;
所述重组模块220,用于根据纠删码重组数据读取指令对应的各个存储单元中存储的待读取数据。The recombination module 220 is configured to reassemble data to be read stored in each storage unit corresponding to the data read instruction according to the erasure code.
在本实施例中,在数据服务器接收到数据读取指令时,例如,在数据服务器接收到客户端发送的数据读取指令时,调用模块210调用该FPGA芯片中存储的纠删码,重组模块220根据该纠删码中的数据冗余功能从存储地址从小到大的重组方向,将待读取数据还原成整段数据。其中,该数据冗余功能包括将数据按照预设规则进行拆分成多个片段,并能够按照该预设规则该多个片段重组成之前的数据。In this embodiment, when the data server receives the data read instruction, for example, when the data server receives the data read instruction sent by the client, the calling module 210 calls the erasure code stored in the FPGA chip, and the recombination module 220: According to the data redundancy function in the erasure code, the data to be read is restored to the entire data segment from the reorganization direction of the storage address from small to large. The data redundancy function includes splitting the data into a plurality of segments according to a preset rule, and is capable of reconstructing the previous data according to the preset rule.
本实施例通过在数据服务器接收到数据读取指令时,根据数据读取指令调用FPGA芯片中的纠删码,根据纠删码重组数据读取指令对应的各个存储单元中存储的待读取数据,通过纠删码对待读取数据进行重组,使得该待读取数据可被正常读取,提高了存储器的容错能力。In this embodiment, when the data server receives the data read instruction, the erasure code in the FPGA chip is called according to the data read instruction, and the data to be read stored in each storage unit corresponding to the data read instruction is reorganized according to the erasure code. The data to be read is reorganized by the erasure code, so that the data to be read can be read normally, which improves the fault tolerance of the memory.
进一步的,基于第四实施例,提出本发明数据服务器的第五实施例,在本实施例中,参照图10,所述重组模块220包括读取单元221、第二判断单元222、第一重组单元223以及第二重组单元224。Further, based on the fourth embodiment, a fifth embodiment of the data server of the present invention is proposed. In this embodiment, referring to FIG. 10, the reassembly module 220 includes a reading unit 221, a second judging unit 222, and a first reorganization. Unit 223 and second recombination unit 224.
所述读取单元221,用于依次读取数据读取指令对应的各个存储单元中存储的待读取数据;The reading unit 221 is configured to sequentially read data to be read stored in each storage unit corresponding to the data read instruction;
所述第二判断单元222,用于在待读取数据读取完成后,判断读取的待读取数据中是否存在失效数据;The second determining unit 222 is configured to determine, after the data to be read is read, whether there is invalid data in the read data to be read;
在本实施例中,在根据数据读取指令调用FPGA芯片中的纠删码后,读取单元221该纠删码向与该数据读取指令对应的各个存储单元中存储的待读取数据发送数据调用指令,与该数据读取指令对应的各个存储单元根据该调用指令将本地存储的待读取数据发送到该FPGA芯片中,并临时存储在该FPGA芯片中的高速存储器中,在待读取数据读取完成后,第二判断单元222判断读取的待读取数据中是否存在失效数据。In this embodiment, after the erasure code in the FPGA chip is called according to the data read command, the read unit 221 sends the erasure code to the data to be read stored in each storage unit corresponding to the data read command. a data calling instruction, and each storage unit corresponding to the data reading instruction sends the locally stored data to be read to the FPGA chip according to the calling instruction, and temporarily stores the data to be read in the high speed memory in the FPGA chip, to be read After the data reading is completed, the second determining unit 222 determines whether there is invalid data in the read data to be read.
所述第一重组单元223,用于在待读取数据中存在失效数据时,采用待读取数据中未失效数据恢复失效数据,并根据纠删码对未失效数据以及恢复后的失效数据进行重组;The first recombining unit 223 is configured to recover invalid data in the data to be read when there is invalid data in the data to be read, and perform non-failure data and the restored invalid data according to the erasure code. Reorganization
在第二判断单元222确定待读取数据中存在失效数据,且该失效数据的数量小于预设值时,纠删码基于数据冗余功能通过待读取数据中未失效数据恢复失效数据,在恢复失效数据后,根据纠删码中的数据冗余功能从存储地址从小到大的重组方向,将未失效数据以及恢复后的失效数据还原成整段数据。其中,该预设值为小于该待读取数据中校验数据的片段的整数,如该待读取数据中校验数据的片段为K个,则该预设值为小于K的整数。When the second determining unit 222 determines that there is invalid data in the data to be read, and the number of the invalid data is less than a preset value, the erasure code recovers the invalid data by using the non-failed data in the data to be read based on the data redundancy function. After restoring the invalid data, the un-failed data and the restored failed data are restored to the entire data according to the data redundancy function in the erasure code from the small to large recombination direction of the storage address. The preset value is an integer smaller than the segment of the check data in the data to be read. If the number of the check data in the data to be read is K, the preset value is an integer smaller than K.
需要说明的是,当该失效数据的数量大于或者等于预设值时,纠删码无法基于数据冗余功能通过待读取数据中未失效数据恢复失效数据,因此该待读取数据无法正常读取。It should be noted that when the number of the failed data is greater than or equal to the preset value, the erasure code cannot recover the invalid data through the non-failed data in the data to be read based on the data redundancy function, so the data to be read cannot be read normally. take.
所述第二重组单元224,用于在待读取数据中不存在失效数据时,根据纠删码对待读取数据进行重组。The second recombining unit 224 is configured to reassemble the data to be read according to the erasure code when there is no invalid data in the data to be read.
在第二判断单元222待读取数据中不存在失效数据时,第二重组单元224根据纠删码中的数据冗余功能从存储地址从小到大的重组方向,将待读取数据还原成整段数据。When there is no invalid data in the data to be read by the second determining unit 222, the second recombining unit 224 restores the data to be read to the whole according to the data redundancy function in the erasure code from the reorganization direction of the storage address from small to large. Segment data.
本实施通过依次读取数据读取指令对应的各个存储单元中存储的待读取数据,在待读取数据读取完成后,判断读取的待读取数据中是否存在失效数据,在待读取数据中存在失效数据时,采用待读取数据中未失效数据恢复失效数据,并根据纠删码对未失效数据以及恢复后的失效数据进行重组,在待读取数据中不存在失效数据时,根据纠删码对待读取数据进行重组,使得失效的数据在恢复后仍可正常读取,从而保障了数据的安全。The present embodiment sequentially reads the data to be read stored in each storage unit corresponding to the data read command, and after the data to be read is read, determines whether there is invalid data in the read data to be read, and is to be read. When there is invalid data in the data, the invalid data is recovered by using the unfailed data in the data to be read, and the non-failed data and the restored invalid data are reorganized according to the erasure code, and when there is no invalid data in the data to be read According to the erasure code, the data to be read is reorganized, so that the invalid data can still be read normally after recovery, thereby ensuring data security.
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。The above are only the preferred embodiments of the present invention, and are not intended to limit the scope of the invention, and the equivalent structure or equivalent process transformations made by the description of the present invention and the drawings are directly or indirectly applied to other related technical fields. The same is included in the scope of patent protection of the present invention.

Claims (17)

  1. 一种数据存储控制方法,其特征在于,所述数据存储控制方法包括以下步骤: A data storage control method, characterized in that the data storage control method comprises the following steps:
    在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片中;When the data server receives the first data, storing the first data in an FPGA chip;
    在所述第一数据接收完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;After the receiving of the first data is completed, calling the erasure code stored in the FPGA chip to calculate parity data of the first data stored in the FPGA chip, and calculating the first data stored in the FPGA chip and the Verify the storage ratio of the data;
    根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到存储器的各个存储单元中。And dividing the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
  2. 如权利要求1所述的数据存储控制方法,其特征在于,所述将所述第二数据存储到存储器的各个存储单元中的步骤包括:The data storage control method according to claim 1, wherein the step of storing the second data in each storage unit of the memory comprises:
    依次调用各个所述第二数据,并存储到对应的存储单元;Each of the second data is sequentially called and stored in a corresponding storage unit;
    在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;Determining, by each time the second data is called, whether a storage unit corresponding to the second data to be stored has a storage failure;
    若是,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;If yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
    若否,则将调用的所述第二数据存储到对应的存储单元中。If not, the second data that is called is stored in the corresponding storage unit.
  3. 如权利要求1所述的数据存储控制方法,其特征在于,所述根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到第二数据的步骤包括:The data storage control method according to claim 1, wherein the step of splitting the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain second data comprises:
    根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;Determining, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
    根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。Separating the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and storing the split FPGA chip The first data and the split check data are used as the second data.
  4. 如权利要求1所述的数据存储控制方法,其特征在于,所述数据存储控制方法还包括:The data storage control method according to claim 1, wherein the data storage control method further comprises:
    在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;When the data server receives the data read instruction, the erasure code in the FPGA chip is invoked according to the data read instruction;
    根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。Retrieving data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code.
  5. 如权利要求4所述的数据存储控制方法,其特征在于,所述根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据的步骤包括:The data storage control method according to claim 4, wherein the step of recombining the data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code comprises:
    依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;And sequentially reading the data to be read stored in each of the storage units corresponding to the data read instruction;
    在所述待读取数据读取完成后,判断读取的所述待读取数据中是否存在失效数据;After the data to be read is read, determining whether there is invalid data in the read data to be read;
    在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;And when the failure data exists in the data to be read, recovering the failure data by using the non-failure data in the data to be read, and performing the failure data according to the erasure code and the failure after the recovery. Data is reorganized;
    在所述待读取数据中不存在失效数据时,根据所述纠删码对所述待读取数据进行重组。When there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code.
  6. 一种数据服务器,其特征在于,所述数据服务器包括:A data server, characterized in that the data server comprises:
    第一存储模块,用于在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片中;a first storage module, configured to store the first data in an FPGA chip when the data server receives the first data;
    拆分模块,用于在所述第一数据接收完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;a splitting module, configured to calculate, after the first data receiving is completed, an erasure code stored in the FPGA chip, to calculate parity data of the first data stored in the FPGA chip, and calculate the stored in the FPGA chip First data and a storage ratio of the verification data;
    第二存储模块,用于根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到存储器的各个存储单元中。a second storage module, configured to split the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and store the second data in each of the memory In the storage unit.
  7. 如权利要求6所述的数据服务器,其特征在于,所述第二存储模块包括:The data server of claim 6, wherein the second storage module comprises:
    调用单元,用于依次调用各个所述第二数据,并存储到对应的存储单元;a calling unit, configured to sequentially call each of the second data, and store the data in a corresponding storage unit;
    第一判断单元,用于在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;a first determining unit, configured to determine, when each of the second data is invoked, whether a storage unit corresponding to the second data to be stored has a storage failure;
    发送单元,用于若待存储的所述第二数据对应的存储单元出现存储故障,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;a sending unit, configured to send an interrupt message to the storage unit corresponding to the second data, if the storage unit corresponding to the second data to be stored has a storage failure, so that the storage unit corresponding to the second data is The interrupt message stops storing the second data;
    存储单元,用于若待存储的所述第二数据对应的存储单元未出现存储故障,则将调用的所述第二数据存储到对应的存储单元中。a storage unit, configured to store the called second data into a corresponding storage unit if a storage failure corresponding to the storage unit corresponding to the second data to be stored does not occur.
  8. 如权利要求6所述的数据服务器,其特征在于,所述第二存储模块还包括:The data server of claim 6, wherein the second storage module further comprises:
    确定单元,用于根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;a determining unit, configured to determine, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
    拆分单元,用于根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。a splitting unit, configured to split the first data stored in the FPGA chip according to the first split component, and split the verification data according to the second split component, and split the split data The first data stored in the FPGA chip and the split verification data are used as the second data.
  9. 如权利要求6所述的数据服务器,其特征在于,所述数据服务器还包括:The data server of claim 6, wherein the data server further comprises:
    调用模块,用于在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;Calling module, when the data server receives the data read instruction, calling the erasure code in the FPGA chip according to the data read instruction;
    重组模块,用于根据所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。And a reassembly module, configured to recombine data to be read stored in each of the storage units corresponding to the data read instruction according to the erasure code.
  10. 如权利要求9所述的数据服务器,其特征在于,所述重组模块包括:The data server of claim 9, wherein the reassembly module comprises:
    读取单元,用于依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;a reading unit, configured to sequentially read data to be read stored in each of the storage units corresponding to the data read instruction;
    第二判断单元,用于在所述待读取数据读取完成后,判断读取的所述待读取数据中是否存在失效数据;a second determining unit, configured to determine, after the reading of the data to be read is completed, whether there is invalid data in the read data to be read;
    第一重组单元,用于在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;a first reorganization unit, configured to recover the failure data by using the non-failure data in the data to be read when the failure data exists in the data to be read, and to the non-failure data according to the erasure code And recovering the failed data after the recovery;
    第二重组单元,用于在所述待读取数据中不存在失效数据时,根据所述纠删码对所述待读取数据进行重组。And a second recombining unit, configured to recombine the data to be read according to the erasure code when there is no invalid data in the data to be read.
  11. 一种数据存储控制方法,其特征在于,所述数据存储控制方法包括以下步骤:A data storage control method, characterized in that the data storage control method comprises the following steps:
    在数据服务器接收到第一数据时,将所述第一数据存储在FPGA芯片的高速存储器中;When the data server receives the first data, storing the first data in a high speed memory of the FPGA chip;
    在所述第一数据存储完成后,调用FPGA芯片中存储的纠删码计算所述FPGA芯片中存储的第一数据的校验数据,并计算所述FPGA芯片中存储的第一数据以及所述校验数据的存储比例;After the first data storage is completed, the erasure code stored in the FPGA chip is called to calculate the verification data of the first data stored in the FPGA chip, and the first data stored in the FPGA chip and the first data are calculated. Verify the storage ratio of the data;
    根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到多个第二数据,并将所述第二数据分别存储到存储器的各个存储单元中。And dividing the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain a plurality of second data, and storing the second data in each storage unit of the memory.
  12. 如权利要求11所述的数据存储控制方法,其特征在于,所述将所述第二数据存储到存储器的各个存储单元中的步骤包括:The data storage control method according to claim 11, wherein the step of storing the second data in each storage unit of the memory comprises:
    依次调用各个所述第二数据,并根据预设规则给各个所述第二数据分配对应的存储地址;Each of the second data is sequentially called, and each of the second data is allocated a corresponding storage address according to a preset rule;
    将各个所述第二数据存储到与所述存储地址对应的存储单元;And storing each of the second data to a storage unit corresponding to the storage address;
    在每次调用到所述第二数据时,判断待存储的所述第二数据对应的存储单元是否出现存储故障;Determining, by each time the second data is called, whether a storage unit corresponding to the second data to be stored has a storage failure;
    若是,则向所述第二数据对应的存储单元发送中断消息,以供所述第二数据对应的存储单元根据所述中断消息停止存储所述第二数据;If yes, sending an interrupt message to the storage unit corresponding to the second data, so that the storage unit corresponding to the second data stops storing the second data according to the interrupt message;
    若否,则将调用的所述第二数据存储到对应的存储单元中。If not, the second data that is called is stored in the corresponding storage unit.
  13. 如权利要求12所述的数据存储控制方法,其特征在于,所述向所述第二数据对应的存储单元发送中断消息的步骤之后,所述数据存储控制方法还包括:The data storage control method according to claim 12, wherein after the step of transmitting an interrupt message to the storage unit corresponding to the second data, the data storage control method further comprises:
    在预设时间内检测到所述第二数据对应的存储单元的所述存储故障恢复,则将所述第二数据重新存储在所述存储故障恢复的存储单元中;And detecting, by the preset time, the storage failure recovery of the storage unit corresponding to the second data, and storing the second data in the storage unit of the storage failure recovery;
    在在预设时间内未检测到所述第二数据对应的存储单元的所述存储故障恢复,则重新分配与所述第二数据匹配的待存储单元,并将所述第二数据存储在所述待存储单元中。Recovering the storage failure recovery of the storage unit corresponding to the second data within a preset time, reallocating the to-be-stored unit that matches the second data, and storing the second data in the Talked in the storage unit.
  14. 如权利要求12所述的数据存储控制方法,其特征在于,所述根据所述存储比例拆分所述FPGA芯片中存储的第一数据以及所述校验数据得到第二数据的步骤包括:The data storage control method according to claim 12, wherein the step of splitting the first data stored in the FPGA chip and the verification data according to the storage ratio to obtain second data comprises:
    根据所述存储比例确定所述FPGA芯片中存储的第一数据的第一拆分量以及所述校验数据的第二拆分量;Determining, according to the storage ratio, a first split component of the first data stored in the FPGA chip and a second split component of the check data;
    根据所述第一拆分量拆分所述FPGA芯片中存储的第一数据,并根据所述第二拆分量拆分所述校验数据,并将拆分后的所述FPGA芯片中存储的第一数据与拆分后的所述校验数据作为所述第二数据。Separating the first data stored in the FPGA chip according to the first split component, and splitting the check data according to the second split component, and storing the split FPGA chip The first data and the split check data are used as the second data.
  15. 如权利要求11所述的数据存储控制方法,其特征在于,所述数据存储控制方法还包括:The data storage control method according to claim 11, wherein the data storage control method further comprises:
    在所述数据服务器接收到数据读取指令时,根据所述数据读取指令调用所述FPGA芯片中的纠删码;When the data server receives the data read instruction, the erasure code in the FPGA chip is invoked according to the data read instruction;
    根据所述预设规则和所述纠删码重组所述数据读取指令对应的各个所述存储单元中存储的待读取数据。Retrieving data to be read stored in each of the storage units corresponding to the data read instruction according to the preset rule and the erasure code.
  16. 如权利要求15所述的数据存储控制方法,其特征在于,所述根据所述预设规则和所述纠删码重组与所述数据读取指令对应的各个所述存储单元中存储的待读取数据的步骤包括:The data storage control method according to claim 15, wherein said retrieving said to be read in each of said storage units corresponding to said data read command according to said preset rule and said erasure code The steps to retrieve data include:
    依次读取所述数据读取指令对应的各个所述存储单元中存储的待读取数据;And sequentially reading the data to be read stored in each of the storage units corresponding to the data read instruction;
    判断读取的所述待读取数据中是否存在失效数据;Determining whether there is invalid data in the read data to be read;
    在所述待读取数据中存在失效数据时,采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组;And when the failure data exists in the data to be read, recovering the failure data by using the non-failure data in the data to be read, and performing the failure data according to the erasure code and the failure after the recovery. Data is reorganized;
    在所述待读取数据中不存在失效数据时,根据所述纠删码和所述预设规则对所述待读取数据进行重组。And when there is no invalid data in the data to be read, the data to be read is reorganized according to the erasure code and the preset rule.
  17. 如权利要求16所述的数据存储控制方法,其特征在于,所述判断读取的所述待读取数据中是否存在失效数据的步骤之后,所述数据存储控制方法还包括:The data storage control method according to claim 16, wherein after the step of determining whether there is invalid data in the read data to be read, the data storage control method further comprises:
    获取所述待读取数据中失效数据的数量;Obtaining the number of invalid data in the data to be read;
    在所述待读取数据中失效数据的数量小于或等于预设值时,执行采用所述待读取数据中未失效数据恢复所述失效数据,并根据所述纠删码对所述未失效数据以及恢复后的所述失效数据进行重组的步骤;When the number of the invalid data in the data to be read is less than or equal to a preset value, performing the use of the non-failed data in the data to be read to recover the invalid data, and performing the non-failure according to the erasure code The step of reorganizing the data and the recovered invalid data;
    在所述待读取数据中失效数据的数量大于预设值时,输出提示信息。When the number of invalid data in the data to be read is greater than a preset value, the prompt information is output.
PCT/CN2016/108679 2016-07-25 2016-12-06 Data storage control method and data server WO2018018827A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610590235.XA CN106201766B (en) 2016-07-25 2016-07-25 Data storage control method and data server
CN201610590235.X 2016-07-25

Publications (1)

Publication Number Publication Date
WO2018018827A1 true WO2018018827A1 (en) 2018-02-01

Family

ID=57494844

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/108679 WO2018018827A1 (en) 2016-07-25 2016-12-06 Data storage control method and data server

Country Status (2)

Country Link
CN (1) CN106201766B (en)
WO (1) WO2018018827A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813549A (en) * 2020-07-07 2020-10-23 河南城建学院 Server resource allocation method
US11182249B1 (en) 2020-06-24 2021-11-23 International Business Machines Corporation Block ID encoding in an erasure coded storage system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598499A (en) * 2016-12-14 2017-04-26 深圳市中博睿存科技有限公司 FPGA-based distributed file system architecture
CN111386513B (en) * 2018-05-03 2021-09-07 华为技术有限公司 Data processing method, device and system chip
CN109491599A (en) * 2018-10-24 2019-03-19 山东超越数控电子股份有限公司 A kind of distributed memory system and its isomery accelerated method
CN113918378A (en) * 2020-07-10 2022-01-11 华为技术有限公司 Data storage method, storage system, storage device and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100293439A1 (en) * 2009-05-18 2010-11-18 David Flynn Apparatus, system, and method for reconfiguring an array to operate with less storage elements
CN102609378A (en) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 Message type internal memory accessing device and accessing method thereof
CN103631976A (en) * 2013-05-30 2014-03-12 中国科学院电子学研究所 Small multichannel serial data recorder
CN105095013A (en) * 2015-06-04 2015-11-25 华为技术有限公司 Data storage method, data recovery method, and relevant device and system
CN105359108A (en) * 2013-08-05 2016-02-24 英特尔公司 Storage systems with adaptive erasure code generation
CN105791353A (en) * 2014-12-23 2016-07-20 深圳市腾讯计算机系统有限公司 Distributed data storage method and system based on erasure code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100293439A1 (en) * 2009-05-18 2010-11-18 David Flynn Apparatus, system, and method for reconfiguring an array to operate with less storage elements
CN102609378A (en) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 Message type internal memory accessing device and accessing method thereof
CN103631976A (en) * 2013-05-30 2014-03-12 中国科学院电子学研究所 Small multichannel serial data recorder
CN105359108A (en) * 2013-08-05 2016-02-24 英特尔公司 Storage systems with adaptive erasure code generation
CN105791353A (en) * 2014-12-23 2016-07-20 深圳市腾讯计算机系统有限公司 Distributed data storage method and system based on erasure code
CN105095013A (en) * 2015-06-04 2015-11-25 华为技术有限公司 Data storage method, data recovery method, and relevant device and system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182249B1 (en) 2020-06-24 2021-11-23 International Business Machines Corporation Block ID encoding in an erasure coded storage system
CN111813549A (en) * 2020-07-07 2020-10-23 河南城建学院 Server resource allocation method
CN111813549B (en) * 2020-07-07 2023-07-25 河南城建学院 Server resource allocation method

Also Published As

Publication number Publication date
CN106201766A (en) 2016-12-07
CN106201766B (en) 2018-03-20

Similar Documents

Publication Publication Date Title
WO2018018827A1 (en) Data storage control method and data server
WO2019019378A1 (en) Service processing method and apparatus, adapter and computer-readable storage medium
WO2019019376A1 (en) Service process management method, apparatus, and device, and computer readable storage medium
WO2019041406A1 (en) Indecent picture recognition method, terminal and device, and computer-readable storage medium
WO2015127859A1 (en) Sensitive text detecting method and apparatus
WO2015035777A1 (en) Software upgrade method and system for mobile terminal
WO2018058919A1 (en) Identification information generating method, apparatus, device, and computer readable storage medium
WO2015108283A1 (en) Application error detection method for cloud streaming service, and apparatus and system therefor
WO2019051890A1 (en) Terminal control method and device, and computer-readable storage medium
WO2019019374A1 (en) Method, apparatus, and system for controlling household appliance with intelligent voice device
WO2017069508A1 (en) Receiving apparatus and decoding method thereof
WO2016082267A1 (en) Voice recognition method and system
WO2018120429A1 (en) Resource update method, terminal, computer readable storage medium and resource update device
WO2015007007A1 (en) Method and device for adc automatic correction
WO2018120457A1 (en) Data processing method, apparatus, device, and computer readable storage medium
WO2019000801A1 (en) Data synchronization method, apparatus, and device, and computer readable storage medium
WO2017107388A1 (en) Hdmi version switching method and display device
WO2018233367A1 (en) Case registration method and apparatus, terminal, and computer readable storage medium
WO2015041475A1 (en) Transmission apparatus and method for puncturing same
WO2018166107A1 (en) Hybrid-based compatibility method, adapter, operating apparatus and system, and computer-readable storage medium
WO2017084302A1 (en) Method for playing boot video of a display terminal and display terminal
WO2018000856A1 (en) Method implementing sdn overlay network message forwarding, terminal, apparatus, and computer readable storage medium
WO2018201697A1 (en) Method, device and equipment for generating a file and computer readable storage medium
WO2015093870A1 (en) Method and device for managing data
WO2017032122A1 (en) Method and apparatus for detecting digital television set

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16910405

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 24.06.2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16910405

Country of ref document: EP

Kind code of ref document: A1